Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMBHJ-004fgq-QS for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Jun 2025 19:57:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uMBHI-00D8hk-9e for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Jun 2025 19:57:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMBHH-00D8cZ-35 for pgsql-hackers@lists.postgresql.org; Mon, 02 Jun 2025 19:56:59 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uMBH5-0005Q6-0I for pgsql-hackers@postgresql.org; Mon, 02 Jun 2025 19:56:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1748894204; bh=zZ4gcgFfgL5gWPvLvgui34Dq/m2QRcB5nNUHY33rqr0=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=b/c89uq2ymWTCBtSTsQdeS/hz7+5hvwq5Xa9LnxLn1/NWWBmyE7VGWAgzpq1PIyq2 CaEDwB94/3dtzwpHakmbVaMA7B/TZNNjh149KXq2WKo7RD4gv/6KdQQ/89cJWHLfgL v2S/k+qHz0AeYYL0FX+ZKoQ909emBeRte86R51m1knnisjLLqf5nlpky1Y2Y84Lw+u zL+89yhG7SXWeat7w8oVLq8CVgj/gZ6BWFWwBO/z7Rl2g9IPPJyz+Ct3+nlGJUytKU N3kFd4LFsrUz2cUcEhvqLrv5Ib+BDGE9kl+JpIBMw55iiBQFv3vZh2C7yk2KQCducW baDA35Dahkoow== Received: from [10.0.85.1] (unknown [151.236.12.133]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id F0E7D60416; Mon, 2 Jun 2025 22:56:42 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------oJHX0BjXYA1bdjVrra2ICFTY" Message-ID: <18169b68-5b10-40fd-9657-be04f2bd0161@postgrespro.ru> Date: Mon, 2 Jun 2025 22:56:41 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Alexander Korotkov Cc: Amit Kapila , pgsql-hackers , Jim Nasby , Bertrand Drouvot , Ilia Evdokimov , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , a.lepikhov@postgrespro.ru, Sami Imseih , vignesh C References: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <1e81a0a1-a63b-48fb-905a-d6495f89ab73@postgrespro.ru> <0b4eefc7-4c38-4caa-b2ca-a4c75dd7dd12@postgrespro.ru> <333c2306-c401-4959-9f0c-a44c670a11a9@postgrespro.ru> <513f0188-b093-4cc8-98cf-4c324570d525@postgrespro.ru> <47a7b784-5218-43f2-96e3-65f9a729c5a5@tantorlabs.com> <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> <2a04ad18-5572-4633-848b-eb57209e7ac0@postgrespro.ru> <2f48399f-2959-4483-938f-64edb863ca76@postgrespro.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: X-KSMG-AntiPhishing: NotDetected X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/06/02 18:49:00 #27532995 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 02.06.2025 19:25, Alexander Korotkov wrote: > On Tue, May 13, 2025 at 12:49 PM Alena Rybakina > wrote: >> On 12.05.2025 08:30, Amit Kapila wrote: >>> On Fri, May 9, 2025 at 5:34 PM Alena Rybakina wrote: >>>> I did a rebase and finished the part with storing statistics separately from the relation statistics - now it is possible to disable the collection of statistics for relationsh using gucs and >>>> this allows us to solve the problem with the memory consumed. >>>> >>> I think this patch is trying to collect data similar to what we do for >>> pg_stat_statements for SQL statements. So, can't we follow a similar >>> idea such that these additional statistics will be collected once some >>> external module like pg_stat_statements is enabled? That module should >>> be responsible for accumulating and resetting the data, so we won't >>> have this memory consumption issue. >> The idea is good, it will require one hook for the pgstat_report_vacuum >> function, the extvac_stats_start and extvac_stats_end functions can be >> run if the extension is loaded, so as not to add more hooks. > +1 > Nice idea of a hook. Given the volume of the patch, it might be a > good idea to keep this as an extension. Today, I finalized the vacuum statistics separation approach and refactored the vacuum statistics structures (patch 4). I also reworked the table statistics to avoid mixing index statistics in parallel vacuum mode (patch 2). The new approach excludes buffer usage and WAL statistics for indexes from the table’s statistics. For timing, if vacuuming is sequential, the total time spent on all indexes is subtracted from the table’s total vacuum time by adding up the individual index vacuum times. If vacuuming is parallel, the total index vacuum time is subtracted as a whole. static void accumulate_idxs_vacuum_statistics(LVRelState *vacrel, ExtVacReport *extVacIdxStats) {     if (!pgstat_track_vacuum_statistics)         return;     /* Fill heap-specific extended stats fields */     vacrel->extVacReportIdx.blk_read_time += extVacIdxStats->blk_read_time;     vacrel->extVacReportIdx.blk_write_time += extVacIdxStats->blk_write_time;     vacrel->extVacReportIdx.total_blks_dirtied += extVacIdxStats->total_blks_dirtied;     vacrel->extVacReportIdx.total_blks_hit += extVacIdxStats->total_blks_hit;     vacrel->extVacReportIdx.total_blks_read += extVacIdxStats->total_blks_read;     vacrel->extVacReportIdx.total_blks_written += extVacIdxStats->total_blks_written;     vacrel->extVacReportIdx.wal_bytes += extVacIdxStats->wal_bytes;     vacrel->extVacReportIdx.wal_fpi += extVacIdxStats->wal_fpi;     vacrel->extVacReportIdx.wal_records += extVacIdxStats->wal_records;     vacrel->extVacReportIdx.delay_time += extVacIdxStats->delay_time;     vacrel->extVacReportIdx.total_time += extVacIdxStats->total_time; } if (ParallelVacuumIsActive(vacrel)) {     LVExtStatCounters counters;     ExtVacReport extVacReport;     memset(&extVacReport, 0, sizeof(ExtVacReport));     extvac_stats_start(vacrel->rel, &counters);     /* Outsource everything to parallel variant */     parallel_vacuum_bulkdel_all_indexes(vacrel->pvs, old_live_tuples, vacrel->num_index_scans);     extvac_stats_end(vacrel->rel, &counters, &extVacReport);     accumulate_idxs_vacuum_statistics(vacrel, &extVacReport); } Currently, database statistics work incorrectly — I'm investigating the issue. In parallel, I'm starting work on the extension. -- Regards, Alena Rybakina Postgres Professional --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/x-patch; charset=UTF-8; name="0001-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="0001-Machinery-for-grabbing-an-extended-vacuum-statistics.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2YzUyMTUyYjNkOTZkNGI3ZGMyZGUyNjkyYjExNmFmMjBiZTY3ZGNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCA4IE1heSAyMDI1IDIxOjE0OjIzICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIHRhYmxlIHJlbGF0aW9ucy4KClZhbHVlIG9mIHRvdGFsX2Js a3NfaGl0LCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfZGlydGllZCBhcmUgbnVtYmVy IG9mCmhpdHRlZCwgbWlzc2VkIGFuZCBkaXJ0aWVkIHBhZ2VzIGluIHNoYXJlZCBidWZmZXJz IGR1cmluZyBhIHZhY3V1bSBvcGVyYXRpb24KcmVzcGVjdGl2ZWx5LgoKdG90YWxfYmxrc19k aXJ0aWVkIG1lYW5zICdkaXJ0aWVkIG9ubHkgYnkgdGhpcyBhY3Rpb24nLiBTbywgaWYgdGhp cyBwYWdlIHdhcwpkaXJ0eSBiZWZvcmUgdGhlIHZhY3V1bSBvcGVyYXRpb24sIGl0IGRvZXNu J3QgY291bnQgdGhpcyBwYWdlIGFzICdkaXJ0aWVkJy4KClRoZSB0dXBsZXNfZGVsZXRlZCBw YXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgY2xlYW5lZCB1cCBieSB0aGUgdmFj dXVtCm9wZXJhdGlvbi4KClRoZSBkZWxheV90aW1lIHZhbHVlIG1lYW5zIHRvdGFsIHZhY3V1 bSBzbGVlcCB0aW1lIGluIHZhY3V1bSBkZWxheSBwb2ludC4KVGhlIHBhZ2VzX3JlbW92ZWQg dmFsdWUgaXMgdGhlIG51bWJlciBvZiBwYWdlcyBieSB3aGljaCB0aGUgcGh5c2ljYWwgZGF0 YQpzdG9yYWdlIG9mIHRoZSByZWxhdGlvbiB3YXMgcmVkdWNlZC4KVGhlIHZhbHVlIG9mIHBh Z2VzX2RlbGV0ZWQgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgZnJlZWQgcGFnZXMgaW4g dGhlIHRhYmxlCihmaWxlIHNpemUgbWF5IG5vdCBoYXZlIGNoYW5nZWQpLgoKVHJhY2tpbmcg b2YgSU8gZHVyaW5nIGFuIChhdXRvKXZhY3V1bSBvcGVyYXRpb24uCkludHJvZHVjZWQgdmFy aWFibGVzIGJsa19yZWFkX3RpbWUgYW5kIGJsa193cml0ZV90aW1lIHRyYWNrcyBvbmx5IGFj Y2VzcyB0bwpidWZmZXIgcGFnZXMgYW5kIGZsdXNoaW5nIHRoZW0gdG8gZGlzay4gUmVhZGlu ZyBvcGVyYXRpb24gaXMgdHJpdmlhbCwgYnV0CndyaXRpbmcgbWVhc3VyZW1lbnQgdGVjaG5p cXVlIGlzIG5vdCBvYnZpb3VzLgpTbywgZHVyaW5nIGEgdmFjdXVtIHdyaXRpbmcgdGltZSBj YW4gYmUgemVybyBpbmNyZW1lbnRlZCBiZWNhdXNlIG5vIGFueSBmbHVzaGluZwpvcGVyYXRp b25zIHdlcmUgcGVyZm9ybWVkLgoKU3lzdGVtIHRpbWUgYW5kIHVzZXIgdGltZSBhcmUgcGFy YW1ldGVycyB0aGF0IGRlc2NyaWJlcyBob3cgbXVjaCB0aW1lIGEgdmFjdXVtCm9wZXJhdGlv biBoYXMgc3BlbnQgaW4gZXhlY3V0aW5nIG9mIGNvZGUgaW4gdXNlciBzcGFjZSBhbmQga2Vy bmVsIHNwYWNlCmFjY29yZGluZ2x5LiBBbHNvLCBhY2N1bXVsYXRlIHRvdGFsIHRpbWUgb2Yg YSB2YWN1dW0gdGhhdCBpcyBhIGRpZmYgYmV0d2Vlbgp0aW1lc3RhbXBzIGluIHN0YXJ0IGFu ZCBmaW5pc2ggcG9pbnRzIGluIHRoZSB2YWN1dW0gY29kZS4KUmVtZW1iZXIgYWJvdXQgaWRs ZSB0aW1lLCB3aGVuIHZhY3V1bSB3YWl0ZWQgZm9yIElPIGFuZCBsb2Nrcywgc28gdG90YWwg dGltZQppc24ndCBlcXVhbCBhIHN1bSBvZiB1c2VyIGFuZCBzeXN0ZW0gdGltZSwgYnV0IG5v IGxlc3MuCgpwYWdlc19mcm96ZW4gaXMgYSBudW1iZXIgb2YgcGFnZXMgdGhhdCBhcmUgbWFy a2VkIGFzIGZyb3plbiBpbiB2bSBkdXJpbmcgdmFjdXVtLgpUaGlzIHBhcmFtZXRlciBpcyBp bmNyZW1lbnRlZCBpZiBwYWdlIGlzIG1hcmtlZCBhcyBhbGwtZnJvemVuLgpwYWdlc19hbGxf dmlzaWJsZSBpcyBhIG51bWJlciBvZiBwYWdlcyB0aGF0IGFyZSBtYXJrZWQgYXMgYWxsLXZp c2libGUgaW4gdm0gZHVyaW5nCnZhY3V1bS4KCndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQg aXMgYSBudW1iZXIgb2YgdGltZXMgd2hlbiB0aGUgdmFjdXVtIHN0YXJ0cyB1cmdlbnQgY2xl YW51cAp0byBwcmV2ZW50IHdyYXBhcm91bmQgcHJvYmxlbSB3aGljaCBpcyBjcml0aWNhbCBm b3IgdGhlIGRhdGFiYXNlLgoKQXV0aG9yczogQWxlbmEgUnliYWtpbmEgPGxlbmEucmliYWNr aW5hQHlhbmRleC5ydT4sCgkgQW5kcmVpIExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVz cHJvLnJ1PiwKCSBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2 aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlr byBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCgkgICAgIElsaWEgRXZkb2tpbW92 IDxpbHlhLmV2ZG9raW1vdkB0YW50b3JsYWJzLmNvbT4sIGppYW4gaGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4sCgkgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBn bWFpbC5jb20+LCBBbGV4YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwK CSAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+LCBTYW1pIEltc2VpaCA8c2Ft aW1zZWloQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgICAgICAgfCAxNTAgKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92aXNpYmlsaXR5bWFwLmMgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgIDUyICsrKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bS5jICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyAgfCAgNDYgKysrLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAgIHwgMTQ3ICsrKysrKysr KysrKwogc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jICAgICAgICAgICAgICAgIHwg IDEzICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8 ICAgOSArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUg fCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAg IHwgIDE4ICsrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDgwICsrKysrLQogc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oICAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1y ZWFkLm91dCAgICB8ICA1MyArKysrCiBzcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3Nj aGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRh YmxlLXJlYWQuc3BlYyAgIHwgIDUzICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0ICAgICAgICAgICB8ICA0NCArKystCiAuLi4vZXhwZWN0ZWQvdmFjdXVtX3Rh Ymxlc19zdGF0aXN0aWNzLm91dCAgICAgfCAyMjcgKysrKysrKysrKysrKysrKysrCiBzcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDUgKwogLi4u L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgIHwgMTgzICsrKysr KysrKysrKysrCiAyMiBmaWxlcyBjaGFuZ2VkLCAxMDk1IGluc2VydGlvbnMoKyksIDE2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBl Y3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWlu LXJlcGV0YWJsZS1yZWFkLnNwZWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5vdXQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mu c3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDcwODY3NGQ4 ZmNmLi5lZTI3ZTcwYTc5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwpAQCAtMjkwLDYgKzI5MCw3IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAkvKiBF cnJvciByZXBvcnRpbmcgc3RhdGUgKi8KIAljaGFyCSAgICpkYm5hbWU7CiAJY2hhcgkgICAq cmVsbmFtZXNwYWNlOworCU9pZAkJCXJlbG9pZDsKIAljaGFyCSAgICpyZWxuYW1lOwogCWNo YXIJICAgKmluZG5hbWU7CQkvKiBDdXJyZW50IGluZGV4IG5hbWUgKi8KIAlCbG9ja051bWJl ciBibGtubzsJCQkvKiB1c2VkIG9ubHkgZm9yIGhlYXAgb3BlcmF0aW9ucyAqLwpAQCAtNDA4 LDYgKzQwOSw4IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAkgKiBiZWVuIHBlcm1h bmVudGx5IGRpc2FibGVkLgogCSAqLwogCUJsb2NrTnVtYmVyIGVhZ2VyX3NjYW5fcmVtYWlu aW5nX2ZhaWxzOworCisJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7IC8qIG51 bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0byBwcmV2ZW50IGFudGktd3JhcGFyb3VuZCBz aHV0ZG93biAqLwogfSBMVlJlbFN0YXRlOwogCiAKQEAgLTQxOSw2ICs0MjIsMTggQEAgdHlw ZWRlZiBzdHJ1Y3QgTFZTYXZlZEVyckluZm8KIAlWYWNFcnJQaGFzZSBwaGFzZTsKIH0gTFZT YXZlZEVyckluZm87CiAKKy8qCisgKiBDb3VudGVycyBhbmQgdXNhZ2UgZGF0YSBmb3IgZXh0 ZW5kZWQgc3RhdHMgdHJhY2tpbmcuCisgKi8KK3R5cGVkZWYgc3RydWN0IExWRXh0U3RhdENv dW50ZXJzCit7CisJVGltZXN0YW1wVHogc3RhcnR0aW1lOworCVdhbFVzYWdlCXdhbHVzYWdl OworCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOworCWRvdWJsZQkJVmFjdXVtRGVsYXlUaW1lOwor CVBnU3RhdF9Db3VudGVyIGJsb2Nrc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nr c19oaXQ7Cit9IExWRXh0U3RhdENvdW50ZXJzOwogCiAvKiBub24tZXhwb3J0IGZ1bmN0aW9u IHByb3RvdHlwZXMgKi8KIHN0YXRpYyB2b2lkIGxhenlfc2Nhbl9oZWFwKExWUmVsU3RhdGUg KnZhY3JlbCk7CkBAIC00NzUsNiArNDkwLDEwNiBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfdmFj dXVtX2Vycm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLAogc3RhdGljIHZvaWQgcmVzdG9y ZV92YWN1dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCiAJCQkJCQkJCQkgIGNv bnN0IExWU2F2ZWRFcnJJbmZvICpzYXZlZF92YWNyZWwpOwogCisvKiAtLS0tLS0tLS0tCisg KiBleHR2YWNfc3RhdHNfc3RhcnQoKSAtCisgKgorICogU2F2ZSBjdXQtb2ZmIHZhbHVlcyBv ZiBleHRlbmRlZCB2YWN1dW0gY291bnRlcnMgYmVmb3JlIHN0YXJ0IG9mIGEgcmVsYXRpb24K KyAqIHByb2Nlc3NpbmcuCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitleHR2 YWNfc3RhdHNfc3RhcnQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRl cnMpCit7CisJVGltZXN0YW1wVHoJc3RhcnR0aW1lOworCisJaWYoIXBnc3RhdF90cmFja192 YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCisJbWVtc2V0KGNvdW50ZXJzLCAwLCBz aXplb2YoTFZFeHRTdGF0Q291bnRlcnMpKTsKKworCXN0YXJ0dGltZSA9IEdldEN1cnJlbnRU aW1lc3RhbXAoKTsKKworCWNvdW50ZXJzLT5zdGFydHRpbWUgPSBzdGFydHRpbWU7CisJY291 bnRlcnMtPndhbHVzYWdlID0gcGdXYWxVc2FnZTsKKwljb3VudGVycy0+YnVmdXNhZ2UgPSBw Z0J1ZmZlclVzYWdlOworCWNvdW50ZXJzLT5WYWN1dW1EZWxheVRpbWUgPSBWYWN1dW1EZWxh eVRpbWU7CisJY291bnRlcnMtPmJsb2Nrc19mZXRjaGVkID0gMDsKKwljb3VudGVycy0+Ymxv Y2tzX2hpdCA9IDA7CisKKwlpZiAoIXJlbC0+cGdzdGF0X2luZm8gfHwgIXBnc3RhdF90cmFj a19jb3VudHMpCisJCS8qCisJCSAqIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIG9yIHVzZXIg ZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UKKwkJICogYWN0aXZpdHkgLSBqdXN0 IHN1cHByZXNzIGl0LgorCQkgKi8KKwkJcmV0dXJuOworCisJY291bnRlcnMtPmJsb2Nrc19m ZXRjaGVkID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOworCWNv dW50ZXJzLT5ibG9ja3NfaGl0ID0gcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19o aXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0KKyAqIGV4dHZhY19zdGF0c19lbmQoKSAtCisgKgor ICoJQ2FsbGVkIHRvIGZpbmlzaCBhbiBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljIGdhdGhl cmluZyBhbmQgZm9ybSBhIHJlcG9ydC4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZv aWQKK2V4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVycyAq Y291bnRlcnMsCisJCQkJICBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKK3sKKwlXYWxVc2FnZQl3 YWx1c2FnZTsKKwlCdWZmZXJVc2FnZQlidWZ1c2FnZTsKKwlUaW1lc3RhbXBUeiBlbmR0aW1l OworCWxvbmcJCXNlY3M7CisJaW50CQkJdXNlY3M7CisKKwlpZighcGdzdGF0X3RyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwkvKiBDYWxjdWxhdGUgZGlmZnMgb2Yg Z2xvYmFsIHN0YXQgcGFyYW1ldGVycyBvbiBXQUwgYW5kIGJ1ZmZlciB1c2FnZS4gKi8KKwlt ZW1zZXQoJndhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKKwlXYWxVc2FnZUFjY3Vt RGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmY291bnRlcnMtPndhbHVzYWdlKTsKKwor CW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOworCUJ1ZmZlclVz YWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZjb3VudGVycy0+YnVm dXNhZ2UpOworCisJZW5kdGltZSA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKKwlUaW1lc3Rh bXBEaWZmZXJlbmNlKGNvdW50ZXJzLT5zdGFydHRpbWUsIGVuZHRpbWUsICZzZWNzLCAmdXNl Y3MpOworCisJbWVtc2V0KHJlcG9ydCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCisJ LyoKKwkgKiBGaWxsIGFkZGl0aW9uYWwgc3RhdGlzdGljcyBvbiBhIHZhY3V1bSBwcm9jZXNz aW5nIG9wZXJhdGlvbi4KKwkgKi8KKwlyZXBvcnQtPnRvdGFsX2Jsa3NfcmVhZCA9IGJ1ZnVz YWdlLmxvY2FsX2Jsa3NfcmVhZCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQ7CisJcmVw b3J0LT50b3RhbF9ibGtzX2hpdCA9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfaGl0ICsgYnVmdXNh Z2Uuc2hhcmVkX2Jsa3NfaGl0OworCXJlcG9ydC0+dG90YWxfYmxrc19kaXJ0aWVkID0gYnVm dXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkICsgYnVmdXNhZ2Uuc2hhcmVkX2Jsa3NfZGlydGll ZDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3Nfd3JpdHRlbiA9IGJ1ZnVzYWdlLnNoYXJlZF9ibGtz X3dyaXR0ZW47CisKKwlyZXBvcnQtPndhbF9yZWNvcmRzID0gd2FsdXNhZ2Uud2FsX3JlY29y ZHM7CisJcmVwb3J0LT53YWxfZnBpID0gd2FsdXNhZ2Uud2FsX2ZwaTsKKwlyZXBvcnQtPndh bF9ieXRlcyA9IHdhbHVzYWdlLndhbF9ieXRlczsKKworCXJlcG9ydC0+YmxrX3JlYWRfdGlt ZSA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLmxvY2FsX2Jsa19yZWFkX3Rp bWUpOworCXJlcG9ydC0+YmxrX3JlYWRfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNF QyhidWZ1c2FnZS5zaGFyZWRfYmxrX3JlYWRfdGltZSk7CisJcmVwb3J0LT5ibGtfd3JpdGVf dGltZSA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLmxvY2FsX2Jsa193cml0 ZV90aW1lKTsKKwlyZXBvcnQtPmJsa193cml0ZV90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlM TElTRUMoYnVmdXNhZ2Uuc2hhcmVkX2Jsa193cml0ZV90aW1lKTsKKwlyZXBvcnQtPmRlbGF5 X3RpbWUgPSBWYWN1dW1EZWxheVRpbWUgLSBjb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lOwor CisJcmVwb3J0LT50b3RhbF90aW1lID0gc2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsK KworCWlmICghcmVsLT5wZ3N0YXRfaW5mbyB8fCAhcGdzdGF0X3RyYWNrX2NvdW50cykKKwkJ LyoKKwkJICogaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgb3IgYW4gdXNlciBkb2Vzbid0IHdh bnQgdG8gdHJhY2sgYSBkYXRhYmFzZQorCQkgKiBhY3Rpdml0eSAtIGp1c3Qgc3VwcHJlc3Mg aXQuCisJCSAqLworCQlyZXR1cm47CisKKwlyZXBvcnQtPmJsa3NfZmV0Y2hlZCA9CisJCXJl bC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfZmV0Y2hlZCAtIGNvdW50ZXJzLT5ibG9j a3NfZmV0Y2hlZDsKKwlyZXBvcnQtPmJsa3NfaGl0ID0KKwkJcmVsLT5wZ3N0YXRfaW5mby0+ Y291bnRzLmJsb2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKK30KIAogCiAvKgpA QCAtNjMyLDcgKzc0NywxNCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1 dW1QYXJhbXMgKnBhcmFtcywKIAlXYWxVc2FnZQlzdGFydHdhbHVzYWdlID0gcGdXYWxVc2Fn ZTsKIAlCdWZmZXJVc2FnZSBzdGFydGJ1ZmZlcnVzYWdlID0gcGdCdWZmZXJVc2FnZTsKIAlF cnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKwlMVkV4dFN0YXRDb3VudGVycyBl eHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OwogCWNoYXIJICAq KmluZG5hbWVzID0gTlVMTDsKKwlFeHRWYWNSZXBvcnQgYWxsemVybzsKKworCS8qIEluaXRp YWxpemUgdmFjdXVtIHN0YXRpc3RpY3MgKi8KKwltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVv ZihFeHRWYWNSZXBvcnQpKTsKKwlleHRWYWNSZXBvcnQgPSBhbGx6ZXJvOwogCiAJdmVyYm9z ZSA9IChwYXJhbXMtPm9wdGlvbnMgJiBWQUNPUFRfVkVSQk9TRSkgIT0gMDsKIAlpbnN0cnVt ZW50ID0gKHZlcmJvc2UgfHwgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJgpAQCAt NjUyLDcgKzc3NCw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBh cmFtcyAqcGFyYW1zLAogCiAJcGdzdGF0X3Byb2dyZXNzX3N0YXJ0X2NvbW1hbmQoUFJPR1JF U1NfQ09NTUFORF9WQUNVVU0sCiAJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxpZChyZWwpKTsK LQorCWV4dHZhY19zdGF0c19zdGFydChyZWwsICZleHRWYWNDb3VudGVycyk7CiAJLyoKIAkg KiBTZXR1cCBlcnJvciB0cmFjZWJhY2sgc3VwcG9ydCBmb3IgZXJlcG9ydCgpIGZpcnN0LiAg VGhlIGlkZWEgaXMgdG8gc2V0CiAJICogdXAgYW4gZXJyb3IgY29udGV4dCBjYWxsYmFjayB0 byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gYW55CkBAIC02NjksNiArNzkx LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJh bXMsCiAJdmFjcmVsLT5kYm5hbWUgPSBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQp OwogCXZhY3JlbC0+cmVsbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9u R2V0TmFtZXNwYWNlKHJlbCkpOwogCXZhY3JlbC0+cmVsbmFtZSA9IHBzdHJkdXAoUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJdmFjcmVsLT5yZWxvaWQgPSBSZWxhdGlvbkdl dFJlbGlkKHJlbCk7CiAJdmFjcmVsLT5pbmRuYW1lID0gTlVMTDsKIAl2YWNyZWwtPnBoYXNl ID0gVkFDVVVNX0VSUkNCX1BIQVNFX1VOS05PV047CiAJdmFjcmVsLT52ZXJib3NlID0gdmVy Ym9zZTsKQEAgLTc1OCw2ICs4ODEsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVs LCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAl2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3pl bl9wYWdlcyA9IDA7CiAJdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzID0gMDsKIAl2YWNy ZWwtPnJlbF9wYWdlcyA9IG9yaWdfcmVsX3BhZ2VzID0gUmVsYXRpb25HZXROdW1iZXJPZkJs b2NrcyhyZWwpOworCXZhY3JlbC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCA9IDA7CiAK IAkvKgogCSAqIEdldCBjdXRvZmZzIHRoYXQgZGV0ZXJtaW5lIHdoaWNoIGRlbGV0ZWQgdHVw bGVzIGFyZSBjb25zaWRlcmVkIERFQUQsCkBAIC05MjQsNiArMTA0OCwyNiBAQCBoZWFwX3Zh Y3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJCQkJCXZh Y3JlbC0+TmV3UmVsZnJvemVuWGlkLCB2YWNyZWwtPk5ld1JlbG1pbk14aWQsCiAJCQkJCQkm ZnJvemVueGlkX3VwZGF0ZWQsICZtaW5tdWx0aV91cGRhdGVkLCBmYWxzZSk7CiAKKwkvKiBN YWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCAqLworCWV4dHZhY19z dGF0c19lbmQocmVsLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCisJaWYo cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCXsKKwkJLyogRmlsbCBoZWFwLXNw ZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCQlleHRWYWNSZXBvcnQucGFnZXNf c2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5lZF9wYWdlczsKKwkJZXh0VmFjUmVwb3J0LnBhZ2Vz X3JlbW92ZWQgPSB2YWNyZWwtPnJlbW92ZWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC52bV9u ZXdfZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzOworCQlleHRW YWNSZXBvcnQudm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxl X3BhZ2VzOworCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0g dmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJCWV4dFZhY1JlcG9ydC50 dXBsZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJCWV4dFZhY1JlcG9y dC50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVuOworCQlleHRWYWNSZXBv cnQucmVjZW50bHlfZGVhZF90dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVz OworCQlleHRWYWNSZXBvcnQubWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRf ZGVhZF90dXBsZXM7CisJCWV4dFZhY1JlcG9ydC5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3Jl bC0+bWlzc2VkX2RlYWRfcGFnZXM7CisJCWV4dFZhY1JlcG9ydC5pbmRleF92YWN1dW1fY291 bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKKwkJZXh0VmFjUmVwb3J0LndyYXBhcm91 bmRfZmFpbHNhZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7 CisJfQorCiAJLyoKIAkgKiBSZXBvcnQgcmVzdWx0cyB0byB0aGUgY3VtdWxhdGl2ZSBzdGF0 cyBzeXN0ZW0sIHRvby4KIAkgKgpAQCAtOTM5LDcgKzEwODMsOCBAQCBoZWFwX3ZhY3V1bV9y ZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJCQkJCSBNYXgodmFj cmVsLT5uZXdfbGl2ZV90dXBsZXMsIDApLAogCQkJCQkJIHZhY3JlbC0+cmVjZW50bHlfZGVh ZF90dXBsZXMgKwogCQkJCQkJIHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVzLAotCQkJCQkJ IHN0YXJ0dGltZSk7CisJCQkJCQkgc3RhcnR0aW1lLAorCQkJCQkJICZleHRWYWNSZXBvcnQp OwogCXBnc3RhdF9wcm9ncmVzc19lbmRfY29tbWFuZCgpOwogCiAJaWYgKGluc3RydW1lbnQp CkBAIC0yOTc3LDYgKzMxMjIsNyBAQCBsYXp5X2NoZWNrX3dyYXBhcm91bmRfZmFpbHNhZmUo TFZSZWxTdGF0ZSAqdmFjcmVsKQogCQlpbnQ2NAkJcHJvZ3Jlc3NfdmFsWzJdID0gezAsIDB9 OwogCiAJCVZhY3V1bUZhaWxzYWZlQWN0aXZlID0gdHJ1ZTsKKwkJdmFjcmVsLT53cmFwYXJv dW5kX2ZhaWxzYWZlX2NvdW50ICsrOwogCiAJCS8qCiAJCSAqIEFiYW5kb24gdXNlIG9mIGEg YnVmZmVyIGFjY2VzcyBzdHJhdGVneSB0byBhbGxvdyB1c2Ugb2YgYWxsIG9mCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKaW5kZXggNzQ1YTA0ZWYyNmUuLjA3 NjIzYTA0NWZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmls aXR5bWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j CkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dpbnNlcnQuaCIKICNp bmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisj aW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9zbWdyLmgiCkBA IC0xNjAsNiArMTYxLDE1IEBAIHZpc2liaWxpdHltYXBfY2xlYXIoUmVsYXRpb24gcmVsLCBC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYsIHVpbnQ4IGZsYWdzCiAKIAlpZiAo bWFwW21hcEJ5dGVdICYgbWFzaykKIAl7CisJCS8qCisJCSAqIEFzIHBhcnQgb2YgdmFjdXVt IHN0YXRzLCB0cmFjayBob3cgb2Z0ZW4gYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbgorCQkg KiBiaXRzIGFyZSBjbGVhcmVkLgorCQkgKi8KKwkJaWYgKG1hcFttYXBCeXRlXSA+PiBtYXBP ZmZzZXQgJiBmbGFncyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpCisJCQlwZ3N0YXRf Y291bnRfdm1fcmV2X2FsbF92aXNpYmxlKHJlbCk7CisJCWlmIChtYXBbbWFwQnl0ZV0gPj4g bWFwT2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pCisJCQlwZ3N0 YXRfY291bnRfdm1fcmV2X2FsbF9mcm96ZW4ocmVsKTsKKwogCQltYXBbbWFwQnl0ZV0gJj0g fm1hc2s7CiAKIAkJTWFya0J1ZmZlckRpcnR5KHZtYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbAppbmRleCAwOGY3ODBhMmU2My4uNDdkMjczMTRiNTUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTcwOCw3ICs3MDgsOSBAQCBD UkVBVEUgVklFVyBwZ19zdGF0X2FsbF90YWJsZXMgQVMKICAgICAgICAgICAgIHBnX3N0YXRf Z2V0X3RvdGFsX3ZhY3V1bV90aW1lKEMub2lkKSBBUyB0b3RhbF92YWN1dW1fdGltZSwKICAg ICAgICAgICAgIHBnX3N0YXRfZ2V0X3RvdGFsX2F1dG92YWN1dW1fdGltZShDLm9pZCkgQVMg dG90YWxfYXV0b3ZhY3V1bV90aW1lLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfdG90YWxf YW5hbHl6ZV90aW1lKEMub2lkKSBBUyB0b3RhbF9hbmFseXplX3RpbWUsCi0gICAgICAgICAg ICBwZ19zdGF0X2dldF90b3RhbF9hdXRvYW5hbHl6ZV90aW1lKEMub2lkKSBBUyB0b3RhbF9h dXRvYW5hbHl6ZV90aW1lCisgICAgICAgICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvYW5h bHl6ZV90aW1lKEMub2lkKSBBUyB0b3RhbF9hdXRvYW5hbHl6ZV90aW1lLAorICAgICAgICAg ICAgcGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMoQy5vaWQpIEFTIHJldl9hbGxf ZnJvemVuX3BhZ2VzLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxl X3BhZ2VzKEMub2lkKSBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgICBGUk9NIHBnX2Ns YXNzIEMgTEVGVCBKT0lOCiAgICAgICAgICBwZ19pbmRleCBJIE9OIEMub2lkID0gSS5pbmRy ZWxpZAogICAgICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBOIE9OIChOLm9pZCA9IEMu cmVsbmFtZXNwYWNlKQpAQCAtMTQwNywzICsxNDA5LDUxIEBAIFJFVk9LRSBBTEwgT04gcGdf YWlvcyBGUk9NIFBVQkxJQzsKIEdSQU5UIFNFTEVDVCBPTiBwZ19haW9zIFRPIHBnX3JlYWRf YWxsX3N0YXRzOwogUkVWT0tFIEVYRUNVVEUgT04gRlVOQ1RJT04gcGdfZ2V0X2Fpb3MoKSBG Uk9NIFBVQkxJQzsKIEdSQU5UIEVYRUNVVEUgT04gRlVOQ1RJT04gcGdfZ2V0X2Fpb3MoKSBU TyBwZ19yZWFkX2FsbF9zdGF0czsKKy0tCistLSBTaG93IGV4dGVuZGVkIGN1bXVsYXRpdmUg c3RhdGlzdGljcyBvbiBhIHZhY3V1bSBvcGVyYXRpb24gb3ZlciBhbGwgdGFibGVzIGFuZAor LS0gZGF0YWJhc2VzIG9mIHRoZSBpbnN0YW5jZS4KKy0tIFVzZSBJbnZhbGlkIE9pZCAiMCIg YXMgYW4gaW5wdXQgcmVsYXRpb24gaWQgdG8gZ2V0IHN0YXQgb24gZWFjaCB0YWJsZSBpbiBh CistLSBkYXRhYmFzZS4KKy0tCisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVtX3RhYmxl cyBBUworU0VMRUNUCisgIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgcmVsLnJlbG5h bWUgQVMgcmVsbmFtZSwKKyAgc3RhdHMucmVsaWQgYXMgcmVsaWQsCisKKyAgc3RhdHMudG90 YWxfYmxrc19yZWFkIEFTIHRvdGFsX2Jsa3NfcmVhZCwKKyAgc3RhdHMudG90YWxfYmxrc19o aXQgQVMgdG90YWxfYmxrc19oaXQsCisgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0 b3RhbF9ibGtzX2RpcnRpZWQsCisgIHN0YXRzLnRvdGFsX2Jsa3Nfd3JpdHRlbiBBUyB0b3Rh bF9ibGtzX3dyaXR0ZW4sCisKKyAgc3RhdHMucmVsX2Jsa3NfcmVhZCBBUyByZWxfYmxrc19y ZWFkLAorICBzdGF0cy5yZWxfYmxrc19oaXQgQVMgcmVsX2Jsa3NfaGl0LAorCisgIHN0YXRz LnBhZ2VzX3NjYW5uZWQgQVMgcGFnZXNfc2Nhbm5lZCwKKyAgc3RhdHMucGFnZXNfcmVtb3Zl ZCBBUyBwYWdlc19yZW1vdmVkLAorICBzdGF0cy52bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHZt X25ld19mcm96ZW5fcGFnZXMsCisgIHN0YXRzLnZtX25ld192aXNpYmxlX3BhZ2VzIEFTIHZt X25ld192aXNpYmxlX3BhZ2VzLAorICBzdGF0cy52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgQVMgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLAorICBzdGF0cy5taXNzZWRfZGVh ZF9wYWdlcyBBUyBtaXNzZWRfZGVhZF9wYWdlcywKKyAgc3RhdHMudHVwbGVzX2RlbGV0ZWQg QVMgdHVwbGVzX2RlbGV0ZWQsCisgIHN0YXRzLnR1cGxlc19mcm96ZW4gQVMgdHVwbGVzX2Zy b3plbiwKKyAgc3RhdHMucmVjZW50bHlfZGVhZF90dXBsZXMgQVMgcmVjZW50bHlfZGVhZF90 dXBsZXMsCisgIHN0YXRzLm1pc3NlZF9kZWFkX3R1cGxlcyBBUyBtaXNzZWRfZGVhZF90dXBs ZXMsCisKKyAgc3RhdHMud3JhcGFyb3VuZF9mYWlsc2FmZSBBUyB3cmFwYXJvdW5kX2ZhaWxz YWZlLAorICBzdGF0cy5pbmRleF92YWN1dW1fY291bnQgQVMgaW5kZXhfdmFjdXVtX2NvdW50 LAorICBzdGF0cy53YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKKyAgc3RhdHMud2FsX2Zw aSBBUyB3YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgIHN0 YXRzLmJsa19yZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dyaXRl X3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSBBUyBkZWxh eV90aW1lLAorICBzdGF0cy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUKKworRlJPTSBwZ19j bGFzcyByZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVsLnJlbG5h bWVzcGFjZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKHJlbC5vaWQp IHN0YXRzCitXSEVSRSByZWwucmVsa2luZCA9ICdyJzsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMK aW5kZXggMzNhMzNiZjZiMWMuLmZmYjdlMWVlZjRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0u YwpAQCAtMTE1LDYgKzExNSw5IEBAIHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJlZENv c3RCYWxhbmNlID0gTlVMTDsKIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3Jr ZXJzID0gTlVMTDsKIGludAkJCVZhY3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOwogCisvKiBD dW11bGF0aXZlIHN0b3JhZ2UgdG8gcmVwb3J0IHRvdGFsIHZhY3V1bSBkZWxheSB0aW1lLiAq LworZG91YmxlIFZhY3V1bURlbGF5VGltZSA9IDA7IC8qIG1zZWMuICovCisKIC8qIG5vbi1l eHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIExpc3QgKmV4cGFuZF92YWN1 dW1fcmVsKFZhY3V1bVJlbGF0aW9uICp2cmVsLAogCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQg dmFjX2NvbnRleHQsIGludCBvcHRpb25zKTsKQEAgLTI1MTQsNiArMjUxNyw3IEBAIHZhY3V1 bV9kZWxheV9wb2ludChib29sIGlzX2FuYWx5emUpCiAJCQlleGl0KDEpOwogCiAJCVZhY3V1 bUNvc3RCYWxhbmNlID0gMDsKKwkJVmFjdXVtRGVsYXlUaW1lICs9IG1zZWM7CiAKIAkJLyoK IAkJICogQmFsYW5jZSBhbmQgdXBkYXRlIGxpbWl0IHZhbHVlcyBmb3IgYXV0b3ZhY3V1bSB3 b3JrZXJzLiBXZSBtdXN0IGRvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwu YwppbmRleCAwZmVlYTFkMzBlYy4uMmI1NWQ5YjdjMGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtMTA1NCw2ICsxMDU0LDcgQEAgcGFyYWxsZWxfdmFj dXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFNldCBjb3N0 LWJhc2VkIHZhY3V1bSBkZWxheSAqLwogCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAJVmFjdXVt Q29zdEJhbGFuY2UgPSAwOworCVZhY3V1bURlbGF5VGltZSA9IDA7CiAJVmFjdXVtQ29zdEJh bGFuY2VMb2NhbCA9IDA7CiAJVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2UgPSAmKHNoYXJlZC0+ Y29zdF9iYWxhbmNlKTsKIAlWYWN1dW1BY3RpdmVOV29ya2VycyA9ICYoc2hhcmVkLT5hY3Rp dmVfbndvcmtlcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCA4 YjU3ODQ1ZTg3MC4uMjNjYjYyZTM2YTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdC5jCkBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIHZvaWQgcGdzdGF0X3Jlc2V0X2Fm dGVyX2ZhaWx1cmUodm9pZCk7CiBzdGF0aWMgYm9vbCBwZ3N0YXRfZmx1c2hfcGVuZGluZ19l bnRyaWVzKGJvb2wgbm93YWl0KTsKIAogc3RhdGljIHZvaWQgcGdzdGF0X3ByZXBfc25hcHNo b3Qodm9pZCk7Ci1zdGF0aWMgdm9pZCBwZ3N0YXRfYnVpbGRfc25hcHNob3Qodm9pZCk7Citz dGF0aWMgdm9pZCBwZ3N0YXRfYnVpbGRfc25hcHNob3QoUGdTdGF0X0tpbmQgc3RhdEtpbmQp Owogc3RhdGljIHZvaWQgcGdzdGF0X2J1aWxkX3NuYXBzaG90X2ZpeGVkKFBnU3RhdF9LaW5k IGtpbmQpOwogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGdzdGF0X2lzX2tpbmRfdmFsaWQoUGdT dGF0X0tpbmQga2luZCk7CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGlubGluZSBib29s IHBnc3RhdF9pc19raW5kX3ZhbGlkKFBnU3RhdF9LaW5kIGtpbmQpOwogCiBib29sCQlwZ3N0 YXRfdHJhY2tfY291bnRzID0gZmFsc2U7CiBpbnQJCQlwZ3N0YXRfZmV0Y2hfY29uc2lzdGVu Y3kgPSBQR1NUQVRfRkVUQ0hfQ09OU0lTVEVOQ1lfQ0FDSEU7Ci0KK2Jvb2wJCXBnc3RhdF90 cmFja192YWN1dW1fc3RhdGlzdGljcyA9IHRydWU7CiAKIC8qIC0tLS0tLS0tLS0KICAqIHN0 YXRlIHNoYXJlZCB3aXRoIHBnc3RhdF8qLmMKQEAgLTI2MCw3ICsyNjAsNiBAQCBzdGF0aWMg Ym9vbCBwZ3N0YXRfaXNfaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHBnc3Rh dF9pc19zaHV0ZG93biA9IGZhbHNlOwogI2VuZGlmCiAKLQogLyoKICAqIFRoZSBkaWZmZXJl bnQga2luZHMgb2YgYnVpbHQtaW4gc3RhdGlzdGljcy4KICAqCkBAIC04OTcsNyArODk2LDYg QEAgcGdzdGF0X3Jlc2V0X29mX2tpbmQoUGdTdGF0X0tpbmQga2luZCkKIAkJcGdzdGF0X3Jl c2V0X2VudHJpZXNfb2Zfa2luZChraW5kLCB0cyk7CiB9CiAKLQogLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBG ZXRjaGluZyBvZiBzdGF0cwogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05NjYsNyArOTY0LDcgQEAgcGdzdGF0 X2ZldGNoX2VudHJ5KFBnU3RhdF9LaW5kIGtpbmQsIE9pZCBkYm9pZCwgdWludDY0IG9iamlk KQogCiAJLyogaWYgd2UgbmVlZCB0byBidWlsZCBhIGZ1bGwgc25hcHNob3QsIGRvIHNvICov CiAJaWYgKHBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSA9PSBQR1NUQVRfRkVUQ0hfQ09OU0lT VEVOQ1lfU05BUFNIT1QpCi0JCXBnc3RhdF9idWlsZF9zbmFwc2hvdCgpOworCQlwZ3N0YXRf YnVpbGRfc25hcHNob3QoUEdTVEFUX0tJTkRfSU5WQUxJRCk7CiAKIAkvKiBpZiBjYWNoaW5n IGlzIGRlc2lyZWQsIGxvb2sgdXAgaW4gY2FjaGUgKi8KIAlpZiAocGdzdGF0X2ZldGNoX2Nv bnNpc3RlbmN5ID4gUEdTVEFUX0ZFVENIX0NPTlNJU1RFTkNZX05PTkUpCkBAIC0xMDgyLDcg KzEwODAsNyBAQCBwZ3N0YXRfc25hcHNob3RfZml4ZWQoUGdTdGF0X0tpbmQga2luZCkKIAkJ cGdzdGF0X2NsZWFyX3NuYXBzaG90KCk7CiAKIAlpZiAocGdzdGF0X2ZldGNoX2NvbnNpc3Rl bmN5ID09IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9TTkFQU0hPVCkKLQkJcGdzdGF0X2J1 aWxkX3NuYXBzaG90KCk7CisJCXBnc3RhdF9idWlsZF9zbmFwc2hvdChQR1NUQVRfS0lORF9J TlZBTElEKTsKIAllbHNlCiAJCXBnc3RhdF9idWlsZF9zbmFwc2hvdF9maXhlZChraW5kKTsK IApAQCAtMTEzMyw3ICsxMTMxLDcgQEAgcGdzdGF0X3ByZXBfc25hcHNob3Qodm9pZCkKIH0K IAogc3RhdGljIHZvaWQKLXBnc3RhdF9idWlsZF9zbmFwc2hvdCh2b2lkKQorcGdzdGF0X2J1 aWxkX3NuYXBzaG90KFBnU3RhdF9LaW5kIHN0YXRLaW5kKQogewogCWRzaGFzaF9zZXFfc3Rh dHVzIGhzdGF0OwogCVBnU3RhdFNoYXJlZF9IYXNoRW50cnkgKnA7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IDI4NTg3ZTI5MTZi Li5lZTAzODVjZDgwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0X3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X3JlbGF0aW9uLmMKQEAgLTQ3LDYgKzQ3LDggQEAgc3RhdGljIHZvaWQgYWRkX3RhYnN0 YXRfeGFjdF9sZXZlbChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvLCBpbnQgbmVz dF9sZXYKIHN0YXRpYyB2b2lkIGVuc3VyZV90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1Rh YmxlU3RhdHVzICpwZ3N0YXRfaW5mbyk7CiBzdGF0aWMgdm9pZCBzYXZlX3RydW5jZHJvcF9j b3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucywgYm9vbCBpc19kcm9wKTsK IHN0YXRpYyB2b2lkIHJlc3RvcmVfdHJ1bmNkcm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhh Y3RTdGF0dXMgKnRyYW5zKTsKK3N0YXRpYyB2b2lkIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZh Y19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCisJCQkJCQkJ ICAgYm9vbCBhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbyk7CiAKIAogLyoKQEAg LTIwOSw3ICsyMTEsNyBAQCBwZ3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCiB2 b2lkCiBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAog CQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1 cGxlcywKLQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSkKKwkJCQkJIFRpbWVzdGFtcFR6 IHN0YXJ0dGltZSwgRXh0VmFjUmVwb3J0ICpwYXJhbXMpCiB7CiAJUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWY7CiAJUGdTdGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5OwpAQCAt MjM1LDYgKzIzNyw4IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9v bCBzaGFyZWQsCiAJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gbGl2ZXR1cGxlczsKIAl0YWJl bnRyeS0+ZGVhZF90dXBsZXMgPSBkZWFkdHVwbGVzOwogCisJcGdzdGF0X2FjY3VtdWxhdGVf ZXh0dmFjX3N0YXRzKCZ0YWJlbnRyeS0+dmFjdXVtX2V4dCwgcGFyYW1zLCB0cnVlKTsKKwog CS8qCiAJICogSXQgaXMgcXVpdGUgcG9zc2libGUgdGhhdCBhIG5vbi1hZ2dyZXNzaXZlIFZB Q1VVTSBlbmRlZCB1cCBza2lwcGluZwogCSAqIHZhcmlvdXMgcGFnZXMsIGhvd2V2ZXIsIHdl J2xsIHplcm8gdGhlIGluc2VydCBjb3VudGVyIGhlcmUgcmVnYXJkbGVzcy4KQEAgLTg4MSw2 ICs4ODUsOSBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICpl bnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCXRhYmVudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBs c3RhdHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKIAl0YWJlbnRyeS0+YmxvY2tzX2hpdCAr PSBsc3RhdHMtPmNvdW50cy5ibG9ja3NfaGl0OwogCisJdGFiZW50cnktPnJldl9hbGxfZnJv emVuX3BhZ2VzICs9IGxzdGF0cy0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzOworCXRh YmVudHJ5LT5yZXZfYWxsX3Zpc2libGVfcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMucmV2X2Fs bF92aXNpYmxlX3BhZ2VzOworCiAJLyogQ2xhbXAgbGl2ZV90dXBsZXMgaW4gY2FzZSBvZiBu ZWdhdGl2ZSBkZWx0YV9saXZlX3R1cGxlcyAqLwogCXRhYmVudHJ5LT5saXZlX3R1cGxlcyA9 IE1heCh0YWJlbnRyeS0+bGl2ZV90dXBsZXMsIDApOwogCS8qIExpa2V3aXNlIGZvciBkZWFk X3R1cGxlcyAqLwpAQCAtMTAwNCwzICsxMDExLDQwIEBAIHJlc3RvcmVfdHJ1bmNkcm9wX2Nv dW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKQogCQl0cmFucy0+dHVwbGVz X2RlbGV0ZWQgPSB0cmFucy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0KIH0KKworc3Rh dGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQg KmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCisJCQkJCQkJICAgYm9vbCBhY2N1bXVsYXRlX3Jl bHR5cGVfc3BlY2lmaWNfaW5mbykKK3sKKwlkc3QtPnRvdGFsX2Jsa3NfcmVhZCArPSBzcmMt PnRvdGFsX2Jsa3NfcmVhZDsKKwlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9IHNyYy0+dG90YWxf Ymxrc19oaXQ7CisJZHN0LT50b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3JjLT50b3RhbF9ibGtz X2RpcnRpZWQ7CisJZHN0LT50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gc3JjLT50b3RhbF9ibGtz X3dyaXR0ZW47CisJZHN0LT53YWxfYnl0ZXMgKz0gc3JjLT53YWxfYnl0ZXM7CisJZHN0LT53 YWxfZnBpICs9IHNyYy0+d2FsX2ZwaTsKKwlkc3QtPndhbF9yZWNvcmRzICs9IHNyYy0+d2Fs X3JlY29yZHM7CisJZHN0LT5ibGtfcmVhZF90aW1lICs9IHNyYy0+YmxrX3JlYWRfdGltZTsK Kwlkc3QtPmJsa193cml0ZV90aW1lICs9IHNyYy0+YmxrX3dyaXRlX3RpbWU7CisJZHN0LT5k ZWxheV90aW1lICs9IHNyYy0+ZGVsYXlfdGltZTsKKwlkc3QtPnRvdGFsX3RpbWUgKz0gc3Jj LT50b3RhbF90aW1lOworCisJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5m bykKKwkJcmV0dXJuOworCisJZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2ZldGNo ZWQ7CisJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OworCisJZHN0LT5wYWdlc19z Y2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKKwlkc3QtPnBhZ2VzX3JlbW92ZWQgKz0g c3JjLT5wYWdlc19yZW1vdmVkOworCWRzdC0+dm1fbmV3X2Zyb3plbl9wYWdlcyArPSBzcmMt PnZtX25ld19mcm96ZW5fcGFnZXM7CisJZHN0LT52bV9uZXdfdmlzaWJsZV9wYWdlcyArPSBz cmMtPnZtX25ld192aXNpYmxlX3BhZ2VzOworCWRzdC0+dm1fbmV3X3Zpc2libGVfZnJvemVu X3BhZ2VzICs9IHNyYy0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOworCWRzdC0+dHVw bGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwlkc3QtPnR1cGxlc19mcm96 ZW4gKz0gc3JjLT50dXBsZXNfZnJvemVuOworCWRzdC0+cmVjZW50bHlfZGVhZF90dXBsZXMg Kz0gc3JjLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKKwlkc3QtPmluZGV4X3ZhY3V1bV9jb3Vu dCArPSBzcmMtPmluZGV4X3ZhY3V1bV9jb3VudDsKKwlkc3QtPndyYXBhcm91bmRfZmFpbHNh ZmVfY291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OworCWRzdC0+bWlz c2VkX2RlYWRfcGFnZXMgKz0gc3JjLT5taXNzZWRfZGVhZF9wYWdlczsKKwlkc3QtPm1pc3Nl ZF9kZWFkX3R1cGxlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3R1cGxlczsKKworfQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK aW5kZXggZTk4MDEwOWYyNDUuLmE1NjEwMTk5ODkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdzdGF0ZnVuY3MuYwpAQCAtMTA2LDYgKzEwNiwxMiBAQCBQR19TVEFUX0dFVF9SRUxFTlRS WV9JTlQ2NCh0dXBsZXNfdXBkYXRlZCkKIC8qIHBnX3N0YXRfZ2V0X3ZhY3V1bV9jb3VudCAq LwogUEdfU1RBVF9HRVRfUkVMRU5UUllfSU5UNjQodmFjdXVtX2NvdW50KQogCisvKiBwZ19z dGF0X2dldF9yZXZfZnJvemVuX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2 NChyZXZfYWxsX2Zyb3plbl9wYWdlcykKKworLyogcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNp YmxlX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2NChyZXZfYWxsX3Zpc2li bGVfcGFnZXMpCisKICNkZWZpbmUgUEdfU1RBVF9HRVRfUkVMRU5UUllfRkxPQVQ4KHN0YXQp CQkJCQkJXAogRGF0dW0JCQkJCQkJCQkJCQkJCQlcCiBDcHBDb25jYXQocGdfc3RhdF9nZXRf LHN0YXQpKFBHX0ZVTkNUSU9OX0FSR1MpCQkJCQlcCkBAIC0yMjU4LDMgKzIyNjQsMTQ0IEBA IHBnX3N0YXRfaGF2ZV9zdGF0cyhQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVUVVJOX0JP T0wocGdzdGF0X2hhdmVfZW50cnkoa2luZCwgZGJvaWQsIG9iamlkKSk7CiB9CisKKworLyoK KyAqIEdldCB0aGUgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBoZWFwIHRhYmxlcy4KKyAq LworRGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwkjZGVmaW5lIFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyAyNgor CisJT2lkCQkJCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOworCVBnU3RhdF9TdGF0VGFi RW50cnkgICAgICp0YWJlbnRyeTsKKwlFeHRWYWNSZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlU dXBsZURlc2MJCQkJIHR1cGRlc2M7CisJRGF0dW0JCQkJCSB2YWx1ZXNbUEdfU1RBVF9HRVRf VkFDVVVNX1RBQkxFU19TVEFUU19DT0xTXSA9IHswfTsKKwlib29sCQkJCQkgbnVsbHNbUEdf U1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQkJCQkg YnVmWzI1Nl07CisJaW50CQkJCQkJIGkgPSAwOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOwor CisJLyogSW5pdGlhbGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBk ZXNjcmlwdG9yICovCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NU QVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CisKKwlUdXBsZURlc2NJbml0RW50 cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJlbGlkIiwKKwkJCQkJICAgSU5UNE9J RCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAidG90YWxfYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxr c19oaXQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2RpcnRpZWQiLAorCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX3dyaXR0ZW4iLAorCQkJCQkgICBJTlQ4T0lE LCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAr K2ksICJyZWxfYmxrc19yZWFkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAicmVsX2Jsa3NfaGl0 IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAicGFnZXNfc2Nhbm5lZCIsCisJCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInBhZ2VzX3JlbW92ZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ2bV9uZXdfZnJv emVuX3BhZ2VzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidm1fbmV3X3Zpc2libGVfcGFnZXMi LAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJ2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMiLAor CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSArK2ksICJtaXNzZWRfZGVhZF9wYWdlcyIsCisJCQkJCSAgIElOVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInR1cGxlc19kZWxldGVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidHVwbGVzX2Zy b3plbiIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJlY2VudGx5X2RlYWRfdHVwbGVzIiwKKwkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAibWlzc2VkX2RlYWRfdHVwbGVzIiwKKwkJCQkJICAgSU5UOE9J RCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAid3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCIsCisJCQkJCSAgIElOVDRPSUQsIC0x LCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg ImluZGV4X3ZhY3V1bV9jb3VudCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9yZWNvcmRz IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2ZwaSIsCisJCQkJCSAgIElOVDhPSUQsIC0x LCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg IndhbF9ieXRlcyIsCisJCQkJCSAgIE5VTUVSSUNPSUQsIC0xLCAwKTsKKworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3JlYWRfdGltZSIs CisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3dyaXRlX3RpbWUiLAorCQkJCQkgICBGTE9B VDhPSUQsIC0xLCAwKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51 bWJlcikgKytpLCAiZGVsYXlfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOwor CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxf dGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCisJQXNzZXJ0KGkgPT0gUEdf U1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTKTsKKworCUJsZXNzVHVwbGVEZXNj KHR1cGRlc2MpOworCisJdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShy ZWxpZCk7CisKKwlpZiAodGFiZW50cnkgPT0gTlVMTCkKKwl7CisJCS8qIElmIHRoZSBzdWJz Y3JpcHRpb24gaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0cyAqLworCQltZW1z ZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJZXh0dmFjdXVtID0g JmFsbHplcm87CisJfQorCWVsc2UKKwl7CisJCWV4dHZhY3V1bSA9ICYodGFiZW50cnktPnZh Y3V1bV9leHQpOworCX0KKworCWkgPSAwOworCisJdmFsdWVzW2krK10gPSBPYmplY3RJZEdl dERhdHVtKHJlbGlkKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+dG90YWxfYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tp KytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJ CQlleHR2YWN1dW0tPmJsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT5wYWdlc19zY2FubmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT5wYWdlc19yZW1vdmVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZXh0dmFjdXVtLT52bV9uZXdfZnJvemVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT52bV9uZXdfdmlzaWJsZV9wYWdlcyk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5t aXNzZWRfZGVhZF9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZh Y3V1bS0+dHVwbGVzX2RlbGV0ZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnR1cGxlc19mcm96ZW4pOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bShleHR2YWN1dW0tPnJlY2VudGx5X2RlYWRfdHVwbGVzKTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5taXNzZWRfZGVhZF90dXBsZXMpOworCXZhbHVlc1tp KytdID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPndyYXBhcm91bmRfZmFpbHNhZmVfY291 bnQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmluZGV4X3Zh Y3V1bV9jb3VudCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+d2FsX2ZwaSk7CisKKwkvKiBDb252ZXJ0IHRvIG51bWVyaWMsIGxpa2UgcGdfc3RhdF9z dGF0ZW1lbnRzICovCisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFU LCBleHR2YWN1dW0tPndhbF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RGdW5jdGlv bkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShidWYpLAor CQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQzMkdldERh dHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ YmxrX3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1 dW0tPmJsa193cml0ZV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4 dHZhY3V1bS0+ZGVsYXlfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShl eHR2YWN1dW0tPnRvdGFsX3RpbWUpOworCisJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFD VVVNX1RBQkxFU19TVEFUU19DT0xTKTsKKworCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBE YXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1f dHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMg Yi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKaW5kZXggNDdhZjc0Mzk5MGYuLjhj OWU4ZmIxOGUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC0xNjI0LDYgKzE2MjQs MTkgQEAgZ2V0aW50ZXJuYWxlcnJwb3NpdGlvbih2b2lkKQogCXJldHVybiBlZGF0YS0+aW50 ZXJuYWxwb3M7CiB9CiAKKy8qCisgKiBSZXR1cm4gZWxldmVsIG9mIGVycm9ycworICovCitp bnQKK2dldGVycmVsZXZlbCh2b2lkKQoreworCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9y ZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOworCisJLyogd2UgZG9uJ3QgYm90aGVyIGlu Y3JlbWVudGluZyByZWN1cnNpb25fZGVwdGggKi8KKwlDSEVDS19TVEFDS19ERVBUSCgpOwor CisJcmV0dXJuIGVkYXRhLT5lbGV2ZWw7Cit9CiAKIC8qCiAgKiBGdW5jdGlvbnMgdG8gYWxs b3cgY29uc3RydWN0aW9uIG9mIGVycm9yIG1lc3NhZ2Ugc3RyaW5ncyBzZXBhcmF0ZWx5IGZy b20KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMmY4Y2JkODY3NTku LjExNWYwYzUxY2MyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAt MTUwOCw2ICsxNTA4LDE1IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jv b2xbXSA9CiAJCWZhbHNlLAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsidHJh Y2tfdmFjdXVtX3N0YXRpc3RpY3MiLCBQR0NfU1VTRVQsIFNUQVRTX0NVTVVMQVRJVkUsCisJ CQlnZXR0ZXh0X25vb3AoIkNvbGxlY3RzIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0YWJsZSBy ZWxhdGlvbnMuIiksCisJCQlOVUxMCisJCX0sCisJCSZwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0 YXRpc3RpY3MsCisJCXRydWUsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAogCXsKIAkJeyJ0 cmFja193YWxfaW9fdGltaW5nIiwgUEdDX1NVU0VULCBTVEFUU19DVU1VTEFUSVZFLAogCQkJ Z2V0dGV4dF9ub29wKCJDb2xsZWN0cyB0aW1pbmcgc3RhdGlzdGljcyBmb3IgV0FMIEkvTyBh Y3Rpdml0eS4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZQppbmRleCA4N2NlNzZiMThmNC4uZTk3MWIzOTAyODEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTY2MSw2 ICs2NjEsNyBAQAogI3RyYWNrX3dhbF9pb190aW1pbmcgPSBvZmYKICN0cmFja19mdW5jdGlv bnMgPSBub25lCQkJIyBub25lLCBwbCwgYWxsCiAjc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kg PSBjYWNoZQkjIGNhY2hlLCBub25lLCBzbmFwc2hvdAorI3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzID0gb2ZmCiAKIAogIyAtIE1vbml0b3JpbmcgLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKaW5kZXggMzdhNDg0MTQ3YTguLmMwNGQzODgwMjQxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTEyNTU2LDQgKzEyNTU2LDIyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7 cGlkLGlvX2lkLGlvX2dlbmVyYXRpb24sc3RhdGUsb3BlcmF0aW9uLG9mZixsZW5ndGgsdGFy Z2V0LGhhbmRsZV9kYXRhX2xlbixyYXdfcmVzdWx0LHJlc3VsdCx0YXJnZXRfZGVzYyxmX3N5 bmMsZl9sb2NhbG1lbSxmX2J1ZmZlcmVkfScsCiAgIHByb3NyYyA9PiAncGdfZ2V0X2Fpb3Mn IH0sCiAKK3sgb2lkID0+ICc4MDAxJywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1 bV90YWJsZXMgcmV0dXJucyB2YWN1dW0gc3RhdHMgdmFsdWVzIGZvciB0YWJsZScsCisgIHBy b25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMnLCBwcm9yb3dzID0+IDEwMDAs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmlj dCA9PiAnZicsCisgIHByb3JldHNldCA9PiAndCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQn LAorICBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgs aW50OCxpbnQ0LGludDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgs ZmxvYXQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3ty ZWxvaWQscmVsaWQsdG90YWxfYmxrc19yZWFkLHRvdGFsX2Jsa3NfaGl0LHRvdGFsX2Jsa3Nf ZGlydGllZCx0b3RhbF9ibGtzX3dyaXR0ZW4scmVsX2Jsa3NfcmVhZCxyZWxfYmxrc19oaXQs cGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkLHZtX25ld19mcm96ZW5fcGFnZXMsdm1fbmV3 X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLG1pc3NlZF9kZWFk X3BhZ2VzLHR1cGxlc19kZWxldGVkLHR1cGxlc19mcm96ZW4scmVjZW50bHlfZGVhZF90dXBs ZXMsbWlzc2VkX2RlYWRfdHVwbGVzLHdyYXBhcm91bmRfZmFpbHNhZmUsaW5kZXhfdmFjdXVt X2NvdW50LHdhbF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxr X3dyaXRlX3RpbWUsZGVsYXlfdGltZSx0b3RhbF90aW1lfScsCisgIHByb3NyYyA9PiAncGdf c3RhdF9nZXRfdmFjdXVtX3RhYmxlcycgfSwKKworICB7IG9pZCA9PiAnODAwMicsIGRlc2Ny ID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdGltZXMgdGhlIGFsbC12aXNpYmxlIHBhZ2Vz IGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3IgcGFnZXMgb2YgdGFibGUn LAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMnLCBw cm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9 PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X3Jldl9hbGxfdmlzaWJsZV9wYWdlcycgfSwKKyAgeyBvaWQgPT4gJzgwMDMnLCBkZXNj ciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwtZnJvemVuIHBhZ2Vz IGluIHRoZSB2aXNpYmlsaXR5IG1hcCB3YXMgcmVtb3ZlZCBmb3IgcGFnZXMgb2YgdGFibGUn LAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycsIHBy b3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMnIH0sCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmlu ZGV4IGJjMzdhODBkYzc0Li42ZDFiMjk5MWNlNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgK QEAgLTMyNyw2ICszMjcsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgZG91YmxlIHZhY3V1bV9t YXhfZWFnZXJfZnJlZXplX2ZhaWx1cmVfcmF0ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ19h dG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZTsKIGV4dGVybiBQR0RMTElN UE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29ya2VyczsKIGV4dGVybiBQ R0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdEJhbGFuY2VMb2NhbDsKK2V4dGVybiBQR0RMTElN UE9SVCBkb3VibGUgVmFjdXVtRGVsYXlUaW1lOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9v bCBWYWN1dW1GYWlsc2FmZUFjdGl2ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBkb3VibGUgdmFj dXVtX2Nvc3RfZGVsYXk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3Ny Yy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IDM3OGYyZjJjMmJhLi42Yzg4ZDU3YWVmNyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0 LmgKQEAgLTExMSw2ICsxMTEsNTMgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0JhY2tlbmRT dWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2NvdW50W0NPTkZMSUNUX05VTV9U WVBFU107CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50cnk7CiAKKy8qIC0tLS0tLS0tLS0KKyAq CisgKiBFeHRWYWNSZXBvcnQKKyAqCisgKiBBZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb2YgdmFj dXVtIHByb2Nlc3Npbmcgb3ZlciBhIGhlYXAgcmVsYXRpb24uCisgKiBwYWdlc19yZW1vdmVk IGlzIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2FsbHkgc2hyYW5rLAorICogaWYg YW55IChpZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXplIG9uIGRpc2spCisgKiBwYWdl c19kZWxldGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGluIHRoZSBpbmRleCBmaWxlCisg KiAtLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAoreworCS8q IG51bWJlciBvZiBibG9ja3MgbWlzc2VkLCBoaXQsIGRpcnRpZWQgYW5kIHdyaXR0ZW4gZHVy aW5nIGEgdmFjdXVtIG9mIHNwZWNpZmljIHJlbGF0aW9uICovCisJaW50NjQJCXRvdGFsX2Js a3NfcmVhZDsKKwlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7CisJaW50NjQJCXRvdGFsX2Jsa3Nf ZGlydGllZDsKKwlpbnQ2NAkJdG90YWxfYmxrc193cml0dGVuOworCisJLyogYmxvY2tzIG1p c3NlZCBhbmQgaGl0IGZvciBqdXN0IHRoZSBoZWFwIGR1cmluZyBhIHZhY3V1bSBvZiBzcGVj aWZpYyByZWxhdGlvbiAqLworCWludDY0CQlibGtzX2ZldGNoZWQ7CisJaW50NjQJCWJsa3Nf aGl0OworCisJLyogVmFjdXVtIFdBTCB1c2FnZSBzdGF0cyAqLworCWludDY0CQl3YWxfcmVj b3JkczsJLyogd2FsIHVzYWdlOiBudW1iZXIgb2YgV0FMIHJlY29yZHMgKi8KKwlpbnQ2NAkJ d2FsX2ZwaTsJCS8qIHdhbCB1c2FnZTogbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2Vz IHByb2R1Y2VkICovCisJdWludDY0CQl3YWxfYnl0ZXM7CQkvKiB3YWwgdXNhZ2U6IHNpemUg b2YgV0FMIHJlY29yZHMgcHJvZHVjZWQgKi8KKworCS8qIFRpbWUgc3RhdHMuICovCisJZG91 YmxlCQlibGtfcmVhZF90aW1lOwkvKiB0aW1lIHNwZW50IHJlYWRpbmcgcGFnZXMsIGluIG1z ZWMgKi8KKwlkb3VibGUJCWJsa193cml0ZV90aW1lOyAvKiB0aW1lIHNwZW50IHdyaXRpbmcg cGFnZXMsIGluIG1zZWMgKi8KKwlkb3VibGUJCWRlbGF5X3RpbWU7CQkvKiBob3cgbG9uZyB2 YWN1dW0gc2xlcHQgaW4gdmFjdXVtIGRlbGF5IHBvaW50LCBpbiBtc2VjICovCisJZG91Ymxl CQl0b3RhbF90aW1lOwkJLyogdG90YWwgdGltZSBvZiBhIHZhY3V1bSBvcGVyYXRpb24sIGlu IG1zZWMgKi8KKworCWludDY0CQlwYWdlc19zY2FubmVkOwkJLyogaGVhcCBwYWdlcyBleGFt aW5lZCAobm90IHNraXBwZWQgYnkgVk0pICovCisJaW50NjQJCXBhZ2VzX3JlbW92ZWQ7CQkv KiBoZWFwIHBhZ2VzIHJlbW92ZWQgYnkgdmFjdXVtICJ0cnVuY2F0aW9uIiAqLworCWludDY0 CQl2bV9uZXdfZnJvemVuX3BhZ2VzOwkJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGZyb3pl biAqLworCWludDY0CQl2bV9uZXdfdmlzaWJsZV9wYWdlczsJLyogcGFnZXMgbWFya2VkIGlu IFZNIGFzIGFsbC12aXNpYmxlICovCisJaW50NjQJCXZtX25ld192aXNpYmxlX2Zyb3plbl9w YWdlczsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlIGFuZCBmcm96ZW4g Ki8KKwlpbnQ2NAkJbWlzc2VkX2RlYWRfdHVwbGVzOwkJLyogdHVwbGVzIG5vdCBwcnVuZWQg YnkgdmFjdXVtIGR1ZSB0byBmYWlsdXJlIHRvIGdldCBhIGNsZWFudXAgbG9jayAqLworCWlu dDY0CQltaXNzZWRfZGVhZF9wYWdlczsJCS8qIHBhZ2VzIHdpdGggbWlzc2VkIGRlYWQgdHVw bGVzICovCisJaW50NjQJCXR1cGxlc19kZWxldGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkg dmFjdXVtICovCisJaW50NjQJCXR1cGxlc19mcm96ZW47CQkvKiB0dXBsZXMgZnJvemVuIHVw IGJ5IHZhY3V1bSAqLworCWludDY0CQlyZWNlbnRseV9kZWFkX3R1cGxlczsJLyogZGVsZXRl ZCB0dXBsZXMgdGhhdCBhcmUgc3RpbGwgdmlzaWJsZSB0byBzb21lIHRyYW5zYWN0aW9uICov CisJaW50NjQJCWluZGV4X3ZhY3V1bV9jb3VudDsJLyogdGhlIG51bWJlciBvZiBpbmRleCB2 YWN1dW1pbmdzICovCisJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CS8qIG51 bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0byBwcmV2ZW50IGFudGktd3JhcGFyb3VuZCBz aHV0ZG93biAqLworfSBFeHRWYWNSZXBvcnQ7CisKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3Rh dF9UYWJsZUNvdW50cwkJCVRoZSBhY3R1YWwgcGVyLXRhYmxlIGNvdW50cyBrZXB0IGJ5IGEg YmFja2VuZAogICoKQEAgLTE1Myw2ICsyMDAsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0 X1RhYmxlQ291bnRzCiAKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQZ1N0 YXRfQ291bnRlciBibG9ja3NfaGl0OworCisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNp YmxlX3BhZ2VzOworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOworCisJ LyoKKwkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3BlcmF0aW9u cy4KKwkgKiBVc2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFjdGlvbiBm b3IgZGlmZmVyZW50IHR5cGVzIG9mCisJICogcmVsYXRpb25zLgorCSAqLworCUV4dFZhY1Jl cG9ydAl2YWN1dW1fZXh0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0tLS0tLS0t LS0KQEAgLTIxMSw3ICsyNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVYYWN0 U3RhdHVzCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0jZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9J RAkweDAxQTVCQ0I3CisjZGVmaW5lIFBHU1RBVF9GSUxFX0ZPUk1BVF9JRAkweDAxQTVCQ0I4 CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9BcmNoaXZlclN0YXRzCiB7CkBAIC0zNzUsNiAr NDMyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0Nv dW50ZXIgcGFyYWxsZWxfd29ya2Vyc19sYXVuY2hlZDsKIAogCVRpbWVzdGFtcFR6IHN0YXRf cmVzZXRfdGltZXN0YW1wOworCisJRXh0VmFjUmVwb3J0IHZhY3V1bV9leHQ7CQkvKiBleHRl bmRlZCB2YWN1dW0gc3RhdGlzdGljcyAqLwogfSBQZ1N0YXRfU3RhdERCRW50cnk7CiAKIHR5 cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CkBAIC00NTMsNiArNTEyLDExIEBA IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0VGFiRW50cnkKIAlQZ1N0YXRfQ291bnRlciB0 b3RhbF9hdXRvdmFjdXVtX3RpbWU7CiAJUGdTdGF0X0NvdW50ZXIgdG90YWxfYW5hbHl6ZV90 aW1lOwogCVBnU3RhdF9Db3VudGVyIHRvdGFsX2F1dG9hbmFseXplX3RpbWU7CisKKwlQZ1N0 YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7CisJUGdTdGF0X0NvdW50ZXIgcmV2 X2FsbF9mcm96ZW5fcGFnZXM7CisKKwlFeHRWYWNSZXBvcnQgdmFjdXVtX2V4dDsKIH0gUGdT dGF0X1N0YXRUYWJFbnRyeTsKIAogLyogLS0tLS0tCkBAIC02NjAsNyArNzI0LDcgQEAgZXh0 ZXJuIHZvaWQgcGdzdGF0X3VubGlua19yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogCiBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVvaWQsIGJvb2wgc2hhcmVk LAogCQkJCQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIg ZGVhZHR1cGxlcywKLQkJCQkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSk7CisJCQkJCQkJ CSBUaW1lc3RhbXBUeiBzdGFydHRpbWUsIEV4dFZhY1JlcG9ydCAqcGFyYW1zKTsKIGV4dGVy biB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAg UGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywK IAkJCQkJCQkJICBib29sIHJlc2V0Y291bnRlciwgVGltZXN0YW1wVHogc3RhcnR0aW1lKTsK QEAgLTcxMSw2ICs3NzUsMTcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9hbmFseXpl KFJlbGF0aW9uIHJlbCwKIAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVs KSkJCQkJCQlcCiAJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfaGl0Kys7 CQkJCVwKIAl9IHdoaWxlICgwKQorLyogYWNjdW11bGF0ZSB1bmZyb3plbiBhbGwtdmlzaWJs ZSBhbmQgYWxsLWZyb3plbiBwYWdlcyAqLworI2RlZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2 X2FsbF92aXNpYmxlKHJlbCkJCQkJCQlcCisJZG8gewkJCQkJCQkJCQkJCQkJCVwKKwkJaWYg KHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCisJCQkocmVsKS0+ cGdzdGF0X2luZm8tPmNvdW50cy5yZXZfYWxsX3Zpc2libGVfcGFnZXMrKzsJXAorCX0gd2hp bGUgKDApCisjZGVmaW5lIHBnc3RhdF9jb3VudF92bV9yZXZfYWxsX2Zyb3plbihyZWwpCQkJ CQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50 X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMu cmV2X2FsbF9mcm96ZW5fcGFnZXMrKzsJXAorCX0gd2hpbGUgKDApCiAKIGV4dGVybiB2b2lk IHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxhdGlvbiByZWwsIFBnU3RhdF9Db3VudGVy IG4pOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hlYXBfdXBkYXRlKFJlbGF0aW9uIHJl bCwgYm9vbCBob3QsIGJvb2wgbmV3cGFnZSk7CkBAIC03OTksNiArODc0LDcgQEAgZXh0ZXJu IFBnU3RhdF9XYWxTdGF0cyAqcGdzdGF0X2ZldGNoX3N0YXRfd2FsKHZvaWQpOwogZXh0ZXJu IFBHRExMSU1QT1JUIGJvb2wgcGdzdGF0X3RyYWNrX2NvdW50czsKIGV4dGVybiBQR0RMTElN UE9SVCBpbnQgcGdzdGF0X3RyYWNrX2Z1bmN0aW9uczsKIGV4dGVybiBQR0RMTElNUE9SVCBp bnQgcGdzdGF0X2ZldGNoX2NvbnNpc3RlbmN5OworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wg cGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOwogCiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9lbG9nLmggYi9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmgKaW5k ZXggNWVhYzBlMTY5NzAuLjZhMzBhNGRiNDdkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9lbG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCkBAIC0yMzAsNiAr MjMwLDcgQEAgZXh0ZXJuIGludAlnZXRlcnJjb2RlKHZvaWQpOwogZXh0ZXJuIGludAlnZXRl cnJwb3NpdGlvbih2b2lkKTsKIGV4dGVybiBpbnQJZ2V0aW50ZXJuYWxlcnJwb3NpdGlvbih2 b2lkKTsKIAorZXh0ZXJuIGludAlnZXRlcnJlbGV2ZWwodm9pZCk7CiAKIC8qLS0tLS0tLS0t LQogICogT2xkLXN0eWxlIGVycm9yIHJlcG9ydGluZyBBUEk6IHRvIGJlIHVzZWQgaW4gdGhp cyB3YXk6CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVt LWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg3ZjdlNDBiNGE2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRp bmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBAIC0wLDAgKzEsNTMgQEAKK3VudXNlZCBzdGVw IG5hbWU6IHMyX2RlbGV0ZQorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDIgc2Vzc2lvbnMKKwor c3RhcnRpbmcgcGVybXV0YXRpb246IHMyX2luc2VydCBzMl9wcmludF92YWN1dW1fc3RhdHNf dGFibGUgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkIHMyX3VwZGF0ZSBzMl9pbnNlcnRfaW50 ZXJydXB0IHMyX3ZhY3V1bSBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUgczFfY29tbWl0 IHMyX2NoZWNrcG9pbnQgczJfdmFjdXVtIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQor c3RlcCBzMl9pbnNlcnQ6IElOU0VSVCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9u KGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwMDApIEFzIGl2YWw7CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisg ICAgU0VMRUNUCisgICAgdnQucmVsbmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2Vu dGx5X2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFk X3BhZ2VzLCB2dC50dXBsZXNfZnJvemVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAg ICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlz c2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Cit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAgICAg ICAgICAgICAgMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAg ICAgICAgMAorKDEgcm93KQorCitzdGVwIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZDogCisg IEJFR0lOIHRyYW5zYWN0aW9uIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7Cisg IHNlbGVjdCBjb3VudChpdmFsKSBmcm9tIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdo ZXJlIGlkPjkwMDsKKworY291bnQKKy0tLS0tCisgIDEwMAorKDEgcm93KQorCitzdGVwIHMy X3VwZGF0ZTogVVBEQVRFIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIFNFVCBpdmFsID0g aXZhbCArIDIgd2hlcmUgaWQgPiA5MDA7CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQ6IElO U0VSVCBJTlRPIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHZhbHVlcyAoMSwxKTsKK3N0 ZXAgczJfdmFjdXVtOiBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247CitzdGVw IHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVs bmFtZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5t aXNzZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJv emVuCisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAg ICBXSEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQg dnQucmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVz X2RlbGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3Nl ZF9kZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lz b2xhdGlvbnwgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgIDEwMHwgICAgICAgICAg ICAgICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgICAgMAorKDEgcm93KQorCitz dGVwIHMxX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMl9jaGVja3BvaW50OiBDSEVDS1BPSU5U Oworc3RlcCBzMl92YWN1dW06IFZBQ1VVTSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbjsK K3N0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOiAKKyAgICBTRUxFQ1QKKyAgICB2 dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQucmVjZW50bHlfZGVhZF90dXBsZXMs IHZ0Lm1pc3NlZF9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRfcGFnZXMsIHZ0LnR1cGxl c19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3Mg YworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24n IEFORCB2dC5yZWxpZCA9IGMub2lkOworCityZWxuYW1lICAgICAgICAgICAgICAgICAgIHx0 dXBsZXNfZGVsZXRlZHxyZWNlbnRseV9kZWFkX3R1cGxlc3xtaXNzZWRfZGVhZF90dXBsZXN8 bWlzc2VkX2RlYWRfcGFnZXN8dHVwbGVzX2Zyb3plbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KK3Rlc3RfdmFjdXVtX3N0 YXRfaXNvbGF0aW9ufCAgICAgICAgICAgMTAwfCAgICAgICAgICAgICAgICAgMTAwfCAgICAg ICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAgMHwgICAgICAgICAgMTAxCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUg Yi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IGUzYzY2OWEy OWM3Li42ZmFlZTNhZDJjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xh dGlvbl9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVk dWxlCkBAIC05Niw2ICs5Niw3IEBAIHRlc3Q6IHRpbWVvdXRzCiB0ZXN0OiB2YWN1dW0tY29u Y3VycmVudC1kcm9wCiB0ZXN0OiB2YWN1dW0tY29uZmxpY3QKIHRlc3Q6IHZhY3V1bS1za2lw LWxvY2tlZAordGVzdDogdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZAogdGVz dDogc3RhdHMKIHRlc3Q6IGhvcml6b25zCiB0ZXN0OiBwcmVkaWNhdGUtaGFzaApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVw ZXRhYmxlLXJlYWQuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0 ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjU4OTNkODk1NzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQu c3BlYwpAQCAtMCwwICsxLDUzIEBACisjIFRlc3QgZm9yIGNoZWNraW5nIHJlY2VudGx5X2Rl YWRfdHVwbGVzLCB0dXBsZXNfZGVsZXRlZCBhbmQgZnJvemVuIHR1cGxlcyBpbiBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMuCisjIHJlY2VudGx5X2RlYWRfdHVwbGVzIHZhbHVlcyBhcmUgY291 bnRlZCB3aGVuIHZhY3V1bSBoYXNuJ3QgY2xlYXJlZCB0dXBsZXMgYmVjYXVzZSB0aGV5IHdl cmUgZGVsZXRlZCByZWNlbnRseS4KKyMgcmVjZW50bHlfZGVhZF90dXBsZXMgYXJlbid0IGlu Y3JlYXNlZCBhZnRlciByZWxlYXNpbmcgbG9jayBjb21wYXJlZCB3aXRoIHR1cGxlc19kZWxl dGVkLCB3aGljaCBpbmNyZWFzZWQKKyMgYnkgdGhlIHZhbHVlIG9mIHRoZSBjbGVhcmVkIHR1 cGxlcyB0aGF0IHRoZSB2YWN1dW0gbWFuYWdlZCB0byBjbGVhci4KKworc2V0dXAKK3sKKyAg ICBDUkVBVEUgVEFCTEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQgaW50LCBpdmFs IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmKTsKKyAgICBTRVQgdHJhY2tf aW9fdGltaW5nID0gb247CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdv bic7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBUQUJMRSB0ZXN0X3ZhY3V1bV9zdGF0 X2lzb2xhdGlvbiBDQVNDQURFOworICAgIFJFU0VUIHRyYWNrX2lvX3RpbWluZzsKKyAgICBS RVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBz MV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQgICB7CisgIEJFR0lOIHRyYW5zYWN0aW9uIElTT0xB VElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CisgIHNlbGVjdCBjb3VudChpdmFsKSBmcm9t IHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uIHdoZXJlIGlkPjkwMDsKKyAgfQorc3RlcCBz MV9jb21taXQgICAgICAgICAgICAgICAgICB7IENPTU1JVDsgfQorCitzZXNzaW9uIHMyCitz dGVwIHMyX2luc2VydCAgICAgICAgICAgICAgICAgIHsgSU5TRVJUIElOVE8gdGVzdF92YWN1 dW1fc3RhdF9pc29sYXRpb24oaWQsIGl2YWwpIFNFTEVDVCBpdmFsLCBpdmFsJTEwIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgQXMgaXZhbDsgfQorc3RlcCBzMl91cGRhdGUgICAg ICAgICAgICAgICAgICB7IFVQREFURSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQg aXZhbCA9IGl2YWwgKyAyIHdoZXJlIGlkID4gOTAwOyB9CitzdGVwIHMyX2RlbGV0ZSAgICAg ICAgICAgICAgICAgIHsgREVMRVRFIEZST00gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24g d2hlcmUgaWQgPiA5MDA7IH0KK3N0ZXAgczJfaW5zZXJ0X2ludGVycnVwdCAgICAgICAgeyBJ TlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB2YWx1ZXMgKDEsMSk7IH0K K3N0ZXAgczJfdmFjdXVtICAgICAgICAgICAgICAgICAgeyBWQUNVVU0gdGVzdF92YWN1dW1f c3RhdF9pc29sYXRpb247IH0KK3N0ZXAgczJfY2hlY2twb2ludCAgICAgICAgICAgICAgeyBD SEVDS1BPSU5UOyB9CitzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQoreworICAg IFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRs eV9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9w YWdlcywgdnQudHVwbGVzX2Zyb3plbgorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVz IHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUgdnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9z dGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7Cit9CisKK3Blcm11dGF0aW9u CisgICAgczJfaW5zZXJ0CisgICAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlCisgICAg czFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkCisgICAgczJfdXBkYXRlCisgICAgczJfaW5zZXJ0 X2ludGVycnVwdAorICAgIHMyX3ZhY3V1bQorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190 YWJsZQorICAgIHMxX2NvbW1pdAorICAgIHMyX2NoZWNrcG9pbnQKKyAgICBzMl92YWN1dW0K KyAgICBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDZjZjgyOGNh OGQwLi4xMGE0ODJlMmRiNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTE4MjksNyArMTgyOSw5IEBAIHBnX3N0YXRfYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lk IEFTIHJlbGlkLAogICAgIHBnX3N0YXRfZ2V0X3RvdGFsX3ZhY3V1bV90aW1lKGMub2lkKSBB UyB0b3RhbF92YWN1dW1fdGltZSwKICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvdmFjdXVt X3RpbWUoYy5vaWQpIEFTIHRvdGFsX2F1dG92YWN1dW1fdGltZSwKICAgICBwZ19zdGF0X2dl dF90b3RhbF9hbmFseXplX3RpbWUoYy5vaWQpIEFTIHRvdGFsX2FuYWx5emVfdGltZSwKLSAg ICBwZ19zdGF0X2dldF90b3RhbF9hdXRvYW5hbHl6ZV90aW1lKGMub2lkKSBBUyB0b3RhbF9h dXRvYW5hbHl6ZV90aW1lCisgICAgcGdfc3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGlt ZShjLm9pZCkgQVMgdG90YWxfYXV0b2FuYWx5emVfdGltZSwKKyAgICBwZ19zdGF0X2dldF9y ZXZfYWxsX2Zyb3plbl9wYWdlcyhjLm9pZCkgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisg ICAgcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzKGMub2lkKSBBUyByZXZfYWxs X3Zpc2libGVfcGFnZXMKICAgIEZST00gKChwZ19jbGFzcyBjCiAgICAgIExFRlQgSk9JTiBw Z19pbmRleCBpIE9OICgoYy5vaWQgPSBpLmluZHJlbGlkKSkpCiAgICAgIExFRlQgSk9JTiBw Z19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKQEAgLTIyMjIs NyArMjIyNCw5IEBAIHBnX3N0YXRfc3lzX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHRv dGFsX3ZhY3V1bV90aW1lLAogICAgIHRvdGFsX2F1dG92YWN1dW1fdGltZSwKICAgICB0b3Rh bF9hbmFseXplX3RpbWUsCi0gICAgdG90YWxfYXV0b2FuYWx5emVfdGltZQorICAgIHRvdGFs X2F1dG9hbmFseXplX3RpbWUsCisgICAgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisgICAgcmV2 X2FsbF92aXNpYmxlX3BhZ2VzCiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVS RSAoKHNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9y bWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6 dGV4dCkpOwogcGdfc3RhdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNp ZCwKQEAgLTIyNzQsOSArMjI3OCw0MyBAQCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1Qg cmVsaWQsCiAgICAgdG90YWxfdmFjdXVtX3RpbWUsCiAgICAgdG90YWxfYXV0b3ZhY3V1bV90 aW1lLAogICAgIHRvdGFsX2FuYWx5emVfdGltZSwKLSAgICB0b3RhbF9hdXRvYW5hbHl6ZV90 aW1lCisgICAgdG90YWxfYXV0b2FuYWx5emVfdGltZSwKKyAgICByZXZfYWxsX2Zyb3plbl9w YWdlcywKKyAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00gcGdfc3RhdF9hbGxf dGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9n Jzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1l ICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV90YWJsZXN8IFNFTEVD VCBucy5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisgICAgcmVsLnJlbG5hbWUsCisgICAgc3Rh dHMucmVsaWQsCisgICAgc3RhdHMudG90YWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnRvdGFs X2Jsa3NfaGl0LAorICAgIHN0YXRzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICBzdGF0cy50 b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgc3RhdHMucmVsX2Jsa3NfcmVhZCwKKyAgICBzdGF0 cy5yZWxfYmxrc19oaXQsCisgICAgc3RhdHMucGFnZXNfc2Nhbm5lZCwKKyAgICBzdGF0cy5w YWdlc19yZW1vdmVkLAorICAgIHN0YXRzLnZtX25ld19mcm96ZW5fcGFnZXMsCisgICAgc3Rh dHMudm1fbmV3X3Zpc2libGVfcGFnZXMsCisgICAgc3RhdHMudm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzLAorICAgIHN0YXRzLm1pc3NlZF9kZWFkX3BhZ2VzLAorICAgIHN0YXRzLnR1 cGxlc19kZWxldGVkLAorICAgIHN0YXRzLnR1cGxlc19mcm96ZW4sCisgICAgc3RhdHMucmVj ZW50bHlfZGVhZF90dXBsZXMsCisgICAgc3RhdHMubWlzc2VkX2RlYWRfdHVwbGVzLAorICAg IHN0YXRzLndyYXBhcm91bmRfZmFpbHNhZmUsCisgICAgc3RhdHMuaW5kZXhfdmFjdXVtX2Nv dW50LAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAgIHN0YXRzLndhbF9mcGksCisgICAg c3RhdHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19yZWFkX3RpbWUsCisgICAgc3RhdHMu YmxrX3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlfdGltZSwKKyAgICBzdGF0cy50b3Rh bF90aW1lCisgICBGUk9NIChwZ19jbGFzcyByZWwKKyAgICAgSk9JTiBwZ19uYW1lc3BhY2Ug bnMgT04gKChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSkpLAorICAgIExBVEVSQUwgcGdf c3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhyZWwub2lkKSBzdGF0cyhyZWxpZCwgdG90YWxfYmxr c19yZWFkLCB0b3RhbF9ibGtzX2hpdCwgdG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtz X3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwgcGFnZXNfc2Nhbm5lZCwg cGFnZXNfcmVtb3ZlZCwgdm1fbmV3X2Zyb3plbl9wYWdlcywgdm1fbmV3X3Zpc2libGVfcGFn ZXMsIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywgbWlzc2VkX2RlYWRfcGFnZXMsIHR1 cGxlc19kZWxldGVkLCB0dXBsZXNfZnJvemVuLCByZWNlbnRseV9kZWFkX3R1cGxlcywgbWlz c2VkX2RlYWRfdHVwbGVzLCB3cmFwYXJvdW5kX2ZhaWxzYWZlLCBpbmRleF92YWN1dW1fY291 bnQsIHdhbF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJs a193cml0ZV90aW1lLCBkZWxheV90aW1lLCB0b3RhbF90aW1lKQorICBXSEVSRSAocmVsLnJl bGtpbmQgPSAncic6OiJjaGFyIik7CiBwZ19zdGF0X3dhbHwgU0VMRUNUIHdhbF9yZWNvcmRz LAogICAgIHdhbF9mcGksCiAgICAgd2FsX2J5dGVzLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNWVhOWM5YWIxZQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVtX3RhYmxlc19z dGF0aXN0aWNzLm91dApAQCAtMCwwICsxLDIyNyBAQAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2 ZSB2YWN1dW0gc3RhdHMgc3lzdGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlzdGlj cyBjb2xsZWN0ZWQgZHVyaW5nIHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2YgZnJv emVuIGFuZCB2aXNpYmxlIHBhZ2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2YgZnJv emVuIGFuZCB2aXNpYmxlIHBhZ2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRpc3Rp YyB3YWxfZnBpIGlzIG5vdCBkaXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJl aGF2aW9yIGlzIHVuc3RhYmxlLgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hP VyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCisgdHJhY2tfY291bnRzIAorLS0tLS0t LS0tLS0tLS0KKyBvbgorKDEgcm93KQorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCistLSBu b3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQg dHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOworLS0gVGVzdCB0aGF0IHZhY3V1bSBzdGF0aXN0 aWNzIHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0ZXIgaXMgb2ZmLgorU0VUIHRyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzIFRPICdvZmYnOworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQp IFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworREVMRVRFIEZST00gdmVzdGF0IFdI RVJFIHggJSAyID0gMDsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlU IDEyOCkgdmVzdGF0OworLS0gTXVzdCBiZSBlbXB0eS4KK1NFTEVDVCByZWxuYW1lLHRvdGFs X2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxf Ymxrc193cml0dGVuLHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwKK3BhZ2VzX3NjYW5u ZWQsIHBhZ2VzX3JlbW92ZWQsIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25ld192aXNpYmxl X3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIG1pc3NlZF9kZWFkX3BhZ2Vz LAordHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRfdHVwbGVz LCBtaXNzZWRfZGVhZF90dXBsZXMsIGluZGV4X3ZhY3V1bV9jb3VudCwKK3dhbF9yZWNvcmRz LCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1lLGRl bGF5X3RpbWUsIHRvdGFsX3RpbWUKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0CitX SEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CisgcmVsbmFtZSB8IHRvdGFsX2Jsa3NfcmVh ZCB8IHRvdGFsX2Jsa3NfaGl0IHwgdG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193 cml0dGVuIHwgcmVsX2Jsa3NfcmVhZCB8IHJlbF9ibGtzX2hpdCB8IHBhZ2VzX3NjYW5uZWQg fCBwYWdlc19yZW1vdmVkIHwgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHZtX25ld192aXNpYmxl X3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIHwgbWlzc2VkX2RlYWRfcGFn ZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHR1cGxlc19mcm96ZW4gfCByZWNlbnRseV9kZWFkX3R1 cGxlcyB8IG1pc3NlZF9kZWFkX3R1cGxlcyB8IGluZGV4X3ZhY3V1bV9jb3VudCB8IHdhbF9y ZWNvcmRzIHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IGJsa19yZWFkX3RpbWUgfCBibGtfd3Jp dGVfdGltZSB8IGRlbGF5X3RpbWUgfCB0b3RhbF90aW1lIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2ZXN0YXQgIHwg ICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgIDAg fCAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgMCB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgfCAg ICAgICAgICAgICAgICAgMCB8ICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgMCB8ICAg ICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAg ICAgICAwIHwgICAgICAgICAgIDAgfCAgICAgICAwIHwgICAgICAgICAwIHwgICAgICAgICAg ICAgMCB8ICAgICAgICAgICAgICAwIHwgICAgICAgICAgMCB8ICAgICAgICAgIDAKKygxIHJv dykKKworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CitEUk9QIFRBQkxFIHZlc3Rh dCBDQVNDQURFOworU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUg b24KKyB0cmFja192YWN1dW1fc3RhdGlzdGljcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBvbgorKDEgcm93KQorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hl ZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2Vf bmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK Ky0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gc25hcHNob3Q7CitDUkVBVEUgVEFC TEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxs ZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitTRUxF Q1Qgb2lkIEFTIHJvaWQgZnJvbSBwZ19jbGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdCcg XGdzZXQKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7CistLSBCZWZvcmUg dGhlIGZpcnN0IHZhY3V1bSBleGVjdXRpb24gZXh0ZW5kZWQgc3RhdHMgdmlldyBpcyBlbXB0 eS4KK1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMsdHVwbGVzX2RlbGV0 ZWQscmVscGFnZXMscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3Bh Z2VzIHwgdHVwbGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdl c19yZW1vdmVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZl c3RhdCAgfCAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgIDAgfCAgICAgIDQ1 NSB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAwCisoMSByb3cpCisKK1NFTEVDVCBy ZWxwYWdlcyBBUyBycAorRlJPTSBwZ19jbGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3Rh dCcgXGdzZXQKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwg SU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVj ayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBUaGUgdGFibGUgYW5kIGlu ZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0t IHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVt b3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2 ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzID4g MCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNf ZGVsZXRlZCxyZWxwYWdlcy06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQgPiAw IEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCA9IDAgQVMgcGFnZXNfcmVtb3ZlZAor RlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJl bG5hbWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyByZWxuYW1lIHwgdm1f bmV3X2Zyb3plbl9wYWdlcyB8IHR1cGxlc19kZWxldGVkIHwgcmVscGFnZXMgfCBwYWdlc19z Y2FubmVkIHwgcGFnZXNfcmVtb3ZlZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KKyB2ZXN0YXQgIHwgZiAgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAg ICAgIHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1Qg dm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVsZXRlZCBBUyB0ZCxyZWxwYWdl cyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcywgcGFnZXNfcmVtb3ZlZCBBUyBwcgorRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5h bWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorLS0gU3RvcmUgV0FM IGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdh bF9ieXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBoZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3NldAorLS0gTG9vayBpbnRvIFdBTCBy ZWNvcmRzIGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMgZFdSLCB3YWxfYnl0 ZXMgPiAwIEFTIGRXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFt ZSA9ICd2ZXN0YXQnOworIGR3ciB8IGR3YiAKKy0tLS0tKy0tLS0tCisgdCAgIHwgdAorKDEg cm93KQorCitERUxFVEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZG RVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0gaXQg aXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsK Ky0tIHBhZ2VzX3JlbW92ZWQgbXVzdCBiZSBpbmNyZWFzZWQKK1NFTEVDVCB2dC5yZWxuYW1l LHZtX25ld19mcm96ZW5fcGFnZXMtOmZwID4gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1 cGxlc19kZWxldGVkLTp0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA9 IDAgQVMgcmVscGFnZXMscGFnZXNfc2Nhbm5lZC06cHMgPiAwIEFTIHBhZ2VzX3NjYW5uZWQs cGFnZXNfcmVtb3ZlZC06cHIgPiAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92 YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3Rh dCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgcmVsbmFtZSB8IHZtX25ld19mcm96ZW5fcGFn ZXMgfCB0dXBsZXNfZGVsZXRlZCB8IHJlbHBhZ2VzIHwgcGFnZXNfc2Nhbm5lZCB8IHBhZ2Vz X3JlbW92ZWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgdmVz dGF0ICB8IGYgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAg IHwgdCAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworU0VMRUNUIHZtX25ld19mcm96ZW5f cGFnZXMgQVMgZnAsdHVwbGVzX2RlbGV0ZWQgQVMgdGQscmVscGFnZXMgQVMgcnAsIHBhZ2Vz X3NjYW5uZWQgQVMgcHMsIHBhZ2VzX3JlbW92ZWQgQVMgcHIKK0ZST00gcGdfc3RhdF92YWN1 dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcg QU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRv IHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyLCB3YWxfYnl0ZXMt Omh3YiBBUyBkd2IsIHdhbF9mcGktOmhmcGkgQVMgZGZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CistLSBXQUwgYWR2YW5j ZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCitTRUxFQ1QgOmR3ciA+IDAgQVMgZFdSLCA6ZHdiID4g MCBBUyBkV0I7CisgZHdyIHwgZHdiIAorLS0tLS0rLS0tLS0KKyB0ICAgfCB0CisoMSByb3cp CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9y ZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBn X3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKK0lO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7Cist LSBWQUNVVU0gRlVMTCBkb2Vzbid0IHJlcG9ydCB0byBzdGF0IGNvbGxlY3Rvci4gU28sIG5v IGFueSBhZHZhbmNlbWVudHMgb2Ygc3RhdGlzdGljcworLS0gYXJlIGRldGVjdGVkIGhlcmUu CitWQUNVVU0gRlVMTCB2ZXN0YXQ7CistLSBJdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhl IHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGlu dG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBBUyBkd3IyLCB3YWxfYnl0 ZXMtOmh3YiBBUyBkd2IyLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGkyCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKy0tIFdBTCBh bmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQuCitT RUxFQ1QgOmR3cjI9MCBBUyBkV1IsIDpkZnBpMj0wIEFTIGRGUEksIDpkd2IyPTAgQVMgZFdC OworIGR3ciB8IGRmcGkgfCBkd2IgCistLS0tLSstLS0tLS0rLS0tLS0KKyB0ICAgfCB0ICAg IHwgdAorKDEgcm93KQorCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2Vz LTpmcCA9IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNfZGVsZXRlZC06dGQgPSAw IEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPCAwIEFTIHJlbHBhZ2VzLHBhZ2Vz X3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQtOnByID0g MCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMu b2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdHVwbGVzX2RlbGV0ZWQg fCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdlc19yZW1vdmVkIAorLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZlc3RhdCAgfCB0ICAgICAgICAgICAg ICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICAgICAgfCB0 CisoMSByb3cpCisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIGZwLHR1cGxlc19k ZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19zY2FubmVkIEFTIHBzLHBhZ2Vz X3JlbW92ZWQgQVMgcHIKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFz cyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlkID0gYy5vaWQg XGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdh bF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQK K0RFTEVURSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxM RUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPRkYpIHZlc3Rh dDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NI RUNLUE9JTlQ7CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMgYWZ0ZXIg cmVtb3ZpbmcgYWxsIHR1cGxlcyBmcm9tIHRoZSB0YWJsZQorU0VMRUNUIHdhbF9yZWNvcmRz LTpod3IgQVMgZHdyMywgd2FsX2J5dGVzLTpod2IgQVMgZHdiMywgd2FsX2ZwaS06aGZwaSBB UyBkZnBpMworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2 ZXN0YXQnIFxnc2V0CistLVRoZXJlIGFyZSBub3RoaW5nIGNoYW5nZWQKK1NFTEVDVCA6ZHdy Mz4wIEFTIGRXUiwgOmRmcGkzPTAgQVMgZEZQSSwgOmR3YjM+MCBBUyBkV0I7CisgZHdyIHwg ZGZwaSB8IGR3YiAKKy0tLS0tKy0tLS0tLSstLS0tLQorIHQgICB8IHQgICAgfCB0CisoMSBy b3cpCisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBp bnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVu ZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgdm1fbmV3X2Zyb3plbl9wYWdlcywgcGFnZXNfc2Nh bm5lZCB2YWx1ZXMgc2hvdWxkbid0IGJlIGNoYW5nZWQKKy0tCitTRUxFQ1QgdnQucmVsbmFt ZSx2bV9uZXdfZnJvemVuX3BhZ2VzLTpmcCA9IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0 dXBsZXNfZGVsZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAg PSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVk LHBhZ2VzX3JlbW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworIHJlbG5hbWUgfCB2bV9uZXdfZnJvemVuX3Bh Z2VzIHwgdHVwbGVzX2RlbGV0ZWQgfCByZWxwYWdlcyB8IHBhZ2VzX3NjYW5uZWQgfCBwYWdl c19yZW1vdmVkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHZl c3RhdCAgfCB0ICAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmICAgICAg ICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK0RST1AgVEFCTEUgdmVzdGF0IENB U0NBREU7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9l bmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElOVE8gdmVzdGF0IFNF TEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5B TFlaRSB2ZXN0YXQ7CistLSBtdXN0IGJlIGVtcHR5CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9w YWdlcywgdm1fbmV3X3Zpc2libGVfcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzLHJldl9h bGxfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMKK0ZST00gcGdf c3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92 YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFi bGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworIHZtX25ld19mcm96ZW5f cGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwg cmV2X2FsbF92aXNpYmxlX3BhZ2VzIHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgICAg ICAgMCB8ICAgICAgICAgICAgICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAwIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKK1ZBQ1VVTSAoUEFSQUxM RUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworLS0gYmFja2VuZCBkZWZy ZWV6ZWQgcGFnZXMKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBBUyB2bV9uZXdf ZnJvemVuX3BhZ2VzLHZtX25ld192aXNpYmxlX3BhZ2VzID4gMCBBUyB2bV9uZXdfdmlzaWJs ZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld192aXNp YmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA9IDAgQVMgcmV2X2FsbF9m cm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gMCBBUyByZXZfYWxsX3Zpc2li bGVfcGFnZXMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJs ZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQg cGdfc3RhdF92YWN1dW1fdGFibGVzLnJlbGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlk OworIHZtX25ld19mcm96ZW5fcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9wYWdlcyB8IHZtX25l d192aXNpYmxlX2Zyb3plbl9wYWdlcyB8IHJldl9hbGxfZnJvemVuX3BhZ2VzIHwgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYgICAgICAgICAgICAgICAgICAg fCB0ICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHQgICAgICAgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitTRUxFQ1Qgdm1fbmV3X2Zy b3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgcHYsdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2FsbF9mcm96ZW5fcGFnZXMgQVMgaGFm cCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJPTSBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMu cmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBw Z19zdGF0X2FsbF90YWJsZXMucmVsaWQgXGdzZXQKK1VQREFURSB2ZXN0YXQgU0VUIHggPSB4 ICsgMTAwMTsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkg dmVzdGF0OworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPiA6cGYgQVMgdm1fbmV3X2Zy b3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyA+IDpwdiBBUyB2bV9uZXdfdmlzaWJs ZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiA6cHZmIEFTIHZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyxyZXZfYWxsX2Zyb3plbl9wYWdlcyA+IDpoYWZwIEFTIHJl dl9hbGxfZnJvemVuX3BhZ2VzLHJldl9hbGxfdmlzaWJsZV9wYWdlcyA+IDpoYXZwIEFTIHJl dl9hbGxfdmlzaWJsZV9wYWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0 YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2 ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90 YWJsZXMucmVsaWQ7Cisgdm1fbmV3X2Zyb3plbl9wYWdlcyB8IHZtX25ld192aXNpYmxlX3Bh Z2VzIHwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIHwgcmV2X2FsbF9mcm96ZW5fcGFn ZXMgfCByZXZfYWxsX3Zpc2libGVfcGFnZXMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZiAgICAgICAg ICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK1NFTEVD VCB2bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHBmLCB2bV9uZXdfdmlzaWJsZV9wYWdlcyBBUyBw diwgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2FsbF9mcm96ZW5f cGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJPTSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJs ZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQgXGdzZXQKK1ZBQ1VVTSAoUEFS QUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworLS0gdmFjdXVtIGZy ZWV6ZWQgcGFnZXMKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25l d19mcm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zp c2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9u ZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAg QVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAg QVMgcmV2X2FsbF92aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywg cGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1l ID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRf YWxsX3RhYmxlcy5yZWxpZDsKKyB2bV9uZXdfZnJvemVuX3BhZ2VzIHwgdm1fbmV3X3Zpc2li bGVfcGFnZXMgfCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgfCByZXZfYWxsX2Zyb3pl bl9wYWdlcyB8IHJldl9hbGxfdmlzaWJsZV9wYWdlcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0ICAg ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKwor RFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCmluZGV4IGE0MjRiZTJhNmJmLi5lZTAzNDNjMjcyOSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCkBAIC0xNDAsMyArMTQwLDggQEAgdGVzdDogZmFzdF9kZWZhdWx0 CiAjIHJ1biB0YWJsZXNwYWNlIHRlc3QgYXQgdGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRo ZSB0YWJsZXNwYWNlIGNyZWF0ZWQgZHVyaW5nCiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMg bWF5IHVzZS4KIHRlc3Q6IHRhYmxlc3BhY2UKKworIyAtLS0tLS0tLS0tCisjIENoZWNrIHZh Y3V1bSBzdGF0aXN0aWNzCisjIC0tLS0tLS0tLS0KK3Rlc3Q6IHZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmMzNGJlYzY0YgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV90YWJsZXNfc3RhdGlzdGljcy5z cWwKQEAgLTAsMCArMSwxODMgQEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFjdXVtIHN0 YXRzIHN5c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29sbGVjdGVk IGR1cmluZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlz aWJsZSBwYWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBhbmQgdmlz aWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2FsX2ZwaSBp cyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1 bnN0YWJsZS4KKy0tCisKKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19j b3VudHM7ICAtLSBtdXN0IGJlIG9uCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCisKKy0tIG5v dCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4KK1NFVCB0 cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CisKKy0tIFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlz dGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0cmFja192 YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKKworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBp bnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsK K0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpz YW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworCitERUxFVEUgRlJPTSB2ZXN0 YXQgV0hFUkUgeCAlIDIgPSAwOworCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FH RV9MSU1JVCAxMjgpIHZlc3RhdDsKKworLS0gTXVzdCBiZSBlbXB0eS4KK1NFTEVDVCByZWxu YW1lLHRvdGFsX2Jsa3NfcmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGll ZCwgdG90YWxfYmxrc193cml0dGVuLHJlbF9ibGtzX3JlYWQsIHJlbF9ibGtzX2hpdCwKK3Bh Z2VzX3NjYW5uZWQsIHBhZ2VzX3JlbW92ZWQsIHZtX25ld19mcm96ZW5fcGFnZXMsIHZtX25l d192aXNpYmxlX3BhZ2VzLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMsIG1pc3NlZF9k ZWFkX3BhZ2VzLAordHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2Rl YWRfdHVwbGVzLCBtaXNzZWRfZGVhZF90dXBsZXMsIGluZGV4X3ZhY3V1bV9jb3VudCwKK3dh bF9yZWNvcmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0 ZV90aW1lLGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFi bGVzIHZ0CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CisKK1JFU0VUIHRyYWNrX3Zh Y3V1bV9zdGF0aXN0aWNzOworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKworU0hPVyB0 cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KKworLS0gZW5zdXJlIHBl bmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1 c2goKTsKKworLS1TRVQgc3RhdHNfZmV0Y2hfY29uc2lzdGVuY3kgPSBzbmFwc2hvdDsKK0NS RUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBv ZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitBTkFMWVpFIHZlc3Rh dDsKKworU0VMRUNUIG9pZCBBUyByb2lkIGZyb20gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZSA9 ICd2ZXN0YXQnIFxnc2V0CisKK0RFTEVURSBGUk9NIHZlc3RhdCBXSEVSRSB4ICUgMiA9IDA7 CistLSBCZWZvcmUgdGhlIGZpcnN0IHZhY3V1bSBleGVjdXRpb24gZXh0ZW5kZWQgc3RhdHMg dmlldyBpcyBlbXB0eS4KK1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5fcGFnZXMs dHVwbGVzX2RlbGV0ZWQscmVscGFnZXMscGFnZXNfc2Nhbm5lZCxwYWdlc19yZW1vdmVkCitG Uk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVs bmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHJlbHBhZ2Vz IEFTIHJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJlbG5hbWUgPSAndmVzdGF0JyBcZ3Nl dAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVY X0NMRUFOVVAgT0ZGKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhl IHdhbCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworCistLSBUaGUgdGFibGUgYW5kIGluZGV4 IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3VsZCBzaG93IHVzIHRoYXQKKy0tIHZh Y3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBhZ2VzLCBidXQgcGFnZXNfcmVtb3Zl ZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Ygbm90IGZ1bGwgdGFibGUgaGF2ZSBj bGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9uZXdfZnJvemVuX3BhZ2VzID4gMCBB UyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVs ZXRlZCxyZWxwYWdlcy06cnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQgPiAwIEFT IHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZCA9IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJP TSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5h bWUgPSAndmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2bV9uZXdfZnJv emVuX3BhZ2VzIEFTIGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBw YWdlc19zY2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRf dmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0 YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNl cyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMg QVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVS RSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQKKworLS0gTG9vayBpbnRvIFdBTCByZWNvcmRz IGRlbHRhcy4KK1NFTEVDVCB3YWxfcmVjb3JkcyA+IDAgQVMgZFdSLCB3YWxfYnl0ZXMgPiAw IEFTIGRXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2 ZXN0YXQnOworCitERUxFVEUgRlJPTSB2ZXN0YXQ7OworVkFDVVVNIChQQVJBTExFTCAwLCBC VUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVzdGF0OworLS0g aXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lO VDsKKworLS0gcGFnZXNfcmVtb3ZlZCBtdXN0IGJlIGluY3JlYXNlZAorU0VMRUNUIHZ0LnJl bG5hbWUsdm1fbmV3X2Zyb3plbl9wYWdlcy06ZnAgPiAwIEFTIHZtX25ld19mcm96ZW5fcGFn ZXMsdHVwbGVzX2RlbGV0ZWQtOnRkID4gMCBBUyB0dXBsZXNfZGVsZXRlZCxyZWxwYWdlcyAt OnJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19zY2FubmVkLTpwcyA+IDAgQVMgcGFnZXNfc2Nh bm5lZCxwYWdlc19yZW1vdmVkLTpwciA+IDAgQVMgcGFnZXNfcmVtb3ZlZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAn dmVzdGF0JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3Bh Z2VzIEFTIGZwLHR1cGxlc19kZWxldGVkIEFTIHRkLHJlbHBhZ2VzIEFTIHJwLCBwYWdlc19z Y2FubmVkIEFTIHBzLCBwYWdlc19yZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFO RCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRv IHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpod3IgQVMgZHdyLCB3YWxfYnl0ZXMt Omh3YiBBUyBkd2IsIHdhbF9mcGktOmhmcGkgQVMgZGZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnIFxnc2V0CisKKy0tIFdBTCBhZHZh bmNlIHNob3VsZCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyID4gMCBBUyBkV1IsIDpkd2Ig PiAwIEFTIGRXQjsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitT RUxFQ1Qgd2FsX3JlY29yZHMgQVMgaHdyLHdhbF9ieXRlcyBBUyBod2Isd2FsX2ZwaSBBUyBo ZnBpIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0 JyBcZ3NldAorCitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQgV0hFUkUg eCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3RhdCBjb2xs ZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0tIGFyZSBk ZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVjZXNzYXJ5 IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKworLS0gU3RvcmUg V0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2FsX3JlY29yZHMtOmh3ciBB UyBkd3IyLCB3YWxfYnl0ZXMtOmh3YiBBUyBkd2IyLCB3YWxfZnBpLTpoZnBpIEFTIGRmcGky CitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcg XGdzZXQKKworLS0gV0FMIGFuZCBvdGhlciBzdGF0aXN0aWNzIGFkdmFuY2Ugc2hvdWxkIG5v dCBiZSBkZXRlY3RlZC4KK1NFTEVDVCA6ZHdyMj0wIEFTIGRXUiwgOmRmcGkyPTAgQVMgZEZQ SSwgOmR3YjI9MCBBUyBkV0I7CisKK1NFTEVDVCB2dC5yZWxuYW1lLHZtX25ld19mcm96ZW5f cGFnZXMtOmZwID0gMCBBUyB2bV9uZXdfZnJvemVuX3BhZ2VzLHR1cGxlc19kZWxldGVkLTp0 ZCA9IDAgQVMgdHVwbGVzX2RlbGV0ZWQscmVscGFnZXMgLTpycCA8IDAgQVMgcmVscGFnZXMs cGFnZXNfc2Nhbm5lZC06cHMgPSAwIEFTIHBhZ2VzX3NjYW5uZWQscGFnZXNfcmVtb3ZlZC06 cHIgPSAwIEFTIHBhZ2VzX3JlbW92ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0 LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCcgQU5EIHZ0LnJlbGlk ID0gYy5vaWQ7CitTRUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBmcCx0dXBsZXNfZGVs ZXRlZCBBUyB0ZCxyZWxwYWdlcyBBUyBycCwgcGFnZXNfc2Nhbm5lZCBBUyBwcyxwYWdlc19y ZW1vdmVkIEFTIHByCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dCwgcGdfY2xhc3Mg YworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFORCB2dC5yZWxpZCA9IGMub2lkIFxn c2V0CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdh bF9yZWNvcmRzIEFTIGh3cix3YWxfYnl0ZXMgQVMgaHdiLHdhbF9mcGkgQVMgaGZwaSBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcgXGdzZXQK KworREVMRVRFIEZST00gdmVzdGF0OworVFJVTkNBVEUgdmVzdGF0OworVkFDVVVNIChQQVJB TExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9DTEVBTlVQIE9GRikgdmVz dGF0OworLS0gaXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcwor Q0hFQ0tQT0lOVDsKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzIGFm dGVyIHJlbW92aW5nIGFsbCB0dXBsZXMgZnJvbSB0aGUgdGFibGUKK1NFTEVDVCB3YWxfcmVj b3Jkcy06aHdyIEFTIGR3cjMsIHdhbF9ieXRlcy06aHdiIEFTIGR3YjMsIHdhbF9mcGktOmhm cGkgQVMgZGZwaTMKK0ZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUg PSAndmVzdGF0JyBcZ3NldAorCistLVRoZXJlIGFyZSBub3RoaW5nIGNoYW5nZWQKK1NFTEVD VCA6ZHdyMz4wIEFTIGRXUiwgOmRmcGkzPTAgQVMgZEZQSSwgOmR3YjM+MCBBUyBkV0I7CisK Ky0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMgY29tcHJlc3NlZCBpbnRvIHpl cm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4gdmFjdXVtIGV4dGVuZGVkIHN0 YXRpc3RpY3MuCistLSBUaGUgdm1fbmV3X2Zyb3plbl9wYWdlcywgcGFnZXNfc2Nhbm5lZCB2 YWx1ZXMgc2hvdWxkbid0IGJlIGNoYW5nZWQKKy0tCitTRUxFQ1QgdnQucmVsbmFtZSx2bV9u ZXdfZnJvemVuX3BhZ2VzLTpmcCA9IDAgQVMgdm1fbmV3X2Zyb3plbl9wYWdlcyx0dXBsZXNf ZGVsZXRlZC06dGQgPSAwIEFTIHR1cGxlc19kZWxldGVkLHJlbHBhZ2VzIC06cnAgPSAwIEFT IHJlbHBhZ2VzLHBhZ2VzX3NjYW5uZWQtOnBzID0gMCBBUyBwYWdlc19zY2FubmVkLHBhZ2Vz X3JlbW92ZWQtOnByID0gMCBBUyBwYWdlc19yZW1vdmVkCitGUk9NIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnIEFO RCB2dC5yZWxpZCA9IGMub2lkOworCitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworQ1JF QVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9m ZiwgZmlsbGZhY3RvciA9IDEwKTsKKworSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OworQU5BTFlaRSB2ZXN0 YXQ7CisKKy0tIG11c3QgYmUgZW1wdHkKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2 bV9uZXdfdmlzaWJsZV9wYWdlcywgcmV2X2FsbF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNp YmxlX3BhZ2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcworRlJPTSBwZ19zdGF0X3Zh Y3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVs aWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CisKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwg QlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCistLSBiYWNrZW5kIGRlZnJlZXpl ZCBwYWdlcworU0VMRUNUIHZtX25ld19mcm96ZW5fcGFnZXMgPiAwIEFTIHZtX25ld19mcm96 ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPiAwIEFTIHZtX25ld192aXNpYmxlX3Bh Z2VzLHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA+IDAgQVMgdm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzLHJldl9hbGxfZnJvemVuX3BhZ2VzID0gMCBBUyByZXZfYWxsX2Zyb3pl bl9wYWdlcyxyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSAwIEFTIHJldl9hbGxfdmlzaWJsZV9w YWdlcworRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBX SEVSRSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19z dGF0X3ZhY3V1bV90YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQ7CitT RUxFQ1Qgdm1fbmV3X2Zyb3plbl9wYWdlcyBBUyBwZiwgdm1fbmV3X3Zpc2libGVfcGFnZXMg QVMgcHYsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFTIHB2ZiwgcmV2X2FsbF9mcm96 ZW5fcGFnZXMgQVMgaGFmcCxyZXZfYWxsX3Zpc2libGVfcGFnZXMgQVMgaGF2cAorRlJPTSBw Z19zdGF0X3ZhY3V1bV90YWJsZXMsIHBnX3N0YXRfYWxsX3RhYmxlcyBXSEVSRSBwZ19zdGF0 X3ZhY3V1bV90YWJsZXMucmVsbmFtZSA9ICd2ZXN0YXQnIGFuZCBwZ19zdGF0X3ZhY3V1bV90 YWJsZXMucmVsaWQgPSBwZ19zdGF0X2FsbF90YWJsZXMucmVsaWQgXGdzZXQKKworVVBEQVRF IHZlc3RhdCBTRVQgeCA9IHggKyAxMDAxOworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJf VVNBR0VfTElNSVQgMTI4KSB2ZXN0YXQ7CisKK1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2Vz ID4gOnBmIEFTIHZtX25ld19mcm96ZW5fcGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPiA6 cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2Vz ID4gOnB2ZiBBUyB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMscmV2X2FsbF9mcm96ZW5f cGFnZXMgPiA6aGFmcCBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcyxyZXZfYWxsX3Zpc2libGVf cGFnZXMgPiA6aGF2cCBBUyByZXZfYWxsX3Zpc2libGVfcGFnZXMKK0ZST00gcGdfc3RhdF92 YWN1dW1fdGFibGVzLCBwZ19zdGF0X2FsbF90YWJsZXMgV0hFUkUgcGdfc3RhdF92YWN1dW1f dGFibGVzLnJlbG5hbWUgPSAndmVzdGF0JyBhbmQgcGdfc3RhdF92YWN1dW1fdGFibGVzLnJl bGlkID0gcGdfc3RhdF9hbGxfdGFibGVzLnJlbGlkOworU0VMRUNUIHZtX25ld19mcm96ZW5f cGFnZXMgQVMgcGYsIHZtX25ld192aXNpYmxlX3BhZ2VzIEFTIHB2LCB2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMgQVMgcHZmLCByZXZfYWxsX2Zyb3plbl9wYWdlcyBBUyBoYWZwLHJl dl9hbGxfdmlzaWJsZV9wYWdlcyBBUyBoYXZwCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxl cywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxu YW1lID0gJ3Zlc3RhdCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0 YXRfYWxsX3RhYmxlcy5yZWxpZCBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZF Ul9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworLS0gdmFjdXVtIGZyZWV6ZWQgcGFnZXMK K1NFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5fcGFn ZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFnZXMs dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2FsbF9m cm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2FsbF92 aXNpYmxlX3BhZ2VzCitGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxf dGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3RhdCcg YW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxlcy5y ZWxpZDsKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCi0tIAoyLjM0LjEKCg== --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/x-patch; charset=UTF-8; name="0002-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="0002-Machinery-for-grabbing-an-extended-vacuum-statistics.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZTE5ZTgxODY3OWFlNTY2MDhhMGJjMDg3ZmRjNDYzYjNkMjE4M2ZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAyIEp1biAyMDI1IDE5OjM1OjAyICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAyLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIGluZGV4IHJlbGF0aW9ucy4KClRoZXkgYXJlIGdhdGhlcmVk IHNlcGFyYXRlbGx5IGZyb20gdGFibGUgc3RhdGlzdGljcy4KCkFzIGZvciB0YWJsZXMsIHdl IGdhdGhlciB2YWN1dW0gc2hhcmVkIGJ1ZmZlcnMgc3RhdGlzdGljcyBmb3IgaW5kZXggcmVs YXRpb25zIGxpa2UKdmFsdWUgb2YgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfcmVhZCwg dG90YWxfYmxrc19kaXJ0aWVkLCB3YWwgc3RhdGlzdGljcywgaW8gdGltZQpkdXJpbmcgZmx1 c2hpbmcgYnVmZmVyIHBhZ2VzIHRvIGRpc2ssIGRlbGF5IGFuZCB0b3RhbCB0aW1lLgoKRHVl IHRvIHRoZSBmYWN0IHRoYXQgc3VjaCBzdGF0aXN0aWNzIGFyZSBjb21tb24gYXMgZm9yIHRh YmxlcywgYXMgZm9yIGluZGV4ZXMgd2UKc2V0IHRoZW0gaW4gdGhlIHVuaW9uIEV4dFZhY1Jl cG9ydCBzdHJ1Y3R1cmUuIFdlIG9ubHkgYWRkZWQgc29tZSBkZXRlcm1pbmF0aW9uICd0eXBl JwpmaWVsZCB0byBoaWdobGlnaHQgd2hhdCBraW5kIGJlbG9uZyB0byB0aGVzZSBzdGF0aXN0 aWNzOiBQR1NUQVRfRVhUVkFDX1RBQkxFIG9yClBHU1RBVF9FWFRWQUNfSU5ERVguIEdlbmVy YWxseSwgUEdTVEFUX0VYVFZBQ19JTlZBTElEIHR5cGUgbGVhZHMgdG8gd3JvbmcgY29kZSBw cm9jZXNzLgoKU29tZSBzdGF0aXN0aWNzIGJlbG9uZyBvbmx5IG9uZSB0eXBlIG9mIGJvdGgg dGFibGVzIG9yIGluZGV4ZXMuIFNvLCB3ZSBhZGRlZCBzdWJzdHJ1Y3R1cmVzCnN5Y2ggdGFi bGUgYW5kIGluZGV4IGluc2lkZSBFeHRWYWNSZXBvcnQgc3RydWN0dXJlLgoKVGhlcmVmb3Jl LCB3ZSBnYXRoZXIgb25seSBmb3IgdGFibGVzIHN1Y2ggc3RhdGlzdGljcyBsaWtlIG51bWJl ciBvZiBzY2FubmVkLCByZW1vdmVkIHBhZ2VzLAp0aGVpciBjaGFyZWN0ZXJpc3RpY3MgYWNj b3JkaW5nIFZNIChhbGwtdmlzaWJsZSBhbmQgZnJvemVuKS4gSW4gYWRkaXRpb24sIGZvciB0 YWJsZXMgd2UKZ2F0aGVyIG51bWJlciBmcm96ZW4sIGRlbGV0ZWQgYW5kIHJlY2VudGx5IGRl YWQgdHVwbGVzIGFuZCBob3cgbWFueSB0aW1lcyB2YWN1dW0gcHJvY2Vzc2VkCmluZGV4ZXMg Zm9yIHRhYmxlcy4KCkNvbnRyb3ZlcnNhbGx5IGZvciBpbmRleGVzIHdlIGdhdGhlciBudW1i ZXIgb2YgZGVsZXRlZCBwYWdlcyBhbmQgZGVsZXRlZCB0dXBsZXMgb25seS4KCkFzIGZvciB0 YWJsZXMsIGRlbGV0ZWQgcGFnZXMgYW5kIGRlbGV0ZWQgdHVwbGVzIHJlZmxlY3QgdGhlIG92 ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIHZhY3V1bQpmb3IgdGhlIGluZGV4IHJlbGF0aW9u c2hpcC4KClNpbmNlIHRoZSB2YWN1dW0gY2xlYW5zIHVwIHJlZmVyZW5jZXMgdG8gdHVwbGUg aW5kZXhlcyBiZWZvcmUgY2xlYW5pbmcgdXAgdGFibGUgdHVwbGVzLAp3aGljaCBhZGRzIHNv bWUgY29tcGxleGl0eSB0byB0aGUgdmFjdXVtIHByb2Nlc3MsIG5hbWVseSB0aGUgdmFjdXVt IHN3aXRjaGVzIGZyb20gY2xlYW5pbmcgdXAKYSB0YWJsZSB0byBpdHMgaW5kZXhlcyBhbmQg YmFjayBkdXJpbmcgaXRzIG9wZXJhdGlvbiwgd2UgbmVlZCB0byBzYXZlIHRoZSB2YWN1dW0g c3RhdGlzdGljcwpjb2xsZWN0ZWQgZm9yIHRoZSBoZWFwIGJlZm9yZSBpdCBzdGFydHMgY2xl YW5pbmcgdXAgdGhlIGluZGV4ZXMuClRoYXQncyB3aHkgaXQncyBuZWNlc3NhcnkgdG8gdHJh Y2sgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVhcCBzZXZlcmFsIHRpbWVzIGR1 cmluZwp0aGUgdmFjdXVtIHByb2NlZHVyZS4gVG8gYXZvaWQgc2VuZGluZyB0aGUgc3RhdGlz dGljcyB0byB0aGUgQ3VtdWxhdGl2ZSBTdGF0aXN0aWNzIFN5c3RlbQpzZXZlcmFsIHRpbWVz LCB3ZSBzYXZlIHRoZXNlIHN0YXRpc3RpY3MgaW4gdGhlIExWUmVsU3RhdGUgc3RydWN0dXJl IGFuZCBvbmx5IGFmdGVyIHZhY3V1bQpmaW5pc2hlcyBjbGVhbmluZyB1cCB0aGUgaGVhcCwg aXQgc2VuZHMgdGhlbSB0byB0aGUgQ3VtdWxhdGl2ZSBTdGF0aXN0aWNzIFN5c3RlbS4KCkF1 dGhvcnM6IEFsZW5hIFJ5YmFraW5hIDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LAogICBB bmRyZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdyZXNwcm8ucnU+LAogICBBbmRyZWkg WnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlwIEt1 bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5t c2hrQGdtYWlsLmNvbT4sCiAgICAgICBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZA dGFudG9ybGFicy5jb20+LCBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ LAogICAgICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFsZXhh bmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+LAogICAgICAgSmltIE5hc2J5 IDxqbmFzYnlAdXBncmFkZS5jb20+LCBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNv bT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAg fCAyNzAgKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwgICAgICAgICAgfCAgMzIgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW1wYXJhbGxlbC5jICAgICAgICAgfCAgMTQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0LmMgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8ICA0OCArKystCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAxMzMgKysrKysrKystCiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgICAgICAgfCAgMjUgKysKIHNyYy9p bmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OCArKystCiAu Li4vdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQgICAgfCAgIDQgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAyMiAr KwogLi4uL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dCAgICAgIHwgMTgz ICsrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAg ICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGlj cy5zcWwgICB8IDE1MSArKysrKysrKysrCiAxNSBmaWxlcyBjaGFuZ2VkLCA4NjQgaW5zZXJ0 aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGlj cy5zcWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZWUyN2U3 MGE3OTguLjA4ODhiZTJhZmVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCkBAIC0yOTEsNiArMjkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWNo YXIJICAgKmRibmFtZTsKIAljaGFyCSAgICpyZWxuYW1lc3BhY2U7CiAJT2lkCQkJcmVsb2lk OworCU9pZAkJCWluZG9pZDsKIAljaGFyCSAgICpyZWxuYW1lOwogCWNoYXIJICAgKmluZG5h bWU7CQkvKiBDdXJyZW50IGluZGV4IG5hbWUgKi8KIAlCbG9ja051bWJlciBibGtubzsJCQkv KiB1c2VkIG9ubHkgZm9yIGhlYXAgb3BlcmF0aW9ucyAqLwpAQCAtNDExLDYgKzQxMiw4IEBA IHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAlCbG9ja051bWJlciBlYWdlcl9zY2FuX3Jl bWFpbmluZ19mYWlsczsKIAogCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OyAv KiBudW1iZXIgb2YgZW1lcmdlbmN5IHZhY3V1bXMgdG8gcHJldmVudCBhbnRpLXdyYXBhcm91 bmQgc2h1dGRvd24gKi8KKworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnRJZHg7CiB9IExW UmVsU3RhdGU7CiAKIApAQCAtNDIyLDE5ICs0MjUsNiBAQCB0eXBlZGVmIHN0cnVjdCBMVlNh dmVkRXJySW5mbwogCVZhY0VyclBoYXNlIHBoYXNlOwogfSBMVlNhdmVkRXJySW5mbzsKIAot LyoKLSAqIENvdW50ZXJzIGFuZCB1c2FnZSBkYXRhIGZvciBleHRlbmRlZCBzdGF0cyB0cmFj a2luZy4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnMKLXsKLQlUaW1l c3RhbXBUeiBzdGFydHRpbWU7Ci0JV2FsVXNhZ2UJd2FsdXNhZ2U7Ci0JQnVmZmVyVXNhZ2Ug YnVmdXNhZ2U7Ci0JZG91YmxlCQlWYWN1dW1EZWxheVRpbWU7Ci0JUGdTdGF0X0NvdW50ZXIg YmxvY2tzX2ZldGNoZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKLX0gTFZFeHRT dGF0Q291bnRlcnM7Ci0KIC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwog c3RhdGljIHZvaWQgbGF6eV9zY2FuX2hlYXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRp YyB2b2lkIGhlYXBfdmFjdXVtX2VhZ2VyX3NjYW5fc2V0dXAoTFZSZWxTdGF0ZSAqdmFjcmVs LApAQCAtNTU2LDI3ICs1NDYsMjUgQEAgZXh0dmFjX3N0YXRzX2VuZChSZWxhdGlvbiByZWws IExWRXh0U3RhdENvdW50ZXJzICpjb3VudGVycywKIAllbmR0aW1lID0gR2V0Q3VycmVudFRp bWVzdGFtcCgpOwogCVRpbWVzdGFtcERpZmZlcmVuY2UoY291bnRlcnMtPnN0YXJ0dGltZSwg ZW5kdGltZSwgJnNlY3MsICZ1c2Vjcyk7CiAKLQltZW1zZXQocmVwb3J0LCAwLCBzaXplb2Yo RXh0VmFjUmVwb3J0KSk7Ci0KIAkvKgogCSAqIEZpbGwgYWRkaXRpb25hbCBzdGF0aXN0aWNz IG9uIGEgdmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9uLgogCSAqLwotCXJlcG9ydC0+dG90 YWxfYmxrc19yZWFkID0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hh cmVkX2Jsa3NfcmVhZDsKLQlyZXBvcnQtPnRvdGFsX2Jsa3NfaGl0ID0gYnVmdXNhZ2UubG9j YWxfYmxrc19oaXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7Ci0JcmVwb3J0LT50b3Rh bF9ibGtzX2RpcnRpZWQgPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQgKyBidWZ1c2Fn ZS5zaGFyZWRfYmxrc19kaXJ0aWVkOwotCXJlcG9ydC0+dG90YWxfYmxrc193cml0dGVuID0g YnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKwlyZXBvcnQtPnRvdGFsX2Jsa3NfcmVh ZCArPSBidWZ1c2FnZS5sb2NhbF9ibGtzX3JlYWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19y ZWFkOworCXJlcG9ydC0+dG90YWxfYmxrc19oaXQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19o aXQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19oaXQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX2Rp cnRpZWQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkICsgYnVmdXNhZ2Uuc2hhcmVk X2Jsa3NfZGlydGllZDsKKwlyZXBvcnQtPnRvdGFsX2Jsa3Nfd3JpdHRlbiArPSBidWZ1c2Fn ZS5zaGFyZWRfYmxrc193cml0dGVuOwogCi0JcmVwb3J0LT53YWxfcmVjb3JkcyA9IHdhbHVz YWdlLndhbF9yZWNvcmRzOwotCXJlcG9ydC0+d2FsX2ZwaSA9IHdhbHVzYWdlLndhbF9mcGk7 Ci0JcmVwb3J0LT53YWxfYnl0ZXMgPSB3YWx1c2FnZS53YWxfYnl0ZXM7CisJcmVwb3J0LT53 YWxfcmVjb3JkcyArPSB3YWx1c2FnZS53YWxfcmVjb3JkczsKKwlyZXBvcnQtPndhbF9mcGkg Kz0gd2FsdXNhZ2Uud2FsX2ZwaTsKKwlyZXBvcnQtPndhbF9ieXRlcyArPSB3YWx1c2FnZS53 YWxfYnl0ZXM7CiAKLQlyZXBvcnQtPmJsa19yZWFkX3RpbWUgPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJsa19y ZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxr X3JlYWRfdGltZSk7CiAJcmVwb3J0LT5ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VU X01JTExJU0VDKGJ1ZnVzYWdlLnNoYXJlZF9ibGtfcmVhZF90aW1lKTsKLQlyZXBvcnQtPmJs a193cml0ZV90aW1lID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxf YmxrX3dyaXRlX3RpbWUpOwotCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgPSBJTlNUUl9USU1F X0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCXJlcG9y dC0+ZGVsYXlfdGltZSA9IFZhY3V1bURlbGF5VGltZSAtIGNvdW50ZXJzLT5WYWN1dW1EZWxh eVRpbWU7CisJcmVwb3J0LT5ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5ibGtfd3Jp dGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxr X3dyaXRlX3RpbWUpOworCXJlcG9ydC0+ZGVsYXlfdGltZSArPSBWYWN1dW1EZWxheVRpbWUg LSBjb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lOwogCi0JcmVwb3J0LT50b3RhbF90aW1lID0g c2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKKwlyZXBvcnQtPnRvdGFsX3RpbWUgKz0g c2VjcyAqIDEwMDAuICsgdXNlY3MgLyAxMDAwLjsKIAogCWlmICghcmVsLT5wZ3N0YXRfaW5m byB8fCAhcGdzdGF0X3RyYWNrX2NvdW50cykKIAkJLyoKQEAgLTU4NSwxMiArNTczLDEzMSBA QCBleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwgTFZFeHRTdGF0Q291bnRlcnMgKmNv dW50ZXJzLAogCQkgKi8KIAkJcmV0dXJuOwogCi0JcmVwb3J0LT5ibGtzX2ZldGNoZWQgPQor CXJlcG9ydC0+Ymxrc19mZXRjaGVkICs9CiAJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5i bG9ja3NfZmV0Y2hlZCAtIGNvdW50ZXJzLT5ibG9ja3NfZmV0Y2hlZDsKLQlyZXBvcnQtPmJs a3NfaGl0ID0KKwlyZXBvcnQtPmJsa3NfaGl0ICs9CiAJCXJlbC0+cGdzdGF0X2luZm8tPmNv dW50cy5ibG9ja3NfaGl0IC0gY291bnRlcnMtPmJsb2Nrc19oaXQ7CiB9CiAKK3ZvaWQKK2V4 dHZhY19zdGF0c19zdGFydF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1 bHQgKnN0YXRzLAorCQkJCQkgICBMVkV4dFN0YXRDb3VudGVyc0lkeCAqY291bnRlcnMpCit7 CisJaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCisJ LyogU2V0IGluaXRpYWwgdmFsdWVzIGZvciBjb21tb24gaGVhcCBhbmQgaW5kZXggc3RhdGlz dGljcyovCisJZXh0dmFjX3N0YXRzX3N0YXJ0KHJlbCwgJmNvdW50ZXJzLT5jb21tb24pOwor CWNvdW50ZXJzLT5wYWdlc19kZWxldGVkID0gY291bnRlcnMtPnR1cGxlc19yZW1vdmVkID0g MDsKKworCWlmIChzdGF0cyAhPSBOVUxMKQorCXsKKwkJLyoKKwkJICogWFhYOiBXaHkgZG8g d2UgbmVlZCB0aGlzIGNvZGUgaGVyZT8gSWYgaXQgaXMgbmVlZGVkLCBJIGZlZWwgbGFjayBv ZgorCQkgKiBjb21tZW50cywgZGVzY3JpYmluZyB0aGUgcmVhc29uLgorCQkgKi8KKwkJY291 bnRlcnMtPnR1cGxlc19yZW1vdmVkID0gc3RhdHMtPnR1cGxlc19yZW1vdmVkOworCQljb3Vu dGVycy0+cGFnZXNfZGVsZXRlZCA9IHN0YXRzLT5wYWdlc19kZWxldGVkOworCX0KK30KKwor dm9pZAorZXh0dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24gcmVsLCBJbmRleEJ1bGtEZWxl dGVSZXN1bHQgKnN0YXRzLAorCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJZHggKmNvdW50ZXJz LCBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKK3sKKwltZW1zZXQocmVwb3J0LCAwLCBzaXplb2Yo RXh0VmFjUmVwb3J0KSk7CisKKwlleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmNvdW50ZXJzLT5j b21tb24sIHJlcG9ydCk7CisJcmVwb3J0LT50eXBlID0gUEdTVEFUX0VYVFZBQ19JTkRFWDsK KworCWlmIChzdGF0cyAhPSBOVUxMKQorCXsKKwkJLyoKKwkJICogaWYgc29tZXRoaW5nIGdv ZXMgd3Jvbmcgb3IgYW4gdXNlciBkb2Vzbid0IHdhbnQgdG8gdHJhY2sgYSBkYXRhYmFzZQor CQkgKiBhY3Rpdml0eSAtIGp1c3Qgc3VwcHJlc3MgaXQuCisJCSAqLworCisJCS8qIEZpbGwg aW5kZXgtc3BlY2lmaWMgZXh0ZW5kZWQgc3RhdHMgZmllbGRzICovCisJCXJlcG9ydC0+dHVw bGVzX2RlbGV0ZWQgPQorCQkJCQkJCXN0YXRzLT50dXBsZXNfcmVtb3ZlZCAtIGNvdW50ZXJz LT50dXBsZXNfcmVtb3ZlZDsKKwkJcmVwb3J0LT5pbmRleC5wYWdlc19kZWxldGVkID0KKwkJ CQkJCQlzdGF0cy0+cGFnZXNfZGVsZXRlZCAtIGNvdW50ZXJzLT5wYWdlc19kZWxldGVkOwor CX0KK30KKworLyogQWNjdW11bGF0ZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgaGVhcC4KKyAq CisgICogQmVjYXVzZSBvZiBjb21wbGV4aXR5IG9mIHZhY3V1bSBwcm9jZXNzaW5nOiBpdCBz d2l0Y2ggcHJvY2VzaW5nIGJldHdlZW4KKyAgKiB0aGUgaGVhcCByZWxhdGlvbiB0byBpbmRl eCByZWxhdGlvbnMgYW5kIHZpc2EgdmVyc2EsIHdlIG5lZWQgdG8gc3RvcmUKKyAgKiBnYXRo ZXJlZCBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGZvciBoZWFwIHJlbGF0aW9ucyBzZXZlcmFs IHRpbWVzIGJlZm9yZQorICAqIHRoZSB2YWN1dW0gc3RhcnRzIHByb2Nlc3NpbmcgdGhlIGlu ZGV4ZXMgYWdhaW4uCisgICoKKyAgKiBJdCBpcyBuZWNlc3NhcnkgdG8gZ2F0aGVyIGNvcnJl Y3Qgc3RhdGlzdGljcyBpbmZvcm1hdGlvbiBmb3IgaGVhcCBhbmQgaW5kZXhlcworICAqIG90 aGVyd2ljZSB0aGUgaW5kZXggc3RhdGlzdGljcyBpbmZvcm1hdGlvbiB3b3VsZCBiZSBhZGRl ZCB0byBoaXMgcGFyZW50IGhlYXAKKyAgKiBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGFuZCBp dCB3b3VsZCBiZSBkaWZmaWN1bHQgdG8gYW5hbHl6ZSBpdCBsYXRlci4KKyAgKgorICAqIFdl IGNhbid0IHN1YnRyYWN0IHVuaW9uIHZhY3V1bSBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGZv ciBpbmRleCBmcm9tIHRoZSBoZWFwIHJlbGF0aW9ucworICAqIGJlY2F1c2Ugb2YgdG90YWwg YW5kIGRlbGF5IHRpbWUgdGltZSBzdGF0aXN0aWNzIGNvbGxlY3RpbmcgZHVyaW5nIHBhcmFs bGVsIHZhY3V1bQorICAqIHByb2N1ZHVyZS4KKyovCitzdGF0aWMgdm9pZAorYWNjdW11bGF0 ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0aWNzKExWUmVsU3RhdGUgKnZhY3JlbCwgRXh0VmFjUmVw b3J0ICpleHRWYWNTdGF0cykKK3sKKwlpZiAoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlz dGljcykKKwkJcmV0dXJuOworCisJLyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0 YXRzIGZpZWxkcyAqLworCWV4dFZhY1N0YXRzLT50eXBlID0gUEdTVEFUX0VYVFZBQ19UQUJM RTsKKwlleHRWYWNTdGF0cy0+dGFibGUucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+c2Nhbm5l ZF9wYWdlczsKKwlleHRWYWNTdGF0cy0+dGFibGUucGFnZXNfcmVtb3ZlZCA9IHZhY3JlbC0+ cmVtb3ZlZF9wYWdlczsKKwlleHRWYWNTdGF0cy0+dGFibGUudm1fbmV3X2Zyb3plbl9wYWdl cyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlczsKKwlleHRWYWNTdGF0cy0+dGFibGUu dm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzOwor CWV4dFZhY1N0YXRzLT50YWJsZS52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSB2YWNy ZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKKwlleHRWYWNTdGF0cy0+dHVwbGVz X2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOworCWV4dFZhY1N0YXRzLT50YWJs ZS50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50dXBsZXNfZnJvemVuOworCWV4dFZhY1N0YXRz LT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlcyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90 dXBsZXM7CisJZXh0VmFjU3RhdHMtPnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFj cmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKKwlleHRWYWNTdGF0cy0+dGFibGUubWlzc2Vk X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7CisJZXh0VmFjU3Rh dHMtPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2VzID0gdmFjcmVsLT5taXNzZWRfZGVhZF9wYWdl czsKKwlleHRWYWNTdGF0cy0+dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50ID0gdmFjcmVsLT5u dW1faW5kZXhfc2NhbnM7CisJZXh0VmFjU3RhdHMtPnRhYmxlLndyYXBhcm91bmRfZmFpbHNh ZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisKKwlleHRW YWNTdGF0cy0+YmxrX3JlYWRfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5ibGtf cmVhZF90aW1lOworCWV4dFZhY1N0YXRzLT5ibGtfd3JpdGVfdGltZSAtPSB2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeC5ibGtfd3JpdGVfdGltZTsKKwlleHRWYWNTdGF0cy0+dG90YWxfYmxr c19kaXJ0aWVkIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3NfZGlydGll ZDsKKwlleHRWYWNTdGF0cy0+dG90YWxfYmxrc19oaXQgLT0gdmFjcmVsLT5leHRWYWNSZXBv cnRJZHgudG90YWxfYmxrc19oaXQ7CisJZXh0VmFjU3RhdHMtPnRvdGFsX2Jsa3NfcmVhZCAt PSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX3JlYWQ7CisJZXh0VmFjU3Rh dHMtPnRvdGFsX2Jsa3Nfd3JpdHRlbiAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3Rh bF9ibGtzX3dyaXR0ZW47CisJZXh0VmFjU3RhdHMtPndhbF9ieXRlcyAtPSB2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeC53YWxfYnl0ZXM7CisJZXh0VmFjU3RhdHMtPndhbF9mcGkgLT0gdmFj cmVsLT5leHRWYWNSZXBvcnRJZHgud2FsX2ZwaTsKKwlleHRWYWNTdGF0cy0+d2FsX3JlY29y ZHMgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgud2FsX3JlY29yZHM7CisKKwlleHRWYWNT dGF0cy0+dG90YWxfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF90aW1l OworCWV4dFZhY1N0YXRzLT5kZWxheV90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4 LmRlbGF5X3RpbWU7CisKK30KKworc3RhdGljIHZvaWQKK2FjY3VtdWxhdGVfaWR4c192YWN1 dW1fc3RhdGlzdGljcyhMVlJlbFN0YXRlICp2YWNyZWwsIEV4dFZhY1JlcG9ydCAqZXh0VmFj SWR4U3RhdHMpCit7CisJaWYgKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJ CXJldHVybjsKKworCS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBzdGF0cyBmaWVs ZHMgKi8KKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5ibGtfcmVhZF90aW1lICs9IGV4dFZh Y0lkeFN0YXRzLT5ibGtfcmVhZF90aW1lOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJs a193cml0ZV90aW1lICs9IGV4dFZhY0lkeFN0YXRzLT5ibGtfd3JpdGVfdGltZTsKKwl2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX2RpcnRpZWQgKz0gZXh0VmFjSWR4U3Rh dHMtPnRvdGFsX2Jsa3NfZGlydGllZDsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3Rh bF9ibGtzX2hpdCArPSBleHRWYWNJZHhTdGF0cy0+dG90YWxfYmxrc19oaXQ7CisJdmFjcmVs LT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc19yZWFkICs9IGV4dFZhY0lkeFN0YXRzLT50 b3RhbF9ibGtzX3JlYWQ7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc193 cml0dGVuICs9IGV4dFZhY0lkeFN0YXRzLT50b3RhbF9ibGtzX3dyaXR0ZW47CisJdmFjcmVs LT5leHRWYWNSZXBvcnRJZHgud2FsX2J5dGVzICs9IGV4dFZhY0lkeFN0YXRzLT53YWxfYnl0 ZXM7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgud2FsX2ZwaSArPSBleHRWYWNJZHhTdGF0 cy0+d2FsX2ZwaTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfcmVjb3JkcyArPSBl eHRWYWNJZHhTdGF0cy0+d2FsX3JlY29yZHM7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgu ZGVsYXlfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+ZGVsYXlfdGltZTsKKworCXZhY3JlbC0+ ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPnRvdGFsX3Rp bWU7Cit9CisKIAogLyoKICAqIEhlbHBlciB0byBzZXQgdXAgdGhlIGVhZ2VyIHNjYW5uaW5n IHN0YXRlIGZvciB2YWN1dW1pbmcgYSBzaW5nbGUgcmVsYXRpb24uCkBAIC03NTAsMTEgKzg1 Nyw5IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFy YW1zLAogCUxWRXh0U3RhdENvdW50ZXJzIGV4dFZhY0NvdW50ZXJzOwogCUV4dFZhY1JlcG9y dCBleHRWYWNSZXBvcnQ7CiAJY2hhcgkgICoqaW5kbmFtZXMgPSBOVUxMOwotCUV4dFZhY1Jl cG9ydCBhbGx6ZXJvOwogCiAJLyogSW5pdGlhbGl6ZSB2YWN1dW0gc3RhdGlzdGljcyAqLwot CW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOwotCWV4dFZhY1Jl cG9ydCA9IGFsbHplcm87CisJbWVtc2V0KCZleHRWYWNSZXBvcnQsIDAsIHNpemVvZihFeHRW YWNSZXBvcnQpKTsKIAogCXZlcmJvc2UgPSAocGFyYW1zLT5vcHRpb25zICYgVkFDT1BUX1ZF UkJPU0UpICE9IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8IChBbUF1dG9WYWN1dW1X b3JrZXJQcm9jZXNzKCkgJiYKQEAgLTgwMCw2ICs5MDUsOCBAQCBoZWFwX3ZhY3V1bV9yZWwo UmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAllcnJjYWxsYmFjay5wcmV2 aW91cyA9IGVycm9yX2NvbnRleHRfc3RhY2s7CiAJZXJyb3JfY29udGV4dF9zdGFjayA9ICZl cnJjYWxsYmFjazsKIAorCW1lbXNldCgmdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgsIDAsIHNp emVvZihFeHRWYWNSZXBvcnQpKTsKKwogCS8qIFNldCB1cCBoaWdoIGxldmVsIHN0dWZmIGFi b3V0IHJlbCBhbmQgaXRzIGluZGV4ZXMgKi8KIAl2YWNyZWwtPnJlbCA9IHJlbDsKIAl2YWNf b3Blbl9pbmRleGVzKHZhY3JlbC0+cmVsLCBSb3dFeGNsdXNpdmVMb2NrLCAmdmFjcmVsLT5u aW5kZXhlcywKQEAgLTEwNTEsMjMgKzExNTgsNiBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRp b24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkvKiBNYWtlIGdlbmVyaWMgZXh0ZW5k ZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCAqLwogCWV4dHZhY19zdGF0c19lbmQocmVsLCAmZXh0 VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQpOwogCi0JaWYocGdzdGF0X3RyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzKQotCXsKLQkJLyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0 YXRzIGZpZWxkcyAqLwotCQlleHRWYWNSZXBvcnQucGFnZXNfc2Nhbm5lZCA9IHZhY3JlbC0+ c2Nhbm5lZF9wYWdlczsKLQkJZXh0VmFjUmVwb3J0LnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwt PnJlbW92ZWRfcGFnZXM7Ci0JCWV4dFZhY1JlcG9ydC52bV9uZXdfZnJvemVuX3BhZ2VzID0g dmFjcmVsLT52bV9uZXdfZnJvemVuX3BhZ2VzOwotCQlleHRWYWNSZXBvcnQudm1fbmV3X3Zp c2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzOwotCQlleHRWYWNS ZXBvcnQudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlz aWJsZV9mcm96ZW5fcGFnZXM7Ci0JCWV4dFZhY1JlcG9ydC50dXBsZXNfZGVsZXRlZCA9IHZh Y3JlbC0+dHVwbGVzX2RlbGV0ZWQ7Ci0JCWV4dFZhY1JlcG9ydC50dXBsZXNfZnJvemVuID0g dmFjcmVsLT50dXBsZXNfZnJvemVuOwotCQlleHRWYWNSZXBvcnQucmVjZW50bHlfZGVhZF90 dXBsZXMgPSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCQlleHRWYWNSZXBvcnQu bWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXM7Ci0JCWV4 dFZhY1JlcG9ydC5taXNzZWRfZGVhZF9wYWdlcyA9IHZhY3JlbC0+bWlzc2VkX2RlYWRfcGFn ZXM7Ci0JCWV4dFZhY1JlcG9ydC5pbmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9p bmRleF9zY2FuczsKLQkJZXh0VmFjUmVwb3J0LndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQg PSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7Ci0JfQotCiAJLyoKIAkgKiBS ZXBvcnQgcmVzdWx0cyB0byB0aGUgY3VtdWxhdGl2ZSBzdGF0cyBzeXN0ZW0sIHRvby4KIAkg KgpAQCAtMTA3OCwxMyArMTE2OCwzNCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVs LCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkgKiBzb29uIGluIGNhc2VzIHdoZXJlIHRoZSBm YWlsc2FmZSBwcmV2ZW50ZWQgc2lnbmlmaWNhbnQgYW1vdW50cyBvZiBoZWFwCiAJICogdmFj dXVtaW5nLgogCSAqLwotCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSwKKwlpZihwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBN YWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBhbmQKKwkJICogZmls bCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxkcy4KKwkJICovCisJCWV4dHZh Y19zdGF0c19lbmQodmFjcmVsLT5yZWwsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9y dCk7CisJCWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRW YWNSZXBvcnQpOworCisJCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSwKIAkJCQkJCSByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCiAJCQkJCQkgTWF4KHZh Y3JlbC0+bmV3X2xpdmVfdHVwbGVzLCAwKSwKIAkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2Rl YWRfdHVwbGVzICsKLQkJCQkJCSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlcywKKyAJCQkJ CQkgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXMsCiAJCQkJCQkgc3RhcnR0aW1lLAogCQkJ CQkJICZleHRWYWNSZXBvcnQpOworCisJfQorCWVsc2UKKwl7CisJCXBnc3RhdF9yZXBvcnRf dmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKKwkJCQkJCQkgcmVsLT5yZF9yZWwtPnJl bGlzc2hhcmVkLAorCQkJCQkJCSBNYXgodmFjcmVsLT5uZXdfbGl2ZV90dXBsZXMsIDApLAor CQkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzICsKKwkJCQkJCQkgdmFjcmVs LT5taXNzZWRfZGVhZF90dXBsZXMsCisJCQkJCQkJIHN0YXJ0dGltZSwKKwkJCQkJCQkgTlVM TCk7CisJfQorCiAJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiAKIAlpZiAoaW5z dHJ1bWVudCkKQEAgLTI3ODEsMTAgKzI4OTIsMjAgQEAgbGF6eV92YWN1dW1fYWxsX2luZGV4 ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCX0KIAllbHNlCiAJeworCQlMVkV4dFN0YXRDb3Vu dGVycyBjb3VudGVyczsKKwkJRXh0VmFjUmVwb3J0IGV4dFZhY1JlcG9ydDsKKworCQltZW1z ZXQoJmV4dFZhY1JlcG9ydCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCisJCWV4dHZh Y19zdGF0c19zdGFydCh2YWNyZWwtPnJlbCwgJmNvdW50ZXJzKTsKKwogCQkvKiBPdXRzb3Vy Y2UgZXZlcnl0aGluZyB0byBwYXJhbGxlbCB2YXJpYW50ICovCiAJCXBhcmFsbGVsX3ZhY3V1 bV9idWxrZGVsX2FsbF9pbmRleGVzKHZhY3JlbC0+cHZzLCBvbGRfbGl2ZV90dXBsZXMsCiAJ CQkJCQkJCQkJCXZhY3JlbC0+bnVtX2luZGV4X3NjYW5zKTsKIAorCQlleHR2YWNfc3RhdHNf ZW5kKHZhY3JlbC0+cmVsLCAmY291bnRlcnMsICZleHRWYWNSZXBvcnQpOworCQlhY2N1bXVs YXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKKwog CQkvKgogCQkgKiBEbyBhIHBvc3RjaGVjayB0byBjb25zaWRlciBhcHBseWluZyB3cmFwYXJv dW5kIGZhaWxzYWZlIG5vdy4gIE5vdGUKIAkJICogdGhhdCBwYXJhbGxlbCBWQUNVVU0gb25s eSBnZXRzIHRoZSBwcmVjaGVjayBhbmQgdGhpcyBwb3N0Y2hlY2suCkBAIC0zMjA1LDEwICsz MzI2LDIwIEBAIGxhenlfY2xlYW51cF9hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwp CiAJfQogCWVsc2UKIAl7CisJCUxWRXh0U3RhdENvdW50ZXJzIGNvdW50ZXJzOworCQlFeHRW YWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCisJCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBz aXplb2YoRXh0VmFjUmVwb3J0KSk7CisKKwkJZXh0dmFjX3N0YXRzX3N0YXJ0KHZhY3JlbC0+ cmVsLCAmY291bnRlcnMpOworCiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFs bGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMo dmFjcmVsLT5wdnMsIHJlbHR1cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhf c2NhbnMsCiAJCQkJCQkJCQkJCWVzdGltYXRlZF9jb3VudCk7CisKKwkJZXh0dmFjX3N0YXRz X2VuZCh2YWNyZWwtPnJlbCwgJmNvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKwkJYWNjdW11 bGF0ZV9pZHhzX3ZhY3V1bV9zdGF0aXN0aWNzKHZhY3JlbCwgJmV4dFZhY1JlcG9ydCk7CiAJ fQogCiAJLyogUmVzZXQgdGhlIHByb2dyZXNzIGNvdW50ZXJzICovCkBAIC0zMjM0LDYgKzMz NjUsMTEgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhC dWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwog CUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4 IGV4dFZhY0NvdW50ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwkvKiBT ZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3Rp Y3MgZm9yIHRoZSBpbmRleCAqLworCWV4dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBp c3RhdCwgJmV4dFZhY0NvdW50ZXJzKTsKIAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlp dmluZm8uaGVhcHJlbCA9IHZhY3JlbC0+cmVsOwpAQCAtMzI1Miw2ICszMzg4LDcgQEAgbGF6 eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICppc3RhdCwKIAkgKi8KIAlBc3NlcnQodmFjcmVsLT5pbmRuYW1lID09IE5VTEwpOwog CXZhY3JlbC0+aW5kbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5k cmVsKSk7CisJdmFjcmVsLT5pbmRvaWQgPSBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCk7CiAJ dXBkYXRlX3ZhY3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvLAogCQkJ CQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0lOREVYLAogCQkJCQkJCSBJbnZhbGlk QmxvY2tOdW1iZXIsIEludmFsaWRPZmZzZXROdW1iZXIpOwpAQCAtMzI2MCw2ICszMzk3LDE5 IEBAIGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqaXN0YXQsCiAJaXN0YXQgPSB2YWNfYnVsa2RlbF9vbmVfaW5kZXgoJml2 aW5mbywgaXN0YXQsIHZhY3JlbC0+ZGVhZF9pdGVtcywKIAkJCQkJCQkJICB2YWNyZWwtPmRl YWRfaXRlbXNfaW5mbyk7CiAKKwlpZihwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3Mp CisJeworCQkvKiBNYWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4 ICovCisJCWV4dHZhY19zdGF0c19lbmRfaWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3Vu dGVycywgJmV4dFZhY1JlcG9ydCk7CisKKwkJaWYgKCFQYXJhbGxlbFZhY3V1bUlzQWN0aXZl KHZhY3JlbCkpCisJCQlhY2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3ModmFjcmVs LCAmZXh0VmFjUmVwb3J0KTsKKworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdl dFJlbGlkKGluZHJlbCksCisJCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwK KwkJCQkJCQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyogUmV2ZXJ0IHRv IHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2ViYWNrICov CiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJfaW5mbyk7 CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKQEAgLTMyODQsNiArMzQzNCwxMSBAQCBsYXp5 X2NsZWFudXBfb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2ZWRFcnJJ bmZvIHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50 ZXJzOworCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisKKwkvKiBTZXQgaW5pdGlhbCBz dGF0aXN0aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBp bmRleCAqLworCWV4dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZh Y0NvdW50ZXJzKTsKIAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uaGVhcHJl bCA9IHZhY3JlbC0+cmVsOwpAQCAtMzMwMywxMiArMzQ1OCwyNSBAQCBsYXp5X2NsZWFudXBf b25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3Rh dCwKIAkgKi8KIAlBc3NlcnQodmFjcmVsLT5pbmRuYW1lID09IE5VTEwpOwogCXZhY3JlbC0+ aW5kbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CisJ dmFjcmVsLT5pbmRvaWQgPSBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCk7CiAJdXBkYXRlX3Zh Y3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvLAogCQkJCQkJCSBWQUNV VU1fRVJSQ0JfUEhBU0VfSU5ERVhfQ0xFQU5VUCwKIAkJCQkJCQkgSW52YWxpZEJsb2NrTnVt YmVyLCBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAogCWlzdGF0ID0gdmFjX2NsZWFudXBfb25l X2luZGV4KCZpdmluZm8sIGlzdGF0KTsKIAorCWlmKHBnc3RhdF90cmFja192YWN1dW1fc3Rh dGlzdGljcykKKwl7CisJCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBm b3IgaW5kZXggKi8KKwkJZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4 dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKwkJaWYgKCFQYXJhbGxlbFZhY3V1bUlz QWN0aXZlKHZhY3JlbCkpCisJCQlhY2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3Mo dmFjcmVsLCAmZXh0VmFjUmVwb3J0KTsKKworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxh dGlvbkdldFJlbGlkKGluZHJlbCksCisJCQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3No YXJlZCwKKwkJCQkJCQkJMCwgMCwgMCwgJmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyogUmV2 ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2Vi YWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJf aW5mbyk7CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbAppbmRleCA0N2QyNzMxNGI1NS4uODNkNTVlNzg2MDYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTE0NTcsMyArMTQ1NywzNSBAQCBG Uk9NIHBnX2NsYXNzIHJlbAogICBKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQgPSBy ZWwucmVsbmFtZXNwYWNlLAogICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMo cmVsLm9pZCkgc3RhdHMKIFdIRVJFIHJlbC5yZWxraW5kID0gJ3InOworCitDUkVBVEUgVklF VyBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIEFTCitTRUxFQ1QKKyAgcmVsLm9pZCBhcyByZWxp ZCwKKyAgbnMubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAorICByZWwucmVsbmFtZSBBUyByZWxu YW1lLAorCisgIHRvdGFsX2Jsa3NfcmVhZCBBUyB0b3RhbF9ibGtzX3JlYWQsCisgIHRvdGFs X2Jsa3NfaGl0IEFTIHRvdGFsX2Jsa3NfaGl0LAorICB0b3RhbF9ibGtzX2RpcnRpZWQgQVMg dG90YWxfYmxrc19kaXJ0aWVkLAorICB0b3RhbF9ibGtzX3dyaXR0ZW4gQVMgdG90YWxfYmxr c193cml0dGVuLAorCisgIHJlbF9ibGtzX3JlYWQgQVMgcmVsX2Jsa3NfcmVhZCwKKyAgcmVs X2Jsa3NfaGl0IEFTIHJlbF9ibGtzX2hpdCwKKworICBwYWdlc19kZWxldGVkIEFTIHBhZ2Vz X2RlbGV0ZWQsCisgIHR1cGxlc19kZWxldGVkIEFTIHR1cGxlc19kZWxldGVkLAorCisgIHdh bF9yZWNvcmRzIEFTIHdhbF9yZWNvcmRzLAorICB3YWxfZnBpIEFTIHdhbF9mcGksCisgIHdh bF9ieXRlcyBBUyB3YWxfYnl0ZXMsCisKKyAgYmxrX3JlYWRfdGltZSBBUyBibGtfcmVhZF90 aW1lLAorICBibGtfd3JpdGVfdGltZSBBUyBibGtfd3JpdGVfdGltZSwKKworICBkZWxheV90 aW1lIEFTIGRlbGF5X3RpbWUsCisgIHRvdGFsX3RpbWUgQVMgdG90YWxfdGltZQorRlJPTQor ICBwZ19jbGFzcyByZWwKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMub2lkID0gcmVs LnJlbG5hbWVzcGFjZSwKKyAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhy ZWwub2lkKSBzdGF0cworV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5k ZXggMmI1NWQ5YjdjMGUuLjY1ZGU0NWE0NDQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTg2OCw2ICs4NjgsOCBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRy ZWwsCiAJSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCA9IE5VTEw7CiAJSW5kZXhCdWxr RGVsZXRlUmVzdWx0ICppc3RhdF9yZXM7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKKwlM VkV4dFN0YXRDb3VudGVyc0lkeCBleHRWYWNDb3VudGVyczsKKwlFeHRWYWNSZXBvcnQgZXh0 VmFjUmVwb3J0OwogCiAJLyoKIAkgKiBVcGRhdGUgdGhlIHBvaW50ZXIgdG8gdGhlIGNvcnJl c3BvbmRpbmcgYnVsay1kZWxldGlvbiByZXN1bHQgaWYgc29tZW9uZQpAQCAtODc2LDYgKzg3 OCw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1 bVN0YXRlICpwdnMsIFJlbGF0aW9uIGluZHJlbCwKIAlpZiAoaW5kc3RhdHMtPmlzdGF0X3Vw ZGF0ZWQpCiAJCWlzdGF0ID0gJihpbmRzdGF0cy0+aXN0YXQpOwogCisJLyogU2V0IGluaXRp YWwgc3RhdGlzdGljcyB2YWx1ZXMgdG8gZ2F0aGVyIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0 aGUgaW5kZXggKi8KKwlleHR2YWNfc3RhdHNfc3RhcnRfaWR4KGluZHJlbCwgJihpbmRzdGF0 cy0+aXN0YXQpLCAmZXh0VmFjQ291bnRlcnMpOworCiAJaXZpbmZvLmluZGV4ID0gaW5kcmVs OwogCWl2aW5mby5oZWFwcmVsID0gcHZzLT5oZWFwcmVsOwogCWl2aW5mby5hbmFseXplX29u bHkgPSBmYWxzZTsKQEAgLTkwNCw2ICs5MDksMTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nl c3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVs LAogCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShpbmRyZWwpKTsKIAl9CiAKKwlpZihw Z3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJeworCQkvKiBNYWtlIGV4dGVuZGVk IHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJCWV4dHZhY19zdGF0c19lbmRf aWR4KGluZHJlbCwgaXN0YXRfcmVzLCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNSZXBvcnQp OworCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bShSZWxhdGlvbkdldFJlbGlkKGluZHJlbCksCisJ CQkJCQkJCWluZHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCwKKwkJCQkJCQkJMCwgMCwgMCwg JmV4dFZhY1JlcG9ydCk7CisJfQorCiAJLyoKIAkgKiBDb3B5IHRoZSBpbmRleCBidWxrLWRl bGV0aW9uIHJlc3VsdCByZXR1cm5lZCBmcm9tIGFtYnVsa2RlbGV0ZSBhbmQKIAkgKiBhbXZh Y3V1bWNsZWFudXAgdG8gdGhlIERTTSBzZWdtZW50IGlmIGl0J3MgdGhlIGZpcnN0IGN5Y2xl IGJlY2F1c2UgdGhleQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCAy M2NiNjJlMzZhNy4uZjVmNzVhYTQyNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdC5jCkBAIC0xMTc2LDYgKzExNzYsMTAgQEAgcGdzdGF0X2J1aWxkX3NuYXBzaG90KFBn U3RhdF9LaW5kIHN0YXRLaW5kKQogCQlpZiAocC0+ZHJvcHBlZCkKIAkJCWNvbnRpbnVlOwog CisJCWlmIChzdGF0S2luZCAhPSBQR1NUQVRfS0lORF9JTlZBTElEICYmIHN0YXRLaW5kICE9 IHAtPmtleS5raW5kKQorCQkJLyogTG9hZCBzdGF0IG9mIHNwZWNpZmljIHR5cGUsIGlmIGRl ZmluZWQgKi8KKwkJCWNvbnRpbnVlOworCiAJCUFzc2VydChwZ19hdG9taWNfcmVhZF91MzIo JnAtPnJlZmNvdW50KSA+IDApOwogCiAJCXN0YXRzX2RhdGEgPSBkc2FfZ2V0X2FkZHJlc3Mo cGdTdGF0TG9jYWwuZHNhLCBwLT5ib2R5KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5kZXggZWUwMzg1Y2Q4MDkuLjllZTAzNTA5NDkw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRp b24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24u YwpAQCAtMTAxNiw2ICsxMDE2LDkgQEAgc3RhdGljIHZvaWQKIHBnc3RhdF9hY2N1bXVsYXRl X2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0VmFjUmVwb3J0ICpzcmMsCiAJ CQkJCQkJICAgYm9vbCBhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKIHsKKwlp ZighcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKIAlkc3Qt PnRvdGFsX2Jsa3NfcmVhZCArPSBzcmMtPnRvdGFsX2Jsa3NfcmVhZDsKIAlkc3QtPnRvdGFs X2Jsa3NfaGl0ICs9IHNyYy0+dG90YWxfYmxrc19oaXQ7CiAJZHN0LT50b3RhbF9ibGtzX2Rp cnRpZWQgKz0gc3JjLT50b3RhbF9ibGtzX2RpcnRpZWQ7CkBAIC0xMDMxLDIwICsxMDM0LDM1 IEBAIHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwg RXh0VmFjUmVwb3J0ICpzcmMsCiAJaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNf aW5mbykKIAkJcmV0dXJuOwogCi0JZHN0LT5ibGtzX2ZldGNoZWQgKz0gc3JjLT5ibGtzX2Zl dGNoZWQ7Ci0JZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OwotCi0JZHN0LT5wYWdl c19zY2FubmVkICs9IHNyYy0+cGFnZXNfc2Nhbm5lZDsKLQlkc3QtPnBhZ2VzX3JlbW92ZWQg Kz0gc3JjLT5wYWdlc19yZW1vdmVkOwotCWRzdC0+dm1fbmV3X2Zyb3plbl9wYWdlcyArPSBz cmMtPnZtX25ld19mcm96ZW5fcGFnZXM7Ci0JZHN0LT52bV9uZXdfdmlzaWJsZV9wYWdlcyAr PSBzcmMtPnZtX25ld192aXNpYmxlX3BhZ2VzOwotCWRzdC0+dm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzICs9IHNyYy0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwotCWRzdC0+ dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKLQlkc3QtPnR1cGxlc19m cm96ZW4gKz0gc3JjLT50dXBsZXNfZnJvemVuOwotCWRzdC0+cmVjZW50bHlfZGVhZF90dXBs ZXMgKz0gc3JjLT5yZWNlbnRseV9kZWFkX3R1cGxlczsKLQlkc3QtPmluZGV4X3ZhY3V1bV9j b3VudCArPSBzcmMtPmluZGV4X3ZhY3V1bV9jb3VudDsKLQlkc3QtPndyYXBhcm91bmRfZmFp bHNhZmVfY291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwotCWRzdC0+ bWlzc2VkX2RlYWRfcGFnZXMgKz0gc3JjLT5taXNzZWRfZGVhZF9wYWdlczsKLQlkc3QtPm1p c3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPm1pc3NlZF9kZWFkX3R1cGxlczsKKwlpZiAoZHN0 LT50eXBlID09IFBHU1RBVF9FWFRWQUNfSU5WQUxJRCkKKwkJZHN0LT50eXBlID0gc3JjLT50 eXBlOworCisJQXNzZXJ0KHNyYy0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFMSUQgfHwg c3JjLT50eXBlID09IGRzdC0+dHlwZSk7CisKKwlpZiAoZHN0LT50eXBlID09IHNyYy0+dHlw ZSkKKwl7CisJCWRzdC0+Ymxrc19mZXRjaGVkICs9IHNyYy0+Ymxrc19mZXRjaGVkOworCQlk c3QtPmJsa3NfaGl0ICs9IHNyYy0+Ymxrc19oaXQ7CiAKKwkJaWYgKGRzdC0+dHlwZSA9PSBQ R1NUQVRfRVhUVkFDX1RBQkxFKQorCQl7CisJCQlkc3QtPnRhYmxlLnBhZ2VzX3NjYW5uZWQg Kz0gc3JjLT50YWJsZS5wYWdlc19zY2FubmVkOworCQkJZHN0LT50YWJsZS5wYWdlc19yZW1v dmVkICs9IHNyYy0+dGFibGUucGFnZXNfcmVtb3ZlZDsKKwkJCWRzdC0+dGFibGUudm1fbmV3 X2Zyb3plbl9wYWdlcyArPSBzcmMtPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXM7CisJCQlk c3QtPnRhYmxlLnZtX25ld192aXNpYmxlX3BhZ2VzICs9IHNyYy0+dGFibGUudm1fbmV3X3Zp c2libGVfcGFnZXM7CisJCQlkc3QtPnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cyArPSBzcmMtPnRhYmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKKwkJCWRzdC0+ dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwkJCWRzdC0+dGFibGUu dHVwbGVzX2Zyb3plbiArPSBzcmMtPnRhYmxlLnR1cGxlc19mcm96ZW47CisJCQlkc3QtPnRh YmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzICs9IHNyYy0+dGFibGUucmVjZW50bHlfZGVhZF90 dXBsZXM7CisJCQlkc3QtPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudCArPSBzcmMtPnRhYmxl LmluZGV4X3ZhY3V1bV9jb3VudDsKKwkJCWRzdC0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMg Kz0gc3JjLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlczsKKwkJCWRzdC0+dGFibGUubWlzc2Vk X2RlYWRfdHVwbGVzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzOworCQkJZHN0 LT50YWJsZS53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ICs9IHNyYy0+dGFibGUud3JhcGFy b3VuZF9mYWlsc2FmZV9jb3VudDsKKwkJfQorCQllbHNlIGlmIChkc3QtPnR5cGUgPT0gUEdT VEFUX0VYVFZBQ19JTkRFWCkKKwkJeworCQkJZHN0LT5pbmRleC5wYWdlc19kZWxldGVkICs9 IHNyYy0+aW5kZXgucGFnZXNfZGVsZXRlZDsKKwkJCWRzdC0+dHVwbGVzX2RlbGV0ZWQgKz0g c3JjLT50dXBsZXNfZGVsZXRlZDsKKwkJfQorCX0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IGE1NjEwMTk5 ODkzLi40ODI5MjliNzVlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK QEAgLTIzNzIsMTggKzIzNzIsMTkgQEAgcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyhQR19G VU5DVElPTl9BUkdTKQogCQkJCQkJCQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7CiAJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19oaXQpOwogCi0JdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfc2Nhbm5lZCk7Ci0JdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+cGFnZXNfcmVtb3ZlZCk7Ci0J dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3X2Zyb3plbl9w YWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dm1fbmV3 X3Zpc2libGVfcGFnZXMpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+bWlzc2VkX2RlYWRfcGFnZXMpOworCXZhbHVlc1tpKytd ID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnBhZ2VzX3NjYW5uZWQpOworCXZh bHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnBhZ2VzX3JlbW92 ZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnZt X25ld19mcm96ZW5fcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRhYmxlLnZtX25ld192aXNpYmxlX3BhZ2VzKTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLm1p c3NlZF9kZWFkX3BhZ2VzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFj dXVtLT50dXBsZXNfZGVsZXRlZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+dHVwbGVzX2Zyb3plbik7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+cmVjZW50bHlfZGVhZF90dXBsZXMpOwotCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPm1pc3NlZF9kZWFkX3R1cGxlcyk7Ci0JdmFsdWVzW2kr K10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3Vu dCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+aW5kZXhfdmFj dXVtX2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 YWJsZS50dXBsZXNfZnJvemVuKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlcyk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzKTsKKwor CXZhbHVlc1tpKytdID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLndyYXBhcm91 bmRfZmFpbHNhZmVfY291bnQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudCk7CiAKIAl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7CiAJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CkBAIC0yNDAyLDYgKzI0MDMsMTE2 IEBAIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCUFz c2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyk7CiAKKwkv KiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0gKi8KKwlQR19SRVRVUk5fREFUVU0oSGVh cFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMp KSk7Cit9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaGVh cCB0YWJsZXMuCisgKi8KK0RhdHVtCitwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyhQR19G VU5DVElPTl9BUkdTKQoreworCSNkZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NU QVRTX0NPTFMJMTYKKworCU9pZAkJCQkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlQ Z1N0YXRfU3RhdFRhYkVudHJ5ICAgICAqdGFiZW50cnk7CisJRXh0VmFjUmVwb3J0IAkJCSpl eHR2YWN1dW07CisJVHVwbGVEZXNjCQkJCSB0dXBkZXNjOworCURhdHVtCQkJCQkgdmFsdWVz W1BHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKKwlib29sCQkJ CQkgbnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0gezB9Owor CWNoYXIJCQkJCSBidWZbMjU2XTsKKwlpbnQJCQkJCQkgaSA9IDA7CisJRXh0VmFjUmVwb3J0 IGFsbHplcm87CisKKwkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4g dGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBs ZURlc2MoUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOworCisJVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIsCisJCQkJ CSAgIElOVDRPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInRvdGFsXyBibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ0b3RhbF9ibGtzX2hpdCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGly dGllZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCisJCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInJlbF9ibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJy ZWxfYmxrc19oaXQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdlc19kZWxldGVkIiwKKwkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAidHVwbGVzX2RlbGV0ZWQiLAorCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ3YWxfcmVjb3JkcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAorCQkJCQkg ICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSArK2ksICJ3YWxfYnl0ZXMiLAorCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7 CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJs a19yZWFkX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwK KwkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7CisKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImRlbGF5X3RpbWUiLAorCQkJCQkgICBGTE9BVDhP SUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp ICsraSwgInRvdGFsX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCUFz c2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTKTsKKworCUJs ZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworCisJdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3Rh dF90YWJlbnRyeShyZWxpZCk7CisKKwlpZiAodGFiZW50cnkgPT0gTlVMTCkKKwl7CisJCS8q IElmIHRoZSBzdWJzY3JpcHRpb24gaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0 cyAqLworCQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJ ZXh0dmFjdXVtID0gJmFsbHplcm87CisJfQorCWVsc2UKKwl7CisJCWV4dHZhY3V1bSA9ICYo dGFiZW50cnktPnZhY3V1bV9leHQpOworCX0KKworCWkgPSAwOworCisJdmFsdWVzW2krK10g PSBPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfZGlydGllZCk7CisJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc193cml0dGVuKTsK KworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmJsa3NfZmV0Y2hl ZCAtCisJCQkJCQkJCQlleHR2YWN1dW0tPmJsa3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2hpdCk7CisKKwl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5pbmRleC5wYWdlc19kZWxldGVkKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNfZGVsZXRlZCk7CisKKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7CisJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CisKKwkv KiBDb252ZXJ0IHRvIG51bWVyaWMsIGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCisJc25w cmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9i eXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNfaW4s CisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShidWYpLAorCQkJCQkJCQkJICBPYmplY3RJ ZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CisKKwl2YWx1 ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+YmxrX3JlYWRfdGltZSk7CisJ dmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa193cml0ZV90aW1l KTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ZGVsYXlfdGlt ZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX3Rp bWUpOworCisJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NP TFMpOworCiAJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVtICovCiAJUEdfUkVUVVJO X0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1 ZXMsIG51bGxzKSkpOwogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMTE1ZjBjNTFjYzIuLjQyZjRjYWM1ZTBl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTUxMCw3ICsxNTEw LDcgQEAgc3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAl9LAog CXsKIAkJeyJ0cmFja192YWN1dW1fc3RhdGlzdGljcyIsIFBHQ19TVVNFVCwgU1RBVFNfQ1VN VUxBVElWRSwKLQkJCWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdmFjdXVtIHN0YXRpc3RpY3Mg Zm9yIHRhYmxlIHJlbGF0aW9ucy4iKSwKKwkJCWdldHRleHRfbm9vcCgiQ29sbGVjdHMgdmFj dXVtIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9ucy4iKSwKIAkJCU5VTEwKIAkJfSwKIAkJJnBn c3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IGMwNGQzODgwMjQxLi44Yzc3YWU5NjEwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CkBAIC0xMjU3NCw0ICsxMjU3NCwxMyBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0 X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJv cGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4g J29pZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMn IH0sCit7IG9pZCA9PiAnODAwNCcsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1f aW5kZXhlcyByZXR1cm4gc3RhdHMgdmFsdWVzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9n ZXRfdmFjdXVtX2luZGV4ZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3Jl dHNldCA9PiAndCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9hbGxhcmd0eXBl cyA9PiAne29pZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4 LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAorICBw cm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAor ICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90YWxf Ymxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxfYmxr c19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLHdhbF9y ZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUs ZGVsYXlfdGltZSx0b3RhbF90aW1lfScsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdmFj dXVtX2luZGV4ZXMnIH0KIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggNmQxYjI5OTFj ZTUuLmZiMTM0ZjM0MDJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1 dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMjUsNiArMjUs NyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvYnVmLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2Nr LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIK IAogLyoKICAqIEZsYWdzIGZvciBhbXBhcmFsbGVsdmFjdXVtb3B0aW9ucyB0byBjb250cm9s IHRoZSBwYXJ0aWNpcGF0aW9uIG9mIGJ1bGtkZWxldGUKQEAgLTI5NSw2ICsyOTYsMjYgQEAg dHlwZWRlZiBzdHJ1Y3QgVmFjRGVhZEl0ZW1zSW5mbwogCWludDY0CQludW1faXRlbXM7CQkv KiBjdXJyZW50ICMgb2YgZW50cmllcyAqLwogfSBWYWNEZWFkSXRlbXNJbmZvOwogCisvKgor ICogQ291bnRlcnMgYW5kIHVzYWdlIGRhdGEgZm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5n LgorICovCit0eXBlZGVmIHN0cnVjdCBMVkV4dFN0YXRDb3VudGVycworeworCVRpbWVzdGFt cFR6IHN0YXJ0dGltZTsKKwlXYWxVc2FnZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1 c2FnZTsKKwlkb3VibGUJCVZhY3V1bURlbGF5VGltZTsKKwlQZ1N0YXRfQ291bnRlciBibG9j a3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworfSBMVkV4dFN0YXRD b3VudGVyczsKKwordHlwZWRlZiBzdHJ1Y3QgTFZFeHRTdGF0Q291bnRlcnNJZHgKK3sKKwlM VkV4dFN0YXRDb3VudGVycyBjb21tb247CisJaW50NjQJCXBhZ2VzX2RlbGV0ZWQ7CisJaW50 NjQJCXR1cGxlc19yZW1vdmVkOworfSBMVkV4dFN0YXRDb3VudGVyc0lkeDsKKwogLyogR1VD IHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgZGVmYXVsdF9zdGF0aXN0 aWNzX3RhcmdldDsJLyogUEdETExJTVBPUlQgZm9yIFBvc3RHSVMgKi8KIGV4dGVybiBQR0RM TElNUE9SVCBpbnQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOwpAQCAtNDA4LDQgKzQyOSw4IEBA IGV4dGVybiBkb3VibGUgYW5sX3JhbmRvbV9mcmFjdCh2b2lkKTsKIGV4dGVybiBkb3VibGUg YW5sX2luaXRfc2VsZWN0aW9uX3N0YXRlKGludCBuKTsKIGV4dGVybiBkb3VibGUgYW5sX2dl dF9uZXh0X1MoZG91YmxlIHQsIGludCBuLCBkb3VibGUgKnN0YXRlcHRyKTsKIAorZXh0ZXJu IHZvaWQgZXh0dmFjX3N0YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0Rl bGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3Vu dGVycyk7CitleHRlcm4gdm9pZCBleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWws IEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVy c0lkeCAqY291bnRlcnMsIEV4dFZhY1JlcG9ydCAqcmVwb3J0KTsKICNlbmRpZgkJCQkJCQkv KiBWQUNVVU1fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMv aW5jbHVkZS9wZ3N0YXQuaAppbmRleCA2Yzg4ZDU3YWVmNy4uNGRlZjJjNjBkMWQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5o CkBAIC0xMTEsMTEgKzExMSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1 YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1RfTlVNX1RZ UEVTXTsKIH0gUGdTdGF0X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogVHlwZSBvZiBFeHRWYWNS ZXBvcnQgKi8KK3R5cGVkZWYgZW51bSBFeHRWYWNSZXBvcnRUeXBlCit7CisJUEdTVEFUX0VY VFZBQ19JTlZBTElEID0gMCwKKwlQR1NUQVRfRVhUVkFDX1RBQkxFID0gMSwKKwlQR1NUQVRf RVhUVkFDX0lOREVYID0gMgorfSBFeHRWYWNSZXBvcnRUeXBlOworCiAvKiAtLS0tLS0tLS0t CiAgKgogICogRXh0VmFjUmVwb3J0CiAgKgotICogQWRkaXRpb25hbCBzdGF0aXN0aWNzIG9m IHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSBoZWFwIHJlbGF0aW9uLgorICogQWRkaXRpb25h bCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSByZWxhdGlvbi4KICAq IHBhZ2VzX3JlbW92ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBz aHJhbmssCiAgKiBpZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24g ZGlzaykKICAqIHBhZ2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhl IGluZGV4IGZpbGUKQEAgLTE0NCwxOCArMTUyLDQ0IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZh Y1JlcG9ydAogCWRvdWJsZQkJZGVsYXlfdGltZTsJCS8qIGhvdyBsb25nIHZhY3V1bSBzbGVw dCBpbiB2YWN1dW0gZGVsYXkgcG9pbnQsIGluIG1zZWMgKi8KIAlkb3VibGUJCXRvdGFsX3Rp bWU7CQkvKiB0b3RhbCB0aW1lIG9mIGEgdmFjdXVtIG9wZXJhdGlvbiwgaW4gbXNlYyAqLwog Ci0JaW50NjQJCXBhZ2VzX3NjYW5uZWQ7CQkvKiBoZWFwIHBhZ2VzIGV4YW1pbmVkIChub3Qg c2tpcHBlZCBieSBWTSkgKi8KLQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8qIGhlYXAgcGFn ZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCi0JaW50NjQJCXZtX25ld19m cm96ZW5fcGFnZXM7CQkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgZnJvemVuICovCi0JaW50 NjQJCXZtX25ld192aXNpYmxlX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxs LXZpc2libGUgKi8KLQlpbnQ2NAkJdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkvKiBw YWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUgYW5kIGZyb3plbiAqLwotCWludDY0 CQltaXNzZWRfZGVhZF90dXBsZXM7CQkvKiB0dXBsZXMgbm90IHBydW5lZCBieSB2YWN1dW0g ZHVlIHRvIGZhaWx1cmUgdG8gZ2V0IGEgY2xlYW51cCBsb2NrICovCi0JaW50NjQJCW1pc3Nl ZF9kZWFkX3BhZ2VzOwkJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVhZCB0dXBsZXMgKi8KIAlp bnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7CQkvKiB0dXBsZXMgZGVsZXRlZCBieSB2YWN1dW0gKi8K LQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBmcm96ZW4gdXAgYnkgdmFjdXVt ICovCi0JaW50NjQJCXJlY2VudGx5X2RlYWRfdHVwbGVzOwkvKiBkZWxldGVkIHR1cGxlcyB0 aGF0IGFyZSBzdGlsbCB2aXNpYmxlIHRvIHNvbWUgdHJhbnNhY3Rpb24gKi8KLQlpbnQ2NAkJ aW5kZXhfdmFjdXVtX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9mIGluZGV4IHZhY3V1bWluZ3Mg Ki8KLQlpbnQzMgkJd3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsJLyogbnVtYmVyIG9mIGVt ZXJnZW5jeSB2YWN1dW1zIHRvIHByZXZlbnQgYW50aS13cmFwYXJvdW5kIHNodXRkb3duICov CisKKwlFeHRWYWNSZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLwor CisJLyogLS0tLS0tLS0tLQorCSAqCisJICogVGhlcmUgYXJlIHNlcGFyYXRlIG1ldHJpY3Mg b2Ygc3RhdGlzdGljIGZvciB0YWJsZXMgYW5kIGluZGV4ZXMsCisJICogd2hpY2ggY29sbGVj dCBkdXJpbmcgdmFjdXVtLgorCSAqIFRoZSB1bmlvbiBvcGVyYXRvciBhbGxvd3MgdG8gY29t YmluZSB0aGVzZSBzdGF0aXN0aWNzCisJICogc28gdGhhdCBlYWNoIG1ldHJpYyBpcyBhc3Np Z25lZCB0byBhIHNwZWNpZmljIGNsYXNzIG9mIGNvbGxlY3RlZCBzdGF0aXN0aWNzLgorCSAq IFN1Y2ggYSBjb21iaW5lZCBzdHJ1Y3R1cmUgd2FzIGNhbGxlZCBwZXJfdHlwZV9zdGF0cy4K KwkgKiBUaGUgbmFtZSBvZiB0aGUgc3RydWN0dXJlIGl0c2VsZiBpcyBub3QgdXNlZCBhbnl3 aGVyZSwKKwkgKiBpdCBleGlzdHMgb25seSBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29kZS4K KwkgKiAtLS0tLS0tLS0tCisJKi8KKwl1bmlvbgorCXsKKwkJc3RydWN0CisJCXsKKwkJCWlu dDY0CQlwYWdlc19zY2FubmVkOwkJLyogaGVhcCBwYWdlcyBleGFtaW5lZCAobm90IHNraXBw ZWQgYnkgVk0pICovCisJCQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8qIGhlYXAgcGFnZXMg cmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCisJCQlpbnQ2NAkJcGFnZXNfZnJv emVuOwkJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGZyb3plbiAqLworCQkJaW50NjQJCXBh Z2VzX2FsbF92aXNpYmxlOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUg Ki8KKwkJCWludDY0CQl0dXBsZXNfZnJvemVuOwkJLyogdHVwbGVzIGZyb3plbiB1cCBieSB2 YWN1dW0gKi8KKwkJCWludDY0CQlyZWNlbnRseV9kZWFkX3R1cGxlczsJLyogZGVsZXRlZCB0 dXBsZXMgdGhhdCBhcmUgc3RpbGwgdmlzaWJsZSB0byBzb21lIHRyYW5zYWN0aW9uICovCisJ CQlpbnQ2NAkJdm1fbmV3X2Zyb3plbl9wYWdlczsJCS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBh cyBmcm96ZW4gKi8KKwkJCWludDY0CQl2bV9uZXdfdmlzaWJsZV9wYWdlczsJLyogcGFnZXMg bWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICovCisJCQlpbnQ2NAkJdm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMgYWxsLXZpc2libGUg YW5kIGZyb3plbiAqLworCQkJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsJCS8qIHR1cGxl cyBub3QgcHJ1bmVkIGJ5IHZhY3V1bSBkdWUgdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVw IGxvY2sgKi8KKwkJCWludDY0CQltaXNzZWRfZGVhZF9wYWdlczsJCS8qIHBhZ2VzIHdpdGgg bWlzc2VkIGRlYWQgdHVwbGVzICovCisJCQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50Owkv KiBudW1iZXIgb2YgaW5kZXggdmFjdXVtaW5ncyAqLworCQkJaW50MzIJCXdyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQ7CS8qIG51bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0byBwcmV2 ZW50IGFudGktd3JhcGFyb3VuZCBzaHV0ZG93biAqLworCQl9CQkJdGFibGU7CisJCXN0cnVj dAorCQl7CisJCQlpbnQ2NAkJcGFnZXNfZGVsZXRlZDsJCS8qIG51bWJlciBvZiBwYWdlcyBk ZWxldGVkIGJ5IHZhY3V1bSAqLworCQl9CQkJaW5kZXg7CisJfSAvKiBwZXJfdHlwZV9zdGF0 cyAqLzsKIH0gRXh0VmFjUmVwb3J0OwogCiAvKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFi bGUtcmVhZC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVu ZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKaW5kZXggODdmN2U0MGI0YTYuLjZkOTYwNDIz OTEyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4 dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0CkBAIC0z NCw3ICszNCw3IEBAIHN0ZXAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlOgogCiByZWxu YW1lICAgICAgICAgICAgICAgICAgIHx0dXBsZXNfZGVsZXRlZHxyZWNlbnRseV9kZWFkX3R1 cGxlc3xtaXNzZWRfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfcGFnZXN8dHVwbGVzX2Zyb3pl bgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KLXRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9ufCAgICAgICAgICAgICAwfCAg ICAgICAgICAgICAgICAgMTAwfCAgICAgICAgICAgICAgICAgMHwgICAgICAgICAgICAgICAg MHwgICAgICAgICAgICAwCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAgICAg ICAgMHwgICAgICAgICAgICAgICAgIDYwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAgICAg ICAgICAgIDB8ICAgICAgICAgICAgMAogKDEgcm93KQogCiBzdGVwIHMxX2NvbW1pdDogQ09N TUlUOwpAQCAtNDgsNiArNDgsNiBAQCBzdGVwIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJs ZToKIAogcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2RlbGV0ZWR8cmVjZW50 bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3BhZ2VzfHR1 cGxlc19mcm96ZW4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi10ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbnwgICAgICAg ICAgIDEwMHwgICAgICAgICAgICAgICAgIDEwMHwgICAgICAgICAgICAgICAgIDB8ICAgICAg ICAgICAgICAgIDB8ICAgICAgICAgIDEwMQordGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb258 ICAgICAgICAgICAzMDB8ICAgICAgICAgICAgICAgICA2MDB8ICAgICAgICAgICAgICAgICAw fCAgICAgICAgICAgICAgICAwfCAgICAgICAgICAzMDMKICgxIHJvdykKIApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCAxMGE0ODJlMmRiNC4uNGU1ZTVjYTU0ZGEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjgzLDYgKzIyODMs MjggQEAgcGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHJldl9hbGxf dmlzaWJsZV9wYWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChz Y2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRp b25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRl eHQpKTsKK3BnX3N0YXRfdmFjdXVtX2luZGV4ZXN8IFNFTEVDVCByZWwub2lkIEFTIHJlbGlk LAorICAgIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKKyAgICByZWwucmVsbmFtZSwKKyAg ICBzdGF0cy50b3RhbF9ibGtzX3JlYWQsCisgICAgc3RhdHMudG90YWxfYmxrc19oaXQsCisg ICAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkLAorICAgIHN0YXRzLnRvdGFsX2Jsa3Nfd3Jp dHRlbiwKKyAgICBzdGF0cy5yZWxfYmxrc19yZWFkLAorICAgIHN0YXRzLnJlbF9ibGtzX2hp dCwKKyAgICBzdGF0cy5wYWdlc19kZWxldGVkLAorICAgIHN0YXRzLnR1cGxlc19kZWxldGVk LAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAgIHN0YXRzLndhbF9mcGksCisgICAgc3Rh dHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19yZWFkX3RpbWUsCisgICAgc3RhdHMuYmxr X3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlfdGltZSwKKyAgICBzdGF0cy50b3RhbF90 aW1lCisgICBGUk9NIChwZ19jbGFzcyByZWwKKyAgICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMg T04gKChucy5vaWQgPSByZWwucmVsbmFtZXNwYWNlKSkpLAorICAgIExBVEVSQUwgcGdfc3Rh dF9nZXRfdmFjdXVtX2luZGV4ZXMocmVsLm9pZCkgc3RhdHMocmVsaWQsIHRvdGFsX2Jsa3Nf cmVhZCwgdG90YWxfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90YWxfYmxrc193 cml0dGVuLCByZWxfYmxrc19yZWFkLCByZWxfYmxrc19oaXQsIHBhZ2VzX2RlbGV0ZWQsIHR1 cGxlc19kZWxldGVkLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtfcmVh ZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSkKKyAgV0hF UkUgKHJlbC5yZWxraW5kID0gJ2knOjoiY2hhciIpOwogcGdfc3RhdF92YWN1dW1fdGFibGVz fCBTRUxFQ1QgbnMubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIHJlbC5yZWxuYW1lLAog ICAgIHN0YXRzLnJlbGlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZTAwYTBmYzY4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dApAQCAt MCwwICsxLDE4MyBAQAorLS0KKy0tIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3RhdHMgc3lz dGVtCistLQorLS0gQ2hlY2sgdGhlIHdhbGwgc3RhdGlzdGljcyBjb2xsZWN0ZWQgZHVyaW5n IHZhY3V1bSBvcGVyYXRpb246CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxlIHBh Z2VzIHNldCBieSB2YWN1dW07CistLSBudW1iZXIgb2YgZnJvemVuIGFuZCB2aXNpYmxlIHBh Z2VzIHJlbW92ZWQgYnkgYmFja2VuZC4KKy0tIFN0YXRpc3RpYyB3YWxfZnBpIGlzIG5vdCBk aXNwbGF5ZWQgaW4gdGhpcyB0ZXN0IGJlY2F1c2UgaXRzIGJlaGF2aW9yIGlzIHVuc3RhYmxl LgorLS0KKy0tIGNvbmRpdGlvIHNpbmUgcXVhIG5vbgorU0hPVyB0cmFja19jb3VudHM7ICAt LSBtdXN0IGJlIG9uCisgdHJhY2tfY291bnRzIAorLS0tLS0tLS0tLS0tLS0KKyBvbgorKDEg cm93KQorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCistLSBub3QgZW5hYmxlZCBieSBkZWZh dWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVuY3Rpb25zIFRP ICdhbGwnOworLS0gVGVzdCB0aGF0IHZhY3V1bSBzdGF0aXN0aWNzIHdpbGwgYmUgZW1wdHkg d2hlbiBwYXJhbWV0ZXIgaXMgb2ZmLgorU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRP ICdvZmYnOworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1f ZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FO QUxZWkUgdmVzdGF0OworREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKK1ZB Q1VVTSAoUEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworLS0g TXVzdCBiZSBlbXB0eS4KK1NFTEVDVCAqCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg dnQKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKKyByZWxpZCB8IHNjaGVtYW5hbWUg fCByZWxuYW1lIHwgdG90YWxfYmxrc19yZWFkIHwgdG90YWxfYmxrc19oaXQgfCB0b3RhbF9i bGtzX2RpcnRpZWQgfCB0b3RhbF9ibGtzX3dyaXR0ZW4gfCByZWxfYmxrc19yZWFkIHwgcmVs X2Jsa3NfaGl0IHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIHwgd2FsX3JlY29y ZHMgfCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgYmxrX3JlYWRfdGltZSB8IGJsa193cml0ZV90 aW1lIHwgZGVsYXlfdGltZSB8IHRvdGFsX3RpbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKworUkVTRVQgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3M7CitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworU0hPVyB0 cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KKyB0cmFja192YWN1dW1f c3RhdGlzdGljcyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBvbgorKDEgcm93KQor CistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRf Zm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1xzZXQgc2FtcGxlX3NpemUg MTAwMDAKK1NFVCB2YWN1dW1fZnJlZXplX21pbl9hZ2UgPSAwOworU0VUIHZhY3V1bV9mcmVl emVfdGFibGVfYWdlID0gMDsKKy0tU0VUIHN0YXRzX2ZldGNoX2NvbnNpc3RlbmN5ID0gc25h cHNob3Q7CitDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCBwcmltYXJ5IGtleSkgV0lUSCAo YXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBmaWxsZmFjdG9yID0gMTApOworSU5TRVJUIElO VE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXpl KSBhcyB4OworQU5BTFlaRSB2ZXN0YXQ7CitTRUxFQ1Qgb2lkIEFTIGlvaWQgZnJvbSBwZ19j bGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorREVMRVRFIEZST00g dmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0tIEJlZm9yZSB0aGUgZmlyc3QgdmFjdXVtIGV4 ZWN1dGlvbiBleHRlbmRlZCBzdGF0cyB2aWV3IGlzIGVtcHR5LgorU0VMRUNUIHZ0LnJlbG5h bWUscmVscGFnZXMscGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0 X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zl c3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBh Z2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3Br ZXkgfCAgICAgICAzMCB8ICAgICAgICAgICAgIDAgfCAgICAgICAgICAgICAgMAorKDEgcm93 KQorCitTRUxFQ1QgcmVscGFnZXMgQVMgaXJwCitGUk9NIHBnX2NsYXNzIGMKK1dIRVJFIHJl bG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZF Ul9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlz IG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7Cist LSBUaGUgdGFibGUgYW5kIGluZGV4IGV4dGVuZGVkIHZhY3V1bSBzdGF0aXN0aWNzIHNob3Vs ZCBzaG93IHVzIHRoYXQKKy0tIHZhY3V1bSBmcm96ZWQgcGFnZXMgYW5kIGNsZWFuIHVwIHBh Z2VzLCBidXQgcGFnZXNfcmVtb3ZlZCBzdGF5ZWQgdGhlIHNhbWUKKy0tIGJlY2F1c2Ugb2Yg bm90IGZ1bGwgdGFibGUgaGF2ZSBjbGVhbmVkIHVwCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxw YWdlcy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkID0gMCBBUyBwYWdlc19k ZWxldGVkLHR1cGxlc19kZWxldGVkID4gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJl bHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0 X3BrZXkgfCB0ICAgICAgICB8IHQgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVD VCB2dC5yZWxuYW1lLHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBs ZXNfZGVsZXRlZCBBUyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdf Y2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlk ID0gYy5vaWQgXGdzZXQKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcwor U0VMRUNUIHdhbF9yZWNvcmRzIEFTIGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMg aWZwaSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgXGdzZXQKKy0tIExvb2sgaW50byBXQUwgcmVjb3JkcyBkZWx0YXMuCitTRUxF Q1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRpV1IsIHdhbF9ieXRlcyA+IDAgQVMgZGlXQgorRlJP TSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXkn OworIGRpd3IgfCBkaXdiIAorLS0tLS0tKy0tLS0tLQorIHQgICAgfCB0CisoMSByb3cpCisK K0RFTEVURSBGUk9NIHZlc3RhdDs7CitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FH RV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vz c2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CistLSBwYWdl c19yZW1vdmVkIG11c3QgYmUgaW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdl cy06aXJwID0gMCBBUyByZWxwYWdlcyxwYWdlc19kZWxldGVkLTppcGQgPiAwIEFTIHBhZ2Vz X2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQtOml0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZS T00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVs bmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisgICByZWxuYW1l ICAgfCByZWxwYWdlcyB8IHBhZ2VzX2RlbGV0ZWQgfCB0dXBsZXNfZGVsZXRlZCAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQor IHZlc3RhdF9wa2V5IHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDEgcm93KQor CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBBUyBpcnAscGFnZXNfZGVsZXRlZCBBUyBp cGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMg dnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2 dC5yZWxpZCA9IGMub2lkIFxnc2V0CistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJp YWJsZXMKK1NFTEVDVCB3YWxfcmVjb3Jkcy06aXdyIEFTIGRpd3IsIHdhbF9ieXRlcy06aXdi IEFTIGRpd2IsIHdhbF9mcGktOmlmcGkgQVMgZGlmcGkKK0ZST00gcGdfc3RhdF92YWN1dW1f aW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorLS0gV0FMIGFk dmFuY2Ugc2hvdWxkIGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyID4gMCBBUyBkaVdSLCA6 ZGl3YiA+IDAgQVMgZGlXQjsKKyBkaXdyIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0KKyB0ICAg IHwgdAorKDEgcm93KQorCistLSBTdG9yZSBXQUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMK K1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Isd2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFT IGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVz dGF0X3BrZXknIFxnc2V0CitJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitERUxFVEUgRlJPTSB2ZXN0YXQg V0hFUkUgeCAlIDIgPSAwOworLS0gVkFDVVVNIEZVTEwgZG9lc24ndCByZXBvcnQgdG8gc3Rh dCBjb2xsZWN0b3IuIFNvLCBubyBhbnkgYWR2YW5jZW1lbnRzIG9mIHN0YXRpc3RpY3MKKy0t IGFyZSBkZXRlY3RlZCBoZXJlLgorVkFDVVVNIEZVTEwgdmVzdGF0OworLS0gSXQgaXMgbmVj ZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lOVDsKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpp d3IgQVMgZGl3cjIsIHdhbF9ieXRlcy06aXdiIEFTIGRpd2IyLCB3YWxfZnBpLTppZnBpIEFT IGRpZnBpMgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAn dmVzdGF0X3BrZXknIFxnc2V0CistLSBXQUwgYW5kIG90aGVyIHN0YXRpc3RpY3MgYWR2YW5j ZSBzaG91bGQgbm90IGJlIGRldGVjdGVkLgorU0VMRUNUIDpkaXdyMj0wIEFTIGRpV1IsIDpk aWZwaTI9MCBBUyBpRlBJLCA6ZGl3YjI9MCBBUyBkaVdCOworIGRpd3IgfCBpZnBpIHwgZGl3 YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAgICB8IHQgICAgfCB0CisoMSByb3cpCisK K1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPCAwIEFTIHJlbHBhZ2VzLHBhZ2Vz X2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRk ID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0 LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQu cmVsaWQgPSBjLm9pZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRl ZCB8IHR1cGxlc19kZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCB0ICAgICAgICB8IHQg ICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2Vz IEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBBUyBpdGQKK0ZS T00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVs bmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdzZXQKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFT IGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFj dXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKK0RFTEVU RSBGUk9NIHZlc3RhdDsKK1RSVU5DQVRFIHZlc3RhdDsKK1ZBQ1VVTSAoUEFSQUxMRUwgMCwg QlVGRkVSX1VTQUdFX0xJTUlUIDEyOCwgSU5ERVhfQ0xFQU5VUCBPTikgdmVzdGF0OworLS0g aXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIHRoZSB3YWwgc3RhdGlzdGljcworQ0hFQ0tQT0lO VDsKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcyBhZnRlciByZW1vdmlu ZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2FsX3JlY29yZHMtOml3ciBB UyBkaXdyMywgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjMsIHdhbF9mcGktOmlmcGkgQVMgZGlm cGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0 YXRfcGtleScgXGdzZXQKKy0tVGhlcmUgYXJlIG5vdGhpbmcgY2hhbmdlZAorU0VMRUNUIDpk aXdyMz0wIEFTIGRpV1IsIDpkaWZwaTM9MCBBUyBpRlBJLCA6ZGl3YjM9MCBBUyBkaVdCOwor IGRpd3IgfCBpZnBpIHwgZGl3YiAKKy0tLS0tLSstLS0tLS0rLS0tLS0tCisgdCAgICB8IHQg ICAgfCB0CisoMSByb3cpCisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMg Y29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4g dmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdl c19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5y ZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlw ZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBs ZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKKyAgIHJlbG5hbWUgICB8IHJlbHBhZ2VzIHwgcGFnZXNfZGVsZXRlZCB8IHR1cGxlc19k ZWxldGVkIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tCisgdmVzdGF0X3BrZXkgfCBmICAgICAgICB8IHQgICAgICAgICAgICAg fCB0CisoMSByb3cpCisKK0RST1AgVEFCTEUgdmVzdGF0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKaW5kZXggZWUwMzQzYzI3MjkuLjAxOTc4MzBiNWNkIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTE0NCw0ICsxNDQsNSBAQCB0ZXN0OiB0YWJs ZXNwYWNlCiAjIC0tLS0tLS0tLS0KICMgQ2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MKICMgLS0t LS0tLS0tLQordGVzdDogdmFjdXVtX2luZGV4X3N0YXRpc3RpY3MKIHRlc3Q6IHZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWUxNDZlMWQyM2YKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhfc3RhdGlz dGljcy5zcWwKQEAgLTAsMCArMSwxNTEgQEAKKy0tCistLSBUZXN0IGN1bXVsYXRpdmUgdmFj dXVtIHN0YXRzIHN5c3RlbQorLS0KKy0tIENoZWNrIHRoZSB3YWxsIHN0YXRpc3RpY3MgY29s bGVjdGVkIGR1cmluZyB2YWN1dW0gb3BlcmF0aW9uOgorLS0gbnVtYmVyIG9mIGZyb3plbiBh bmQgdmlzaWJsZSBwYWdlcyBzZXQgYnkgdmFjdXVtOworLS0gbnVtYmVyIG9mIGZyb3plbiBh bmQgdmlzaWJsZSBwYWdlcyByZW1vdmVkIGJ5IGJhY2tlbmQuCistLSBTdGF0aXN0aWMgd2Fs X2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBiZWNhdXNlIGl0cyBiZWhhdmlv ciBpcyB1bnN0YWJsZS4KKy0tCistLSBjb25kaXRpbyBzaW5lIHF1YSBub24KK1NIT1cgdHJh Y2tfY291bnRzOyAgLS0gbXVzdCBiZSBvbgorCitcc2V0IHNhbXBsZV9zaXplIDEwMDAwCisK Ky0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3YW50IHRvIHRlc3QgaXQuLi4K K1NFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CisKKy0tIFRlc3QgdGhhdCB2YWN1dW0g c3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1ldGVyIGlzIG9mZi4KK1NFVCB0 cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKKworQ1JFQVRFIFRBQkxFIHZlc3Rh dCAoeCBpbnQpIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9 IDEwKTsKK0lOU0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDpzYW1wbGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworCitERUxFVEUgRlJP TSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZF Ul9VU0FHRV9MSU1JVCAxMjgpIHZlc3RhdDsKKworLS0gTXVzdCBiZSBlbXB0eS4KK1NFTEVD VCAqCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQKK1dIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0JzsKKworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CitEUk9QIFRB QkxFIHZlc3RhdCBDQVNDQURFOworCitTSE9XIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzOyAg LS0gbXVzdCBiZSBvbgorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAor U0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitcc2V0IHNhbXBsZV9zaXpl IDEwMDAwCitTRVQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlID0gMDsKK1NFVCB2YWN1dW1fZnJl ZXplX3RhYmxlX2FnZSA9IDA7CistLVNFVCBzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IHNu YXBzaG90OworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQgcHJpbWFyeSBrZXkpIFdJVEgg KGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lOU0VSVCBJ TlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1wbGVfc2l6 ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworCitTRUxFQ1Qgb2lkIEFTIGlvaWQgZnJvbSBw Z19jbGFzcyB3aGVyZSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBcZ3NldAorCitERUxFVEUg RlJPTSB2ZXN0YXQgV0hFUkUgeCAlIDIgPSAwOworLS0gQmVmb3JlIHRoZSBmaXJzdCB2YWN1 dW0gZXhlY3V0aW9uIGV4dGVuZGVkIHN0YXRzIHZpZXcgaXMgZW1wdHkuCitTRUxFQ1QgdnQu cmVsbmFtZSxyZWxwYWdlcyxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkCitGUk9NIHBn X3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHJlbHBhZ2Vz IEFTIGlycAorRlJPTSBwZ19jbGFzcyBjCitXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JyBcZ3NldAorCitWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgs IElOREVYX0NMRUFOVVAgT04pIHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVj ayB0aGUgd2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIFRoZSB0YWJsZSBhbmQg aW5kZXggZXh0ZW5kZWQgdmFjdXVtIHN0YXRpc3RpY3Mgc2hvdWxkIHNob3cgdXMgdGhhdAor LS0gdmFjdXVtIGZyb3plZCBwYWdlcyBhbmQgY2xlYW4gdXAgcGFnZXMsIGJ1dCBwYWdlc19y ZW1vdmVkIHN0YXllZCB0aGUgc2FtZQorLS0gYmVjYXVzZSBvZiBub3QgZnVsbCB0YWJsZSBo YXZlIGNsZWFuZWQgdXAKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFT IHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQgPSAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2Rl bGV0ZWQgPiAwIEFTIHR1cGxlc19kZWxldGVkCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFO RCB2dC5yZWxpZCA9IGMub2lkOworU0VMRUNUIHZ0LnJlbG5hbWUscmVscGFnZXMgQVMgaXJw LHBhZ2VzX2RlbGV0ZWQgQVMgaXBkLHR1cGxlc19kZWxldGVkIEFTIGl0ZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZCBcZ3NldAorCistLSBTdG9yZSBX QUwgYWR2YW5jZXMgaW50byB2YXJpYWJsZXMKK1NFTEVDVCB3YWxfcmVjb3JkcyBBUyBpd3Is d2FsX2J5dGVzIEFTIGl3Yix3YWxfZnBpIEFTIGlmcGkgRlJPTSBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0CisKKy0tIExvb2sg aW50byBXQUwgcmVjb3JkcyBkZWx0YXMuCitTRUxFQ1Qgd2FsX3JlY29yZHMgPiAwIEFTIGRp V1IsIHdhbF9ieXRlcyA+IDAgQVMgZGlXQgorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVz IFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOworCitERUxFVEUgRlJPTSB2ZXN0YXQ7 OworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4LCBJTkRFWF9D TEVBTlVQIE9OKSB2ZXN0YXQ7CistLSBpdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgdGhlIHdh bCBzdGF0aXN0aWNzCitDSEVDS1BPSU5UOworCistLSBwYWdlc19yZW1vdmVkIG11c3QgYmUg aW5jcmVhc2VkCitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcy06aXJwID0gMCBBUyByZWxw YWdlcyxwYWdlc19kZWxldGVkLTppcGQgPiAwIEFTIHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2Rl bGV0ZWQtOml0ZCA+IDAgQVMgdHVwbGVzX2RlbGV0ZWQKK0ZST00gcGdfc3RhdF92YWN1dW1f aW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtl eScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CitTRUxFQ1QgdnQucmVsbmFtZSxyZWxwYWdlcyBB UyBpcnAscGFnZXNfZGVsZXRlZCBBUyBpcGQsdHVwbGVzX2RlbGV0ZWQgQVMgaXRkCitGUk9N IHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgdnQsIHBnX2NsYXNzIGMKK1dIRVJFIHZ0LnJlbG5h bWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkIFxnc2V0CisKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTpp d3IgQVMgZGl3ciwgd2FsX2J5dGVzLTppd2IgQVMgZGl3Yiwgd2FsX2ZwaS06aWZwaSBBUyBk aWZwaQorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVz dGF0X3BrZXknIFxnc2V0CisKKy0tIFdBTCBhZHZhbmNlIHNob3VsZCBiZSBkZXRlY3RlZC4K K1NFTEVDVCA6ZGl3ciA+IDAgQVMgZGlXUiwgOmRpd2IgPiAwIEFTIGRpV0I7CisKKy0tIFN0 b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzIEFT IGl3cix3YWxfYnl0ZXMgQVMgaXdiLHdhbF9mcGkgQVMgaWZwaSBGUk9NIHBnX3N0YXRfdmFj dXVtX2luZGV4ZXMgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworSU5T RVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsOnNhbXBs ZV9zaXplKSBhcyB4OworREVMRVRFIEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsKKy0t IFZBQ1VVTSBGVUxMIGRvZXNuJ3QgcmVwb3J0IHRvIHN0YXQgY29sbGVjdG9yLiBTbywgbm8g YW55IGFkdmFuY2VtZW50cyBvZiBzdGF0aXN0aWNzCistLSBhcmUgZGV0ZWN0ZWQgaGVyZS4K K1ZBQ1VVTSBGVUxMIHZlc3RhdDsKKy0tIEl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUg d2FsIHN0YXRpc3RpY3MKK0NIRUNLUE9JTlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBp bnRvIHZhcmlhYmxlcworU0VMRUNUIHdhbF9yZWNvcmRzLTppd3IgQVMgZGl3cjIsIHdhbF9i eXRlcy06aXdiIEFTIGRpd2IyLCB3YWxfZnBpLTppZnBpIEFTIGRpZnBpMgorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0X3BrZXknIFxnc2V0 CisKKy0tIFdBTCBhbmQgb3RoZXIgc3RhdGlzdGljcyBhZHZhbmNlIHNob3VsZCBub3QgYmUg ZGV0ZWN0ZWQuCitTRUxFQ1QgOmRpd3IyPTAgQVMgZGlXUiwgOmRpZnBpMj0wIEFTIGlGUEks IDpkaXdiMj0wIEFTIGRpV0I7CisKK1NFTEVDVCB2dC5yZWxuYW1lLHJlbHBhZ2VzLTppcnAg PCAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlwZCA9IDAgQVMgcGFnZXNfZGVsZXRl ZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBsZXNfZGVsZXRlZAorRlJPTSBwZ19z dGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBjCitXSEVSRSB2dC5yZWxuYW1lID0g J3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9pZDsKK1NFTEVDVCB2dC5yZWxuYW1l LHJlbHBhZ2VzIEFTIGlycCxwYWdlc19kZWxldGVkIEFTIGlwZCx0dXBsZXNfZGVsZXRlZCBB UyBpdGQKK0ZST00gcGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYworV0hF UkUgdnQucmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQgXGdz ZXQKKworLS0gU3RvcmUgV0FMIGFkdmFuY2VzIGludG8gdmFyaWFibGVzCitTRUxFQ1Qgd2Fs X3JlY29yZHMgQVMgaXdyLHdhbF9ieXRlcyBBUyBpd2Isd2FsX2ZwaSBBUyBpZnBpIEZST00g cGdfc3RhdF92YWN1dW1faW5kZXhlcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBc Z3NldAorCitERUxFVEUgRlJPTSB2ZXN0YXQ7CitUUlVOQ0FURSB2ZXN0YXQ7CitWQUNVVU0g KFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgsIElOREVYX0NMRUFOVVAgT04p IHZlc3RhdDsKKy0tIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGVjayB0aGUgd2FsIHN0YXRpc3Rp Y3MKK0NIRUNLUE9JTlQ7CisKKy0tIFN0b3JlIFdBTCBhZHZhbmNlcyBpbnRvIHZhcmlhYmxl cyBhZnRlciByZW1vdmluZyBhbGwgdHVwbGVzIGZyb20gdGhlIHRhYmxlCitTRUxFQ1Qgd2Fs X3JlY29yZHMtOml3ciBBUyBkaXdyMywgd2FsX2J5dGVzLTppd2IgQVMgZGl3YjMsIHdhbF9m cGktOmlmcGkgQVMgZGlmcGkzCitGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUg cmVsbmFtZSA9ICd2ZXN0YXRfcGtleScgXGdzZXQKKworLS1UaGVyZSBhcmUgbm90aGluZyBj aGFuZ2VkCitTRUxFQ1QgOmRpd3IzPTAgQVMgZGlXUiwgOmRpZnBpMz0wIEFTIGlGUEksIDpk aXdiMz0wIEFTIGRpV0I7CisKKy0tCistLSBOb3csIHRoZSB0YWJsZSBhbmQgaW5kZXggaXMg Y29tcHJlc3NlZCBpbnRvIHplcm8gbnVtYmVyIG9mIHBhZ2VzLiBDaGVjayBpdAorLS0gaW4g dmFjdXVtIGV4dGVuZGVkIHN0YXRpc3RpY3MuCistLSBUaGUgcGFnZXNfZnJvemVuLCBwYWdl c19zY2FubmVkIHZhbHVlcyBzaG91bGRuJ3QgYmUgY2hhbmdlZAorLS0KK1NFTEVDVCB2dC5y ZWxuYW1lLHJlbHBhZ2VzLTppcnAgPSAwIEFTIHJlbHBhZ2VzLHBhZ2VzX2RlbGV0ZWQtOmlw ZCA9IDAgQVMgcGFnZXNfZGVsZXRlZCx0dXBsZXNfZGVsZXRlZC06aXRkID0gMCBBUyB0dXBs ZXNfZGVsZXRlZAorRlJPTSBwZ19zdGF0X3ZhY3V1bV9pbmRleGVzIHZ0LCBwZ19jbGFzcyBj CitXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JyBBTkQgdnQucmVsaWQgPSBjLm9p ZDsKKworRFJPUCBUQUJMRSB2ZXN0YXQ7Ci0tIAoyLjM0LjEKCg== --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/x-patch; charset=UTF-8; name="0003-Machinery-for-grabbing-an-extended-vacuum-statistics.patch" Content-Disposition: attachment; filename*0="0003-Machinery-for-grabbing-an-extended-vacuum-statistics.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyOTc4ZmE1OWZjNTUzYjFhNzExNzMxYWU4MzE1OWU0ZjQ0MjQxZGVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVHVlLCA0IEZlYiAyMDI1IDE3OjU3OjQ0ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAzLzVdIE1hY2hpbmVyeSBmb3IgZ3JhYmJpbmcgYW4gZXh0ZW5kZWQgdmFj dXVtIHN0YXRpc3RpY3Mgb24KIGRhdGFiYXNlcy4KCkRhdGFiYXNlIHZhY3V1bSBzdGF0aXN0 aWNzIGluZm9ybWF0aW9uIGlzIHRoZSBjb2xsZWN0ZWQgZ2VuZXJhbAp2YWN1dW0gc3RhdGlz dGljcyBpbmRleGVzIGFuZCB0YWJsZXMgb3duZWQgYnkgdGhlIGRhdGFiYXNlcywgd2hpY2gK dGhleSBiZWxvbmcgdG8uCgpJbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IHRoZXJlIGFy ZSBmYXIgZmV3ZXIgZGF0YWJhc2VzIGluIGEgc3lzdGVtCnRoYW4gcmVsYXRpb25zLCB2YWN1 dW0gc3RhdGlzdGljcyBmb3IgYSBkYXRhYmFzZSBjb250YWluIGZld2VyIHN0YXRpc3RpY3MK dGhhbiByZWxhdGlvbnMsIGJ1dCB0aGV5IGFyZSBlbm91Z2ggdG8gaW5kaWNhdGUgdGhhdCBz b21ldGhpbmcgbWF5IGJlCndyb25nIGluIHRoZSBzeXN0ZW0gYW5kIHByb21wdCB0aGUgYWRt aW5pc3RyYXRvciB0byBlbmFibGUgZXh0ZW5kZWQKbW9uaXRvcmluZyBmb3IgcmVsYXRpb25z LgoKU28sIGJ1ZmZlciwgd2FsLCBzdGF0aXN0aWNzIG9mIEkvTyB0aW1lIG9mIHJlYWQgYW5k IHdyaXRlbiBibG9ja3MKc3RhdGlzdGljcyB3aWxsIGJlIG9ic2VydmVkIGJlY2F1c2UgdGhl eSBhcmUgY29sbGVjdGVkIGZvciBib3RoCnRhYmxlcywgaW5kZXhlcy4gSW4gYWRkaXRpb24s IHdlIHNob3cgdGhlIG51bWJlciBvZiBlcnJvcnMgY2F1Z2h0CmR1cmluZyBvcGVyYXRpb24g b2YgdGhlIHZhY3V1bSBvbmx5IGZvciB0aGUgZXJyb3IgbGV2ZWwuCgp3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50IGlzIGEgbnVtYmVyIG9mIHRpbWVzIHdoZW4gdGhlIHZhY3V1bSBzdGFy dHMKdXJnZW50IGNsZWFudXAgdG8gcHJldmVudCB3cmFwYXJvdW5kIHByb2JsZW0gd2hpY2gg aXMgY3JpdGljYWwgZm9yCnRoZSBkYXRhYmFzZS4KCkF1dGhvcnM6IEFsZW5hIFJ5YmFraW5h IDxsZW5hLnJpYmFja2luYUB5YW5kZXgucnU+LAogICBBbmRyZWkgTGVwaWtob3YgPGEubGVw aWtob3ZAcG9zdGdyZXNwcm8ucnU+LAogICBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0 Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFp bC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCiAgICAg ICBJbGlhIEV2ZG9raW1vdiA8aWx5YS5ldmRva2ltb3ZAdGFudG9ybGFicy5jb20+LCBqaWFu IGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+LAogICAgICAgS2lyaWxsIFJlc2hr ZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3Jv dGtvdkBnbWFpbC5jb20+LAogICAgICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+ LCBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMTcgKystCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgMjcgKysrKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAgICAgICAgICB8ICAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgIHwgICAxICsKIHNy Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jICB8ICA0NiArKysr KysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAgIHwg MTAwICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFi bGVzLmMgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgMTMgKystCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIC4uLi92YWN1dW0tZXh0ZW5kaW5nLWlu LXJlcGV0YWJsZS1yZWFkLnNwZWMgICB8ICAgNiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwgIDE3ICsrKwogLi4uL2V4cGVjdGVkL3ZhY3V1 bV9pbmRleF9zdGF0aXN0aWNzLm91dCAgICAgIHwgIDE2ICstLQogLi4udXQgPT4gdmFjdXVt X3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXR9IHwgIDg3ICsrKysrKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICst CiAuLi4vcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Muc3FsICAgfCAgIDYg Ky0KIC4uLnFsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsfSB8ICA2 OSArKysrKysrKysrKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDM4MSBpbnNlcnRpb25zKCspLCAz NSBkZWxldGlvbnMoLSkKIHJlbmFtZSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3t2YWN1 dW1fdGFibGVzX3N0YXRpc3RpY3Mub3V0ID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRp c3RpY3Mub3V0fSAoODIlKQogcmVuYW1lIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3t2YWN1dW1f dGFibGVzX3N0YXRpc3RpY3Muc3FsID0+IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3Rp Y3Muc3FsfSAoODElKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRl eCAwODg4YmUyYWZlYS4uM2Q3MmY3NGIwNWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTY2MCw3ICs2NjAsNyBAQCBhY2N1bXVsYXRlX2hlYXBfdmFjdXVt X3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBFeHRWYWNSZXBvcnQgKmV4dFZhY1N0 YXRzKQogCWV4dFZhY1N0YXRzLT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXMgPSB2YWNyZWwt Pm1pc3NlZF9kZWFkX3R1cGxlczsKIAlleHRWYWNTdGF0cy0+dGFibGUubWlzc2VkX2RlYWRf cGFnZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFkX3BhZ2VzOwogCWV4dFZhY1N0YXRzLT50YWJs ZS5pbmRleF92YWN1dW1fY291bnQgPSB2YWNyZWwtPm51bV9pbmRleF9zY2FuczsKLQlleHRW YWNTdGF0cy0+dGFibGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCA9IHZhY3JlbC0+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKKwlleHRWYWNTdGF0cy0+d3JhcGFyb3VuZF9mYWls c2FmZV9jb3VudCA9IHZhY3JlbC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKIAogCWV4 dFZhY1N0YXRzLT5ibGtfcmVhZF90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJs a19yZWFkX3RpbWU7CiAJZXh0VmFjU3RhdHMtPmJsa193cml0ZV90aW1lIC09IHZhY3JlbC0+ ZXh0VmFjUmVwb3J0SWR4LmJsa193cml0ZV90aW1lOwpAQCAtNDA4OSw2ICs0MDg5LDkgQEAg dmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAlzd2l0Y2ggKGVycmluZm8tPnBo YXNlKQogCXsKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfU0NBTl9IRUFQOgorCQkJaWYo Z2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCisJCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vy cm9yKGVycmluZm8tPnJlbG9pZCwgUEdTVEFUX0VYVFZBQ19UQUJMRSk7CisKIAkJCWlmIChC bG9ja051bWJlcklzVmFsaWQoZXJyaW5mby0+Ymxrbm8pKQogCQkJewogCQkJCWlmIChPZmZz ZXROdW1iZXJJc1ZhbGlkKGVycmluZm8tPm9mZm51bSkpCkBAIC00MTA0LDYgKzQxMDcsOSBA QCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVA6CisJCQlpZihnZXRlcnJlbGV2ZWwo KSA9PSBFUlJPUikKKwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5y ZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCiAJCQlpZiAoQmxvY2tOdW1iZXJJc1Zh bGlkKGVycmluZm8tPmJsa25vKSkKIAkJCXsKIAkJCQlpZiAoT2Zmc2V0TnVtYmVySXNWYWxp ZChlcnJpbmZvLT5vZmZudW0pKQpAQCAtNDExOSwxNiArNDEyNSwyNSBAQCB2YWN1dW1fZXJy b3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJS Q0JfUEhBU0VfVkFDVVVNX0lOREVYOgorCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1Ip CisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoZXJyaW5mby0+aW5kb2lkLCBQR1NU QVRfRVhUVkFDX0lOREVYKTsKKwogCQkJZXJyY29udGV4dCgid2hpbGUgdmFjdXVtaW5nIGlu ZGV4IFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzLiVzXCIiLAogCQkJCQkgICBlcnJpbmZvLT5p bmRuYW1lLCBlcnJpbmZvLT5yZWxuYW1lc3BhY2UsIGVycmluZm8tPnJlbG5hbWUpOwogCQkJ YnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfSU5ERVhfQ0xFQU5VUDoKKwkJ CWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9SKQorCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVt X2Vycm9yKGVycmluZm8tPmluZG9pZCwgUEdTVEFUX0VYVFZBQ19JTkRFWCk7CisKIAkJCWVy cmNvbnRleHQoIndoaWxlIGNsZWFuaW5nIHVwIGluZGV4IFwiJXNcIiBvZiByZWxhdGlvbiBc IiVzLiVzXCIiLAogCQkJCQkgICBlcnJpbmZvLT5pbmRuYW1lLCBlcnJpbmZvLT5yZWxuYW1l c3BhY2UsIGVycmluZm8tPnJlbG5hbWUpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBWQUNVVU1f RVJSQ0JfUEhBU0VfVFJVTkNBVEU6CisJCQlpZihnZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikK KwkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcihlcnJpbmZvLT5yZWxvaWQsIFBHU1RB VF9FWFRWQUNfVEFCTEUpOworCiAJCQlpZiAoQmxvY2tOdW1iZXJJc1ZhbGlkKGVycmluZm8t PmJsa25vKSkKIAkJCQllcnJjb250ZXh0KCJ3aGlsZSB0cnVuY2F0aW5nIHJlbGF0aW9uIFwi JXMuJXNcIiB0byAldSBibG9ja3MiLAogCQkJCQkJICAgZXJyaW5mby0+cmVsbmFtZXNwYWNl LCBlcnJpbmZvLT5yZWxuYW1lLCBlcnJpbmZvLT5ibGtubyk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKaW5kZXggODNkNTVlNzg2MDYuLjBhZTMxYjg3OTg5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xNDg4LDQgKzE0ODgsMjkg QEAgRlJPTQogICBwZ19jbGFzcyByZWwKICAgSk9JTiBwZ19uYW1lc3BhY2UgbnMgT04gbnMu b2lkID0gcmVsLnJlbG5hbWVzcGFjZSwKICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1f aW5kZXhlcyhyZWwub2lkKSBzdGF0cwotV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorV0hFUkUgcmVsLnJlbGtpbmQgPSAnaSc7CisKK0NS RUFURSBWSUVXIHBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlIEFTCitTRUxFQ1QKKyAgZGIub2lk IGFzIGRib2lkLAorICBkYi5kYXRuYW1lIEFTIGRibmFtZSwKKworICBzdGF0cy5kYl9ibGtz X3JlYWQgQVMgZGJfYmxrc19yZWFkLAorICBzdGF0cy5kYl9ibGtzX2hpdCBBUyBkYl9ibGtz X2hpdCwKKyAgc3RhdHMudG90YWxfYmxrc19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3NfZGlydGll ZCwKKyAgc3RhdHMudG90YWxfYmxrc193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwK KworICBzdGF0cy53YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3JkcywKKyAgc3RhdHMud2FsX2Zw aSBBUyB3YWxfZnBpLAorICBzdGF0cy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgIHN0 YXRzLmJsa19yZWFkX3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKKyAgc3RhdHMuYmxrX3dyaXRl X3RpbWUgQVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgc3RhdHMuZGVsYXlfdGltZSBBUyBkZWxh eV90aW1lLAorICBzdGF0cy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUsCisgIHN0YXRzLndy YXBhcm91bmRfZmFpbHNhZmUgQVMgd3JhcGFyb3VuZF9mYWlsc2FmZSwKKyAgc3RhdHMuZXJy b3JzIEFTIGVycm9ycworRlJPTQorICBwZ19kYXRhYmFzZSBkYiwKKyAgTEFURVJBTCBwZ19z dGF0X2dldF92YWN1dW1fZGF0YWJhc2UoZGIub2lkKSBzdGF0czsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IGY1 Zjc1YWE0MjY0Li44NTU1NzczNmEzYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0LmMKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGdzdGF0X2lz X2tpbmRfdmFsaWQoUGdTdGF0X0tpbmQga2luZCk7CiAKIGJvb2wJCXBnc3RhdF90cmFja19j b3VudHMgPSBmYWxzZTsKIGludAkJCXBnc3RhdF9mZXRjaF9jb25zaXN0ZW5jeSA9IFBHU1RB VF9GRVRDSF9DT05TSVNURU5DWV9DQUNIRTsKLWJvb2wJCXBnc3RhdF90cmFja192YWN1dW1f c3RhdGlzdGljcyA9IHRydWU7Citib29sCQlwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3MgPSBmYWxzZTsKIAogLyogLS0tLS0tLS0tLQogICogc3RhdGUgc2hhcmVkIHdpdGggcGdz dGF0XyouYwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2RhdGFiYXNlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJh c2UuYwppbmRleCBiMzFmMjBkNDFiYy4uNjUyMDdkMzAzNzggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC00ODUsNiArNDg1LDcg QEAgcGdzdGF0X2RhdGFiYXNlX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVm LCBib29sIG5vd2FpdCkKIAlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CiAKIAlt ZW1zZXQocGVuZGluZ2VudCwgMCwgc2l6ZW9mKCpwZW5kaW5nZW50KSk7CisJbWVtc2V0KCYo cGVuZGluZ2VudCktPnZhY3V1bV9leHQsIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKIAog CXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfcmVsYXRpb24uYwppbmRleCA5ZWUwMzUwOTQ5MC4uMTY5NTY4MGVhNjIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0yMDUs NiArMjA1LDM4IEBAIHBnc3RhdF9kcm9wX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIAl9CiB9 CiAKKy8qIC0tLS0tLS0tLQorICogcGdzdGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoKSAtCisg KgorICoJVGVsbCB0aGUgY29sbGVjdG9yIGFib3V0IGFuIChhdXRvKXZhY3V1bSBpbnRlcnJ1 cHRpb24uCisgKiAtLS0tLS0tLS0KKyAqLwordm9pZAorcGdzdGF0X3JlcG9ydF92YWN1dW1f ZXJyb3IoT2lkIHRhYmxlb2lkLCBFeHRWYWNSZXBvcnRUeXBlIG1fdHlwZSkKK3sKKwlQZ1N0 YXRfRW50cnlSZWYgKmVudHJ5X3JlZjsKKwlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFi ZW50cnk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJT2lkCQkJZGJvaWQg PSAgTXlEYXRhYmFzZUlkOworCVBnU3RhdF9TdGF0REJFbnRyeSAqZGJlbnRyeTsJLyogcGVu ZGluZyBkYXRhYmFzZSBlbnRyeSAqLworCisJaWYgKCFwZ3N0YXRfdHJhY2tfY291bnRzKQor CQlyZXR1cm47CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQo UEdTVEFUX0tJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkJCWRib2lkLCB0YWJsZW9pZCwgZmFs c2UpOworCisJc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKikgZW50cnlf cmVmLT5zaGFyZWRfc3RhdHM7CisJdGFiZW50cnkgPSAmc2h0YWJlbnRyeS0+c3RhdHM7CisK Kwl0YWJlbnRyeS0+dmFjdXVtX2V4dC50eXBlID0gbV90eXBlOworCXBnc3RhdF91bmxvY2tf ZW50cnkoZW50cnlfcmVmKTsKKworCWRiZW50cnkgPSBwZ3N0YXRfcHJlcF9kYXRhYmFzZV9w ZW5kaW5nKGRib2lkKTsKKwlkYmVudHJ5LT52YWN1dW1fZXh0LmVycm9ycysrOworCWRiZW50 cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKK30KKwogLyoKICAqIFJlcG9ydCB0aGF0 IHRoZSB0YWJsZSB3YXMganVzdCB2YWN1dW1lZCBhbmQgZmx1c2ggSU8gc3RhdGlzdGljcy4K ICAqLwpAQCAtMjE2LDYgKzI0OCw3IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJs ZW9pZCwgYm9vbCBzaGFyZWQsCiAJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CiAJUGdT dGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkg KnRhYmVudHJ5OworCVBnU3RhdFNoYXJlZF9EYXRhYmFzZSAqZGJlbnRyeTsKIAlPaWQJCQlk Ym9pZCA9IChzaGFyZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsKIAlUaW1lc3Rh bXBUeiB0czsKIAlQZ1N0YXRfQ291bnRlciBlbGFwc2VkdGltZTsKQEAgLTI3NCw2ICszMDcs MTYgQEAgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwK IAkgKi8KIAlwZ3N0YXRfZmx1c2hfaW8oZmFsc2UpOwogCSh2b2lkKSBwZ3N0YXRfZmx1c2hf YmFja2VuZChmYWxzZSwgUEdTVEFUX0JBQ0tFTkRfRkxVU0hfSU8pOworCisJaWYgKGRib2lk ICE9IEludmFsaWRPaWQpCisJeworCQllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3Jl Zl9sb2NrZWQoUEdTVEFUX0tJTkRfREFUQUJBU0UsCisJCQkJCQkJCQkJCWRib2lkLCBJbnZh bGlkT2lkLCBmYWxzZSk7CisJCWRiZW50cnkgPSAoUGdTdGF0U2hhcmVkX0RhdGFiYXNlICop IGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJCXBnc3RhdF9hY2N1bXVsYXRlX2V4dHZh Y19zdGF0cygmZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dCwgcGFyYW1zLCBmYWxzZSk7CisJ CXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKKwl9CiB9CiAKIC8qCkBAIC0xMDMw LDYgKzEwNzMsOCBAQCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVw b3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAogCWRzdC0+YmxrX3dyaXRlX3RpbWUgKz0g c3JjLT5ibGtfd3JpdGVfdGltZTsKIAlkc3QtPmRlbGF5X3RpbWUgKz0gc3JjLT5kZWxheV90 aW1lOwogCWRzdC0+dG90YWxfdGltZSArPSBzcmMtPnRvdGFsX3RpbWU7CisJZHN0LT53cmFw YXJvdW5kX2ZhaWxzYWZlX2NvdW50ICs9IHNyYy0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3Vu dDsKKwlkc3QtPmVycm9ycyArPSBzcmMtPmVycm9yczsKIAogCWlmICghYWNjdW11bGF0ZV9y ZWx0eXBlX3NwZWNpZmljX2luZm8pCiAJCXJldHVybjsKQEAgLTEwNTcsNyArMTEwMiw2IEBA IHBnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0cyhFeHRWYWNSZXBvcnQgKmRzdCwgRXh0 VmFjUmVwb3J0ICpzcmMsCiAJCQlkc3QtPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudCArPSBz cmMtPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudDsKIAkJCWRzdC0+dGFibGUubWlzc2VkX2Rl YWRfcGFnZXMgKz0gc3JjLT50YWJsZS5taXNzZWRfZGVhZF9wYWdlczsKIAkJCWRzdC0+dGFi bGUubWlzc2VkX2RlYWRfdHVwbGVzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVz OwotCQkJZHN0LT50YWJsZS53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50ICs9IHNyYy0+dGFi bGUud3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudDsKIAkJfQogCQllbHNlIGlmIChkc3QtPnR5 cGUgPT0gUEdTVEFUX0VYVFZBQ19JTkRFWCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdz dGF0ZnVuY3MuYwppbmRleCA0ODI5MjliNzVlOS4uYTJlY2UyYzM2Y2YgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0yMzgzLDcgKzIzODMsNyBAQCBwZ19zdGF0 X2dldF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMpOwog CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLm1pc3NlZF9k ZWFkX3R1cGxlcyk7CiAKLQl2YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVt LT50YWJsZS53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IElu dDMyR2V0RGF0dW0oZXh0dmFjdXVtLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50KTsKIAl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50YWJsZS5pbmRleF92YWN1 dW1fY291bnQpOwogCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ d2FsX3JlY29yZHMpOwpAQCAtMjUxMyw2ICsyNTEzLDEwNCBAQCBwZ19zdGF0X2dldF92YWN1 dW1faW5kZXhlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJQXNzZXJ0KGkgPT0gUEdfU1RBVF9H RVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOwogCisJLyogUmV0dXJucyB0aGUgcmVjb3Jk IGFzIERhdHVtICovCisJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBf Zm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOworfQorCitEYXR1bQorcGdf c3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJI2RlZmlu ZSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUwkxNAorCisJT2lkCQkJ CQkJIGRiaWQgPSBQR19HRVRBUkdfT0lEKDApOworCVBnU3RhdF9TdGF0REJFbnRyeSAJCSpk YmVudHJ5OworCUV4dFZhY1JlcG9ydCAJCQkqZXh0dmFjdXVtOworCVR1cGxlRGVzYwkJCQkg dHVwZGVzYzsKKwlEYXR1bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJB U0VfU1RBVFNfQ09MU10gPSB7MH07CisJYm9vbAkJCQkJIG51bGxzW1BHX1NUQVRfR0VUX1ZB Q1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQkJCQkgYnVmWzI1Nl07 CisJaW50CQkJCQkJIGkgPSAwOworCUV4dFZhY1JlcG9ydCBhbGx6ZXJvOworCisJLyogSW5p dGlhbGlzZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0dXBsZSBkZXNjcmlwdG9y ICovCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX1ZB Q1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgKytpLCAiZGJpZCIsCisJCQkJCSAgIElOVDRPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRv dGFsXyBibGtzX3JlYWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2hpdCIs CisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGlydGllZCIsCisJCQkJCSAgIElO VDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndh bF9yZWNvcmRzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2ZwaSIsCisJCQkJCSAgIElO VDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpICsraSwgIndhbF9ieXRlcyIsCisJCQkJCSAgIE5VTUVSSUNPSUQsIC0xLCAwKTsKKwor CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3Jl YWRfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiYmxrX3dyaXRlX3RpbWUiLAorCQkJ CQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgKytpLCAiZGVsYXlfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwg LTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytp LCAidG90YWxfdGltZSIsCisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid3JhcGFyb3VuZF9mYWls c2FmZV9jb3VudCIsCisJCQkJCSAgIElOVDRPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImVycm9ycyIsCisJCQkJCSAgIElO VDRPSUQsIC0xLCAwKTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRB QkFTRV9TVEFUU19DT0xTKTsKKworCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworCisJZGJl bnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2RiZW50cnkoZGJpZCk7CisKKwlpZiAoZGJlbnRy eSA9PSBOVUxMKQorCXsKKwkJLyogSWYgdGhlIHN1YnNjcmlwdGlvbiBpcyBub3QgZm91bmQs IGluaXRpYWxpc2UgaXRzIHN0YXRzICovCisJCW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9m KEV4dFZhY1JlcG9ydCkpOworCQlleHR2YWN1dW0gPSAmYWxsemVybzsKKwl9CisJZWxzZQor CXsKKwkJZXh0dmFjdXVtID0gJihkYmVudHJ5LT52YWN1dW1fZXh0KTsKKwl9CisKKwlpID0g MDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bShkYmlkKTsKKworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3NfcmVhZCk7CisJ dmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19oaXQp OworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Jsa3Nf ZGlydGllZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90 YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT53YWxfZnBpKTsKKworCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19z dGF0X3N0YXRlbWVudHMgKi8KKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9G T1JNQVQsIGV4dHZhY3V1bS0+d2FsX2J5dGVzKTsKKwl2YWx1ZXNbaSsrXSA9IERpcmVjdEZ1 bmN0aW9uQ2FsbDMobnVtZXJpY19pbiwKKwkJCQkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGJ1 ZiksCisJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0oMCksCisJCQkJCQkJCQkgIEludDMy R2V0RGF0dW0oLTEpKTsKKworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFj dXVtLT5ibGtfcmVhZF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4 dHZhY3V1bS0+YmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0 dW0oZXh0dmFjdXVtLT5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERh dHVtKGV4dHZhY3V1bS0+dG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERh dHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisJdmFsdWVzW2kr K10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+ZXJyb3JzKTsKKworCUFzc2VydChpID09 IFBHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKKwogCS8qIFJldHVy bnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVH ZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKIH0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3Rh Ymxlcy5jCmluZGV4IDQyZjRjYWM1ZTBlLi5hMjRkZWM2M2YzYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE1MTQsNyArMTUxNCw3IEBAIHN0cnVjdCBjb25m aWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCQlOVUxMCiAJCX0sCiAJCSZwZ3N0 YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MsCi0JCXRydWUsCisJCWZhbHNlLAogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA4 Yzc3YWU5NjEwMC4uNGUxZTI5ZWVjN2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApA QCAtMTI1NzUsMTIgKzEyNTc1LDIxIEBACiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0 dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3Bn X3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJyB9LAogeyBvaWQgPT4gJzgwMDQnLAot ICBkZXNjciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMgcmV0dXJuIHN0YXRzIHZh bHVlcycsCisgIGRlc2NyID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcyByZXR1cm5z IHZhY3V1bSBzdGF0cyB2YWx1ZXMgZm9yIGluZGV4JywKICAgcHJvbmFtZSA9PiAncGdfc3Rh dF9nZXRfdmFjdXVtX2luZGV4ZXMnLCBwcm9yb3dzID0+IDEwMDAsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJyxwcm9pc3N0cmljdCA9PiAnZicsCiAgIHBy b3JldHNldCA9PiAndCcsCiAgIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9hbGxhcmd0 eXBlcyA9PiAne29pZCxvaWQsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxp bnQ4LGludDgsaW50OCxudW1lcmljLGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OH0nLAog ICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30n LAogICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90 YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxf Ymxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19kZWxldGVkLHR1cGxlc19kZWxldGVkLHdh bF9yZWNvcmRzLHdhbF9mcGksd2FsX2J5dGVzLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3Rp bWUsZGVsYXlfdGltZSx0b3RhbF90aW1lfScsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9nZXRf dmFjdXVtX2luZGV4ZXMnIH0KKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5k ZXhlcycgfSwKK3sgb2lkID0+ICc4MDA1JywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3Zh Y3V1bV9kYXRhYmFzZSByZXR1cm5zIHZhY3V1bSBzdGF0cyB2YWx1ZXMgZm9yIGRhdGFiYXNl JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlJywgcHJvcm93 cyA9PiAxMDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcs cHJvaXNzdHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBl cyA9PiAnb2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4 LGludDQsaW50NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7ZGJpZCxkYm9pZCxkYl9ibGtzX3Jl YWQsZGJfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbix3 YWxfcmVjb3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90 aW1lLGRlbGF5X3RpbWUsdG90YWxfdGltZSx3cmFwYXJvdW5kX2ZhaWxzYWZlLGVycm9yc30n LAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZScgfSwKIF0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgK aW5kZXggNGRlZjJjNjBkMWQuLmY4MTU4YWEzNTNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMTU0LDYgKzE1NCw5 IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCiAJaW50NjQJCXR1cGxlc19kZWxl dGVkOwkJLyogdHVwbGVzIGRlbGV0ZWQgYnkgdmFjdXVtICovCiAKKwlpbnQzMgkJZXJyb3Jz OworCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9m IHRpbWVzIHRvIHByZXZlbnQgd3JhcGFyb3VuZCBwcm9ibGVtICovCisKIAlFeHRWYWNSZXBv cnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLwogCiAJLyogLS0tLS0tLS0t LQpAQCAtMTgzLDcgKzE4Niw2IEBAIHR5cGVkZWYgc3RydWN0IEV4dFZhY1JlcG9ydAogCQkJ aW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsJCS8qIHR1cGxlcyBub3QgcHJ1bmVkIGJ5IHZh Y3V1bSBkdWUgdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVwIGxvY2sgKi8KIAkJCWludDY0 CQltaXNzZWRfZGVhZF9wYWdlczsJCS8qIHBhZ2VzIHdpdGggbWlzc2VkIGRlYWQgdHVwbGVz ICovCiAJCQlpbnQ2NAkJaW5kZXhfdmFjdXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5kZXgg dmFjdXVtaW5ncyAqLwotCQkJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CS8q IG51bWJlciBvZiBlbWVyZ2VuY3kgdmFjdXVtcyB0byBwcmV2ZW50IGFudGktd3JhcGFyb3Vu ZCBzaHV0ZG93biAqLwogCQl9CQkJdGFibGU7CiAJCXN0cnVjdAogCQl7CkBAIC03NjIsNiAr NzY0LDcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lk LCBib29sIHNoYXJlZCwKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxh dGlvbiByZWwsCiAJCQkJCQkJCSAgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0 X0NvdW50ZXIgZGVhZHR1cGxlcywKIAkJCQkJCQkJICBib29sIHJlc2V0Y291bnRlciwgVGlt ZXN0YW1wVHogc3RhcnR0aW1lKTsKK2V4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVt X2Vycm9yKE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpOwogCiAvKgog ICogSWYgc3RhdHMgYXJlIGVuYWJsZWQsIGJ1dCBwZW5kaW5nIGRhdGEgaGFzbid0IGJlZW4g cHJlcGFyZWQgeWV0LCBjYWxsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3Bl Y3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3Bl YwppbmRleCA1ODkzZDg5NTczZC4uY2ZlYzMxNTk1ODAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5nLWluLXJlcGV0YWJsZS1yZWFkLnNw ZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4t cmVwZXRhYmxlLXJlYWQuc3BlYwpAQCAtMTgsNiArMTgsOSBAQCB0ZWFyZG93bgogfQogCiBz ZXNzaW9uIHMxCitzZXR1cAkJeworICAgIFNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBU TyAnb24nOworICAgIH0KIHN0ZXAgczFfYmVnaW5fcmVwZWF0YWJsZV9yZWFkICAgewogICBC RUdJTiB0cmFuc2FjdGlvbiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOwogICBz ZWxlY3QgY291bnQoaXZhbCkgZnJvbSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB3aGVy ZSBpZD45MDA7CkBAIC0yNSw2ICsyOCw5IEBAIHN0ZXAgczFfYmVnaW5fcmVwZWF0YWJsZV9y ZWFkICAgewogc3RlcCBzMV9jb21taXQgICAgICAgICAgICAgICAgICB7IENPTU1JVDsgfQog CiBzZXNzaW9uIHMyCitzZXR1cAkJeworICAgIFNFVCB0cmFja192YWN1dW1fc3RhdGlzdGlj cyBUTyAnb24nOworICAgIH0KIHN0ZXAgczJfaW5zZXJ0ICAgICAgICAgICAgICAgICAgeyBJ TlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbihpZCwgaXZhbCkgU0VMRUNU IGl2YWwsIGl2YWwlMTAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBBcyBpdmFsOyB9 CiBzdGVwIHMyX3VwZGF0ZSAgICAgICAgICAgICAgICAgIHsgVVBEQVRFIHRlc3RfdmFjdXVt X3N0YXRfaXNvbGF0aW9uIFNFVCBpdmFsID0gaXZhbCArIDIgd2hlcmUgaWQgPiA5MDA7IH0K IHN0ZXAgczJfZGVsZXRlICAgICAgICAgICAgICAgICAgeyBERUxFVEUgRlJPTSB0ZXN0X3Zh Y3V1bV9zdGF0X2lzb2xhdGlvbiB3aGVyZSBpZCA+IDkwMDsgfQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dAppbmRleCA0ZTVlNWNhNTRkYS4uZjYzZjI1Zjk0ZDggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMjgzLDYgKzIyODMsMjMgQEAg cGdfc3RhdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAogICAgIHJldl9hbGxfdmlzaWJs ZV9wYWdlcwogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChzY2hlbWFu YW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2No ZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsK K3BnX3N0YXRfdmFjdXVtX2RhdGFiYXNlfCBTRUxFQ1QgZGIub2lkIEFTIGRib2lkLAorICAg IGRiLmRhdG5hbWUgQVMgZGJuYW1lLAorICAgIHN0YXRzLmRiX2Jsa3NfcmVhZCwKKyAgICBz dGF0cy5kYl9ibGtzX2hpdCwKKyAgICBzdGF0cy50b3RhbF9ibGtzX2RpcnRpZWQsCisgICAg c3RhdHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHN0YXRzLndhbF9yZWNvcmRzLAorICAg IHN0YXRzLndhbF9mcGksCisgICAgc3RhdHMud2FsX2J5dGVzLAorICAgIHN0YXRzLmJsa19y ZWFkX3RpbWUsCisgICAgc3RhdHMuYmxrX3dyaXRlX3RpbWUsCisgICAgc3RhdHMuZGVsYXlf dGltZSwKKyAgICBzdGF0cy50b3RhbF90aW1lLAorICAgIHN0YXRzLndyYXBhcm91bmRfZmFp bHNhZmUsCisgICAgc3RhdHMuZXJyb3JzCisgICBGUk9NIHBnX2RhdGFiYXNlIGRiLAorICAg IExBVEVSQUwgcGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlKGRiLm9pZCkgc3RhdHMoZGJv aWQsIGRiX2Jsa3NfcmVhZCwgZGJfYmxrc19oaXQsIHRvdGFsX2Jsa3NfZGlydGllZCwgdG90 YWxfYmxrc193cml0dGVuLCB3YWxfcmVjb3Jkcywgd2FsX2ZwaSwgd2FsX2J5dGVzLCBibGtf cmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgZGVsYXlfdGltZSwgdG90YWxfdGltZSwgd3Jh cGFyb3VuZF9mYWlsc2FmZSwgZXJyb3JzKTsKIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXN8IFNF TEVDVCByZWwub2lkIEFTIHJlbGlkLAogICAgIG5zLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwK ICAgICByZWwucmVsbmFtZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdmFjdXVtX2luZGV4X3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5vdXQKaW5kZXggZTAwYTBmYzY4M2MuLjll NWQzMzM0MmM5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1 bV9pbmRleF9zdGF0aXN0aWNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3ZhY3V1bV9pbmRleF9zdGF0aXN0aWNzLm91dApAQCAtMTYsOCArMTYsMTIgQEAgU0hPVyB0 cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCiBcc2V0IHNhbXBsZV9zaXplIDEwMDAwCiAt LSBub3QgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCiBT RVQgdHJhY2tfZnVuY3Rpb25zIFRPICdhbGwnOwotLS0gVGVzdCB0aGF0IHZhY3V1bSBzdGF0 aXN0aWNzIHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0ZXIgaXMgb2ZmLgotU0VUIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvZmYnOworU0hPVyB0cmFja192YWN1dW1fc3RhdGlz dGljczsgIC0tIG11c3QgYmUgb2ZmCisgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgb2ZmCisoMSByb3cpCisKIENSRUFURSBUQUJMRSB2 ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0 b3IgPSAxMCk7CiBJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CiBBTkFMWVpFIHZlc3RhdDsKQEAgLTMzLDEy ICszNyw3IEBAIFdIRVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKIAogUkVTRVQgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3M7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwotU0hPVyB0 cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb24KLSB0cmFja192YWN1dW1f c3RhdGlzdGljcyAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBvbgotKDEgcm93KQot CitTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29uJzsKIC0tIGVuc3VyZSBwZW5k aW5nIHN0YXRzIGFyZSBmbHVzaGVkCiBTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNo KCk7CiAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIApAQCAtMTgxLDMgKzE4MCw0IEBAIFdI RVJFIHZ0LnJlbG5hbWUgPSAndmVzdGF0X3BrZXknIEFORCB2dC5yZWxpZCA9IGMub2lkOwog KDEgcm93KQogCiBEUk9QIFRBQkxFIHZlc3RhdDsKK1JFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0 aXN0aWNzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1dW1f dGFibGVzX3N0YXRpc3RpY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92YWN1 dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dApzaW1pbGFyaXR5IGluZGV4IDgyJQpy ZW5hbWUgZnJvbSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90YWJsZXNfc3Rh dGlzdGljcy5vdXQKcmVuYW1lIHRvIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdmFjdXVt X3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5vdXQKaW5kZXggYjVlYTljOWFiMWUuLjAzMDBl N2I2Mjc2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bV90 YWJsZXNfc3RhdGlzdGljcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC92 YWN1dW1fdGFibGVzX2FuZF9kYl9zdGF0aXN0aWNzLm91dApAQCAtNiw3ICs2LDYgQEAKIC0t IG51bWJlciBvZiBmcm96ZW4gYW5kIHZpc2libGUgcGFnZXMgcmVtb3ZlZCBieSBiYWNrZW5k LgogLS0gU3RhdGlzdGljIHdhbF9mcGkgaXMgbm90IGRpc3BsYXllZCBpbiB0aGlzIHRlc3Qg YmVjYXVzZSBpdHMgYmVoYXZpb3IgaXMgdW5zdGFibGUuCiAtLQotLS0gY29uZGl0aW8gc2lu ZSBxdWEgbm9uCiBTSE9XIHRyYWNrX2NvdW50czsgIC0tIG11c3QgYmUgb24KICB0cmFja19j b3VudHMgCiAtLS0tLS0tLS0tLS0tLQpAQCAtMTYsOCArMTUsMTIgQEAgU0hPVyB0cmFja19j b3VudHM7ICAtLSBtdXN0IGJlIG9uCiBcc2V0IHNhbXBsZV9zaXplIDEwMDAwCiAtLSBub3Qg ZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCiBTRVQgdHJh Y2tfZnVuY3Rpb25zIFRPICdhbGwnOwotLS0gVGVzdCB0aGF0IHZhY3V1bSBzdGF0aXN0aWNz IHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0ZXIgaXMgb2ZmLgotU0VUIHRyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzIFRPICdvZmYnOworU0hPVyB0cmFja192YWN1dW1fc3RhdGlzdGljczsg IC0tIG11c3QgYmUgb2ZmCisgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgb2ZmCisoMSByb3cpCisKIENSRUFURSBUQUJMRSB2ZXN0YXQg KHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAx MCk7CiBJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSw6c2FtcGxlX3NpemUpIGFzIHg7CiBBTkFMWVpFIHZlc3RhdDsKQEAgLTM3LDEyICs0MCwx MiBAQCBXSEVSRSB2dC5yZWxuYW1lID0gJ3Zlc3RhdCc7CiAKIFJFU0VUIHRyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzOwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKLVNIT1cgdHJhY2tf dmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9uCi0gdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3MgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gb24KLSgxIHJvdykKLQorQ1JF QVRFIERBVEFCQVNFIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK0NSRUFURSBE QVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworXGMgcmVncmVzc2lv bl9zdGF0aXN0aWNfdmFjdXVtX2RiOworU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRP IG9uOworLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQgdG8gdGVzdCBp dC4uLgorU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKIC0tIGVuc3VyZSBwZW5kaW5n IHN0YXRzIGFyZSBmbHVzaGVkCiBTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7 CiAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIApAQCAtMjI1LDMgKzIyOCw2OSBAQCBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFIHBnX3N0 YXRfdmFjdXVtX3RhYmxlcy5yZWxuYQogKDEgcm93KQogCiBEUk9QIFRBQkxFIHZlc3RhdCBD QVNDQURFOworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0aWNzIGZvciBjdXJyZW50IGRh dGFiYXNlCitTRUxFQ1QgZGJuYW1lLAorICAgICAgIGRiX2Jsa3NfaGl0ID4gMCBBUyBkYl9i bGtzX2hpdCwKKyAgICAgICB0b3RhbF9ibGtzX2RpcnRpZWQgPiAwIEFTIHRvdGFsX2Jsa3Nf ZGlydGllZCwKKyAgICAgICB0b3RhbF9ibGtzX3dyaXR0ZW4gPiAwIEFTIHRvdGFsX2Jsa3Nf d3JpdHRlbiwKKyAgICAgICB3YWxfcmVjb3JkcyA+IDAgQVMgd2FsX3JlY29yZHMsCisgICAg ICAgd2FsX2ZwaSA+IDAgQVMgd2FsX2ZwaSwKKyAgICAgICB3YWxfYnl0ZXMgPiAwIEFTIHdh bF9ieXRlcywKKyAgICAgICB0b3RhbF90aW1lID4gMCBBUyB0b3RhbF90aW1lCitGUk9NCitw Z19zdGF0X3ZhY3V1bV9kYXRhYmFzZQorV0hFUkUgZGJuYW1lID0gY3VycmVudF9kYXRhYmFz ZSgpOworICAgICAgICAgICAgIGRibmFtZSAgICAgICAgICAgICB8IGRiX2Jsa3NfaGl0IHwg dG90YWxfYmxrc19kaXJ0aWVkIHwgdG90YWxfYmxrc193cml0dGVuIHwgd2FsX3JlY29yZHMg fCB3YWxfZnBpIHwgd2FsX2J5dGVzIHwgdG90YWxfdGltZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiIHwgdCAgICAg ICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgfCB0ICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIGVuc3Vy ZSBwZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0 X2ZsdXNoKCk7CisgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQp IFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKK0lO U0VSVCBJTlRPIHZlc3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDpzYW1w bGVfc2l6ZSkgYXMgeDsKK0FOQUxZWkUgdmVzdGF0OworVVBEQVRFIHZlc3RhdCBTRVQgeCA9 IDEwMDAxOworVkFDVVVNIChQQVJBTExFTCAwLCBCVUZGRVJfVVNBR0VfTElNSVQgMTI4KSB2 ZXN0YXQ7CitcYyByZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworU0VUIHRyYWNr X3ZhY3V1bV9zdGF0aXN0aWNzIFRPIG9uOworLS0gTm93IGNoZWNrIHZhY3V1bSBzdGF0aXN0 aWNzIGZvciBwb3N0Z3JlcyBkYXRhYmFzZSBmcm9tIGFub3RoZXIgZGF0YWJhc2UKK1NFTEVD VCBkYm5hbWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAg ICAgIHRvdGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAg ICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAg ICAgIHdhbF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4g MCBBUyB3YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAg ICAgIHRvdGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVt X2RhdGFiYXNlCitXSEVSRSBkYm5hbWUgPSAncmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVt X2RiJzsKKyAgICAgICAgICAgICBkYm5hbWUgICAgICAgICAgICAgfCBkYl9ibGtzX2hpdCB8 IHRvdGFsX2Jsa3NfZGlydGllZCB8IHRvdGFsX2Jsa3Nfd3JpdHRlbiB8IHdhbF9yZWNvcmRz IHwgd2FsX2ZwaSB8IHdhbF9ieXRlcyB8IHRvdGFsX3RpbWUgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc3RhdGlzdGljX3ZhY3V1bV9kYiB8IHQgICAg ICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdAorKDEgcm93KQorCitcYyByZWdy ZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIKK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGlj cyBUTyBvbjsKK0RST1AgVEFCTEUgdmVzdGF0IENBU0NBREU7CitcYyByZWdyZXNzaW9uX3N0 YXRpc3RpY192YWN1dW1fZGIxOworU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPIG9u OworU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2RhdGFiYXNlIGQKK0NST1NTIEpPSU4gcGdf c3RhdF9nZXRfdmFjdXVtX3RhYmxlcygwKQorV0hFUkUgb2lkID0gMDsgLS0gbXVzdCBiZSAw CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworXGMgcG9zdGdyZXMKK0RS T1AgREFUQUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK0RST1AgREFU QUJBU0UgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiOworUkVTRVQgdHJhY2tfdmFj dXVtX3N0YXRpc3RpY3M7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAw MTk3ODMwYjVjZC4uZmEyNDg5NzE2Y2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQpAQCAtMTQ1LDQgKzE0NSw0IEBAIHRlc3Q6IHRhYmxlc3BhY2UKICMgQ2hlY2sgdmFj dXVtIHN0YXRpc3RpY3MKICMgLS0tLS0tLS0tLQogdGVzdDogdmFjdXVtX2luZGV4X3N0YXRp c3RpY3MKLXRlc3Q6IHZhY3V1bV90YWJsZXNfc3RhdGlzdGljcwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKK3Rlc3Q6IHZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3MKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC92YWN1dW1faW5kZXhfc3RhdGlzdGljcy5zcWwKaW5kZXggYWUxNDZlMWQyM2YuLjliN2U2 NDUxODdkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1faW5kZXhf c3RhdGlzdGljcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX2luZGV4 X3N0YXRpc3RpY3Muc3FsCkBAIC0xNCw4ICsxNCw3IEBAIFNIT1cgdHJhY2tfY291bnRzOyAg LS0gbXVzdCBiZSBvbgogLS0gbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IHdlIHdhbnQg dG8gdGVzdCBpdC4uLgogU0VUIHRyYWNrX2Z1bmN0aW9ucyBUTyAnYWxsJzsKIAotLS0gVGVz dCB0aGF0IHZhY3V1bSBzdGF0aXN0aWNzIHdpbGwgYmUgZW1wdHkgd2hlbiBwYXJhbWV0ZXIg aXMgb2ZmLgotU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvZmYnOworU0hPVyB0 cmFja192YWN1dW1fc3RhdGlzdGljczsgIC0tIG11c3QgYmUgb2ZmCiAKIENSRUFURSBUQUJM RSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBvZmYsIGZpbGxm YWN0b3IgPSAxMCk7CiBJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CkBAIC0zMyw3ICszMiw3IEBAIFdIRVJF IHZ0LnJlbG5hbWUgPSAndmVzdGF0JzsKIFJFU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNz OwogRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKIAotU0hPVyB0cmFja192YWN1dW1fc3Rh dGlzdGljczsgIC0tIG11c3QgYmUgb24KK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBU TyAnb24nOwogCiAtLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAogU0VMRUNU IHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwpAQCAtMTQ5LDMgKzE0OCw0IEBAIEZST00g cGdfc3RhdF92YWN1dW1faW5kZXhlcyB2dCwgcGdfY2xhc3MgYwogV0hFUkUgdnQucmVsbmFt ZSA9ICd2ZXN0YXRfcGtleScgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CiAKIERST1AgVEFCTEUg dmVzdGF0OworUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5zcWwK c2ltaWxhcml0eSBpbmRleCA4MSUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVncmVzcy9zcWwv dmFjdXVtX3RhYmxlc19zdGF0aXN0aWNzLnNxbApyZW5hbWUgdG8gc3JjL3Rlc3QvcmVncmVz cy9zcWwvdmFjdXVtX3RhYmxlc19hbmRfZGJfc3RhdGlzdGljcy5zcWwKaW5kZXggNWJjMzRi ZWM2NGIuLmNhN2RiZGU5Mzg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92 YWN1dW1fdGFibGVzX3N0YXRpc3RpY3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ZhY3V1bV90YWJsZXNfYW5kX2RiX3N0YXRpc3RpY3Muc3FsCkBAIC03LDE1ICs3LDEzIEBA CiAtLSBTdGF0aXN0aWMgd2FsX2ZwaSBpcyBub3QgZGlzcGxheWVkIGluIHRoaXMgdGVzdCBi ZWNhdXNlIGl0cyBiZWhhdmlvciBpcyB1bnN0YWJsZS4KIC0tCiAKLS0tIGNvbmRpdGlvIHNp bmUgcXVhIG5vbgogU0hPVyB0cmFja19jb3VudHM7ICAtLSBtdXN0IGJlIG9uCiBcc2V0IHNh bXBsZV9zaXplIDEwMDAwCiAKIC0tIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCB3ZSB3 YW50IHRvIHRlc3QgaXQuLi4KIFNFVCB0cmFja19mdW5jdGlvbnMgVE8gJ2FsbCc7CiAKLS0t IFRlc3QgdGhhdCB2YWN1dW0gc3RhdGlzdGljcyB3aWxsIGJlIGVtcHR5IHdoZW4gcGFyYW1l dGVyIGlzIG9mZi4KLVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljcyBUTyAnb2ZmJzsKK1NI T1cgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3M7ICAtLSBtdXN0IGJlIG9mZgogCiBDUkVBVEUg VEFCTEUgdmVzdGF0ICh4IGludCkgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmLCBm aWxsZmFjdG9yID0gMTApOwogSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsOnNhbXBsZV9zaXplKSBhcyB4OwpAQCAtMzYsNyArMzQsMTMgQEAg V0hFUkUgdnQucmVsbmFtZSA9ICd2ZXN0YXQnOwogUkVTRVQgdHJhY2tfdmFjdXVtX3N0YXRp c3RpY3M7CiBEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOwogCi1TSE9XIHRyYWNrX3ZhY3V1 bV9zdGF0aXN0aWNzOyAgLS0gbXVzdCBiZSBvbgorQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Np b25fc3RhdGlzdGljX3ZhY3V1bV9kYjsKK0NSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX3N0 YXRpc3RpY192YWN1dW1fZGIxOworXGMgcmVncmVzc2lvbl9zdGF0aXN0aWNfdmFjdXVtX2Ri OworU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPIG9uOworCistLSBub3QgZW5hYmxl ZCBieSBkZWZhdWx0LCBidXQgd2Ugd2FudCB0byB0ZXN0IGl0Li4uCitTRVQgdHJhY2tfZnVu Y3Rpb25zIFRPICdhbGwnOwogCiAtLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hl ZAogU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwpAQCAtMTgwLDQgKzE4NCw1 OSBAQCBWQUNVVU0gKFBBUkFMTEVMIDAsIEJVRkZFUl9VU0FHRV9MSU1JVCAxMjgpIHZlc3Rh dDsKIFNFTEVDVCB2bV9uZXdfZnJvemVuX3BhZ2VzID0gOnBmIEFTIHZtX25ld19mcm96ZW5f cGFnZXMsdm1fbmV3X3Zpc2libGVfcGFnZXMgPSA6cHYgQVMgdm1fbmV3X3Zpc2libGVfcGFn ZXMsdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gOnB2ZiBBUyB2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXMsIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gOmhhZnAgQVMgcmV2X2Fs bF9mcm96ZW5fcGFnZXMscmV2X2FsbF92aXNpYmxlX3BhZ2VzID0gOmhhdnAgQVMgcmV2X2Fs bF92aXNpYmxlX3BhZ2VzCiBGUk9NIHBnX3N0YXRfdmFjdXVtX3RhYmxlcywgcGdfc3RhdF9h bGxfdGFibGVzIFdIRVJFIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxuYW1lID0gJ3Zlc3Rh dCcgYW5kIHBnX3N0YXRfdmFjdXVtX3RhYmxlcy5yZWxpZCA9IHBnX3N0YXRfYWxsX3RhYmxl cy5yZWxpZDsKIAotRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitEUk9QIFRBQkxFIHZlc3RhdCBDQVNDQURFOworCistLSBOb3cgY2hl Y2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIGN1cnJlbnQgZGF0YWJhc2UKK1NFTEVDVCBkYm5h bWUsCisgICAgICAgZGJfYmxrc19oaXQgPiAwIEFTIGRiX2Jsa3NfaGl0LAorICAgICAgIHRv dGFsX2Jsa3NfZGlydGllZCA+IDAgQVMgdG90YWxfYmxrc19kaXJ0aWVkLAorICAgICAgIHRv dGFsX2Jsa3Nfd3JpdHRlbiA+IDAgQVMgdG90YWxfYmxrc193cml0dGVuLAorICAgICAgIHdh bF9yZWNvcmRzID4gMCBBUyB3YWxfcmVjb3JkcywKKyAgICAgICB3YWxfZnBpID4gMCBBUyB3 YWxfZnBpLAorICAgICAgIHdhbF9ieXRlcyA+IDAgQVMgd2FsX2J5dGVzLAorICAgICAgIHRv dGFsX3RpbWUgPiAwIEFTIHRvdGFsX3RpbWUKK0ZST00KK3BnX3N0YXRfdmFjdXVtX2RhdGFi YXNlCitXSEVSRSBkYm5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCk7CisKKy0tIGVuc3VyZSBw ZW5kaW5nIHN0YXRzIGFyZSBmbHVzaGVkCitTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2Zs dXNoKCk7CisKK0NSRUFURSBUQUJMRSB2ZXN0YXQgKHggaW50KSBXSVRIIChhdXRvdmFjdXVt X2VuYWJsZWQgPSBvZmYsIGZpbGxmYWN0b3IgPSAxMCk7CitJTlNFUlQgSU5UTyB2ZXN0YXQg U0VMRUNUIHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw6c2FtcGxlX3NpemUpIGFzIHg7CitB TkFMWVpFIHZlc3RhdDsKK1VQREFURSB2ZXN0YXQgU0VUIHggPSAxMDAwMTsKK1ZBQ1VVTSAo UEFSQUxMRUwgMCwgQlVGRkVSX1VTQUdFX0xJTUlUIDEyOCkgdmVzdGF0OworCitcYyByZWdy ZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIxOworU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzIFRPIG9uOworCistLSBOb3cgY2hlY2sgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHBvc3Rn cmVzIGRhdGFiYXNlIGZyb20gYW5vdGhlciBkYXRhYmFzZQorU0VMRUNUIGRibmFtZSwKKyAg ICAgICBkYl9ibGtzX2hpdCA+IDAgQVMgZGJfYmxrc19oaXQsCisgICAgICAgdG90YWxfYmxr c19kaXJ0aWVkID4gMCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgICAgdG90YWxfYmxr c193cml0dGVuID4gMCBBUyB0b3RhbF9ibGtzX3dyaXR0ZW4sCisgICAgICAgd2FsX3JlY29y ZHMgPiAwIEFTIHdhbF9yZWNvcmRzLAorICAgICAgIHdhbF9mcGkgPiAwIEFTIHdhbF9mcGks CisgICAgICAgd2FsX2J5dGVzID4gMCBBUyB3YWxfYnl0ZXMsCisgICAgICAgdG90YWxfdGlt ZSA+IDAgQVMgdG90YWxfdGltZQorRlJPTQorcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKK1dI RVJFIGRibmFtZSA9ICdyZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGInOworCitcYyBy ZWdyZXNzaW9uX3N0YXRpc3RpY192YWN1dW1fZGIKK1NFVCB0cmFja192YWN1dW1fc3RhdGlz dGljcyBUTyBvbjsKKworRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FERTsKKworXGMgcmVncmVz c2lvbl9zdGF0aXN0aWNfdmFjdXVtX2RiMTsKK1NFVCB0cmFja192YWN1dW1fc3RhdGlzdGlj cyBUTyBvbjsKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19kYXRhYmFzZSBkCitDUk9TUyBK T0lOIHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoMCkKK1dIRVJFIG9pZCA9IDA7IC0tIG11 c3QgYmUgMAorCitcYyBwb3N0Z3JlcworRFJPUCBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRp c3RpY192YWN1dW1fZGIxOworRFJPUCBEQVRBQkFTRSByZWdyZXNzaW9uX3N0YXRpc3RpY192 YWN1dW1fZGI7CitSRVNFVCB0cmFja192YWN1dW1fc3RhdGlzdGljczsKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM0LjEKCg== --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/x-patch; charset=UTF-8; name="0004-Vacuum-statistics-have-been-separated-from-regular-r.patch" Content-Disposition: attachment; filename*0="0004-Vacuum-statistics-have-been-separated-from-regular-r.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMmRhM2UwOGUwOGYzYzFlZGMxMjE2MGEyMzdmMTU1MTZlNTA2MjcwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAyIEp1biAyMDI1IDIyOjI0OjM4ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCA0LzVdIFZhY3V1bSBzdGF0aXN0aWNzIGhhdmUgYmVlbiBzZXBhcmF0ZWQg ZnJvbSByZWd1bGFyCiByZWxhdGlvbiBhbmQgZGF0YWJhc2Ugc3RhdGlzdGljcyB0byByZWR1 Y2UgbWVtb3J5IHVzYWdlLiBEZWRpY2F0ZWQKIFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElP TiBhbmQgUEdTVEFUX0tJTkRfVkFDVVVNX0RCIGVudHJpZXMgd2VyZSBhZGRlZCB0bwogdGhl IHN0YXRzIGNvbGxlY3RvciB0byBlZmZpY2llbnRseSBhbGxvY2F0ZSBtZW1vcnkgZm9yIHZh Y3V1bS1zcGVjaWZpYwogbWV0cmljcywgd2hpY2ggcmVxdWlyZSBzaWduaWZpY2FudGx5IG1v cmUgc3BhY2UgcGVyIHJlbGF0aW9uLgoKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgICAgICAgICB8IDE2OCArKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9pbmRleC5jICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvZGJjb21tYW5kcy5jICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdC5jICAgICAgICAgIHwgIDI4ICsrCiBzcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyB8ICAxMCArLQogc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgfCAxMTEgKy0tLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF92YWN1dW0uYyAgIHwgMjI0ICsrKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAg fCAyODUgKysrKystLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmggICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMjAwICsrKysrKystLS0tLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL3Bnc3RhdF9pbnRlcm5hbC5oICAgICAgICAgIHwgIDE1ICsKIHNyYy9pbmNsdWRlL3V0 aWxzL3Bnc3RhdF9raW5kLmggICAgICAgICAgICAgIHwgICA0ICstCiAxNSBmaWxlcyBjaGFu Z2VkLCA1NjkgaW5zZXJ0aW9ucygrKSwgNDk2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF92YWN1dW0uYwoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAzZDcyZjc0YjA1ZS4uMjRi NmI2NGMzZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQx Myw3ICs0MTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAKIAlpbnQzMgkJd3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDsgLyogbnVtYmVyIG9mIGVtZXJnZW5jeSB2YWN1dW1z IHRvIHByZXZlbnQgYW50aS13cmFwYXJvdW5kIHNodXRkb3duICovCiAKLQlFeHRWYWNSZXBv cnQgZXh0VmFjUmVwb3J0SWR4OworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRW YWNSZXBvcnRJZHg7CiB9IExWUmVsU3RhdGU7CiAKIApAQCAtNTI1LDcgKzUyNSw3IEBAIGV4 dHZhY19zdGF0c19zdGFydChSZWxhdGlvbiByZWwsIExWRXh0U3RhdENvdW50ZXJzICpjb3Vu dGVycykKICAqLwogc3RhdGljIHZvaWQKIGV4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVs LCBMVkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMsCi0JCQkJICBFeHRWYWNSZXBvcnQgKnJl cG9ydCkKKwkJCQkgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpyZXBvcnQpCiB7CiAJ V2FsVXNhZ2UJd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UJYnVmdXNhZ2U7CkBAIC01NDksMjIg KzU0OSwyMiBAQCBleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwgTFZFeHRTdGF0Q291 bnRlcnMgKmNvdW50ZXJzLAogCS8qCiAJICogRmlsbCBhZGRpdGlvbmFsIHN0YXRpc3RpY3Mg b24gYSB2YWN1dW0gcHJvY2Vzc2luZyBvcGVyYXRpb24uCiAJICovCi0JcmVwb3J0LT50b3Rh bF9ibGtzX3JlYWQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hh cmVkX2Jsa3NfcmVhZDsKLQlyZXBvcnQtPnRvdGFsX2Jsa3NfaGl0ICs9IGJ1ZnVzYWdlLmxv Y2FsX2Jsa3NfaGl0ICsgYnVmdXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0OwotCXJlcG9ydC0+dG90 YWxfYmxrc19kaXJ0aWVkICs9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCArIGJ1ZnVz YWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQ7Ci0JcmVwb3J0LT50b3RhbF9ibGtzX3dyaXR0ZW4g Kz0gYnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsKKwlyZXBvcnQtPmNvbW1vbi50b3Rh bF9ibGtzX3JlYWQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19yZWFkICsgYnVmdXNhZ2Uuc2hh cmVkX2Jsa3NfcmVhZDsKKwlyZXBvcnQtPmNvbW1vbi50b3RhbF9ibGtzX2hpdCArPSBidWZ1 c2FnZS5sb2NhbF9ibGtzX2hpdCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdDsKKwlyZXBv cnQtPmNvbW1vbi50b3RhbF9ibGtzX2RpcnRpZWQgKz0gYnVmdXNhZ2UubG9jYWxfYmxrc19k aXJ0aWVkICsgYnVmdXNhZ2Uuc2hhcmVkX2Jsa3NfZGlydGllZDsKKwlyZXBvcnQtPmNvbW1v bi50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gYnVmdXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbjsK IAotCXJlcG9ydC0+d2FsX3JlY29yZHMgKz0gd2FsdXNhZ2Uud2FsX3JlY29yZHM7Ci0JcmVw b3J0LT53YWxfZnBpICs9IHdhbHVzYWdlLndhbF9mcGk7Ci0JcmVwb3J0LT53YWxfYnl0ZXMg Kz0gd2FsdXNhZ2Uud2FsX2J5dGVzOworCXJlcG9ydC0+Y29tbW9uLndhbF9yZWNvcmRzICs9 IHdhbHVzYWdlLndhbF9yZWNvcmRzOworCXJlcG9ydC0+Y29tbW9uLndhbF9mcGkgKz0gd2Fs dXNhZ2Uud2FsX2ZwaTsKKwlyZXBvcnQtPmNvbW1vbi53YWxfYnl0ZXMgKz0gd2FsdXNhZ2Uu d2FsX2J5dGVzOwogCi0JcmVwb3J0LT5ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VU X01JTExJU0VDKGJ1ZnVzYWdlLmxvY2FsX2Jsa19yZWFkX3RpbWUpOwotCXJlcG9ydC0+Ymxr X3JlYWRfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRf YmxrX3JlYWRfdGltZSk7Ci0JcmVwb3J0LT5ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1F X0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSk7Ci0JcmVwb3J0 LT5ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5z aGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCXJlcG9ydC0+ZGVsYXlfdGltZSArPSBWYWN1dW1E ZWxheVRpbWUgLSBjb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lOworCXJlcG9ydC0+Y29tbW9u LmJsa19yZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9j YWxfYmxrX3JlYWRfdGltZSk7CisJcmVwb3J0LT5jb21tb24uYmxrX3JlYWRfdGltZSArPSBJ TlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS5zaGFyZWRfYmxrX3JlYWRfdGltZSk7 CisJcmVwb3J0LT5jb21tb24uYmxrX3dyaXRlX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlM TElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3dyaXRlX3RpbWUpOworCXJlcG9ydC0+Y29tbW9u LmJsa193cml0ZV90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLnNo YXJlZF9ibGtfd3JpdGVfdGltZSk7CisJcmVwb3J0LT5jb21tb24uZGVsYXlfdGltZSArPSBW YWN1dW1EZWxheVRpbWUgLSBjb3VudGVycy0+VmFjdXVtRGVsYXlUaW1lOwogCi0JcmVwb3J0 LT50b3RhbF90aW1lICs9IHNlY3MgKiAxMDAwLiArIHVzZWNzIC8gMTAwMC47CisJcmVwb3J0 LT5jb21tb24udG90YWxfdGltZSArPSBzZWNzICogMTAwMC4gKyB1c2VjcyAvIDEwMDAuOwog CiAJaWYgKCFyZWwtPnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJhY2tfY291bnRzKQogCQkv KgpAQCAtNTczLDkgKzU3Myw5IEBAIGV4dHZhY19zdGF0c19lbmQoUmVsYXRpb24gcmVsLCBM VkV4dFN0YXRDb3VudGVycyAqY291bnRlcnMsCiAJCSAqLwogCQlyZXR1cm47CiAKLQlyZXBv cnQtPmJsa3NfZmV0Y2hlZCArPQorCXJlcG9ydC0+Y29tbW9uLmJsa3NfZmV0Y2hlZCArPQog CQlyZWwtPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2ZldGNoZWQgLSBjb3VudGVycy0+ YmxvY2tzX2ZldGNoZWQ7Ci0JcmVwb3J0LT5ibGtzX2hpdCArPQorCXJlcG9ydC0+Y29tbW9u LmJsa3NfaGl0ICs9CiAJCXJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3NfaGl0IC0g Y291bnRlcnMtPmJsb2Nrc19oaXQ7CiB9CiAKQEAgLTYwMyw5ICs2MDMsOSBAQCBleHR2YWNf c3RhdHNfc3RhcnRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpz dGF0cywKIAogdm9pZAogZXh0dmFjX3N0YXRzX2VuZF9pZHgoUmVsYXRpb24gcmVsLCBJbmRl eEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAotCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJZHgg KmNvdW50ZXJzLCBFeHRWYWNSZXBvcnQgKnJlcG9ydCkKKwkJCQkJIExWRXh0U3RhdENvdW50 ZXJzSWR4ICpjb3VudGVycywgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpyZXBvcnQp CiB7Ci0JbWVtc2V0KHJlcG9ydCwgMCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCW1lbXNl dChyZXBvcnQsIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMpKTsKIAog CWV4dHZhY19zdGF0c19lbmQocmVsLCAmY291bnRlcnMtPmNvbW1vbiwgcmVwb3J0KTsKIAly ZXBvcnQtPnR5cGUgPSBQR1NUQVRfRVhUVkFDX0lOREVYOwpAQCAtNjE4LDcgKzYxOCw3IEBA IGV4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICpzdGF0cywKIAkJICovCiAKIAkJLyogRmlsbCBpbmRleC1zcGVjaWZpYyBleHRlbmRl ZCBzdGF0cyBmaWVsZHMgKi8KLQkJcmVwb3J0LT50dXBsZXNfZGVsZXRlZCA9CisJCXJlcG9y dC0+Y29tbW9uLnR1cGxlc19kZWxldGVkID0KIAkJCQkJCQlzdGF0cy0+dHVwbGVzX3JlbW92 ZWQgLSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQ7CiAJCXJlcG9ydC0+aW5kZXgucGFnZXNf ZGVsZXRlZCA9CiAJCQkJCQkJc3RhdHMtPnBhZ2VzX2RlbGV0ZWQgLSBjb3VudGVycy0+cGFn ZXNfZGVsZXRlZDsKQEAgLTY0MSw3ICs2NDEsNyBAQCBleHR2YWNfc3RhdHNfZW5kX2lkeChS ZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAgICogcHJvY3Vk dXJlLgogKi8KIHN0YXRpYyB2b2lkCi1hY2N1bXVsYXRlX2hlYXBfdmFjdXVtX3N0YXRpc3Rp Y3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBFeHRWYWNSZXBvcnQgKmV4dFZhY1N0YXRzKQorYWNj dW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0aWNzKExWUmVsU3RhdGUgKnZhY3JlbCwgUGdT dGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpleHRWYWNTdGF0cykKIHsKIAlpZiAoIXBnc3Rh dF90cmFja192YWN1dW1fc3RhdGlzdGljcykKIAkJcmV0dXJuOwpAQCAtNjUzLDQ5ICs2NTMs NDkgQEAgYWNjdW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0aXN0aWNzKExWUmVsU3RhdGUgKnZh Y3JlbCwgRXh0VmFjUmVwb3J0ICpleHRWYWNTdGF0cykKIAlleHRWYWNTdGF0cy0+dGFibGUu dm1fbmV3X2Zyb3plbl9wYWdlcyA9IHZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlczsKIAll eHRWYWNTdGF0cy0+dGFibGUudm1fbmV3X3Zpc2libGVfcGFnZXMgPSB2YWNyZWwtPnZtX25l d192aXNpYmxlX3BhZ2VzOwogCWV4dFZhY1N0YXRzLT50YWJsZS52bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMgPSB2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczsKLQll eHRWYWNTdGF0cy0+dHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19kZWxldGVkOwor CWV4dFZhY1N0YXRzLT5jb21tb24udHVwbGVzX2RlbGV0ZWQgPSB2YWNyZWwtPnR1cGxlc19k ZWxldGVkOwogCWV4dFZhY1N0YXRzLT50YWJsZS50dXBsZXNfZnJvemVuID0gdmFjcmVsLT50 dXBsZXNfZnJvemVuOwogCWV4dFZhY1N0YXRzLT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxl cyA9IHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXM7CiAJZXh0VmFjU3RhdHMtPnRhYmxl LnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9kZWFkX3R1cGxlczsK IAlleHRWYWNTdGF0cy0+dGFibGUubWlzc2VkX2RlYWRfdHVwbGVzID0gdmFjcmVsLT5taXNz ZWRfZGVhZF90dXBsZXM7CiAJZXh0VmFjU3RhdHMtPnRhYmxlLm1pc3NlZF9kZWFkX3BhZ2Vz ID0gdmFjcmVsLT5taXNzZWRfZGVhZF9wYWdlczsKIAlleHRWYWNTdGF0cy0+dGFibGUuaW5k ZXhfdmFjdXVtX2NvdW50ID0gdmFjcmVsLT5udW1faW5kZXhfc2NhbnM7Ci0JZXh0VmFjU3Rh dHMtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFp bHNhZmVfY291bnQ7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi53cmFwYXJvdW5kX2ZhaWxzYWZl X2NvdW50ID0gdmFjcmVsLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwogCi0JZXh0VmFj U3RhdHMtPmJsa19yZWFkX3RpbWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguYmxrX3Jl YWRfdGltZTsKLQlleHRWYWNTdGF0cy0+YmxrX3dyaXRlX3RpbWUgLT0gdmFjcmVsLT5leHRW YWNSZXBvcnRJZHguYmxrX3dyaXRlX3RpbWU7Ci0JZXh0VmFjU3RhdHMtPnRvdGFsX2Jsa3Nf ZGlydGllZCAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX2RpcnRpZWQ7 Ci0JZXh0VmFjU3RhdHMtPnRvdGFsX2Jsa3NfaGl0IC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0 SWR4LnRvdGFsX2Jsa3NfaGl0OwotCWV4dFZhY1N0YXRzLT50b3RhbF9ibGtzX3JlYWQgLT0g dmFjcmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxfYmxrc19yZWFkOwotCWV4dFZhY1N0YXRz LT50b3RhbF9ibGtzX3dyaXR0ZW4gLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgudG90YWxf Ymxrc193cml0dGVuOwotCWV4dFZhY1N0YXRzLT53YWxfYnl0ZXMgLT0gdmFjcmVsLT5leHRW YWNSZXBvcnRJZHgud2FsX2J5dGVzOwotCWV4dFZhY1N0YXRzLT53YWxfZnBpIC09IHZhY3Jl bC0+ZXh0VmFjUmVwb3J0SWR4LndhbF9mcGk7Ci0JZXh0VmFjU3RhdHMtPndhbF9yZWNvcmRz IC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LndhbF9yZWNvcmRzOworCWV4dFZhY1N0YXRz LT5jb21tb24uYmxrX3JlYWRfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21t b24uYmxrX3JlYWRfdGltZTsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLmJsa193cml0ZV90aW1l IC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi5ibGtfd3JpdGVfdGltZTsKKwll eHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3NfZGlydGllZCAtPSB2YWNyZWwtPmV4dFZh Y1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc19kaXJ0aWVkOworCWV4dFZhY1N0YXRzLT5j b21tb24udG90YWxfYmxrc19oaXQgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9u LnRvdGFsX2Jsa3NfaGl0OworCWV4dFZhY1N0YXRzLT5jb21tb24udG90YWxfYmxrc19yZWFk IC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX3JlYWQ7CisJ ZXh0VmFjU3RhdHMtPmNvbW1vbi50b3RhbF9ibGtzX3dyaXR0ZW4gLT0gdmFjcmVsLT5leHRW YWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX2Jsa3Nfd3JpdHRlbjsKKwlleHRWYWNTdGF0cy0+ Y29tbW9uLndhbF9ieXRlcyAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24ud2Fs X2J5dGVzOworCWV4dFZhY1N0YXRzLT5jb21tb24ud2FsX2ZwaSAtPSB2YWNyZWwtPmV4dFZh Y1JlcG9ydElkeC5jb21tb24ud2FsX2ZwaTsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLndhbF9y ZWNvcmRzIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi53YWxfcmVjb3JkczsK IAotCWV4dFZhY1N0YXRzLT50b3RhbF90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4 LnRvdGFsX3RpbWU7Ci0JZXh0VmFjU3RhdHMtPmRlbGF5X3RpbWUgLT0gdmFjcmVsLT5leHRW YWNSZXBvcnRJZHguZGVsYXlfdGltZTsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX3Rp bWUgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX3RpbWU7CisJZXh0 VmFjU3RhdHMtPmNvbW1vbi5kZWxheV90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4 LmNvbW1vbi5kZWxheV90aW1lOwogCiB9CiAKIHN0YXRpYyB2b2lkCi1hY2N1bXVsYXRlX2lk eHNfdmFjdXVtX3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBFeHRWYWNSZXBvcnQg KmV4dFZhY0lkeFN0YXRzKQorYWNjdW11bGF0ZV9pZHhzX3ZhY3V1bV9zdGF0aXN0aWNzKExW UmVsU3RhdGUgKnZhY3JlbCwgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpleHRWYWNJ ZHhTdGF0cykKIHsKIAlpZiAoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKIAkJ cmV0dXJuOwogCiAJLyogRmlsbCBoZWFwLXNwZWNpZmljIGV4dGVuZGVkIHN0YXRzIGZpZWxk cyAqLwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmJsa19yZWFkX3RpbWUgKz0gZXh0VmFj SWR4U3RhdHMtPmJsa19yZWFkX3RpbWU7Ci0JdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguYmxr X3dyaXRlX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmJsa193cml0ZV90aW1lOwotCXZhY3Jl bC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFsX2Jsa3NfZGlydGllZCArPSBleHRWYWNJZHhTdGF0 cy0+dG90YWxfYmxrc19kaXJ0aWVkOwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LnRvdGFs X2Jsa3NfaGl0ICs9IGV4dFZhY0lkeFN0YXRzLT50b3RhbF9ibGtzX2hpdDsKLQl2YWNyZWwt PmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX3JlYWQgKz0gZXh0VmFjSWR4U3RhdHMtPnRv dGFsX2Jsa3NfcmVhZDsKLQl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC50b3RhbF9ibGtzX3dy aXR0ZW4gKz0gZXh0VmFjSWR4U3RhdHMtPnRvdGFsX2Jsa3Nfd3JpdHRlbjsKLQl2YWNyZWwt PmV4dFZhY1JlcG9ydElkeC53YWxfYnl0ZXMgKz0gZXh0VmFjSWR4U3RhdHMtPndhbF9ieXRl czsKLQl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC53YWxfZnBpICs9IGV4dFZhY0lkeFN0YXRz LT53YWxfZnBpOwotCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LndhbF9yZWNvcmRzICs9IGV4 dFZhY0lkeFN0YXRzLT53YWxfcmVjb3JkczsKLQl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5k ZWxheV90aW1lICs9IGV4dFZhY0lkeFN0YXRzLT5kZWxheV90aW1lOwotCi0JdmFjcmVsLT5l eHRWYWNSZXBvcnRJZHgudG90YWxfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+dG90YWxfdGlt ZTsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24uYmxrX3JlYWRfdGltZSArPSBl eHRWYWNJZHhTdGF0cy0+Y29tbW9uLmJsa19yZWFkX3RpbWU7CisJdmFjcmVsLT5leHRWYWNS ZXBvcnRJZHguY29tbW9uLmJsa193cml0ZV90aW1lICs9IGV4dFZhY0lkeFN0YXRzLT5jb21t b24uYmxrX3dyaXRlX3RpbWU7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRv dGFsX2Jsa3NfZGlydGllZCArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3Nf ZGlydGllZDsKKwl2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc19o aXQgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi50b3RhbF9ibGtzX2hpdDsKKwl2YWNyZWwt PmV4dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc19yZWFkICs9IGV4dFZhY0lkeFN0 YXRzLT5jb21tb24udG90YWxfYmxrc19yZWFkOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4 LmNvbW1vbi50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi50 b3RhbF9ibGtzX3dyaXR0ZW47CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLndh bF9ieXRlcyArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLndhbF9ieXRlczsKKwl2YWNyZWwt PmV4dFZhY1JlcG9ydElkeC5jb21tb24ud2FsX2ZwaSArPSBleHRWYWNJZHhTdGF0cy0+Y29t bW9uLndhbF9mcGk7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLndhbF9yZWNv cmRzICs9IGV4dFZhY0lkeFN0YXRzLT5jb21tb24ud2FsX3JlY29yZHM7CisJdmFjcmVsLT5l eHRWYWNSZXBvcnRJZHguY29tbW9uLmRlbGF5X3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmNv bW1vbi5kZWxheV90aW1lOworCisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRv dGFsX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi50b3RhbF90aW1lOwogfQogCiAK QEAgLTg1NSwxMSArODU1LDExIEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIFZh Y3V1bVBhcmFtcyAqcGFyYW1zLAogCUJ1ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBw Z0J1ZmZlclVzYWdlOwogCUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOwogCUxW RXh0U3RhdENvdW50ZXJzIGV4dFZhY0NvdW50ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNS ZXBvcnQ7CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAlj aGFyCSAgKippbmRuYW1lcyA9IE5VTEw7CiAKIAkvKiBJbml0aWFsaXplIHZhY3V1bSBzdGF0 aXN0aWNzICovCi0JbWVtc2V0KCZleHRWYWNSZXBvcnQsIDAsIHNpemVvZihFeHRWYWNSZXBv cnQpKTsKKwltZW1zZXQoJmV4dFZhY1JlcG9ydCwgMCwgc2l6ZW9mKFBnU3RhdF9WYWN1dW1S ZWxhdGlvbkNvdW50cykpOwogCiAJdmVyYm9zZSA9IChwYXJhbXMtPm9wdGlvbnMgJiBWQUNP UFRfVkVSQk9TRSkgIT0gMDsKIAlpbnN0cnVtZW50ID0gKHZlcmJvc2UgfHwgKEFtQXV0b1Zh Y3V1bVdvcmtlclByb2Nlc3MoKSAmJgpAQCAtOTA1LDcgKzkwNSw3IEBAIGhlYXBfdmFjdXVt X3JlbChSZWxhdGlvbiByZWwsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCWVycmNhbGxiYWNr LnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJvcl9jb250ZXh0X3N0YWNr ID0gJmVycmNhbGxiYWNrOwogCi0JbWVtc2V0KCZ2YWNyZWwtPmV4dFZhY1JlcG9ydElkeCwg MCwgc2l6ZW9mKEV4dFZhY1JlcG9ydCkpOworCW1lbXNldCgmdmFjcmVsLT5leHRWYWNSZXBv cnRJZHgsIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMpKTsKIAogCS8q IFNldCB1cCBoaWdoIGxldmVsIHN0dWZmIGFib3V0IHJlbCBhbmQgaXRzIGluZGV4ZXMgKi8K IAl2YWNyZWwtPnJlbCA9IHJlbDsKQEAgLTExNzYsMjUgKzExNzYsMTYgQEAgaGVhcF92YWN1 dW1fcmVsKFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCWV4dHZhY19z dGF0c19lbmQodmFjcmVsLT5yZWwsICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9ydCk7 CiAJCWFjY3VtdWxhdGVfaGVhcF92YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNS ZXBvcnQpOwogCi0JCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQocmVs KSwKLQkJCQkJCSByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCi0JCQkJCQkgTWF4KHZhY3Jl bC0+bmV3X2xpdmVfdHVwbGVzLCAwKSwKLQkJCQkJCSB2YWNyZWwtPnJlY2VudGx5X2RlYWRf dHVwbGVzICsKLSAJCQkJCQkgdmFjcmVsLT5taXNzZWRfZGVhZF90dXBsZXMsCi0JCQkJCQkg c3RhcnR0aW1lLAotCQkJCQkJICZleHRWYWNSZXBvcnQpOworCQlwZ3N0YXRfcmVwb3J0X3Rh Yl92YWN1dW1fZXh0c3RhdHModmFjcmVsLT5yZWxvaWQsIHJlbC0+cmRfcmVsLT5yZWxpc3No YXJlZCwgJmV4dFZhY1JlcG9ydCk7CiAKIAl9Ci0JZWxzZQotCXsKLQkJcGdzdGF0X3JlcG9y dF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLAorCisJcGdzdGF0X3JlcG9ydF92YWN1 dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCSByZWwtPnJkX3JlbC0+cmVsaXNz aGFyZWQsCiAJCQkJCQkJIE1heCh2YWNyZWwtPm5ld19saXZlX3R1cGxlcywgMCksCiAJCQkJ CQkJIHZhY3JlbC0+cmVjZW50bHlfZGVhZF90dXBsZXMgKwogCQkJCQkJCSB2YWNyZWwtPm1p c3NlZF9kZWFkX3R1cGxlcywKLQkJCQkJCQkgc3RhcnR0aW1lLAotCQkJCQkJCSBOVUxMKTsK LQl9CisJCQkJCQkJIHN0YXJ0dGltZSk7CiAKIAlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2NvbW1h bmQoKTsKIApAQCAtMjg5Myw5ICsyODg0LDkgQEAgbGF6eV92YWN1dW1fYWxsX2luZGV4ZXMo TFZSZWxTdGF0ZSAqdmFjcmVsKQogCWVsc2UKIAl7CiAJCUxWRXh0U3RhdENvdW50ZXJzIGNv dW50ZXJzOwotCQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCQlQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMgZXh0VmFjUmVwb3J0OwogCi0JCW1lbXNldCgmZXh0VmFjUmVwb3J0 LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAw LCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzKSk7CiAKIAkJZXh0dmFjX3N0 YXRzX3N0YXJ0KHZhY3JlbC0+cmVsLCAmY291bnRlcnMpOwogCkBAIC0zMzI3LDkgKzMzMTgs OSBAQCBsYXp5X2NsZWFudXBfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCWVs c2UKIAl7CiAJCUxWRXh0U3RhdENvdW50ZXJzIGNvdW50ZXJzOwotCQlFeHRWYWNSZXBvcnQg ZXh0VmFjUmVwb3J0OworCQlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgZXh0VmFjUmVw b3J0OwogCi0JCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0 KSk7CisJCW1lbXNldCgmZXh0VmFjUmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzKSk7CiAKIAkJZXh0dmFjX3N0YXRzX3N0YXJ0KHZhY3JlbC0+cmVsLCAm Y291bnRlcnMpOwogCkBAIC0zMzY2LDcgKzMzNTcsNyBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5k ZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCUlu ZGV4VmFjdXVtSW5mbyBpdmluZm87CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRfZXJyX2luZm87 CiAJTFZFeHRTdGF0Q291bnRlcnNJZHggZXh0VmFjQ291bnRlcnM7Ci0JRXh0VmFjUmVwb3J0 IGV4dFZhY1JlcG9ydDsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgZXh0VmFjUmVw b3J0OwogCiAJLyogU2V0IGluaXRpYWwgc3RhdGlzdGljcyB2YWx1ZXMgdG8gZ2F0aGVyIHZh Y3V1bSBzdGF0aXN0aWNzIGZvciB0aGUgaW5kZXggKi8KIAlleHR2YWNfc3RhdHNfc3RhcnRf aWR4KGluZHJlbCwgaXN0YXQsICZleHRWYWNDb3VudGVycyk7CkBAIC0zNDA1LDkgKzMzOTYs NyBAQCBsYXp5X3ZhY3V1bV9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKmlzdGF0LAogCQlpZiAoIVBhcmFsbGVsVmFjdXVtSXNBY3RpdmUodmFj cmVsKSkKIAkJCWFjY3VtdWxhdGVfaWR4c192YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZl eHRWYWNSZXBvcnQpOwogCi0JCXBnc3RhdF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVs aWQoaW5kcmVsKSwKLQkJCQkJCQkJaW5kcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAotCQkJ CQkJCQkwLCAwLCAwLCAmZXh0VmFjUmVwb3J0KTsKKwkJcGdzdGF0X3JlcG9ydF90YWJfdmFj dXVtX2V4dHN0YXRzKHZhY3JlbC0+aW5kb2lkLCBpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFy ZWQsICZleHRWYWNSZXBvcnQpOwogCX0KIAogCS8qIFJldmVydCB0byB0aGUgcHJldmlvdXMg cGhhc2UgaW5mb3JtYXRpb24gZm9yIGVycm9yIHRyYWNlYmFjayAqLwpAQCAtMzQzNSw3ICsz NDI0LDcgQEAgbGF6eV9jbGVhbnVwX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4 QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlM VlNhdmVkRXJySW5mbyBzYXZlZF9lcnJfaW5mbzsKIAlMVkV4dFN0YXRDb3VudGVyc0lkeCBl eHRWYWNDb3VudGVyczsKLQlFeHRWYWNSZXBvcnQgZXh0VmFjUmVwb3J0OworCVBnU3RhdF9W YWN1dW1SZWxhdGlvbkNvdW50cyBleHRWYWNSZXBvcnQ7CiAKIAkvKiBTZXQgaW5pdGlhbCBz dGF0aXN0aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBp bmRleCAqLwogCWV4dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZh Y0NvdW50ZXJzKTsKQEAgLTM0NzIsOSArMzQ2MSw3IEBAIGxhenlfY2xlYW51cF9vbmVfaW5k ZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0LAogCQlp ZiAoIVBhcmFsbGVsVmFjdXVtSXNBY3RpdmUodmFjcmVsKSkKIAkJCWFjY3VtdWxhdGVfaWR4 c192YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQpOwogCi0JCXBnc3Rh dF9yZXBvcnRfdmFjdXVtKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwKLQkJCQkJCQkJaW5k cmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAotCQkJCQkJCQkwLCAwLCAwLCAmZXh0VmFjUmVw b3J0KTsKKwkJcGdzdGF0X3JlcG9ydF90YWJfdmFjdXVtX2V4dHN0YXRzKHZhY3JlbC0+aW5k b2lkLCBpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsICZleHRWYWNSZXBvcnQpOwogCX0K IAogCS8qIFJldmVydCB0byB0aGUgcHJldmlvdXMgcGhhc2UgaW5mb3JtYXRpb24gZm9yIGVy cm9yIHRyYWNlYmFjayAqLwpAQCAtNDA3NSw2ICs0MDYyLDI3IEBAIHVwZGF0ZV9yZWxzdGF0 c19hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJfQogfQogCisvKiAtLS0tLS0t LS0KKyAqIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCkgLQorICoKKyAqCVRlbGwgdGhl IGNvbGxlY3RvciBhYm91dCBhbiAoYXV0byl2YWN1dW0gaW50ZXJydXB0aW9uLgorICogLS0t LS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcigp Cit7CisJUGdTdGF0X1ZhY3V1bURCQ291bnRzICp2YWN1dW1fZGJlbnRyeTsKKworCWlmKCFw Z3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCXZhY3V1bV9k YmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVtX2RiZW50cnkoTXlEYXRhYmFzZUlk KTsKKworICAgIGlmKHZhY3V1bV9kYmVudHJ5ID09IE5VTEwpCisgICAgcmV0dXJuOworCXZh Y3V1bV9kYmVudHJ5LT5lcnJvcnMrKzsKK30KKwogLyoKICAqIEVycm9yIGNvbnRleHQgY2Fs bGJhY2sgZm9yIGVycm9ycyBvY2N1cnJpbmcgZHVyaW5nIHZhY3V1bS4gIFRoZSBlcnJvcgog ICogY29udGV4dCBtZXNzYWdlcyBmb3IgaW5kZXggcGhhc2VzIHNob3VsZCBtYXRjaCB0aGUg bWVzc2FnZXMgc2V0IGluIHBhcmFsbGVsCkBAIC00MDkwLDcgKzQwOTgsNyBAQCB2YWN1dW1f ZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCXsKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhB U0VfU0NBTl9IRUFQOgogCQkJaWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCi0JCQkJCXBn c3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPnJlbG9pZCwgUEdTVEFUX0VYVFZB Q19UQUJMRSk7CisJCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCk7CiAKIAkJCWlm IChCbG9ja051bWJlcklzVmFsaWQoZXJyaW5mby0+Ymxrbm8pKQogCQkJewpAQCAtNDEwOCw3 ICs0MTE2LDcgQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZykKIAogCQljYXNl IFZBQ1VVTV9FUlJDQl9QSEFTRV9WQUNVVU1fSEVBUDoKIAkJCWlmKGdldGVycmVsZXZlbCgp ID09IEVSUk9SKQotCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKGVycmluZm8tPnJl bG9pZCwgUEdTVEFUX0VYVFZBQ19UQUJMRSk7CisJCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1f ZXJyb3IoKTsKIAogCQkJaWYgKEJsb2NrTnVtYmVySXNWYWxpZChlcnJpbmZvLT5ibGtubykp CiAJCQl7CkBAIC00MTI2LDcgKzQxMzQsNyBAQCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9p ZCAqYXJnKQogCiAJCWNhc2UgVkFDVVVNX0VSUkNCX1BIQVNFX1ZBQ1VVTV9JTkRFWDoKIAkJ CWlmKGdldGVycmVsZXZlbCgpID09IEVSUk9SKQotCQkJCXBnc3RhdF9yZXBvcnRfdmFjdXVt X2Vycm9yKGVycmluZm8tPmluZG9pZCwgUEdTVEFUX0VYVFZBQ19JTkRFWCk7CisJCQkJcGdz dGF0X3JlcG9ydF92YWN1dW1fZXJyb3IoKTsKIAogCQkJZXJyY29udGV4dCgid2hpbGUgdmFj dXVtaW5nIGluZGV4IFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzLiVzXCIiLAogCQkJCQkgICBl cnJpbmZvLT5pbmRuYW1lLCBlcnJpbmZvLT5yZWxuYW1lc3BhY2UsIGVycmluZm8tPnJlbG5h bWUpOwpAQCAtNDEzNCw3ICs0MTQyLDcgQEAgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQg KmFyZykKIAogCQljYXNlIFZBQ1VVTV9FUlJDQl9QSEFTRV9JTkRFWF9DTEVBTlVQOgogCQkJ aWYoZ2V0ZXJyZWxldmVsKCkgPT0gRVJST1IpCi0JCQkJcGdzdGF0X3JlcG9ydF92YWN1dW1f ZXJyb3IoZXJyaW5mby0+aW5kb2lkLCBQR1NUQVRfRVhUVkFDX0lOREVYKTsKKwkJCQlwZ3N0 YXRfcmVwb3J0X3ZhY3V1bV9lcnJvcigpOwogCiAJCQllcnJjb250ZXh0KCJ3aGlsZSBjbGVh bmluZyB1cCBpbmRleCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlcy4lc1wiIiwKIAkJCQkJICAg ZXJyaW5mby0+aW5kbmFtZSwgZXJyaW5mby0+cmVsbmFtZXNwYWNlLCBlcnJpbmZvLT5yZWxu YW1lKTsKQEAgLTQxNDIsNyArNDE1MCw3IEBAIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lk ICphcmcpCiAKIAkJY2FzZSBWQUNVVU1fRVJSQ0JfUEhBU0VfVFJVTkNBVEU6CiAJCQlpZihn ZXRlcnJlbGV2ZWwoKSA9PSBFUlJPUikKLQkJCQlwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9lcnJv cihlcnJpbmZvLT5yZWxvaWQsIFBHU1RBVF9FWFRWQUNfVEFCTEUpOworCQkJCXBnc3RhdF9y ZXBvcnRfdmFjdXVtX2Vycm9yKCk7CiAKIAkJCWlmIChCbG9ja051bWJlcklzVmFsaWQoZXJy aW5mby0+Ymxrbm8pKQogCQkJCWVycmNvbnRleHQoIndoaWxlIHRydW5jYXRpbmcgcmVsYXRp b24gXCIlcy4lc1wiIHRvICV1IGJsb2NrcyIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IGZiYWVk NTM1OWFkLi43MmM4ZTMzOWM0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9o ZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTE4NzMsNiArMTg3 Myw3IEBAIGhlYXBfZHJvcF93aXRoX2NhdGFsb2coT2lkIHJlbGlkKQogCiAJLyogZW5zdXJl IHRoYXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gY29tbWl0cyAqLwogCXBn c3RhdF9kcm9wX3JlbGF0aW9uKHJlbCk7CisJcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9kZWxl dGVfcGVuZGluZ19jYihSZWxhdGlvbkdldFJlbGlkKHJlbCkpOwogCiAJLyoKIAkgKiBDbG9z ZSByZWxjYWNoZSBlbnRyeSwgYnV0ICprZWVwKiBBY2Nlc3NFeGNsdXNpdmVMb2NrIG9uIHRo ZSByZWxhdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDczOWE5MmJkY2MxLi5lNGZhNzU0 YWFiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMjMyNyw2ICsyMzI3LDcgQEAgaW5kZXhf ZHJvcChPaWQgaW5kZXhJZCwgYm9vbCBjb25jdXJyZW50LCBib29sIGNvbmN1cnJlbnRfbG9j a19tb2RlKQogCiAJLyogZW5zdXJlIHRoYXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJhbnNh Y3Rpb24gY29tbWl0cyAqLwogCXBnc3RhdF9kcm9wX3JlbGF0aW9uKHVzZXJJbmRleFJlbGF0 aW9uKTsKKwlwZ3N0YXRfdmFjdXVtX3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKFJlbGF0 aW9uR2V0UmVsaWQodXNlckluZGV4UmVsYXRpb24pKTsKIAogCS8qCiAJICogQ2xvc2UgYW5k IGZsdXNoIHRoZSBpbmRleCdzIHJlbGNhY2hlIGVudHJ5LCB0byBlbnN1cmUgcmVsY2FjaGUg ZG9lc24ndApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IDVmYmJjZGFhYmIx Li5jNGI5MTBjZDkyOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21t YW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpAQCAtMTc4 OSw2ICsxNzg5LDcgQEAgZHJvcGRiKGNvbnN0IGNoYXIgKmRibmFtZSwgYm9vbCBtaXNzaW5n X29rLCBib29sIGZvcmNlKQogCSAqIFRlbGwgdGhlIGN1bXVsYXRpdmUgc3RhdHMgc3lzdGVt IHRvIGZvcmdldCBpdCBpbW1lZGlhdGVseSwgdG9vLgogCSAqLwogCXBnc3RhdF9kcm9wX2Rh dGFiYXNlKGRiX2lkKTsKKwlwZ3N0YXRfZHJvcF92YWN1dW1fZGF0YWJhc2UoZGJfaWQpOwog CiAJLyoKIAkgKiBFeGNlcHQgZm9yIHRoZSBkZWxldGlvbiBvZiB0aGUgY2F0YWxvZyByb3cs IHN1YnNlcXVlbnQgYWN0aW9ucyBhcmUgbm90CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwppbmRleCA2NWRlNDVhNDQ0Ny4uYjY3MzI2ZWFmY2MgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtODY5LDcgKzg2OSw3IEBAIHBhcmFs bGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs IFJlbGF0aW9uIGluZHJlbCwKIAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0X3JlczsK IAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZh Y0NvdW50ZXJzOwotCUV4dFZhY1JlcG9ydCBleHRWYWNSZXBvcnQ7CisJUGdTdGF0X1ZhY3V1 bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKIAogCS8qCiAJICogVXBkYXRlIHRoZSBw b2ludGVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJ1bGstZGVsZXRpb24gcmVzdWx0IGlmIHNv bWVvbmUKQEAgLTkwOSwxNCArOTA5LDEwIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29u ZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0aW9uIGluZHJlbCwKIAkJ CQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CiAJfQogCi0JaWYocGdzdGF0 X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQotCXsKLQkJLyogTWFrZSBleHRlbmRlZCB2YWN1 dW0gc3RhdHMgcmVwb3J0IGZvciBpbmRleCAqLwotCQlleHR2YWNfc3RhdHNfZW5kX2lkeChp bmRyZWwsIGlzdGF0X3JlcywgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKLQkJ cGdzdGF0X3JlcG9ydF92YWN1dW0oUmVsYXRpb25HZXRSZWxpZChpbmRyZWwpLAotCQkJCQkJ CQlpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCi0JCQkJCQkJCTAsIDAsIDAsICZleHRW YWNSZXBvcnQpOwotCX0KKwkvKiBNYWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQg Zm9yIGluZGV4ICovCisJZXh0dmFjX3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdF9yZXMs ICZleHRWYWNDb3VudGVycywgJmV4dFZhY1JlcG9ydCk7CisJcGdzdGF0X3JlcG9ydF90YWJf dmFjdXVtX2V4dHN0YXRzKFJlbGF0aW9uR2V0UmVsaWQoaW5kcmVsKSwgaW5kcmVsLT5yZF9y ZWwtPnJlbGlzc2hhcmVkLAorCQkJCQkJCQkJCSZleHRWYWNSZXBvcnQpOwogCiAJLyoKIAkg KiBDb3B5IHRoZSBpbmRleCBidWxrLWRlbGV0aW9uIHJlc3VsdCByZXR1cm5lZCBmcm9tIGFt YnVsa2RlbGV0ZSBhbmQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKaW5kZXgg OWMyNDQzZTFlY2QuLjE4M2Y3NTE0ZDJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9N YWtlZmlsZQpAQCAtMjcsNiArMjcsNyBAQCBPQkpTID0gXAogCXBnc3RhdF9mdW5jdGlvbi5v IFwKIAlwZ3N0YXRfaW8ubyBcCiAJcGdzdGF0X3JlbGF0aW9uLm8gXAorCXBnc3RhdF92YWN1 dW0ubyBcCiAJcGdzdGF0X3JlcGxzbG90Lm8gXAogCXBnc3RhdF9zaG1lbS5vIFwKIAlwZ3N0 YXRfc2xydS5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKaW5kZXggODU1 NTc3MzZhM2EuLmNhNzY0YTNhMjE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXQuYwpAQCAtNDc4LDYgKzQ3OCwzNCBAQCBzdGF0aWMgY29uc3QgUGdTdGF0X0tpbmRJbmZv IHBnc3RhdF9raW5kX2J1aWx0aW5faW5mb3NbUEdTVEFUX0tJTkRfQlVJTFRJTl9TSVpFXQog CQkucmVzZXRfYWxsX2NiID0gcGdzdGF0X3dhbF9yZXNldF9hbGxfY2IsCiAJCS5zbmFwc2hv dF9jYiA9IHBnc3RhdF93YWxfc25hcHNob3RfY2IsCiAJfSwKKwlbUEdTVEFUX0tJTkRfVkFD VVVNX0RCXSA9IHsKKwkJLm5hbWUgPSAidmFjdXVtIHN0YXRpc3RpY3MiLAorCisJCS5maXhl ZF9hbW91bnQgPSBmYWxzZSwKKwkJLndyaXRlX3RvX2ZpbGUgPSB0cnVlLAorCQkvKiBzbyBw Z19zdGF0X2RhdGFiYXNlIGVudHJpZXMgY2FuIGJlIHNlZW4gaW4gYWxsIGRhdGFiYXNlcyAq LworCQkuYWNjZXNzZWRfYWNyb3NzX2RhdGFiYXNlcyA9IHRydWUsCisKKwkJLnNoYXJlZF9z aXplID0gc2l6ZW9mKFBnU3RhdFNoYXJlZF9WYWN1dW1EQiksCisJCS5zaGFyZWRfZGF0YV9v ZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfVmFjdXVtREIsIHN0YXRzKSwKKwkJLnNoYXJl ZF9kYXRhX2xlbiA9IHNpemVvZigoKFBnU3RhdFNoYXJlZF9WYWN1dW1EQiAqKSAwKS0+c3Rh dHMpLAorCQkucGVuZGluZ19zaXplID0gc2l6ZW9mKFBnU3RhdF9WYWN1dW1EQkNvdW50cyks CisKKwkJLmZsdXNoX3BlbmRpbmdfY2IgPSBwZ3N0YXRfdmFjdXVtX2RiX2ZsdXNoX2NiLAor CX0sCisJW1BHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElPTl0gPSB7CisJCS5uYW1lID0gInZh Y3V1bSBzdGF0aXN0aWNzIiwKKworCQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCisJCS53cml0 ZV90b19maWxlID0gdHJ1ZSwKKworCQkuc2hhcmVkX3NpemUgPSBzaXplb2YoUGdTdGF0U2hh cmVkX1ZhY3V1bVJlbGF0aW9uKSwKKwkJLnNoYXJlZF9kYXRhX29mZiA9IG9mZnNldG9mKFBn U3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiwgc3RhdHMpLAorCQkuc2hhcmVkX2RhdGFfbGVu ID0gc2l6ZW9mKCgoUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0aW9uICopIDApLT5zdGF0cyks CisJCS5wZW5kaW5nX3NpemUgPSBzaXplb2YoUGdTdGF0X1JlbGF0aW9uVmFjdXVtUGVuZGlu ZyksCisKKwkJLmZsdXNoX3BlbmRpbmdfY2IgPSBwZ3N0YXRfdmFjdXVtX3JlbGF0aW9uX2Zs dXNoX2NiCisJfSwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9kYXRhYmFzZS5jCmluZGV4IDY1MjA3ZDMwMzc4Li44MGU2YzdjMjI5YSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKQEAg LTQ2LDYgKzQ2LDE1IEBAIHBnc3RhdF9kcm9wX2RhdGFiYXNlKE9pZCBkYXRhYmFzZWlkKQog CXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9uYWwoUEdTVEFUX0tJTkRfREFUQUJBU0UsIGRhdGFi YXNlaWQsIEludmFsaWRPaWQpOwogfQogCisvKgorICogUmVtb3ZlIGVudHJ5IGZvciB0aGUg ZGF0YWJhc2UgYmVpbmcgZHJvcHBlZC4KKyAqLwordm9pZAorcGdzdGF0X2Ryb3BfdmFjdXVt X2RhdGFiYXNlKE9pZCBkYXRhYmFzZWlkKQoreworCXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9u YWwoUEdTVEFUX0tJTkRfVkFDVVVNX0RCLCBkYXRhYmFzZWlkLCBJbnZhbGlkT2lkKTsKK30K KwogLyoKICAqIENhbGxlZCBmcm9tIGF1dG92YWN1dW0uYyB0byByZXBvcnQgc3RhcnR1cCBv ZiBhbiBhdXRvdmFjdXVtIHByb2Nlc3MuCiAgKiBXZSBhcmUgY2FsbGVkIGJlZm9yZSBJbml0 UG9zdGdyZXMgaXMgZG9uZSwgc28gY2FuJ3QgcmVseSBvbiBNeURhdGFiYXNlSWQ7CkBAIC00 ODUsNyArNDk0LDYgQEAgcGdzdGF0X2RhdGFiYXNlX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJl ZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5 X3JlZik7CiAKIAltZW1zZXQocGVuZGluZ2VudCwgMCwgc2l6ZW9mKCpwZW5kaW5nZW50KSk7 Ci0JbWVtc2V0KCYocGVuZGluZ2VudCktPnZhY3V1bV9leHQsIDAsIHNpemVvZihFeHRWYWNS ZXBvcnQpKTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYwppbmRleCAxNjk1NjgwZWE2Mi4uYWNjOGYwYjhh NTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlv bi5jCkBAIC00Nyw4ICs0Nyw2IEBAIHN0YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hhY3RfbGV2 ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3RfbGV2CiBzdGF0 aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAq cGdzdGF0X2luZm8pOwogc3RhdGljIHZvaWQgc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMoUGdT dGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnMsIGJvb2wgaXNfZHJvcCk7CiBzdGF0aWMgdm9p ZCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0 cmFucyk7Ci1zdGF0aWMgdm9pZCBwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0 VmFjUmVwb3J0ICpkc3QsIEV4dFZhY1JlcG9ydCAqc3JjLAotCQkJCQkJCSAgIGJvb2wgYWNj dW11bGF0ZV9yZWx0eXBlX3NwZWNpZmljX2luZm8pOwogCiAKIC8qCkBAIC0yMDUsNTAgKzIw MywxNyBAQCBwZ3N0YXRfZHJvcF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCiAJfQogfQogCi0v KiAtLS0tLS0tLS0KLSAqIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9yKCkgLQotICoKLSAq CVRlbGwgdGhlIGNvbGxlY3RvciBhYm91dCBhbiAoYXV0byl2YWN1dW0gaW50ZXJydXB0aW9u LgotICogLS0tLS0tLS0tCi0gKi8KLXZvaWQKLXBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vycm9y KE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpCi17Ci0JUGdTdGF0X0Vu dHJ5UmVmICplbnRyeV9yZWY7Ci0JUGdTdGF0U2hhcmVkX1JlbGF0aW9uICpzaHRhYmVudHJ5 OwotCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OwotCU9pZAkJCWRib2lkID0gIE15 RGF0YWJhc2VJZDsKLQlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7CS8qIHBlbmRpbmcg ZGF0YWJhc2UgZW50cnkgKi8KLQotCWlmICghcGdzdGF0X3RyYWNrX2NvdW50cykKLQkJcmV0 dXJuOwotCi0JZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RB VF9LSU5EX1JFTEFUSU9OLAotCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVvaWQsIGZhbHNlKTsK LQotCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIGVudHJ5X3JlZi0+ c2hhcmVkX3N0YXRzOwotCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0YXRzOwotCi0JdGFi ZW50cnktPnZhY3V1bV9leHQudHlwZSA9IG1fdHlwZTsKLQlwZ3N0YXRfdW5sb2NrX2VudHJ5 KGVudHJ5X3JlZik7Ci0KLQlkYmVudHJ5ID0gcGdzdGF0X3ByZXBfZGF0YWJhc2VfcGVuZGlu ZyhkYm9pZCk7Ci0JZGJlbnRyeS0+dmFjdXVtX2V4dC5lcnJvcnMrKzsKLQlkYmVudHJ5LT52 YWN1dW1fZXh0LnR5cGUgPSBtX3R5cGU7Ci19Ci0KIC8qCiAgKiBSZXBvcnQgdGhhdCB0aGUg dGFibGUgd2FzIGp1c3QgdmFjdXVtZWQgYW5kIGZsdXNoIElPIHN0YXRpc3RpY3MuCiAgKi8K IHZvaWQKIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQs CiAJCQkJCSBQZ1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFk dHVwbGVzLAotCQkJCQkgVGltZXN0YW1wVHogc3RhcnR0aW1lLCBFeHRWYWNSZXBvcnQgKnBh cmFtcykKKwkJCQkJIFRpbWVzdGFtcFR6IHN0YXJ0dGltZSkKIHsKIAlQZ1N0YXRfRW50cnlS ZWYgKmVudHJ5X3JlZjsKIAlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50cnk7CiAJ UGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7Ci0JUGdTdGF0U2hhcmVkX0RhdGFiYXNl ICpkYmVudHJ5OwogCU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQgOiBNeURh dGFiYXNlSWQpOwogCVRpbWVzdGFtcFR6IHRzOwogCVBnU3RhdF9Db3VudGVyIGVsYXBzZWR0 aW1lOwpAQCAtMjcwLDggKzIzNSw2IEBAIHBnc3RhdF9yZXBvcnRfdmFjdXVtKE9pZCB0YWJs ZW9pZCwgYm9vbCBzaGFyZWQsCiAJdGFiZW50cnktPmxpdmVfdHVwbGVzID0gbGl2ZXR1cGxl czsKIAl0YWJlbnRyeS0+ZGVhZF90dXBsZXMgPSBkZWFkdHVwbGVzOwogCi0JcGdzdGF0X2Fj Y3VtdWxhdGVfZXh0dmFjX3N0YXRzKCZ0YWJlbnRyeS0+dmFjdXVtX2V4dCwgcGFyYW1zLCB0 cnVlKTsKLQogCS8qCiAJICogSXQgaXMgcXVpdGUgcG9zc2libGUgdGhhdCBhIG5vbi1hZ2dy ZXNzaXZlIFZBQ1VVTSBlbmRlZCB1cCBza2lwcGluZwogCSAqIHZhcmlvdXMgcGFnZXMsIGhv d2V2ZXIsIHdlJ2xsIHplcm8gdGhlIGluc2VydCBjb3VudGVyIGhlcmUgcmVnYXJkbGVzcy4K QEAgLTMwNywxNiArMjcwLDYgQEAgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lk LCBib29sIHNoYXJlZCwKIAkgKi8KIAlwZ3N0YXRfZmx1c2hfaW8oZmFsc2UpOwogCSh2b2lk KSBwZ3N0YXRfZmx1c2hfYmFja2VuZChmYWxzZSwgUEdTVEFUX0JBQ0tFTkRfRkxVU0hfSU8p OwotCi0JaWYgKGRib2lkICE9IEludmFsaWRPaWQpCi0JewotCQllbnRyeV9yZWYgPSBwZ3N0 YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfREFUQUJBU0UsCi0JCQkJCQkJ CQkJCWRib2lkLCBJbnZhbGlkT2lkLCBmYWxzZSk7Ci0JCWRiZW50cnkgPSAoUGdTdGF0U2hh cmVkX0RhdGFiYXNlICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOwotCi0JCXBnc3RhdF9h Y2N1bXVsYXRlX2V4dHZhY19zdGF0cygmZGJlbnRyeS0+c3RhdHMudmFjdXVtX2V4dCwgcGFy YW1zLCBmYWxzZSk7Ci0JCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKLQl9CiB9 CiAKIC8qCkBAIC05NTEsNiArOTA0LDEyIEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQ Z1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcmV0dXJuIHRydWU7 CiB9CiAKK3ZvaWQKK3Bnc3RhdF92YWN1dW1fcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdfY2Io T2lkIHJlbGlkKQoreworCXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9uYWwoUEdTVEFUX0tJTkRf VkFDVVVNX1JFTEFUSU9OLCByZWxpZCwgSW52YWxpZE9pZCk7Cit9CisKIHZvaWQKIHBnc3Rh dF9yZWxhdGlvbl9kZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3Jl ZikKIHsKQEAgLTEwNTMsNjAgKzEwMTIsNCBAQCByZXN0b3JlX3RydW5jZHJvcF9jb3VudGVy cyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFucykKIAkJdHJhbnMtPnR1cGxlc191cGRh dGVkID0gdHJhbnMtPnVwZGF0ZWRfcHJlX3RydW5jZHJvcDsKIAkJdHJhbnMtPnR1cGxlc19k ZWxldGVkID0gdHJhbnMtPmRlbGV0ZWRfcHJlX3RydW5jZHJvcDsKIAl9Ci19Ci0KLXN0YXRp YyB2b2lkCi1wZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHMoRXh0VmFjUmVwb3J0ICpk c3QsIEV4dFZhY1JlcG9ydCAqc3JjLAotCQkJCQkJCSAgIGJvb2wgYWNjdW11bGF0ZV9yZWx0 eXBlX3NwZWNpZmljX2luZm8pCi17Ci0JaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlz dGljcykKLQkJcmV0dXJuOwotCi0JZHN0LT50b3RhbF9ibGtzX3JlYWQgKz0gc3JjLT50b3Rh bF9ibGtzX3JlYWQ7Ci0JZHN0LT50b3RhbF9ibGtzX2hpdCArPSBzcmMtPnRvdGFsX2Jsa3Nf aGl0OwotCWRzdC0+dG90YWxfYmxrc19kaXJ0aWVkICs9IHNyYy0+dG90YWxfYmxrc19kaXJ0 aWVkOwotCWRzdC0+dG90YWxfYmxrc193cml0dGVuICs9IHNyYy0+dG90YWxfYmxrc193cml0 dGVuOwotCWRzdC0+d2FsX2J5dGVzICs9IHNyYy0+d2FsX2J5dGVzOwotCWRzdC0+d2FsX2Zw aSArPSBzcmMtPndhbF9mcGk7Ci0JZHN0LT53YWxfcmVjb3JkcyArPSBzcmMtPndhbF9yZWNv cmRzOwotCWRzdC0+YmxrX3JlYWRfdGltZSArPSBzcmMtPmJsa19yZWFkX3RpbWU7Ci0JZHN0 LT5ibGtfd3JpdGVfdGltZSArPSBzcmMtPmJsa193cml0ZV90aW1lOwotCWRzdC0+ZGVsYXlf dGltZSArPSBzcmMtPmRlbGF5X3RpbWU7Ci0JZHN0LT50b3RhbF90aW1lICs9IHNyYy0+dG90 YWxfdGltZTsKLQlkc3QtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQgKz0gc3JjLT53cmFw YXJvdW5kX2ZhaWxzYWZlX2NvdW50OwotCWRzdC0+ZXJyb3JzICs9IHNyYy0+ZXJyb3JzOwot Ci0JaWYgKCFhY2N1bXVsYXRlX3JlbHR5cGVfc3BlY2lmaWNfaW5mbykKLQkJcmV0dXJuOwot Ci0JaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFMSUQpCi0JCWRzdC0+dHlw ZSA9IHNyYy0+dHlwZTsKLQotCUFzc2VydChzcmMtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19J TlZBTElEIHx8IHNyYy0+dHlwZSA9PSBkc3QtPnR5cGUpOwotCi0JaWYgKGRzdC0+dHlwZSA9 PSBzcmMtPnR5cGUpCi0JewotCQlkc3QtPmJsa3NfZmV0Y2hlZCArPSBzcmMtPmJsa3NfZmV0 Y2hlZDsKLQkJZHN0LT5ibGtzX2hpdCArPSBzcmMtPmJsa3NfaGl0OwotCi0JCWlmIChkc3Qt PnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19UQUJMRSkKLQkJewotCQkJZHN0LT50YWJsZS5wYWdl c19zY2FubmVkICs9IHNyYy0+dGFibGUucGFnZXNfc2Nhbm5lZDsKLQkJCWRzdC0+dGFibGUu cGFnZXNfcmVtb3ZlZCArPSBzcmMtPnRhYmxlLnBhZ2VzX3JlbW92ZWQ7Ci0JCQlkc3QtPnRh YmxlLnZtX25ld19mcm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfZnJvemVuX3Bh Z2VzOwotCQkJZHN0LT50YWJsZS52bV9uZXdfdmlzaWJsZV9wYWdlcyArPSBzcmMtPnRhYmxl LnZtX25ld192aXNpYmxlX3BhZ2VzOwotCQkJZHN0LT50YWJsZS52bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMgKz0gc3JjLT50YWJsZS52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7 Ci0JCQlkc3QtPnR1cGxlc19kZWxldGVkICs9IHNyYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JCQlk c3QtPnRhYmxlLnR1cGxlc19mcm96ZW4gKz0gc3JjLT50YWJsZS50dXBsZXNfZnJvemVuOwot CQkJZHN0LT50YWJsZS5yZWNlbnRseV9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLnJlY2Vu dGx5X2RlYWRfdHVwbGVzOwotCQkJZHN0LT50YWJsZS5pbmRleF92YWN1dW1fY291bnQgKz0g c3JjLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQ7Ci0JCQlkc3QtPnRhYmxlLm1pc3NlZF9k ZWFkX3BhZ2VzICs9IHNyYy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXM7Ci0JCQlkc3QtPnRh YmxlLm1pc3NlZF9kZWFkX3R1cGxlcyArPSBzcmMtPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxl czsKLQkJfQotCQllbHNlIGlmIChkc3QtPnR5cGUgPT0gUEdTVEFUX0VYVFZBQ19JTkRFWCkK LQkJewotCQkJZHN0LT5pbmRleC5wYWdlc19kZWxldGVkICs9IHNyYy0+aW5kZXgucGFnZXNf ZGVsZXRlZDsKLQkJCWRzdC0+dHVwbGVzX2RlbGV0ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRl ZDsKLQkJfQotCX0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdlMWRiMTM3YTE4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3ZhY3V1bS5jCkBAIC0wLDAgKzEs MjI0IEBACisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgInBnc3RhdC5oIgor I2luY2x1ZGUgInV0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgInV0aWxzL21l bXV0aWxzLmgiCisKKy8qIC0tLS0tLS0tLS0KKyAqIEdVQyBwYXJhbWV0ZXJzCisgKiAtLS0t LS0tLS0tCisgKi8KK2Jvb2wJCXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljc19mb3Jf cmVsYXRpb25zID0gZmFsc2U7CisKKyNkZWZpbmUgQUNDVU1VTEFURV9GSUVMRChmaWVsZCkg ZHN0LT5maWVsZCArPSBzcmMtPmZpZWxkOworCisjZGVmaW5lIEFDQ1VNVUxBVEVfU1VCRklF TEQoc3Vic3RydWN0LCBmaWVsZCkgXAorICAgIChkc3QtPnN1YnN0cnVjdC5maWVsZCArPSBz cmMtPnN1YnN0cnVjdC5maWVsZCkKKworc3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRl X2NvbW1vbihQZ1N0YXRfQ29tbW9uQ291bnRzICpkc3QsIGNvbnN0IFBnU3RhdF9Db21tb25D b3VudHMgKnNyYykKK3sKKwlkc3QtPnRvdGFsX2Jsa3NfcmVhZCArPSBzcmMtPnRvdGFsX2Js a3NfcmVhZDsKKwlkc3QtPnRvdGFsX2Jsa3NfaGl0ICs9IHNyYy0+dG90YWxfYmxrc19oaXQ7 CisJZHN0LT50b3RhbF9ibGtzX2RpcnRpZWQgKz0gc3JjLT50b3RhbF9ibGtzX2RpcnRpZWQ7 CisJZHN0LT50b3RhbF9ibGtzX3dyaXR0ZW4gKz0gc3JjLT50b3RhbF9ibGtzX3dyaXR0ZW47 CisKKwlkc3QtPmJsa3NfZmV0Y2hlZCArPSBzcmMtPmJsa3NfZmV0Y2hlZDsKKwlkc3QtPmJs a3NfaGl0ICs9IHNyYy0+Ymxrc19oaXQ7CisKKwlkc3QtPndhbF9yZWNvcmRzICs9IHNyYy0+ d2FsX3JlY29yZHM7CisJZHN0LT53YWxfZnBpICs9IHNyYy0+d2FsX2ZwaTsKKwlkc3QtPndh bF9ieXRlcyArPSBzcmMtPndhbF9ieXRlczsKKworCWRzdC0+YmxrX3JlYWRfdGltZSArPSBz cmMtPmJsa19yZWFkX3RpbWU7CisJZHN0LT5ibGtfd3JpdGVfdGltZSArPSBzcmMtPmJsa193 cml0ZV90aW1lOworCWRzdC0+ZGVsYXlfdGltZSArPSBzcmMtPmRlbGF5X3RpbWU7CisJZHN0 LT50b3RhbF90aW1lICs9IHNyYy0+dG90YWxfdGltZTsKKworCWRzdC0+dHVwbGVzX2RlbGV0 ZWQgKz0gc3JjLT50dXBsZXNfZGVsZXRlZDsKKwlkc3QtPndyYXBhcm91bmRfZmFpbHNhZmVf Y291bnQgKz0gc3JjLT53cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OworfQorCitzdGF0aWMg dm9pZAorcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzX3JlbGF0aW9ucyhQZ1N0YXRf VmFjdXVtUmVsYXRpb25Db3VudHMgKmRzdCwgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz ICpzcmMpCit7CisgICAgaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJ cmV0dXJuOworCisgICAgaWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOVkFMSUQp CisgICAgICAgIGRzdC0+dHlwZSA9IHNyYy0+dHlwZTsKKworICAgIEFzc2VydChzcmMtPnR5 cGUgIT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEICYmIHNyYy0+dHlwZSAhPSBQR1NUQVRfRVhU VkFDX0RCICYmIHNyYy0+dHlwZSA9PSBkc3QtPnR5cGUpOworCisgICAgcGdzdGF0X2FjY3Vt dWxhdGVfY29tbW9uKCZkc3QtPmNvbW1vbiwgJnNyYy0+Y29tbW9uKTsKKworICAgIGRzdC0+ Y29tbW9uLmJsa3NfZmV0Y2hlZCArPSBzcmMtPmNvbW1vbi5ibGtzX2ZldGNoZWQ7CisgICAg ZHN0LT5jb21tb24uYmxrc19oaXQgKz0gc3JjLT5jb21tb24uYmxrc19oaXQ7CisKKyAgICBp ZiAoZHN0LT50eXBlID09IFBHU1RBVF9FWFRWQUNfVEFCTEUpCisgICAgeworICAgICAgICBB Q0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCBwYWdlc19zY2FubmVkKTsKKyAgICAgICAgQUND VU1VTEFURV9TVUJGSUVMRCh0YWJsZSwgcGFnZXNfcmVtb3ZlZCk7CisgICAgICAgIEFDQ1VN VUxBVEVfU1VCRklFTEQodGFibGUsIHZtX25ld19mcm96ZW5fcGFnZXMpOworICAgICAgICBB Q0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCB2bV9uZXdfdmlzaWJsZV9wYWdlcyk7CisgICAg ICAgIEFDQ1VNVUxBVEVfU1VCRklFTEQodGFibGUsIHZtX25ld192aXNpYmxlX2Zyb3plbl9w YWdlcyk7CisgICAgICAgIGRzdC0+Y29tbW9uLnR1cGxlc19kZWxldGVkICs9IHNyYy0+Y29t bW9uLnR1cGxlc19kZWxldGVkOworICAgICAgICBBQ0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxl LCB0dXBsZXNfZnJvemVuKTsKKyAgICAgICAgQUNDVU1VTEFURV9TVUJGSUVMRCh0YWJsZSwg cmVjZW50bHlfZGVhZF90dXBsZXMpOworICAgICAgICBBQ0NVTVVMQVRFX1NVQkZJRUxEKHRh YmxlLCBpbmRleF92YWN1dW1fY291bnQpOworICAgICAgICBBQ0NVTVVMQVRFX1NVQkZJRUxE KHRhYmxlLCBtaXNzZWRfZGVhZF9wYWdlcyk7CisgICAgICAgIEFDQ1VNVUxBVEVfU1VCRklF TEQodGFibGUsIG1pc3NlZF9kZWFkX3R1cGxlcyk7CisgICAgfQorICAgIGVsc2UgaWYgKGRz dC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOREVYKQorICAgIHsKKyAgICAgICAgQUNDVU1V TEFURV9TVUJGSUVMRChpbmRleCwgcGFnZXNfZGVsZXRlZCk7CisgICAgICAgIGRzdC0+Y29t bW9uLnR1cGxlc19kZWxldGVkICs9IHNyYy0+Y29tbW9uLnR1cGxlc19kZWxldGVkOworICAg IH0KK30KKworc3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4dHZhY19zdGF0c19k YihQZ1N0YXRfVmFjdXVtREJDb3VudHMgKmRzdCwgUGdTdGF0X1ZhY3V1bURCQ291bnRzICpz cmMpCit7CisgICAgaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0 dXJuOworCisgICAgcGdzdGF0X2FjY3VtdWxhdGVfY29tbW9uKChQZ1N0YXRfQ29tbW9uQ291 bnRzICopIGRzdCwgKFBnU3RhdF9Db21tb25Db3VudHMgKikgc3JjKTsKKyAgICBkc3QtPmVy cm9ycyArPSBzcmMtPmVycm9yczsKK30KKworc3RhdGljIHZvaWQKK3Bnc3RhdF9pbmNyZW1l bnRfdGFiX2V4dHZhY19zdGF0c190b19kYihQZ1N0YXRfVmFjdXVtREJDb3VudHMgKmRzdCwg UGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpzcmMpCit7CisgICAgaWYoIXBnc3RhdF90 cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCisgICAgcGdzdGF0X2FjY3Vt dWxhdGVfY29tbW9uKChQZ1N0YXRfQ29tbW9uQ291bnRzICopIGRzdCwgKFBnU3RhdF9Db21t b25Db3VudHMgKikgc3JjKTsKK30KKworLyoKKyAqIFJlcG9ydCB0aGF0IHRoZSB0YWJsZSB3 YXMganVzdCB2YWN1dW1lZCBhbmQgZmx1c2ggc3RhdGlzdGljcy4KKyAqLwordm9pZAorcGdz dGF0X3JlcG9ydF90YWJfdmFjdXVtX2V4dHN0YXRzKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFy ZWQsCisJCQkJCQkJCSAgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpwYXJhbXMpCit7 CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CisJUGdTdGF0U2hhcmVkX1ZhY3V1bVJl bGF0aW9uICpzaHRhYmVudHJ5OworCVBnU3RhdFNoYXJlZF9WYWN1dW1EQiAqc2hkYmVudHJ5 OworCU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQp OworCisJaWYoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOwor CisJZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5E X1ZBQ1VVTV9SRUxBVElPTiwKKwkJCQkJCQkJCQkJZGJvaWQsIHRhYmxlb2lkLCBmYWxzZSk7 CisJc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfVmFjdXVtUmVsYXRpb24gKikgZW50cnlf cmVmLT5zaGFyZWRfc3RhdHM7CisJcGdzdGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzX3Jl bGF0aW9ucygmc2h0YWJlbnRyeS0+c3RhdHMsIHBhcmFtcyk7CisKKwlwZ3N0YXRfdW5sb2Nr X2VudHJ5KGVudHJ5X3JlZik7CisKKworCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlf cmVmX2xvY2tlZChQR1NUQVRfS0lORF9WQUNVVU1fREIsCisJCQkJCQkJCQkJCWRib2lkLCBJ bnZhbGlkT2lkLCBmYWxzZSk7CisKKwlzaGRiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1ZhY3V1 bURCICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJcGdzdGF0X2luY3JlbWVudF90 YWJfZXh0dmFjX3N0YXRzX3RvX2RiKCZzaGRiZW50cnktPnN0YXRzLCBwYXJhbXMpOworCisJ cGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworfQorCisvKgorICogRmx1c2ggb3V0 IHBlbmRpbmcgc3RhdHMgZm9yIHRoZSBlbnRyeQorICoKKyAqIElmIG5vd2FpdCBpcyB0cnVl LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgZmFsc2UgaWYgbG9jayBjb3VsZCBub3QKKyAqIGlt bWVkaWF0ZWx5IGFjcXVpcmVkLCBvdGhlcndpc2UgdHJ1ZSBpcyByZXR1cm5lZC4KKyAqLwor Ym9vbAorcGdzdGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYg KmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCit7CisJUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0 aW9uICpzaHRhYnN0YXRzOworCVBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKnBlbmRp bmdlbnQ7CS8qIHRhYmxlIGVudHJ5IG9mIHNoYXJlZCBzdGF0cyAqLworCisJcGVuZGluZ2Vu dCA9IChQZ1N0YXRfUmVsYXRpb25WYWN1dW1QZW5kaW5nICopIGVudHJ5X3JlZi0+cGVuZGlu ZzsKKwlzaHRhYnN0YXRzID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqKSBlbnRy eV9yZWYtPnNoYXJlZF9zdGF0czsKKworCS8qCisJICogSWdub3JlIGVudHJpZXMgdGhhdCBk aWRuJ3QgYWNjdW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50cy4KKwkgKi8KKwlpZiAocGdfbWVt b3J5X2lzX2FsbF96ZXJvcygmcGVuZGluZ2VudCwKKwkJCQkJCQkgICBzaXplb2Yoc3RydWN0 IFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcpKSkKKwkJcmV0dXJuIHRydWU7CisKKwlp ZiAoIXBnc3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKKwl7CisgICAgICAg IHJldHVybiBmYWxzZTsKKyAgICB9CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3Rh dHNfcmVsYXRpb25zKCYoc2h0YWJzdGF0cy0+c3RhdHMpLCAmKHBlbmRpbmdlbnQtPmNvdW50 cykpOworCisJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qCisgKiBTdXBwb3J0IGZ1bmN0aW9uIGZvciB0aGUgU1FMLWNhbGxhYmxl IHBnc3RhdCogZnVuY3Rpb25zLiBSZXR1cm5zCisgKiB0aGUgdmFjdXVtIGNvbGxlY3RlZCBz dGF0aXN0aWNzIGZvciBvbmUgcmVsYXRpb24gb3IgTlVMTC4KKyAqLworUGdTdGF0X1ZhY3V1 bVJlbGF0aW9uQ291bnRzICoKK3Bnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV90YWJlbnRyeShP aWQgcmVsaWQsIE9pZCBkYmlkKQoreworCXJldHVybiAoUGdTdGF0X1ZhY3V1bVJlbGF0aW9u Q291bnRzICopCisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9WQUNVVU1fUkVM QVRJT04sIGRiaWQsIHJlbGlkKTsKK30KKworUGdTdGF0X1ZhY3V1bURCQ291bnRzICoKK3Bn c3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV9kYmVudHJ5KE9pZCBkYmlkKQoreworCXJldHVybiAo UGdTdGF0X1ZhY3V1bURCQ291bnRzICopCisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRf S0lORF9WQUNVVU1fREIsIGRiaWQsIEludmFsaWRPaWQpOworfQorCitib29sCitwZ3N0YXRf dmFjdXVtX2RiX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5v d2FpdCkKK3sKKwlQZ1N0YXRTaGFyZWRfVmFjdXVtREIgKnNoYXJlZGVudDsKKwlQZ1N0YXRf VmFjdXVtREJDb3VudHMgKnBlbmRpbmdlbnQ7CisKKwlwZW5kaW5nZW50ID0gKFBnU3RhdF9W YWN1dW1EQkNvdW50cyAqKSBlbnRyeV9yZWYtPnBlbmRpbmc7CisJc2hhcmVkZW50ID0gKFBn U3RhdFNoYXJlZF9WYWN1dW1EQiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKworCWlm ICghcGdzdGF0X2xvY2tfZW50cnkoZW50cnlfcmVmLCBub3dhaXQpKQorCQlyZXR1cm4gZmFs c2U7CisKKwkvKiBUaGUgZW50cnkgd2FzIHN1Y2Nlc3NmdWxseSBmbHVzaGVkLCBhZGQgdGhl IHNhbWUgdG8gZGF0YWJhc2Ugc3RhdHMgKi8KKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNf c3RhdHNfZGIoJihzaGFyZWRlbnQtPnN0YXRzKSwgcGVuZGluZ2VudCk7CisKKwlwZ3N0YXRf dW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAq IEZpbmQgb3IgY3JlYXRlIGEgbG9jYWwgUGdTdGF0X1ZhY3V1bURCQ291bnRzIGVudHJ5IGZv ciBkYm9pZC4KKyAqLworUGdTdGF0X1ZhY3V1bURCQ291bnRzICoKK3Bnc3RhdF9wcmVwX3Zh Y3V1bV9kYXRhYmFzZV9wZW5kaW5nKE9pZCBkYm9pZCkKK3sKKwlQZ1N0YXRfRW50cnlSZWYg KmVudHJ5X3JlZjsKKworCS8qCisJICogVGhpcyBzaG91bGQgbm90IHJlcG9ydCBzdGF0cyBv biBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSBoYXZpbmcKKwkgKiBjb25uZWN0ZWQgdG8gYSBk YXRhYmFzZS4KKwkgKi8KKwlBc3NlcnQoIU9pZElzVmFsaWQoZGJvaWQpIHx8IE9pZElzVmFs aWQoTXlEYXRhYmFzZUlkKSk7CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfcHJlcF9wZW5kaW5n X2VudHJ5KFBHU1RBVF9LSU5EX1ZBQ1VVTV9EQiwgZGJvaWQsIEludmFsaWRPaWQsCisJCQkJ CQkJCQkJICBOVUxMKTsKKworICAgIGlmKGVudHJ5X3JlZiA9PSBOVUxMKQorICAgICAgICBy ZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBlbnRyeV9yZWYtPnBlbmRpbmc7Cit9ClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YwppbmRleCBhMmVjZTJjMzZjZi4uODYwM2Q0ZGQ1NzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jCkBAIC0yMjY1LDcgKzIyNjUsNiBAQCBwZ19zdGF0X2hhdmVfc3Rh dHMoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQk9PTChwZ3N0YXRfaGF2ZV9lbnRy eShraW5kLCBkYm9pZCwgb2JqaWQpKTsKIH0KIAotCiAvKgogICogR2V0IHRoZSB2YWN1dW0g c3RhdGlzdGljcyBmb3IgdGhlIGhlYXAgdGFibGVzLgogICovCkBAIC0yMjc1LDEwMiArMjI3 NCw0MiBAQCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ I2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFMgMjYKIAogCU9p ZAkJCQkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlQZ1N0YXRfU3RhdFRhYkVudHJ5 ICAgICAqdGFiZW50cnk7Ci0JRXh0VmFjUmVwb3J0IAkJCSpleHR2YWN1dW07CisJUGdTdGF0 X1ZhY3V1bVJlbGF0aW9uQ291bnRzIAkJCSpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1bVJl bGF0aW9uQ291bnRzICpwZW5kaW5nOwogCVR1cGxlRGVzYwkJCQkgdHVwZGVzYzsKIAlEYXR1 bQkJCQkJIHZhbHVlc1tQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRTX0NPTFNdID0g ezB9OwogCWJvb2wJCQkJCSBudWxsc1tQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRT X0NPTFNdID0gezB9OwogCWNoYXIJCQkJCSBidWZbMjU2XTsKIAlpbnQJCQkJCQkgaSA9IDA7 Ci0JRXh0VmFjUmVwb3J0IGFsbHplcm87CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz IGFsbHplcm87CiAKLQkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4g dGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KLQl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBs ZURlc2MoUEdfU1RBVF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTKTsKKwkvKiBCdWls ZCBhIHR1cGxlIGRlc2NyaXB0b3IgZm9yIG91ciByZXN1bHQgdHlwZSAqLworCWlmIChnZXRf Y2FsbF9yZXN1bHRfdHlwZShmY2luZm8sIE5VTEwsICZ0dXBkZXNjKSAhPSBUWVBFRlVOQ19D T01QT1NJVEUpCisJCWVsb2coRVJST1IsICJyZXR1cm4gdHlwZSBtdXN0IGJlIGEgcm93IHR5 cGUiKTsKIAotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytp LCAicmVsaWQiLAotCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX3JlYWQiLAotCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtzX2hpdCIsCi0JCQkJCSAgIElOVDhPSUQsIC0x LCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwg InRvdGFsX2Jsa3NfZGlydGllZCIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nf d3JpdHRlbiIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50 cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInJlbF9ibGtzX3JlYWQiLAotCQkJCQkg ICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRy TnVtYmVyKSArK2ksICJyZWxfYmxrc19oaXQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7 Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdl c19zY2FubmVkIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAicGFnZXNfcmVtb3ZlZCIsCi0JCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInZtX25ld19mcm96ZW5fcGFnZXMiLAotCQkJCQkgICBJTlQ4T0lE LCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAr K2ksICJ2bV9uZXdfdmlzaWJsZV9wYWdlcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsK LQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInZtX25l d192aXNpYmxlX2Zyb3plbl9wYWdlcyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlU dXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIm1pc3NlZF9k ZWFkX3BhZ2VzIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidHVwbGVzX2RlbGV0ZWQiLAotCQkJ CQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ0dXBsZXNfZnJvemVuIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEs IDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAi cmVjZW50bHlfZGVhZF90dXBsZXMiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJtaXNzZWRfZGVh ZF90dXBsZXMiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3cmFwYXJvdW5kX2ZhaWxzYWZlX2Nv dW50IiwKLQkJCQkJICAgSU5UNE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiaW5kZXhfdmFjdXVtX2NvdW50IiwKLQkJCQkJ ICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0 ck51bWJlcikgKytpLCAid2FsX3JlY29yZHMiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7 Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxf ZnBpIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2J5dGVzIiwKLQkJCQkJICAgTlVNRVJJ Q09JRCwgLTEsIDApOwotCi0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSArK2ksICJibGtfcmVhZF90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7 Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtf d3JpdGVfdGltZSIsCi0JCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOwotCi0JVHVwbGVEZXNj SW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJkZWxheV90aW1lIiwKLQkJ CQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAt MSwgMCk7Ci0KLQlBc3NlcnQoaSA9PSBQR19TVEFUX0dFVF9WQUNVVU1fVEFCTEVTX1NUQVRT X0NPTFMpOwotCi0JQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisJcGVuZGluZyA9IHBnc3Rh dF9mZXRjaF9zdGF0X3ZhY3V1bV90YWJlbnRyeShyZWxpZCwgTXlEYXRhYmFzZUlkKTsKIAot CXRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOwotCi0JaWYg KHRhYmVudHJ5ID09IE5VTEwpCisJaWYgKHBlbmRpbmcgPT0gTlVMTCkKIAl7CiAJCS8qIElm IHRoZSBzdWJzY3JpcHRpb24gaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGl0cyBzdGF0cyAq LwotCQltZW1zZXQoJmFsbHplcm8sIDAsIHNpemVvZihFeHRWYWNSZXBvcnQpKTsKKwkJbWVt c2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzKSk7 CiAJCWV4dHZhY3V1bSA9ICZhbGx6ZXJvOwogCX0KIAllbHNlCi0JewotCQlleHR2YWN1dW0g PSAmKHRhYmVudHJ5LT52YWN1dW1fZXh0KTsKLQl9CisJCWV4dHZhY3V1bSA9IHBlbmRpbmc7 CiAKIAlpID0gMDsKIAogCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7 CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtz X3JlYWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFs X2Jsa3NfaGl0KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50 b3RhbF9ibGtzX2RpcnRpZWQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2 YWN1dW0tPnRvdGFsX2Jsa3Nfd3JpdHRlbik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERh dHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfaGl0KTsKKwl2 YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24udG90YWxfYmxr c19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5j b21tb24udG90YWxfYmxrc193cml0dGVuKTsKIAotCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmJsa3NfZmV0Y2hlZCAtCi0JCQkJCQkJCQlleHR2YWN1dW0tPmJs a3NfaGl0KTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtz X2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9u LmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJCQlleHR2YWN1dW0tPmNvbW1vbi5ibGtzX2hpdCk7 CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLmJsa3Nf aGl0KTsKIAogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxl LnBhZ2VzX3NjYW5uZWQpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1 dW0tPnRhYmxlLnBhZ2VzX3JlbW92ZWQpOwpAQCAtMjM3OCwyOCArMjMxNywyOCBAQCBwZ19z dGF0X2dldF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudm1fbmV3X3Zpc2libGVfcGFnZXMp OwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnZtX25l d192aXNpYmxlX2Zyb3plbl9wYWdlcyk7CiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMpOwotCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPnR1cGxlc19kZWxldGVkKTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24udHVwbGVzX2RlbGV0ZWQpOwog CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxlLnR1cGxlc19m cm96ZW4pOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRhYmxl LnJlY2VudGx5X2RlYWRfdHVwbGVzKTsKIAl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0o ZXh0dmFjdXVtLT50YWJsZS5taXNzZWRfZGVhZF90dXBsZXMpOwogCi0JdmFsdWVzW2krK10g PSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7 CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndyYXBh cm91bmRfZmFpbHNhZmVfY291bnQpOwogCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShl eHR2YWN1dW0tPnRhYmxlLmluZGV4X3ZhY3V1bV9jb3VudCk7CiAKLQl2YWx1ZXNbaSsrXSA9 IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxfcmVjb3Jkcyk7Ci0JdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+d2FsX2ZwaSk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud2FsX2ZwaSk7CiAKIAkv KiBDb252ZXJ0IHRvIG51bWVyaWMsIGxpa2UgcGdfc3RhdF9zdGF0ZW1lbnRzICovCi0Jc25w cmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2YWN1dW0tPndhbF9i eXRlcyk7CisJc25wcmludGYoYnVmLCBzaXplb2YgYnVmLCBVSU5UNjRfRk9STUFULCBleHR2 YWN1dW0tPmNvbW1vbi53YWxfYnl0ZXMpOwogCXZhbHVlc1tpKytdID0gRGlyZWN0RnVuY3Rp b25DYWxsMyhudW1lcmljX2luLAogCQkJCQkJCQkJICBDU3RyaW5nR2V0RGF0dW0oYnVmKSwK IAkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSgwKSwKIAkJCQkJCQkJCSAgSW50MzJHZXRE YXR1bSgtMSkpOwogCi0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0t PmJsa19yZWFkX3RpbWUpOwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFj dXVtLT5ibGtfd3JpdGVfdGltZSk7Ci0JdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShl eHR2YWN1dW0tPmRlbGF5X3RpbWUpOwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0o ZXh0dmFjdXVtLT50b3RhbF90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVt KGV4dHZhY3V1bS0+Y29tbW9uLmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxv YXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3dyaXRlX3RpbWUpOworCXZhbHVl c1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uZGVsYXlfdGltZSk7 CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3Rh bF90aW1lKTsKIAogCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RB VFNfQ09MUyk7CiAKQEAgLTI0MTYsMTAwICsyMzU1LDYwIEBAIHBnX3N0YXRfZ2V0X3ZhY3V1 bV9pbmRleGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJI2RlZmluZSBQR19TVEFUX0dFVF9WQUNV VU1fSU5ERVhfU1RBVFNfQ09MUwkxNgogCiAJT2lkCQkJCQkJcmVsaWQgPSBQR19HRVRBUkdf T0lEKDApOwotCVBnU3RhdF9TdGF0VGFiRW50cnkgICAgICp0YWJlbnRyeTsKLQlFeHRWYWNS ZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgCQkJ KmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnBlbmRpbmc7CiAJ VHVwbGVEZXNjCQkJCSB0dXBkZXNjOwogCURhdHVtCQkJCQkgdmFsdWVzW1BHX1NUQVRfR0VU X1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKIAlib29sCQkJCQkgbnVsbHNbUEdf U1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0gezB9OwogCWNoYXIJCQkJCSBi dWZbMjU2XTsKIAlpbnQJCQkJCQkgaSA9IDA7Ci0JRXh0VmFjUmVwb3J0IGFsbHplcm87CisJ UGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGFsbHplcm87CiAKLQkvKiBJbml0aWFsaXNl IGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4gdGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KLQl0 dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoUEdfU1RBVF9HRVRfVkFDVVVNX0lO REVYX1NUQVRTX0NPTFMpOworCS8qIEJ1aWxkIGEgdHVwbGUgZGVzY3JpcHRvciBmb3Igb3Vy IHJlc3VsdCB0eXBlICovCisJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywgTlVM TCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkKKwkJZWxvZyhFUlJPUiwgInJl dHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOwogCi0JVHVwbGVEZXNjSW5pdEVudHJ5 KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxpZCIsCi0JCQkJCSAgIElOVDRPSUQs IC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInRvdGFsXyBibGtzX3JlYWQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ0b3RhbF9ibGtz X2hpdCIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3NfZGlydGllZCIsCi0JCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpICsraSwgInRvdGFsX2Jsa3Nfd3JpdHRlbiIsCi0JCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInJlbF9ibGtzX3JlYWQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVE ZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJyZWxfYmxrc19oaXQi LAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSArK2ksICJwYWdlc19kZWxldGVkIiwKLQkJCQkJICAgSU5UOE9J RCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg KytpLCAidHVwbGVzX2RlbGV0ZWQiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7Ci0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3YWxfcmVjb3Jk cyIsCi0JCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgIndhbF9mcGkiLAotCQkJCQkgICBJTlQ4T0lELCAt MSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ks ICJ3YWxfYnl0ZXMiLAotCQkJCQkgICBOVU1FUklDT0lELCAtMSwgMCk7Ci0KLQlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa19yZWFkX3RpbWUi LAotCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpICsraSwgImJsa193cml0ZV90aW1lIiwKLQkJCQkJICAgRkxP QVQ4T0lELCAtMSwgMCk7CisJcGVuZGluZyA9IHBnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV90 YWJlbnRyeShyZWxpZCwgTXlEYXRhYmFzZUlkKTsKIAotCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiZGVsYXlfdGltZSIsCi0JCQkJCSAgIEZMT0FU OE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgKytpLCAidG90YWxfdGltZSIsCi0JCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOwotCi0J QXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOwotCi0J Qmxlc3NUdXBsZURlc2ModHVwZGVzYyk7Ci0KLQl0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9z dGF0X3RhYmVudHJ5KHJlbGlkKTsKLQotCWlmICh0YWJlbnRyeSA9PSBOVUxMKQorCWlmIChw ZW5kaW5nID09IE5VTEwpCiAJewogCQkvKiBJZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBm b3VuZCwgaW5pdGlhbGlzZSBpdHMgc3RhdHMgKi8KLQkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBz aXplb2YoRXh0VmFjUmVwb3J0KSk7CisJCW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKFBn U3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cykpOwogCQlleHR2YWN1dW0gPSAmYWxsemVybzsK IAl9CiAJZWxzZQotCXsKLQkJZXh0dmFjdXVtID0gJih0YWJlbnRyeS0+dmFjdXVtX2V4dCk7 Ci0JfQorCQlleHR2YWN1dW0gPSBwZW5kaW5nOwogCiAJaSA9IDA7CiAKIAl2YWx1ZXNbaSsr XSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOwogCi0JdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19yZWFkKTsKLQl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX2hpdCk7Ci0JdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90YWxfYmxrc19kaXJ0aWVkKTsKLQl2YWx1 ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50b3RhbF9ibGtzX3dyaXR0ZW4p OworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3Rh bF9ibGtzX3JlYWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PmNvbW1vbi50b3RhbF9ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3Nfd3JpdHRlbik7 CiAKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtzX2ZldGNo ZWQgLQotCQkJCQkJCQkJZXh0dmFjdXVtLT5ibGtzX2hpdCk7Ci0JdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Ymxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50 NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQkJ ZXh0dmFjdXVtLT5jb21tb24uYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmNvbW1vbi5ibGtzX2hpdCk7CiAKIAl2YWx1ZXNbaSsrXSA9IElu dDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5pbmRleC5wYWdlc19kZWxldGVkKTsKLQl2YWx1ZXNb aSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT50dXBsZXNfZGVsZXRlZCk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnR1cGxlc19kZWxl dGVkKTsKIAotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPndhbF9y ZWNvcmRzKTsKLQl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT53YWxf ZnBpKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24u d2FsX3JlY29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PmNvbW1vbi53YWxfZnBpKTsKIAogCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19z dGF0X3N0YXRlbWVudHMgKi8KLQlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9G T1JNQVQsIGV4dHZhY3V1bS0+d2FsX2J5dGVzKTsKKwlzbnByaW50ZihidWYsIHNpemVvZiBi dWYsIFVJTlQ2NF9GT1JNQVQsIGV4dHZhY3V1bS0+Y29tbW9uLndhbF9ieXRlcyk7CiAJdmFs dWVzW2krK10gPSBEaXJlY3RGdW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCiAJCQkJCQkJCQkg IENTdHJpbmdHZXREYXR1bShidWYpLAogCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDAp LAogCQkJCQkJCQkJICBJbnQzMkdldERhdHVtKC0xKSk7CiAKLQl2YWx1ZXNbaSsrXSA9IEZs b2F0OEdldERhdHVtKGV4dHZhY3V1bS0+YmxrX3JlYWRfdGltZSk7Ci0JdmFsdWVzW2krK10g PSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmJsa193cml0ZV90aW1lKTsKLQl2YWx1ZXNb aSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+ZGVsYXlfdGltZSk7Ci0JdmFsdWVz W2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX3RpbWUpOworCXZhbHVl c1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3JlYWRfdGlt ZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5i bGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1 dW0tPmNvbW1vbi5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVt KGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX3RpbWUpOwogCiAJQXNzZXJ0KGkgPT0gUEdfU1RB VF9HRVRfVkFDVVVNX0lOREVYX1NUQVRTX0NPTFMpOwogCkBAIC0yNTIzLDkwICsyNDIyLDUy IEBAIHBnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShQR19GVU5DVElPTl9BUkdTKQogCSNk ZWZpbmUgUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMJMTQKIAogCU9p ZAkJCQkJCSBkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKLQlQZ1N0YXRfU3RhdERCRW50cnkg CQkqZGJlbnRyeTsKLQlFeHRWYWNSZXBvcnQgCQkJKmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFj dXVtREJDb3VudHMJKmV4dHZhY3V1bTsKKwlQZ1N0YXRfVmFjdXVtREJDb3VudHMJKnBlbmRp bmc7CiAJVHVwbGVEZXNjCQkJCSB0dXBkZXNjOwogCURhdHVtCQkJCQkgdmFsdWVzW1BHX1NU QVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsKIAlib29sCQkJCQkg bnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFNdID0gezB9Owog CWNoYXIJCQkJCSBidWZbMjU2XTsKIAlpbnQJCQkJCQkgaSA9IDA7Ci0JRXh0VmFjUmVwb3J0 IGFsbHplcm87Ci0KLQkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4g dGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KLQl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBs ZURlc2MoUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFMpOwotCi0JVHVw bGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJkYmlkIiwKLQkJ CQkJICAgSU5UNE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAidG90YWxfIGJsa3NfcmVhZCIsCi0JCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpICsr aSwgInRvdGFsX2Jsa3NfaGl0IiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc19k aXJ0aWVkIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAidG90YWxfYmxrc193cml0dGVuIiwKLQkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgKytpLCAid2FsX3JlY29yZHMiLAotCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3 YWxfZnBpIiwKLQkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRy eSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAid2FsX2J5dGVzIiwKLQkJCQkJICAgTlVN RVJJQ09JRCwgLTEsIDApOworCVBnU3RhdF9WYWN1dW1EQkNvdW50cyBhbGx6ZXJvOwogCi0J VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtfcmVh ZF90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJibGtfd3JpdGVfdGltZSIsCi0JCQkJ CSAgIEZMT0FUOE9JRCwgLTEsIDApOworCS8qIEJ1aWxkIGEgdHVwbGUgZGVzY3JpcHRvciBm b3Igb3VyIHJlc3VsdCB0eXBlICovCisJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5m bywgTlVMTCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkKKwkJZWxvZyhFUlJP UiwgInJldHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOwogCi0JVHVwbGVEZXNjSW5p dEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJkZWxheV90aW1lIiwKLQkJCQkJ ICAgRkxPQVQ4T0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSArK2ksICJ0b3RhbF90aW1lIiwKLQkJCQkJICAgRkxPQVQ4T0lELCAtMSwg MCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSArK2ksICJ3 cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50IiwKLQkJCQkJICAgSU5UNE9JRCwgLTEsIDApOwot CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgKytpLCAiZXJyb3Jz IiwKLQkJCQkJICAgSU5UNE9JRCwgLTEsIDApOworCXBlbmRpbmcgPSBwZ3N0YXRfZmV0Y2hf c3RhdF92YWN1dW1fZGJlbnRyeShkYmlkKTsKIAotCUFzc2VydChpID09IFBHX1NUQVRfR0VU X1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTKTsKLQotCUJsZXNzVHVwbGVEZXNjKHR1cGRl c2MpOwotCi0JZGJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2RiZW50cnkoZGJpZCk7Ci0K LQlpZiAoZGJlbnRyeSA9PSBOVUxMKQorCWlmIChwZW5kaW5nID09IE5VTEwpCiAJewogCQkv KiBJZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwgaW5pdGlhbGlzZSBpdHMgc3Rh dHMgKi8KLQkJbWVtc2V0KCZhbGx6ZXJvLCAwLCBzaXplb2YoRXh0VmFjUmVwb3J0KSk7CisJ CW1lbXNldCgmYWxsemVybywgMCwgc2l6ZW9mKFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50 cykpOwogCQlleHR2YWN1dW0gPSAmYWxsemVybzsKIAl9CiAJZWxzZQotCXsKLQkJZXh0dmFj dXVtID0gJihkYmVudHJ5LT52YWN1dW1fZXh0KTsKLQl9Ci0KLQlpID0gMDsKKwkJZXh0dmFj dXVtID0gcGVuZGluZzsKIAogCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bShkYmlk KTsKIAotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRvdGFsX2Js a3NfcmVhZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dG90 YWxfYmxrc19oaXQpOwotCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PnRvdGFsX2Jsa3NfZGlydGllZCk7Ci0JdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4 dHZhY3V1bS0+dG90YWxfYmxrc193cml0dGVuKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0 RGF0dW0oZXh0dmFjdXVtLT5jb21tb24udG90YWxfYmxrc19yZWFkKTsKKwl2YWx1ZXNbaSsr XSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24udG90YWxfYmxrc19oaXQpOwor CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9i bGtzX2RpcnRpZWQpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0t PmNvbW1vbi50b3RhbF9ibGtzX3dyaXR0ZW4pOwogCi0JdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+d2FsX3JlY29yZHMpOwotCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPndhbF9mcGkpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmNvbW1vbi53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndhbF9mcGkpOwogCiAJLyogQ29udmVy dCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLwotCXNucHJpbnRmKGJ1 Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT53YWxfYnl0ZXMpOwor CXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT5j b21tb24ud2FsX2J5dGVzKTsKIAl2YWx1ZXNbaSsrXSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDMo bnVtZXJpY19pbiwKIAkJCQkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGJ1ZiksCiAJCQkJCQkJ CQkgIE9iamVjdElkR2V0RGF0dW0oMCksCiAJCQkJCQkJCQkgIEludDMyR2V0RGF0dW0oLTEp KTsKIAotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5ibGtfcmVh ZF90aW1lKTsKLQl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+Ymxr X3dyaXRlX3RpbWUpOwotCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVt LT5kZWxheV90aW1lKTsKLQl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1 bS0+dG90YWxfdGltZSk7Ci0JdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1 bS0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhH ZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5ibGtfcmVhZF90aW1lKTsKKwl2YWx1ZXNbaSsr XSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLmJsa193cml0ZV90aW1lKTsK Kwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLmRlbGF5 X3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21t b24udG90YWxfdGltZSk7CisJdmFsdWVzW2krK10gPSBJbnQzMkdldERhdHVtKGV4dHZhY3V1 bS0+Y29tbW9uLndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQpOwogCXZhbHVlc1tpKytdID0g SW50MzJHZXREYXR1bShleHR2YWN1dW0tPmVycm9ycyk7CiAKIAlBc3NlcnQoaSA9PSBQR19T VEFUX0dFVF9WQUNVVU1fREFUQUJBU0VfU1RBVFNfQ09MUyk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1 bS5oCmluZGV4IGZiMTM0ZjM0MDJlLi5mODk1MTUxY2EwOSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmgKQEAgLTQzMiw1ICs0MzIsNSBAQCBleHRlcm4gZG91YmxlIGFubF9nZXRfbmV4dF9T KGRvdWJsZSB0LCBpbnQgbiwgZG91YmxlICpzdGF0ZXB0cik7CiBleHRlcm4gdm9pZCBleHR2 YWNfc3RhdHNfc3RhcnRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICpzdGF0cywKIAkJCQkJICAgTFZFeHRTdGF0Q291bnRlcnNJZHggKmNvdW50ZXJzKTsKIGV4 dGVybiB2b2lkIGV4dHZhY19zdGF0c19lbmRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxr RGVsZXRlUmVzdWx0ICpzdGF0cywKLQkJCQkJIExWRXh0U3RhdENvdW50ZXJzSWR4ICpjb3Vu dGVycywgRXh0VmFjUmVwb3J0ICpyZXBvcnQpOworCQkJCQkgTFZFeHRTdGF0Q291bnRlcnNJ ZHggKmNvdW50ZXJzLCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnJlcG9ydCk7CiAj ZW5kaWYJCQkJCQkJLyogVkFDVVVNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bn c3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggZjgxNThhYTM1M2MuLmExMjU5 MDk0OGZiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5j bHVkZS9wZ3N0YXQuaApAQCAtMTE2LDQ2ICsxMTYsMTAwIEBAIHR5cGVkZWYgZW51bSBFeHRW YWNSZXBvcnRUeXBlCiB7CiAJUEdTVEFUX0VYVFZBQ19JTlZBTElEID0gMCwKIAlQR1NUQVRf RVhUVkFDX1RBQkxFID0gMSwKLQlQR1NUQVRfRVhUVkFDX0lOREVYID0gMgorCVBHU1RBVF9F WFRWQUNfSU5ERVggPSAyLAorCVBHU1RBVF9FWFRWQUNfREIgPSAzLAogfSBFeHRWYWNSZXBv cnRUeXBlOwogCiAvKiAtLS0tLS0tLS0tCisgKiBQZ1N0YXRfVGFibGVDb3VudHMJCQlUaGUg YWN0dWFsIHBlci10YWJsZSBjb3VudHMga2VwdCBieSBhIGJhY2tlbmQKICAqCi0gKiBFeHRW YWNSZXBvcnQKKyAqIFRoaXMgc3RydWN0IHNob3VsZCBjb250YWluIG9ubHkgYWN0dWFsIGV2 ZW50IGNvdW50ZXJzLCBiZWNhdXNlIHdlIG1ha2UgdXNlCisgKiBvZiBwZ19tZW1vcnlfaXNf YWxsX3plcm9zKCkgdG8gZGV0ZWN0IHdoZXRoZXIgdGhlcmUgYXJlIGFueSBzdGF0cyB1cGRh dGVzCisgKiB0byBhcHBseS4KICAqCi0gKiBBZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb2YgdmFj dXVtIHByb2Nlc3Npbmcgb3ZlciBhIHJlbGF0aW9uLgotICogcGFnZXNfcmVtb3ZlZCBpcyB0 aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBwaHlzaWNhbGx5IHNocmFuaywKLSAqIGlmIGFueSAo aWUgdGhlIGNoYW5nZSBpbiBpdHMgdG90YWwgc2l6ZSBvbiBkaXNrKQotICogcGFnZXNfZGVs ZXRlZCByZWZlciB0byBmcmVlIHNwYWNlIHdpdGhpbiB0aGUgaW5kZXggZmlsZQorICogSXQg aXMgYSBjb21wb25lbnQgb2YgUGdTdGF0X1RhYmxlU3RhdHVzICh3aXRoaW4tYmFja2VuZCBz dGF0ZSkuCisgKgorICogTm90ZTogZm9yIGEgdGFibGUsIHR1cGxlc19yZXR1cm5lZCBpcyB0 aGUgbnVtYmVyIG9mIHR1cGxlcyBzdWNjZXNzZnVsbHkKKyAqIGZldGNoZWQgYnkgaGVhcF9n ZXRuZXh0LCB3aGlsZSB0dXBsZXNfZmV0Y2hlZCBpcyB0aGUgbnVtYmVyIG9mIHR1cGxlcwor ICogc3VjY2Vzc2Z1bGx5IGZldGNoZWQgYnkgaGVhcF9mZXRjaCB1bmRlciB0aGUgY29udHJv bCBvZiBiaXRtYXAgaW5kZXhzY2Fucy4KKyAqIEZvciBhbiBpbmRleCwgdHVwbGVzX3JldHVy bmVkIGlzIHRoZSBudW1iZXIgb2YgaW5kZXggZW50cmllcyByZXR1cm5lZCBieQorICogdGhl IGluZGV4IEFNLCB3aGlsZSB0dXBsZXNfZmV0Y2hlZCBpcyB0aGUgbnVtYmVyIG9mIHR1cGxl cyBzdWNjZXNzZnVsbHkKKyAqIGZldGNoZWQgYnkgaGVhcF9mZXRjaCB1bmRlciB0aGUgY29u dHJvbCBvZiBzaW1wbGUgaW5kZXhzY2FucyBmb3IgdGhpcyBpbmRleC4KKyAqCisgKiB0dXBs ZXNfaW5zZXJ0ZWQvdXBkYXRlZC9kZWxldGVkL2hvdF91cGRhdGVkL25ld3BhZ2VfdXBkYXRl ZCBjb3VudCBhdHRlbXB0ZWQKKyAqIGFjdGlvbnMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0 aGUgdHJhbnNhY3Rpb24gY29tbWl0dGVkLiAgZGVsdGFfbGl2ZV90dXBsZXMsCisgKiBkZWx0 YV9kZWFkX3R1cGxlcywgYW5kIGNoYW5nZWRfdHVwbGVzIGFyZSBzZXQgZGVwZW5kaW5nIG9u IGNvbW1pdCBvciBhYm9ydC4KKyAqIE5vdGUgdGhhdCBkZWx0YV9saXZlX3R1cGxlcyBhbmQg ZGVsdGFfZGVhZF90dXBsZXMgY2FuIGJlIG5lZ2F0aXZlIQogICogLS0tLS0tLS0tLQogICov Ci10eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9U YWJsZUNvdW50cwogewotCS8qIG51bWJlciBvZiBibG9ja3MgbWlzc2VkLCBoaXQsIGRpcnRp ZWQgYW5kIHdyaXR0ZW4gZHVyaW5nIGEgdmFjdXVtIG9mIHNwZWNpZmljIHJlbGF0aW9uICov Ci0JaW50NjQJCXRvdGFsX2Jsa3NfcmVhZDsKLQlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7Ci0J aW50NjQJCXRvdGFsX2Jsa3NfZGlydGllZDsKLQlpbnQ2NAkJdG90YWxfYmxrc193cml0dGVu OworCVBnU3RhdF9Db3VudGVyIG51bXNjYW5zOwogCi0JLyogYmxvY2tzIG1pc3NlZCBhbmQg aGl0IGZvciBqdXN0IHRoZSBoZWFwIGR1cmluZyBhIHZhY3V1bSBvZiBzcGVjaWZpYyByZWxh dGlvbiAqLwotCWludDY0CQlibGtzX2ZldGNoZWQ7Ci0JaW50NjQJCWJsa3NfaGl0OworCVBn U3RhdF9Db3VudGVyIHR1cGxlc19yZXR1cm5lZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNf ZmV0Y2hlZDsKIAotCS8qIFZhY3V1bSBXQUwgdXNhZ2Ugc3RhdHMgKi8KLQlpbnQ2NAkJd2Fs X3JlY29yZHM7CS8qIHdhbCB1c2FnZTogbnVtYmVyIG9mIFdBTCByZWNvcmRzICovCi0JaW50 NjQJCXdhbF9mcGk7CQkvKiB3YWwgdXNhZ2U6IG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGlt YWdlcyBwcm9kdWNlZCAqLwotCXVpbnQ2NAkJd2FsX2J5dGVzOwkJLyogd2FsIHVzYWdlOiBz aXplIG9mIFdBTCByZWNvcmRzIHByb2R1Y2VkICovCisJUGdTdGF0X0NvdW50ZXIgdHVwbGVz X2luc2VydGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc191cGRhdGVkOworCVBnU3RhdF9D b3VudGVyIHR1cGxlc19kZWxldGVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19ob3RfdXBk YXRlZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfbmV3cGFnZV91cGRhdGVkOworCWJvb2wJ CXRydW5jZHJvcHBlZDsKKworCVBnU3RhdF9Db3VudGVyIGRlbHRhX2xpdmVfdHVwbGVzOwor CVBnU3RhdF9Db3VudGVyIGRlbHRhX2RlYWRfdHVwbGVzOworCVBnU3RhdF9Db3VudGVyIGNo YW5nZWRfdHVwbGVzOworCisJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CisJUGdT dGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKIAotCS8qIFRpbWUgc3RhdHMuICovCi0JZG91Ymxl CQlibGtfcmVhZF90aW1lOwkvKiB0aW1lIHNwZW50IHJlYWRpbmcgcGFnZXMsIGluIG1zZWMg Ki8KLQlkb3VibGUJCWJsa193cml0ZV90aW1lOyAvKiB0aW1lIHNwZW50IHdyaXRpbmcgcGFn ZXMsIGluIG1zZWMgKi8KLQlkb3VibGUJCWRlbGF5X3RpbWU7CQkvKiBob3cgbG9uZyB2YWN1 dW0gc2xlcHQgaW4gdmFjdXVtIGRlbGF5IHBvaW50LCBpbiBtc2VjICovCi0JZG91YmxlCQl0 b3RhbF90aW1lOwkJLyogdG90YWwgdGltZSBvZiBhIHZhY3V1bSBvcGVyYXRpb24sIGluIG1z ZWMgKi8KKwlQZ1N0YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7CisJUGdTdGF0 X0NvdW50ZXIgcmV2X2FsbF9mcm96ZW5fcGFnZXM7Cit9IFBnU3RhdF9UYWJsZUNvdW50czsK IAotCWludDY0CQl0dXBsZXNfZGVsZXRlZDsJCS8qIHR1cGxlcyBkZWxldGVkIGJ5IHZhY3V1 bSAqLwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0NvbW1vbkNvdW50cworeworCS8qIGJsb2Nr cyAqLworCWludDY0IHRvdGFsX2Jsa3NfcmVhZDsKKwlpbnQ2NCB0b3RhbF9ibGtzX2hpdDsK KwlpbnQ2NCB0b3RhbF9ibGtzX2RpcnRpZWQ7CisJaW50NjQgdG90YWxfYmxrc193cml0dGVu OworCisJLyogaGVhcCBibG9ja3MgKi8KKwlpbnQ2NCBibGtzX2ZldGNoZWQ7CisJaW50NjQg Ymxrc19oaXQ7CisKKwkvKiBXQUwgKi8KKwlpbnQ2NCB3YWxfcmVjb3JkczsKKwlpbnQ2NCB3 YWxfZnBpOworCXVpbnQ2NCB3YWxfYnl0ZXM7CisKKwkvKiBUaW1lICovCisJZG91YmxlIGJs a19yZWFkX3RpbWU7CisJZG91YmxlIGJsa193cml0ZV90aW1lOworCWRvdWJsZSBkZWxheV90 aW1lOworCWRvdWJsZSB0b3RhbF90aW1lOworCisJLyogdHVwbGVzICovCisJaW50NjQgdHVw bGVzX2RlbGV0ZWQ7CisKKwkvKiBmYWlsc2FmZSAqLworCWludDMyIHdyYXBhcm91bmRfZmFp bHNhZmVfY291bnQ7Cit9IFBnU3RhdF9Db21tb25Db3VudHM7CiAKLQlpbnQzMgkJZXJyb3Jz OwotCWludDMyCQl3cmFwYXJvdW5kX2ZhaWxzYWZlX2NvdW50OwkvKiB0aGUgbnVtYmVyIG9m IHRpbWVzIHRvIHByZXZlbnQgd3JhcGFyb3VuZCBwcm9ibGVtICovCisvKiAtLS0tLS0tLS0t CisgKgorICogUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzCisgKgorICogQWRkaXRpb25h bCBzdGF0aXN0aWNzIG9mIHZhY3V1bSBwcm9jZXNzaW5nIG92ZXIgYSByZWxhdGlvbi4KKyAq IHBhZ2VzX3JlbW92ZWQgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgcGh5c2ljYWxseSBz aHJhbmssCisgKiBpZiBhbnkgKGllIHRoZSBjaGFuZ2UgaW4gaXRzIHRvdGFsIHNpemUgb24g ZGlzaykKKyAqIHBhZ2VzX2RlbGV0ZWQgcmVmZXIgdG8gZnJlZSBzcGFjZSB3aXRoaW4gdGhl IGluZGV4IGZpbGUKKyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0 X1ZhY3V1bVJlbGF0aW9uQ291bnRzCit7CisJUGdTdGF0X0NvbW1vbkNvdW50cyBjb21tb247 CiAKIAlFeHRWYWNSZXBvcnRUeXBlIHR5cGU7CQkvKiBoZWFwLCBpbmRleCwgZXRjLiAqLwog CkBAIC0xNzQsMTYgKzIyOCwxNiBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQKIAl7 CiAJCXN0cnVjdAogCQl7CisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJCS8qIHR1cGxlcyBm cm96ZW4gdXAgYnkgdmFjdXVtICovCisJCQlpbnQ2NAkJcmVjZW50bHlfZGVhZF90dXBsZXM7 CS8qIGRlbGV0ZWQgdHVwbGVzIHRoYXQgYXJlIHN0aWxsIHZpc2libGUgdG8gc29tZSB0cmFu c2FjdGlvbiAqLworCQkJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxlczsJCS8qIHR1cGxlcyBu b3QgcHJ1bmVkIGJ5IHZhY3V1bSBkdWUgdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVwIGxv Y2sgKi8KIAkJCWludDY0CQlwYWdlc19zY2FubmVkOwkJLyogaGVhcCBwYWdlcyBleGFtaW5l ZCAobm90IHNraXBwZWQgYnkgVk0pICovCiAJCQlpbnQ2NAkJcGFnZXNfcmVtb3ZlZDsJCS8q IGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2YWN1dW0gInRydW5jYXRpb24iICovCiAJCQlpbnQ2 NAkJcGFnZXNfZnJvemVuOwkJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGZyb3plbiAqLwog CQkJaW50NjQJCXBhZ2VzX2FsbF92aXNpYmxlOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg YWxsLXZpc2libGUgKi8KLQkJCWludDY0CQl0dXBsZXNfZnJvemVuOwkJLyogdHVwbGVzIGZy b3plbiB1cCBieSB2YWN1dW0gKi8KLQkJCWludDY0CQlyZWNlbnRseV9kZWFkX3R1cGxlczsJ LyogZGVsZXRlZCB0dXBsZXMgdGhhdCBhcmUgc3RpbGwgdmlzaWJsZSB0byBzb21lIHRyYW5z YWN0aW9uICovCiAJCQlpbnQ2NAkJdm1fbmV3X2Zyb3plbl9wYWdlczsJCS8qIHBhZ2VzIG1h cmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KIAkJCWludDY0CQl2bV9uZXdfdmlzaWJsZV9wYWdl czsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzIGFsbC12aXNpYmxlICovCiAJCQlpbnQ2NAkJ dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzOwkvKiBwYWdlcyBtYXJrZWQgaW4gVk0gYXMg YWxsLXZpc2libGUgYW5kIGZyb3plbiAqLwotCQkJaW50NjQJCW1pc3NlZF9kZWFkX3R1cGxl czsJCS8qIHR1cGxlcyBub3QgcHJ1bmVkIGJ5IHZhY3V1bSBkdWUgdG8gZmFpbHVyZSB0byBn ZXQgYSBjbGVhbnVwIGxvY2sgKi8KIAkJCWludDY0CQltaXNzZWRfZGVhZF9wYWdlczsJCS8q IHBhZ2VzIHdpdGggbWlzc2VkIGRlYWQgdHVwbGVzICovCiAJCQlpbnQ2NAkJaW5kZXhfdmFj dXVtX2NvdW50OwkvKiBudW1iZXIgb2YgaW5kZXggdmFjdXVtaW5ncyAqLwogCQl9CQkJdGFi bGU7CkBAIC0xOTIsNjEgKzI0NiwyMSBAQCB0eXBlZGVmIHN0cnVjdCBFeHRWYWNSZXBvcnQK IAkJCWludDY0CQlwYWdlc19kZWxldGVkOwkJLyogbnVtYmVyIG9mIHBhZ2VzIGRlbGV0ZWQg YnkgdmFjdXVtICovCiAJCX0JCQlpbmRleDsKIAl9IC8qIHBlcl90eXBlX3N0YXRzICovOwot fSBFeHRWYWNSZXBvcnQ7Cit9IFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50czsKIAotLyog LS0tLS0tLS0tLQotICogUGdTdGF0X1RhYmxlQ291bnRzCQkJVGhlIGFjdHVhbCBwZXItdGFi bGUgY291bnRzIGtlcHQgYnkgYSBiYWNrZW5kCi0gKgotICogVGhpcyBzdHJ1Y3Qgc2hvdWxk IGNvbnRhaW4gb25seSBhY3R1YWwgZXZlbnQgY291bnRlcnMsIGJlY2F1c2Ugd2UgbWFrZSB1 c2UKLSAqIG9mIHBnX21lbW9yeV9pc19hbGxfemVyb3MoKSB0byBkZXRlY3Qgd2hldGhlciB0 aGVyZSBhcmUgYW55IHN0YXRzIHVwZGF0ZXMKLSAqIHRvIGFwcGx5LgotICoKLSAqIEl0IGlz IGEgY29tcG9uZW50IG9mIFBnU3RhdF9UYWJsZVN0YXR1cyAod2l0aGluLWJhY2tlbmQgc3Rh dGUpLgotICoKLSAqIE5vdGU6IGZvciBhIHRhYmxlLCB0dXBsZXNfcmV0dXJuZWQgaXMgdGhl IG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5Ci0gKiBmZXRjaGVkIGJ5IGhlYXBfZ2V0 bmV4dCwgd2hpbGUgdHVwbGVzX2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMKLSAq IHN1Y2Nlc3NmdWxseSBmZXRjaGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wg b2YgYml0bWFwIGluZGV4c2NhbnMuCi0gKiBGb3IgYW4gaW5kZXgsIHR1cGxlc19yZXR1cm5l ZCBpcyB0aGUgbnVtYmVyIG9mIGluZGV4IGVudHJpZXMgcmV0dXJuZWQgYnkKLSAqIHRoZSBp bmRleCBBTSwgd2hpbGUgdHVwbGVzX2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMg c3VjY2Vzc2Z1bGx5Ci0gKiBmZXRjaGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRy b2wgb2Ygc2ltcGxlIGluZGV4c2NhbnMgZm9yIHRoaXMgaW5kZXguCi0gKgotICogdHVwbGVz X2luc2VydGVkL3VwZGF0ZWQvZGVsZXRlZC9ob3RfdXBkYXRlZC9uZXdwYWdlX3VwZGF0ZWQg Y291bnQgYXR0ZW1wdGVkCi0gKiBhY3Rpb25zLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhl IHRyYW5zYWN0aW9uIGNvbW1pdHRlZC4gIGRlbHRhX2xpdmVfdHVwbGVzLAotICogZGVsdGFf ZGVhZF90dXBsZXMsIGFuZCBjaGFuZ2VkX3R1cGxlcyBhcmUgc2V0IGRlcGVuZGluZyBvbiBj b21taXQgb3IgYWJvcnQuCi0gKiBOb3RlIHRoYXQgZGVsdGFfbGl2ZV90dXBsZXMgYW5kIGRl bHRhX2RlYWRfdHVwbGVzIGNhbiBiZSBuZWdhdGl2ZSEKLSAqIC0tLS0tLS0tLS0KLSAqLwot dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlQ291bnRzCit0eXBlZGVmIHN0cnVjdCBQZ1N0 YXRfVmFjdXVtUmVsYXRpb25TdGF0dXMKIHsKLQlQZ1N0YXRfQ291bnRlciBudW1zY2FuczsK LQotCVBnU3RhdF9Db3VudGVyIHR1cGxlc19yZXR1cm5lZDsKLQlQZ1N0YXRfQ291bnRlciB0 dXBsZXNfZmV0Y2hlZDsKLQotCVBnU3RhdF9Db3VudGVyIHR1cGxlc19pbnNlcnRlZDsKLQlQ Z1N0YXRfQ291bnRlciB0dXBsZXNfdXBkYXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNf ZGVsZXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0dXBsZXNfaG90X3VwZGF0ZWQ7Ci0JUGdTdGF0 X0NvdW50ZXIgdHVwbGVzX25ld3BhZ2VfdXBkYXRlZDsKLQlib29sCQl0cnVuY2Ryb3BwZWQ7 Ci0KLQlQZ1N0YXRfQ291bnRlciBkZWx0YV9saXZlX3R1cGxlczsKLQlQZ1N0YXRfQ291bnRl ciBkZWx0YV9kZWFkX3R1cGxlczsKLQlQZ1N0YXRfQ291bnRlciBjaGFuZ2VkX3R1cGxlczsK LQotCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19mZXRjaGVkOwotCVBnU3RhdF9Db3VudGVyIGJs b2Nrc19oaXQ7Ci0KLQlQZ1N0YXRfQ291bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7Ci0J UGdTdGF0X0NvdW50ZXIgcmV2X2FsbF9mcm96ZW5fcGFnZXM7CisJT2lkCQkJaWQ7CQkJCS8q IHRhYmxlJ3MgT0lEICovCisJYm9vbAkJc2hhcmVkOwkJCS8qIGlzIGl0IGEgc2hhcmVkIGNh dGFsb2c/ICovCisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGNvdW50czsJLyogZXZl bnQgY291bnRzIHRvIGJlIHNlbnQgKi8KK30gUGdTdGF0X1ZhY3V1bVJlbGF0aW9uU3RhdHVz OwogCi0JLyoKLQkgKiBBZGRpdGlvbmFsIGN1bXVsYXRpdmUgc3RhdCBvbiB2YWN1dW0gb3Bl cmF0aW9ucy4KLQkgKiBVc2UgYW4gZXhwZW5zaXZlIHN0cnVjdHVyZSBhcyBhbiBhYnN0cmFj dGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mCi0JICogcmVsYXRpb25zLgotCSAqLwotCUV4 dFZhY1JlcG9ydAl2YWN1dW1fZXh0OwotfSBQZ1N0YXRfVGFibGVDb3VudHM7Cit0eXBlZGVm IHN0cnVjdCBQZ1N0YXRfVmFjdXVtREJDb3VudHMKK3sKKwlPaWQgZGJqaWQ7CisJUGdTdGF0 X0NvbW1vbkNvdW50cyBjb21tb247CisJaW50MzIgZXJyb3JzOworfSBQZ1N0YXRfVmFjdXVt REJDb3VudHM7CiAKIC8qIC0tLS0tLS0tLS0KICAqIFBnU3RhdF9UYWJsZVN0YXR1cwkJCVBl ci10YWJsZSBzdGF0dXMgd2l0aGluIGEgYmFja2VuZApAQCAtMjcyLDYgKzI4NiwxMiBAQCB0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVTdGF0dXMKIAlSZWxhdGlvbglyZWxhdGlvbjsJ CS8qIHJlbCB0aGF0IGlzIHVzaW5nIHRoaXMgZW50cnkgKi8KIH0gUGdTdGF0X1RhYmxlU3Rh dHVzOwogCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfUmVsYXRpb25WYWN1dW1QZW5kaW5nCit7 CisJT2lkCQkJaWQ7CQkJCS8qIHRhYmxlJ3MgT0lEICovCisJUGdTdGF0X1ZhY3V1bVJlbGF0 aW9uQ291bnRzIGNvdW50czsJLyogZXZlbnQgY291bnRzIHRvIGJlIHNlbnQgKi8KK30gUGdT dGF0X1JlbGF0aW9uVmFjdXVtUGVuZGluZzsKKwogLyogLS0tLS0tLS0tLQogICogUGdTdGF0 X1RhYmxlWGFjdFN0YXR1cwkJUGVyLXRhYmxlLCBwZXItc3VidHJhbnNhY3Rpb24gc3RhdHVz CiAgKiAtLS0tLS0tLS0tCkBAIC00NjgsOCArNDg4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdT dGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgcGFyYWxsZWxfd29ya2Vyc19sYXVu Y2hlZDsKIAogCVRpbWVzdGFtcFR6IHN0YXRfcmVzZXRfdGltZXN0YW1wOwotCi0JRXh0VmFj UmVwb3J0IHZhY3V1bV9leHQ7CQkvKiBleHRlbmRlZCB2YWN1dW0gc3RhdGlzdGljcyAqLwog fSBQZ1N0YXRfU3RhdERCRW50cnk7CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVu Y0VudHJ5CkBAIC01NTEsOCArNTY5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRU YWJFbnRyeQogCiAJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF92aXNpYmxlX3BhZ2VzOwogCVBn U3RhdF9Db3VudGVyIHJldl9hbGxfZnJvemVuX3BhZ2VzOwotCi0JRXh0VmFjUmVwb3J0IHZh Y3V1bV9leHQ7CiB9IFBnU3RhdF9TdGF0VGFiRW50cnk7CiAKIC8qIC0tLS0tLQpAQCAtNzYw LDExICs3NzYsMTAgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3VubGlua19yZWxhdGlvbihSZWxh dGlvbiByZWwpOwogCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFi bGVvaWQsIGJvb2wgc2hhcmVkLAogCQkJCQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxl cywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcywKLQkJCQkJCQkJIFRpbWVzdGFtcFR6IHN0 YXJ0dGltZSwgRXh0VmFjUmVwb3J0ICpwYXJhbXMpOworCQkJCQkJCQkgVGltZXN0YW1wVHog c3RhcnR0aW1lKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlv biByZWwsCiAJCQkJCQkJCSAgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdTdGF0X0Nv dW50ZXIgZGVhZHR1cGxlcywKIAkJCQkJCQkJICBib29sIHJlc2V0Y291bnRlciwgVGltZXN0 YW1wVHogc3RhcnR0aW1lKTsKLWV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfdmFjdXVtX2Vy cm9yKE9pZCB0YWJsZW9pZCwgRXh0VmFjUmVwb3J0VHlwZSBtX3R5cGUpOwogCiAvKgogICog SWYgc3RhdHMgYXJlIGVuYWJsZWQsIGJ1dCBwZW5kaW5nIGRhdGEgaGFzbid0IGJlZW4gcHJl cGFyZWQgeWV0LCBjYWxsCkBAIC04OTUsNiArOTEwLDE1IEBAIGV4dGVybiBpbnQJcGdzdGF0 X2dldF90cmFuc2FjdGlvbmFsX2Ryb3BzKGJvb2wgaXNDb21taXQsIHN0cnVjdCB4bF94YWN0 X3N0YXRzX2l0CiBleHRlcm4gdm9pZCBwZ3N0YXRfZXhlY3V0ZV90cmFuc2FjdGlvbmFsX2Ry b3BzKGludCBuZHJvcHMsIHN0cnVjdCB4bF94YWN0X3N0YXRzX2l0ZW0gKml0ZW1zLCBib29s IGlzX3JlZG8pOwogCiAKK2V4dGVybiB2b2lkIHBnc3RhdF9kcm9wX3ZhY3V1bV9kYXRhYmFz ZShPaWQgZGF0YWJhc2VpZCk7CitleHRlcm4gdm9pZCBwZ3N0YXRfdmFjdXVtX3JlbGF0aW9u X2RlbGV0ZV9wZW5kaW5nX2NiKE9pZCByZWxpZCk7CitleHRlcm4gdm9pZAorcGdzdGF0X3Jl cG9ydF90YWJfdmFjdXVtX2V4dHN0YXRzKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCisJ CQkJCQkJCSAgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpwYXJhbXMpOworZXh0ZXJu IFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKiBmaW5kX3ZhY3V1bV9yZWxhdGlvbl9l bnRyeShPaWQgcmVsaWQpOworZXh0ZXJuIFBnU3RhdF9WYWN1dW1EQkNvdW50cyAqcGdzdGF0 X3ByZXBfdmFjdXVtX2RhdGFiYXNlX3BlbmRpbmcoT2lkIGRib2lkKTsKK2V4dGVybiBQZ1N0 YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKnBnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV90YWJl bnRyeShPaWQgcmVsaWQsIE9pZCBkYmlkKTsKK1BnU3RhdF9WYWN1dW1EQkNvdW50cyAqcGdz dGF0X2ZldGNoX3N0YXRfdmFjdXVtX2RiZW50cnkoT2lkIGRiaWQpOwogLyoKICAqIEZ1bmN0 aW9ucyBpbiBwZ3N0YXRfd2FsLmMKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmggYi9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJu YWwuaAppbmRleCBkNTU1N2U2ZTk5OC4uMTQwYWRiY2RiZDYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3Bnc3RhdF9pbnRlcm5hbC5oCkBAIC00MzksNiArNDM5LDE4IEBAIHR5cGVkZWYgc3RydWN0 IFBnU3RhdFNoYXJlZF9SZWxhdGlvbgogCVBnU3RhdF9TdGF0VGFiRW50cnkgc3RhdHM7CiB9 IFBnU3RhdFNoYXJlZF9SZWxhdGlvbjsKIAordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVk X1ZhY3V1bURCCit7CisJUGdTdGF0U2hhcmVkX0NvbW1vbiBoZWFkZXI7CisJUGdTdGF0X1Zh Y3V1bURCQ291bnRzIHN0YXRzOworfSBQZ1N0YXRTaGFyZWRfVmFjdXVtREI7CisKK3R5cGVk ZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbgoreworCVBnU3RhdFNoYXJl ZF9Db21tb24gaGVhZGVyOworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBzdGF0czsK K30gUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0aW9uOworCiB0eXBlZGVmIHN0cnVjdCBQZ1N0 YXRTaGFyZWRfRnVuY3Rpb24KIHsKIAlQZ1N0YXRTaGFyZWRfQ29tbW9uIGhlYWRlcjsKQEAg LTYwNyw2ICs2MTksOSBAQCBleHRlcm4gUGdTdGF0X0VudHJ5UmVmICpwZ3N0YXRfZmV0Y2hf cGVuZGluZ19lbnRyeShQZ1N0YXRfS2luZCBraW5kLAogZXh0ZXJuIHZvaWQgKnBnc3RhdF9m ZXRjaF9lbnRyeShQZ1N0YXRfS2luZCBraW5kLCBPaWQgZGJvaWQsIHVpbnQ2NCBvYmppZCk7 CiBleHRlcm4gdm9pZCBwZ3N0YXRfc25hcHNob3RfZml4ZWQoUGdTdGF0X0tpbmQga2luZCk7 CiAKK2Jvb2wgcGdzdGF0X3ZhY3V1bV9kYl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpOworZXh0ZXJuIGJvb2wgcGdzdGF0X3ZhY3V1bV9yZWxh dGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQp OworCiAKIC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X2FyY2hpdmVyLmMKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmggYi9zcmMvaW5jbHVkZS91dGls cy9wZ3N0YXRfa2luZC5oCmluZGV4IGY0NDE2OWZkNWEzLi40NTQ2NjFmOWQ2YSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaAorKysgYi9zcmMvaW5jbHVk ZS91dGlscy9wZ3N0YXRfa2luZC5oCkBAIC0zOCw5ICszOCwxMSBAQAogI2RlZmluZSBQR1NU QVRfS0lORF9JTwkxMAogI2RlZmluZSBQR1NUQVRfS0lORF9TTFJVCTExCiAjZGVmaW5lIFBH U1RBVF9LSU5EX1dBTAkxMgorI2RlZmluZSBQR1NUQVRfS0lORF9WQUNVVU1fREIJMTMKKyNk ZWZpbmUgUEdTVEFUX0tJTkRfVkFDVVVNX1JFTEFUSU9OCTE0CiAKICNkZWZpbmUgUEdTVEFU X0tJTkRfQlVJTFRJTl9NSU4gUEdTVEFUX0tJTkRfREFUQUJBU0UKLSNkZWZpbmUgUEdTVEFU X0tJTkRfQlVJTFRJTl9NQVggUEdTVEFUX0tJTkRfV0FMCisjZGVmaW5lIFBHU1RBVF9LSU5E X0JVSUxUSU5fTUFYIFBHU1RBVF9LSU5EX1ZBQ1VVTV9SRUxBVElPTgogI2RlZmluZSBQR1NU QVRfS0lORF9CVUlMVElOX1NJWkUgKFBHU1RBVF9LSU5EX0JVSUxUSU5fTUFYICsgMSkKIAog LyogQ3VzdG9tIHN0YXRzIGtpbmRzICovCi0tIAoyLjM0LjEKCg== --------------oJHX0BjXYA1bdjVrra2ICFTY Content-Type: text/x-patch; charset=UTF-8; name="0005-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="0005-Add-documentation-about-the-system-views-that-are-us.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2NmRkZDQ0NTI0MmYwMTgxZWRiOTAzZWQ3YWNlNjBlNzVjYTcwODkwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggNS81XSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCB8IDc1NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3NTUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCBiNThjNTJlYTUwZi4uN2U1 YWNkN2M1MmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTU0NzQsNCArNTQ3NCw3 NTkgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorPHNlY3QxIGlkPSJ2aWV3LXBn LXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRf dmFjdXVtX2RhdGFiYXNlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6 b25lPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWRhdGFiYXNlIj4KKyAgIDxwcmltYXJ5PnBnX3N0 YXRfdmFjdXVtX2RhdGFiYXNlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFy YT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlPC9z dHJ1Y3RuYW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggZGF0YWJhc2Ug aW4gdGhlIGN1cnJlbnQgY2x1c3Rlciwgc2hvd2luZyBzdGF0aXN0aWNzIGFib3V0CisgICB2 YWN1dW1pbmcgdGhhdCBkYXRhYmFzZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4g Q29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4K KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRi aWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJl ciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAg ICBwZXJmb3JtZWQgb24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRp bWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIg Y2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRp cnRpZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxr c193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdy aXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMg ZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29y ZHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0 YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBk YXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVk IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGRhdGFi YXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFz ZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBUaW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVy YXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBz bGVlcGluZyBpbiBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBw ZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzIChz ZWUgPHhyZWYgbGlua2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3Qi Lz4KKyAgICAgICAgZm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN5c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBv ZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBV c2VyIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBpbiBtaWxsaXNlY29u ZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIGRhdGFiYXNlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVz IHRoZSB2YWN1dW0gd2FzIHJ1biB0byBwcmV2ZW50IGEgd3JhcGFyb3VuZCBwcm9ibGVtLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lcnJvcnM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gdGhp cyBkYXRhYmFzZQorICAgICAgICB3ZXJlIGludGVycnVwdGVkIG9uIGFueSBlcnJvcnMKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90 Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworICA8c2VjdDEgaWQ9InZpZXctcGct c3RhdC12YWN1dW0taW5kZXhlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3Zh Y3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWluZGV4ZXMiPgorICAgPHByaW1hcnk+cGdfc3RhdF92 YWN1dW1faW5kZXhlczwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+Cisg ICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3Ru YW1lPiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggaW5kZXggaW4gdGhlIGN1 cnJlbnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGUgaW5kZXhlcyksIHNo b3dpbmcgc3RhdGlzdGljcyBhYm91dCB2YWN1dW1pbmcgdGhhdCBzcGVjaWZpYyBpbmRleC4K KyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0 X3ZhY3V1bV9pbmRleGVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2Yg YW4gaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyBpbmRleCBpcyBpbgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50b3RhbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBi bG9ja3MgcmVhZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24g dGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9i bGtzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2Nr cyB3ZXJlIGZvdW5kIGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9w ZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIGRpcnRpZWQgYnkgdmFjdXVtIG9wZXJh dGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlv bnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVy IG9mIGJsb2NrcyB2YWN1dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICBp bmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyBpbmRleCB3 ZXJlIGFscmVhZHkgZm91bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1 dW0gb3BlcmF0aW9ucywgc28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAg ICAgKHRoaXMgb25seSBpbmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBi dWZmZXIgY2FjaGUsIG5vdCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNh Y2hlKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19kZWxldGVk PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgcGFnZXMgZGVsZXRlZCBieSB2YWN1dW0gb3Bl cmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD50dXBsZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg TnVtYmVyIG9mIGRlYWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGRlbGV0ZWQgZnJvbSB0 aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9yZWNv cmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJlY29yZHMgZ2VuZXJh dGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGlu ZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9mcGk8L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBnZW5lcmF0 ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5k ZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5dGVzPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5dGVzIGdlbmVyYXRlZCBieSB2 YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyBpbmRleAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90aW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBv cGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNl Y29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5h YmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50 IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1l ZCBvbgorICAgICAgICB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxp bmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3Ro ZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRlbGF5 X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGluZyBpbiBhIHZhY3V1 bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAg ICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYgbGlua2VuZD0icnVu dGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAgICAgZm9yIGRldGFp bHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5c3RlbV90aW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRl eCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1lIG9mIHZhY3V1bWlu ZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCB0aW1lIG9m IHZhY3V1bWluZyB0aGlzIGluZGV4LCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAg PC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJ2aWV3LXBnLXN0YXQtdmFjdXVt LXRhYmxlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8 L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctc3Rh dC12YWN1dW0tdGFibGVzIj4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfdmFjdXVtX3RhYmxlczwv cHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3Ry dWN0bmFtZT5wZ19zdGF0X3ZhY3V1bV90YWJsZXM8L3N0cnVjdG5hbWU+IHdpbGwgY29udGFp bgorICAgb25lIHJvdyBmb3IgZWFjaCB0YWJsZSBpbiB0aGUgY3VycmVudCBkYXRhYmFzZSAo aW5jbHVkaW5nIFRPQVNUCisgICB0YWJsZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQg dmFjdXVtaW5nIHRoYXQgc3BlY2lmaWMgdGFibGUuCisgIDwvcGFyYT4KKworICA8dGFibGU+ CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFk PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRi b2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgYSB0YWJsZQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE5hbWUgb2YgdGhl IHNjaGVtYSB0aGlzIHRhYmxlIGlzIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnJlbG5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGlzIHRhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfcmVhZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyByZWFkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGltZXMgZGF0YWJhc2UgYmxvY2tzIHdlcmUgZm91bmQgaW4gdGhlCisgICAg ICAgIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3Jt ZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50 b3RhbF9ibGtzX2RpcnRpZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBibG9ja3Mgd3Jp dHRlbiBkaXJlY3RseSBieSB2YWN1dW0gb3IgYXV0byB2YWN1dW0uCisgICAgICAgIEJsb2Nr cyB0aGF0IGFyZSBkaXJ0aWVkIGJ5IGEgdmFjdXVtIHByb2Nlc3MgY2FuIGJlIHdyaXR0ZW4g b3V0IGJ5IGFub3RoZXIgcHJvY2Vzcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dG90YWxfYmxrc193cml0dGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGF0 YWJhc2UgYmxvY2tzIHdyaXR0ZW4gYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVy Zm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cmVsX2Jsa3NfcmVhZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGJsb2NrcyB2YWN1 dW0gb3BlcmF0aW9ucyByZWFkIGZyb20gdGhpcworICAgICAgICB0YWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiB0aW1lcyBibG9ja3Mgb2YgdGhpcyB0YWJsZSB3ZXJlIGFscmVhZHkgZm91 bmQKKyAgICAgICAgaW4gdGhlIGJ1ZmZlciBjYWNoZSBieSB2YWN1dW0gb3BlcmF0aW9ucywg c28gdGhhdCBhIHJlYWQgd2FzIG5vdCBuZWNlc3NhcnkKKyAgICAgICAgKHRoaXMgb25seSBp bmNsdWRlcyBoaXRzIGluIHRoZQorICAgICAgICBwcm9qZWN0OyBidWZmZXIgY2FjaGUsIG5v dCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGZpbGUgc3lzdGVtIGNhY2hlKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wYWdlc19zY2FubmVkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgZXhhbWluZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAg ICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGFnZXNfcmVtb3ZlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2Vz IHJlbW92ZWQgZnJvbSB0aGUgcGh5c2ljYWwgc3RvcmFnZSBieSB2YWN1dW0gb3BlcmF0aW9u cworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfZnJvemVuX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBO dW1iZXIgb2YgdGhlIG51bWJlciBvZiBwYWdlcyBuZXdseSBzZXQgYWxsLWZyb3plbiBieSB2 YWN1dW0KKyAgICAgICAgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfdmlzaWJsZV9wYWdlczwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0IGFsbC12aXNpYmxl IGJ5IHZhY3V1bQorICAgICAgICBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlczwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0 IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuCisgICAgICAgIGJ5IHZhY3V1bSBpbiB0aGUg dmlzaWJpbGl0eSBtYXAuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnR1 cGxlc19kZWxldGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZGVhZCB0dXBsZXMgdmFj dXVtIG9wZXJhdGlvbnMgZGVsZXRlZCBmcm9tIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2Zyb3plbjwvc3RydWN0ZmllbGQ+IDx0eXBl PmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVt YmVyIG9mIHR1cGxlcyBvZiB0aGlzIHRhYmxlIHRoYXQgdmFjdXVtIG9wZXJhdGlvbnMgbWFy a2VkIGFzCisgICAgICAgIGZyb3plbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5yZWNlbnRseV9kZWFkX3R1cGxlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRl YWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGxlZnQgaW4gdGhpcyB0YWJsZSBkdWUKKyAg ICAgICAgdG8gdGhlaXIgdmlzaWJpbGl0eSBpbiB0cmFuc2FjdGlvbnMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5taXNzZWRfZGVhZF90dXBsZXM8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiBmdWxseSBERUFEIChub3QganVzdCBSRUNFTlRMWV9ERUFEKSB0dXBs ZXMgIHRoYXQgY291bGQgbm90IGJlCisgICAgICAgIHBydW5lZCBkdWUgdG8gZmFpbHVyZSB0 byBhY3F1aXJlIGEgY2xlYW51cCBsb2NrIG9uIGEgaGVhcCBwYWdlLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRleF92YWN1dW1fY291bnQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIE51bWJlciBvZiB0aW1lcyBpbmRleGVzIG9uIHRoaXMgdGFibGUgd2VyZSB2YWN1dW1l ZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53cmFwYXJvdW5kX2ZhaWxz YWZlX2NvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdGhlIHZhY3V1bSB3 YXMgcnVuIHRvIHByZXZlbnQgYSB3cmFwYXJvdW5kIHByb2JsZW0uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm1pc3NlZF9kZWFkX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOdW1iZXIgb2YgcGFnZXMgdGhhdCBoYWQgYXQgbGVhc3Qgb25lIG1pc3NlZF9kZWFkX3R1 cGxlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX3JlY29yZHM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQg YnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2ZwaTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBmdWxsIHBhZ2UgaW1hZ2VzIGdlbmVyYXRlZCBi eSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfYnl0ZXM8L3N0cnVjdGZp ZWxkPiA8dHlwZT5udW1lcmljPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIFRvdGFsIGFtb3VudCBvZiBXQUwgYnl0ZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1 bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa19yZWFkX3RpbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJh dGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25k cyAoaWYgPHhyZWYgbGlua2VuZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVk LAorICAgICAgICBvdGhlcndpc2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgd3Jp dGluZyBkYXRhYmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9u CisgICAgICAgIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2Vu ZD0iZ3VjLXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndp c2UgemVybykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGVsYXlfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHNsZWVwaW5nIGluIGEgdmFjdXVtIGRl bGF5IHBvaW50IGJ5IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0 aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKHNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1l LWNvbmZpZy1yZXNvdXJjZS12YWN1dW0tY29zdCIvPgorICAgICAgICBmb3IgZGV0YWlscykK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3lzdGVtX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgU3lzdGVtIENQVSB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBp biBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dXNl cl90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFVzZXIgQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRo aXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD50b3RhbF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIHRpbWUgb2YgdmFj dXVtaW5nIHRoaXMgdGFibGUsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3Rh YmxlPgorICA8cGFyYT5Db2x1bW5zIDxzdHJ1Y3RmaWVsZD50b3RhbF8qPC9zdHJ1Y3RmaWVs ZD4sIDxzdHJ1Y3RmaWVsZD53YWxfKjwvc3RydWN0ZmllbGQ+CisgICAgYW5kIDxzdHJ1Y3Rm aWVsZD5ibGtfKjwvc3RydWN0ZmllbGQ+IGluY2x1ZGUgZGF0YSBvbiB2YWN1dW1pbmcgaW5k ZXhlcyBvbiB0aGlzIHRhYmxlLCB3aGlsZSBjb2x1bW5zCisgICAgPHN0cnVjdGZpZWxkPnN5 c3RlbV90aW1lPC9zdHJ1Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0 cnVjdGZpZWxkPiBvbmx5IGluY2x1ZGUgZGF0YQorICAgIG9uIHZhY3V1bWluZyB0aGUgaGVh cC48L3BhcmE+CisgPC9zZWN0MT4KIDwvY2hhcHRlcj4KLS0gCjIuMzQuMQoK --------------oJHX0BjXYA1bdjVrra2ICFTY--