Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUhQn-0007yn-FB for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 02:31:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kUhQm-00038W-Ei for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Oct 2020 02:31:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUhQm-00038P-5m for pgsql-hackers@lists.postgresql.org; Tue, 20 Oct 2020 02:31:20 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kUhQi-0002Uj-Kj for pgsql-hackers@postgresql.org; Tue, 20 Oct 2020 02:31:19 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 53316601C1 for ; Tue, 20 Oct 2020 11:31:11 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_d9a9b487d04d12d09e05954893458e24" Date: Tue, 20 Oct 2020 11:31:11 +0900 From: Masahiro Ikeda To: pgsql-hackers Subject: Add statistics to pg_stat_wal view for wal related parameter tuning Message-ID: <35ef960128b90bfae3b3fdf60a3a860f@oss.nttdata.com> X-Sender: ikedamsh@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_d9a9b487d04d12d09e05954893458e24 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Hi, I think we need to add some statistics to pg_stat_wal view. Although there are some parameter related WAL, there are few statistics for tuning them. I think it's better to provide the following statistics. Please let me know your comments. ``` postgres=# SELECT * from pg_stat_wal; -[ RECORD 1 ]-------+------------------------------ wal_records | 2000224 wal_fpi | 47 wal_bytes | 248216337 wal_buffers_full | 20954 wal_init_file | 8 wal_write_backend | 20960 wal_write_walwriter | 46 wal_write_time | 51 wal_sync_backend | 7 wal_sync_walwriter | 8 wal_sync_time | 0 stats_reset | 2020-10-20 11:04:51.307771+09 ``` 1. Basic statistics of WAL activity - wal_records: Total number of WAL records generated - wal_fpi: Total number of WAL full page images generated - wal_bytes: Total amount of WAL bytes generated To understand DB's performance, first, we will check the performance trends for the entire database instance. For example, if the number of wal_fpi becomes higher, users may tune "wal_compression", "checkpoint_timeout" and so on. Although users can check the above statistics via EXPLAIN, auto_explain, autovacuum and pg_stat_statements now, if users want to see the performance trends for the entire database, they must recalculate the statistics. I think it is useful to add the sum of the basic statistics. 2. WAL segment file creation - wal_init_file: Total number of WAL segment files created. To create a new WAL file may have an impact on the performance of a write-heavy workload generating lots of WAL. If this number is reported high, to reduce the number of this initialization, we can tune WAL-related parameters so that more "recycled" WAL files can be held. 3. Number of when WAL is flushed - wal_write_backend : Total number of WAL data written to the disk by backends - wal_write_walwriter : Total number of WAL data written to the disk by walwriter - wal_sync_backend : Total number of WAL data synced to the disk by backends - wal_sync_walwriter : Total number of WAL data synced to the disk by walwrite I think it's useful for tuning "synchronous_commit" and "commit_delay" for query executions. If the number of WAL is flushed is high, users can know "synchronous_commit" is useful for the workload. Also, it's useful for tuning "wal_writer_delay" and "wal_writer_flush_after" for wal writer. If the number is high, users can change the parameter for performance. 4. Wait time when WAL is flushed - wal_write_time : Total amount of time that has been spent in the portion of WAL data was written to disk by backend and walwriter, in milliseconds (if track-io-timing is enabled, otherwise zero.) - wal_sync_time : Total amount of time that has been spent in the portion of WAL data was synced to disk by backend and walwriter, in milliseconds (if track-io-timing is enabled, otherwise zero.) If the time becomes much higher, users can detect the possibility of disk failure. Since users can see how much flush time occupies of the query execution time, it may lead to query tuning and so on. Best Regards, -- Masahiro Ikeda NTT DATA CORPORATION --=_d9a9b487d04d12d09e05954893458e24 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001_add_statistics_to_pg_stat_wal_view.patch Content-Disposition: attachment; filename=0001_add_statistics_to_pg_stat_wal_view.patch; size=14793 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sCmluZGV4IDY2NTY2NzY1Li4wNzUxNTZmOCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5z Z21sCkBAIC0zNDA2LDEyICszNDA2LDEwNiBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUs IHdhaXRfZXZlbnQgRlJPTSBwZ19zdGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAg IDwvdGhlYWQ+CiAKICAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBv ZiBXQUwgcmVjb3JkcyBnZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2Fs X2ZwaTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdlcyBn ZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5dGVzPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBnZW5lcmF0ZWQKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAg ICA8c3RydWN0ZmllbGQ+d2FsX2J1ZmZlcnNfZnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2lu dDwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE51bWJlciBvZiB0 aW1lcyBXQUwgZGF0YSB3YXMgd3JpdHRlbiB0byB0aGUgZGlzayBiZWNhdXNlIFdBTCBidWZmZXJz IGdvdCBmdWxsCisgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBkYXRhIHdyaXR0ZW4gdG8gdGhl IGRpc2sgYmVjYXVzZSBXQUwgYnVmZmVycyBnb3QgZnVsbAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD53YWxfaW5pdF9maWxlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBm aWxlIHNlZ21lbnQgY3JlYXRlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxfd3Jp dGVfYmFja2VuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZGF0YSB3cml0dGVu IHRvIHRoZSBkaXNrIGJ5IGJhY2tlbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndh bF93cml0ZV93YWx3cml0ZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGRhdGEg d3JpdHRlbiB0byB0aGUgZGlzayBieSB3YWx3cml0ZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+d2FsX3dyaXRlX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBhbW91bnQgb2YgdGltZSB0 aGF0IGhhcyBiZWVuIHNwZW50IGluIHRoZSBwb3J0aW9uIG9mCisgICAgICAgV0FMIGRhdGEgd2Fz IHdyaXR0ZW4gdG8gZGlzayBieSBiYWNrZW5kIGFuZCB3YWx3cml0ZXIsIGluIG1pbGxpc2Vjb25k cworICAgICAgIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVu YWJsZWQsIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53YWxf c3luY19iYWNrZW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBkYXRhIHN5bmNl ZCB0byB0aGUgZGlzayBieSBiYWNrZW5kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53 YWxfc3luY193YWx3cml0ZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGRhdGEg c3luY2VkIHRvIHRoZSBkaXNrIGJ5IHdhbHdyaXRlcgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfc3luY190aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgYW1vdW50IG9mIHRpbWUgdGhh dCBoYXMgYmVlbiBzcGVudCBpbiB0aGUgcG9ydGlvbiBvZgorICAgICAgIFdBTCBkYXRhIHdhcyBz eW5jZWQgdG8gZGlzayBieSBiYWNrZW5kIGFuZCB3YWx3cml0ZXIsIGluIG1pbGxpc2Vjb25kcwor ICAgICAgIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJs ZWQsIG90aGVyd2lzZSB6ZXJvKQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggNTJhNjdiMTEuLjRhNDZiMzIyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC0xMjYyLDYgKzEyNjIsMTAgQEAgWExvZ0luc2Vy dFJlY29yZChYTG9nUmVjRGF0YSAqcmRhdGEsCiAJCXBnV2FsVXNhZ2Uud2FsX2J5dGVzICs9IHJl Y2hkci0+eGxfdG90X2xlbjsKIAkJcGdXYWxVc2FnZS53YWxfcmVjb3JkcysrOwogCQlwZ1dhbFVz YWdlLndhbF9mcGkgKz0gbnVtX2ZwaTsKKworCQlXYWxTdGF0cy5tX3dhbF9ieXRlcyArPSByZWNo ZHItPnhsX3RvdF9sZW47CisJCVdhbFN0YXRzLm1fd2FsX3JlY29yZHMrKzsKKwkJV2FsU3RhdHMu bV93YWxfZnBpICs9IG51bV9mcGk7CiAJfQogCiAJcmV0dXJuIEVuZFBvczsKQEAgLTI1MjcsNiAr MjUzMSw4IEBAIFhMb2dXcml0ZShYTG9nd3J0UnFzdCBXcml0ZVJxc3QsIGJvb2wgZmxleGlibGUp CiAJCQlTaXplCQluYnl0ZXM7CiAJCQlTaXplCQlubGVmdDsKIAkJCWludAkJCXdyaXR0ZW47CisJ CQlpbnN0cl90aW1lCXN0YXJ0OworCQkJaW5zdHJfdGltZQlkdXJhdGlvbjsKIAogCQkJLyogT0sg dG8gd3JpdGUgdGhlIHBhZ2UocykgKi8KIAkJCWZyb20gPSBYTG9nQ3RsLT5wYWdlcyArIHN0YXJ0 aWR4ICogKFNpemUpIFhMT0dfQkxDS1NaOwpAQCAtMjUzNSw5ICsyNTQxLDI4IEBAIFhMb2dXcml0 ZShYTG9nd3J0UnFzdCBXcml0ZVJxc3QsIGJvb2wgZmxleGlibGUpCiAJCQlkbwogCQkJewogCQkJ CWVycm5vID0gMDsKKwkJCQlpZiAodHJhY2tfaW9fdGltaW5nKQorCQkJCQlJTlNUUl9USU1FX1NF VF9DVVJSRU5UKHN0YXJ0KTsKKwogCQkJCXBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydChXQUlUX0VW RU5UX1dBTF9XUklURSk7CiAJCQkJd3JpdHRlbiA9IHBnX3B3cml0ZShvcGVuTG9nRmlsZSwgZnJv bSwgbmxlZnQsIHN0YXJ0b2Zmc2V0KTsKIAkJCQlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7CisK KwkJCQlpZiAodHJhY2tfaW9fdGltaW5nKQorCQkJCXsKKwkJCQkJSU5TVFJfVElNRV9TRVRfQ1VS UkVOVChkdXJhdGlvbik7CisJCQkJCUlOU1RSX1RJTUVfU1VCVFJBQ1QoZHVyYXRpb24sIHN0YXJ0 KTsKKwkJCQkJV2FsU3RhdHMubV93YWxfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxM SVNFQyhkdXJhdGlvbik7CisJCQkJfQorCisJCQkJaWYgKEFtV2FsV3JpdGVyUHJvY2VzcygpKXsK KwkJCQkJV2FsU3RhdHMubV93YWxfd3JpdGVfd2Fsd3JpdGVyKys7CisJCQkJfQorCQkJCWVsc2UK KwkJCQl7CisJCQkJCVdhbFN0YXRzLm1fd2FsX3dyaXRlX2JhY2tlbmQrKzsKKwkJCQl9CisKIAkJ CQlpZiAod3JpdHRlbiA8PSAwKQogCQkJCXsKIAkJCQkJY2hhcgkJeGxvZ2ZuYW1lW01BWEZOQU1F TEVOXTsKQEAgLTM0MTgsNiArMzQ0Myw3IEBAIFhMb2dGaWxlSW5pdChYTG9nU2VnTm8gbG9nc2Vn bm8sIGJvb2wgKnVzZV9leGlzdGVudCwgYm9vbCB1c2VfbG9jaykKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLCBwYXRoKSkpOwogCiAJZWxvZyhERUJVRzIsICJk b25lIGNyZWF0aW5nIGFuZCBmaWxsaW5nIG5ldyBXQUwgZmlsZSIpOworCVdhbFN0YXRzLm1fd2Fs X2luaXRfZmlsZSsrOwogCiAJcmV0dXJuIGZkOwogfQpAQCAtMTA0MjcsOCArMTA0NTMsMTMgQEAg YXNzaWduX3hsb2dfc3luY19tZXRob2QoaW50IG5ld19zeW5jX21ldGhvZCwgdm9pZCAqZXh0cmEp CiB2b2lkCiBpc3N1ZV94bG9nX2ZzeW5jKGludCBmZCwgWExvZ1NlZ05vIHNlZ25vKQogeworCWlu c3RyX3RpbWUJc3RhcnQ7CisJaW5zdHJfdGltZQlkdXJhdGlvbjsKIAljaGFyCSAgICptc2cgPSBO VUxMOwogCisJaWYgKHRyYWNrX2lvX3RpbWluZykKKwkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChz dGFydCk7CisKIAlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJVF9FVkVOVF9XQUxfU1lOQyk7 CiAJc3dpdGNoIChzeW5jX21ldGhvZCkKIAl7CkBAIC0xMDQ3Miw2ICsxMDUwMywyMSBAQCBpc3N1 ZV94bG9nX2ZzeW5jKGludCBmZCwgWExvZ1NlZ05vIHNlZ25vKQogCX0KIAogCXBnc3RhdF9yZXBv cnRfd2FpdF9lbmQoKTsKKworCWlmICh0cmFja19pb190aW1pbmcpCisJeworCQlJTlNUUl9USU1F X1NFVF9DVVJSRU5UKGR1cmF0aW9uKTsKKwkJSU5TVFJfVElNRV9TVUJUUkFDVChkdXJhdGlvbiwg c3RhcnQpOworCQlXYWxTdGF0cy5tX3dhbF9zeW5jX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlM TElTRUMoZHVyYXRpb24pOworCX0KKworCWlmIChBbVdhbFdyaXRlclByb2Nlc3MoKSl7CisJCVdh bFN0YXRzLm1fd2FsX3N5bmNfd2Fsd3JpdGVyKys7CisJfQorCWVsc2UKKwl7CisJCVdhbFN0YXRz Lm1fd2FsX3N5bmNfYmFja2VuZCsrOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbAppbmRleCBjMjkzOTA3Ni4uNGNiMzFmMDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwKQEAgLTk5MCw3ICs5OTAsMTcgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9i Z3dyaXRlciBBUwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3dhbCBBUwogICAgIFNFTEVDVAorICAg ICAgICB3LndhbF9yZWNvcmRzLAorICAgICAgICB3LndhbF9mcGksCisgICAgICAgIHcud2FsX2J5 dGVzLAogICAgICAgICB3LndhbF9idWZmZXJzX2Z1bGwsCisgICAgICAgIHcud2FsX2luaXRfZmls ZSwKKyAgICAgICAgdy53YWxfd3JpdGVfYmFja2VuZCwKKyAgICAgICAgdy53YWxfd3JpdGVfd2Fs d3JpdGVyLAorICAgICAgICB3LndhbF93cml0ZV90aW1lLAorICAgICAgICB3LndhbF9zeW5jX2Jh Y2tlbmQsCisgICAgICAgIHcud2FsX3N5bmNfd2Fsd3JpdGVyLAorICAgICAgICB3LndhbF9zeW5j X3RpbWUsCiAgICAgICAgIHcuc3RhdHNfcmVzZXQKICAgICBGUk9NIHBnX3N0YXRfZ2V0X3dhbCgp IHc7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgYi9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4IDgyMmYwZWJjLi4wMGRmODY2ZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYworKysgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCkBAIC02NzU2LDcgKzY3NTYsMTcgQEAgcGdzdGF0X3JlY3Zf Ymd3cml0ZXIoUGdTdGF0X01zZ0JnV3JpdGVyICptc2csIGludCBsZW4pCiBzdGF0aWMgdm9pZAog cGdzdGF0X3JlY3Zfd2FsKFBnU3RhdF9Nc2dXYWwgKm1zZywgaW50IGxlbikKIHsKKwl3YWxTdGF0 cy53YWxfcmVjb3JkcyArPSBtc2ctPm1fd2FsX3JlY29yZHM7CisJd2FsU3RhdHMud2FsX2ZwaSAr PSBtc2ctPm1fd2FsX2ZwaTsKKwl3YWxTdGF0cy53YWxfYnl0ZXMgKz0gbXNnLT5tX3dhbF9ieXRl czsKIAl3YWxTdGF0cy53YWxfYnVmZmVyc19mdWxsICs9IG1zZy0+bV93YWxfYnVmZmVyc19mdWxs OworCXdhbFN0YXRzLndhbF9pbml0X2ZpbGUgKz0gbXNnLT5tX3dhbF9pbml0X2ZpbGU7CisJd2Fs U3RhdHMud2FsX3dyaXRlX2JhY2tlbmQgKz0gbXNnLT5tX3dhbF93cml0ZV9iYWNrZW5kOworCXdh bFN0YXRzLndhbF93cml0ZV93YWx3cml0ZXIgKz0gbXNnLT5tX3dhbF93cml0ZV93YWx3cml0ZXI7 CisJd2FsU3RhdHMud2FsX3dyaXRlX3RpbWUgKz0gbXNnLT5tX3dhbF93cml0ZV90aW1lOworCXdh bFN0YXRzLndhbF9zeW5jX2JhY2tlbmQgKz0gbXNnLT5tX3dhbF9zeW5jX2JhY2tlbmQ7CisJd2Fs U3RhdHMud2FsX3N5bmNfd2Fsd3JpdGVyICs9IG1zZy0+bV93YWxfc3luY193YWx3cml0ZXI7CisJ d2FsU3RhdHMud2FsX3N5bmNfdGltZSArPSBtc2ctPm1fd2FsX3N5bmNfdGltZTsKIH0KIAogLyog LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93YWx3cml0ZXIu YyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fsd3JpdGVyLmMKaW5kZXggYTUyODMyZmUuLmNl OWY0YjdjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3dhbHdyaXRlci5jCisr KyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fsd3JpdGVyLmMKQEAgLTI1Myw2ICsyNTMsOSBA QCBXYWxXcml0ZXJNYWluKHZvaWQpCiAJCWVsc2UgaWYgKGxlZnRfdGlsbF9oaWJlcm5hdGUgPiAw KQogCQkJbGVmdF90aWxsX2hpYmVybmF0ZS0tOwogCisJCS8qIFNlbmQgV0FMIHN0YXRpc3RpY3Mg Ki8KKwkJcGdzdGF0X3NlbmRfd2FsKCk7CisKIAkJLyoKIAkJICogU2xlZXAgdW50aWwgd2UgYXJl IHNpZ25hbGVkIG9yIFdhbFdyaXRlckRlbGF5IGhhcyBlbGFwc2VkLiAgSWYgd2UKIAkJICogaGF2 ZW4ndCBkb25lIGFueXRoaW5nIHVzZWZ1bCBmb3IgcXVpdGUgc29tZSB0aW1lLCBsZW5ndGhlbiB0 aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMGQwZDJlNmQuLjE4MWQ3MTli IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMTcwMyw3ICsxNzAzLDcgQEAg cGdfc3RhdF9nZXRfYnVmX2FsbG9jKFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfc3RhdF9n ZXRfd2FsKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX1NUQVRfR0VUX1dBTF9DT0xT CTIKKyNkZWZpbmUgUEdfU1RBVF9HRVRfV0FMX0NPTFMJMTIKIAlUdXBsZURlc2MJdHVwZGVzYzsK IAlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfR0VUX1dBTF9DT0xTXTsKIAlib29sCQludWxsc1tQR19T VEFUX0dFVF9XQUxfQ09MU107CkBAIC0xNzE1LDkgKzE3MTUsMjkgQEAgcGdfc3RhdF9nZXRfd2Fs KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRp b24gaW4gdGhlIHR1cGxlIGRlc2NyaXB0b3IgKi8KIAl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVU dXBsZURlc2MoUEdfU1RBVF9HRVRfV0FMX0NPTFMpOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBk ZXNjLCAoQXR0ck51bWJlcikgMSwgIndhbF9idWZmZXJzX2Z1bGwiLAorCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMSwgIndhbF9yZWNvcmRzIiwKIAkJCQkJICAgSU5U OE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg MiwgInN0YXRzX3Jlc2V0IiwKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpIDIsICJ3YWxfZnBpIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0lu aXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMywgIndhbF9ieXRlcyIsCisJCQkJCSAgIElO VDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp IDQsICJ3YWxfYnVmZmVyc19mdWxsIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNSwgIndhbF9pbml0X2ZpbGUiLAor CQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSA2LCAid2FsX3dyaXRlX2JhY2tlbmQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA3LCAid2FsX3dy aXRlX3dhbHdyaXRlciIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDgsICJ3YWxfd3JpdGVfdGltZSIsCisJCQkJCSAg IElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1i ZXIpIDksICJ3YWxfc3luY19iYWNrZW5kIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMTAsICJ3YWxfc3luY193YWx3 cml0ZXIiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1 cGRlc2MsIChBdHRyTnVtYmVyKSAxMSwgIndhbF9zeW5jX3RpbWUiLAorCQkJCQkgICBJTlQ4T0lE LCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxMiwg InN0YXRzX3Jlc2V0IiwKIAkJCQkJICAgVElNRVNUQU1QVFpPSUQsIC0xLCAwKTsKIAogCUJsZXNz VHVwbGVEZXNjKHR1cGRlc2MpOwpAQCAtMTcyNiw4ICsxNzQ2LDE4IEBAIHBnX3N0YXRfZ2V0X3dh bChQR19GVU5DVElPTl9BUkdTKQogCXdhbF9zdGF0cyA9IHBnc3RhdF9mZXRjaF9zdGF0X3dhbCgp OwogCiAJLyogRmlsbCB2YWx1ZXMgYW5kIE5VTExzICovCi0JdmFsdWVzWzBdID0gSW50NjRHZXRE YXR1bSh3YWxfc3RhdHMtPndhbF9idWZmZXJzX2Z1bGwpOwotCXZhbHVlc1sxXSA9IFRpbWVzdGFt cFR6R2V0RGF0dW0od2FsX3N0YXRzLT5zdGF0X3Jlc2V0X3RpbWVzdGFtcCk7CisJdmFsdWVzWzBd ID0gSW50NjRHZXREYXR1bSh3YWxfc3RhdHMtPndhbF9yZWNvcmRzKTsKKwl2YWx1ZXNbMV0gPSBJ bnQ2NEdldERhdHVtKHdhbF9zdGF0cy0+d2FsX2ZwaSk7CisJdmFsdWVzWzJdID0gSW50NjRHZXRE YXR1bSh3YWxfc3RhdHMtPndhbF9ieXRlcyk7CisJdmFsdWVzWzNdID0gSW50NjRHZXREYXR1bSh3 YWxfc3RhdHMtPndhbF9idWZmZXJzX2Z1bGwpOworCXZhbHVlc1s0XSA9IEludDY0R2V0RGF0dW0o d2FsX3N0YXRzLT53YWxfaW5pdF9maWxlKTsKKwl2YWx1ZXNbNV0gPSBJbnQ2NEdldERhdHVtKHdh bF9zdGF0cy0+d2FsX3dyaXRlX2JhY2tlbmQpOworCXZhbHVlc1s2XSA9IEludDY0R2V0RGF0dW0o d2FsX3N0YXRzLT53YWxfd3JpdGVfd2Fsd3JpdGVyKTsKKwl2YWx1ZXNbN10gPSBJbnQ2NEdldERh dHVtKHdhbF9zdGF0cy0+d2FsX3dyaXRlX3RpbWUpOworCXZhbHVlc1s4XSA9IEludDY0R2V0RGF0 dW0od2FsX3N0YXRzLT53YWxfc3luY19iYWNrZW5kKTsKKwl2YWx1ZXNbOV0gPSBJbnQ2NEdldERh dHVtKHdhbF9zdGF0cy0+d2FsX3N5bmNfd2Fsd3JpdGVyKTsKKwl2YWx1ZXNbMTBdID0gSW50NjRH ZXREYXR1bSh3YWxfc3RhdHMtPndhbF9zeW5jX3RpbWUpOworCXZhbHVlc1sxMV0gPSBUaW1lc3Rh bXBUekdldERhdHVtKHdhbF9zdGF0cy0+c3RhdF9yZXNldF90aW1lc3RhbXApOwogCiAJLyogUmV0 dXJucyB0aGUgcmVjb3JkIGFzIERhdHVtICovCiAJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdl dERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKaW5kZXggMjIzNDBiYWYuLjRjOGIwODliIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTU0OTIsOSArNTQ5Miw5IEBACiB7IG9pZCA9PiAnMTEzNicsIGRlc2NyID0+ ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBXQUwgYWN0aXZpdHknLAogICBwcm9uYW1l ID0+ICdwZ19zdGF0X2dldF93YWwnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3ZvbGF0aWxlID0+ ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9h cmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tpbnQ4LHRpbWVzdGFtcHR6fScs Ci0gIHByb2FyZ21vZGVzID0+ICd7byxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7d2FsX2J1ZmZl cnNfZnVsbCxzdGF0c19yZXNldH0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne2ludDgsaW50OCxp bnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCx0aW1lc3RhbXB0en0n LAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2Fy Z25hbWVzID0+ICd7d2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxfYnl0ZXMsd2FsX2J1ZmZlcnNfZnVs bCx3YWxfaW5pdF9maWxlLHdhbF93cml0ZV9iYWNrZW5kLHdhbF93cml0ZV93YWx3cml0ZXIsd2Fs X3dyaXRlX3RpbWUsd2FsX3N5bmNfYmFja2VuZCx3YWxfc3luY193YWx3cml0ZXIsd2FsX3N5bmNf dGltZSxzdGF0c19yZXNldH0nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3dhbCcgfSwKIAog eyBvaWQgPT4gJzIzMDYnLCBkZXNjciA9PiAnc3RhdGlzdGljczogaW5mb3JtYXRpb24gYWJvdXQg U0xSVSBjYWNoZXMnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5j bHVkZS9wZ3N0YXQuaAppbmRleCBhODIxZmY0Zi4uZmQ0MjRhM2QgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC00NTksNyArNDU5 LDE3IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9Nc2dCZ1dyaXRlcgogdHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X01zZ1dhbAogewogCVBnU3RhdF9Nc2dIZHIgbV9oZHI7CisJUGdTdGF0X0NvdW50ZXIg bV93YWxfcmVjb3JkczsKKwlQZ1N0YXRfQ291bnRlciBtX3dhbF9mcGk7CisJUGdTdGF0X0NvdW50 ZXIgbV93YWxfYnl0ZXM7CiAJUGdTdGF0X0NvdW50ZXIgbV93YWxfYnVmZmVyc19mdWxsOworCVBn U3RhdF9Db3VudGVyIG1fd2FsX2luaXRfZmlsZTsKKwlQZ1N0YXRfQ291bnRlciBtX3dhbF93cml0 ZV9iYWNrZW5kOworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3dyaXRlX3dhbHdyaXRlcjsKKwlQZ1N0 YXRfQ291bnRlciBtX3dhbF93cml0ZV90aW1lOwkvKiBhY2N1bXVsYXRlIHRpbWVzIGluIG1pbGxp c2Vjb25kcyAqLworCVBnU3RhdF9Db3VudGVyIG1fd2FsX3N5bmNfYmFja2VuZDsKKwlQZ1N0YXRf Q291bnRlciBtX3dhbF9zeW5jX3dhbHdyaXRlcjsKKwlQZ1N0YXRfQ291bnRlciBtX3dhbF9zeW5j X3RpbWU7IC8qIGFjY3VtdWxhdGUgdGltZXMgaW4gbWlsbGlzZWNvbmRzICovCiB9IFBnU3RhdF9N c2dXYWw7CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTc5NSw3ICs4MDUsMTggQEAgdHlwZWRlZiBzdHJ1 Y3QgUGdTdGF0X0dsb2JhbFN0YXRzCiAgKi8KIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9XYWxTdGF0 cwogeworCVBnU3RhdF9Db3VudGVyIHdhbF9yZWNvcmRzOworCVBnU3RhdF9Db3VudGVyIHdhbF9m cGk7CisJUGdTdGF0X0NvdW50ZXIgd2FsX2J5dGVzOwogCVBnU3RhdF9Db3VudGVyIHdhbF9idWZm ZXJzX2Z1bGw7CisJUGdTdGF0X0NvdW50ZXIgd2FsX2luaXRfZmlsZTsKKwlQZ1N0YXRfQ291bnRl ciB3YWxfd3JpdGVfYmFja2VuZDsKKwlQZ1N0YXRfQ291bnRlciB3YWxfd3JpdGVfd2Fsd3JpdGVy OworCVBnU3RhdF9Db3VudGVyIHdhbF93cml0ZV90aW1lOworCVBnU3RhdF9Db3VudGVyIHdhbF9z eW5jX2JhY2tlbmQ7CisJUGdTdGF0X0NvdW50ZXIgd2FsX3N5bmNfd2Fsd3JpdGVyOworCVBnU3Rh dF9Db3VudGVyIHdhbF9zeW5jX3RpbWU7CisKIAlUaW1lc3RhbXBUeiBzdGF0X3Jlc2V0X3RpbWVz dGFtcDsKIH0gUGdTdGF0X1dhbFN0YXRzOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CmluZGV4IGNmMmE5YjQ0Li4zM2FiNjUyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKQEAgLTIxMzUsOSArMjEzNSwxOSBAQCBwZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcGdf c3RhdF9hbGxfdGFibGVzLnJlbGlkLAogICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5hdXRvYW5hbHl6 ZV9jb3VudAogICAgRlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKICAgV0hFUkUgKChwZ19zdGF0X2Fs bF90YWJsZXMuc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2lu Zm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChwZ19zdGF0X2FsbF90YWJsZXMuc2NoZW1h bmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwotcGdfc3RhdF93YWx8IFNFTEVDVCB3LndhbF9i dWZmZXJzX2Z1bGwsCitwZ19zdGF0X3dhbHwgU0VMRUNUIHcud2FsX3JlY29yZHMsCisgICAgdy53 YWxfZnBpLAorICAgIHcud2FsX2J5dGVzLAorICAgIHcud2FsX2J1ZmZlcnNfZnVsbCwKKyAgICB3 LndhbF9pbml0X2ZpbGUsCisgICAgdy53YWxfd3JpdGVfYmFja2VuZCwKKyAgICB3LndhbF93cml0 ZV93YWx3cml0ZXIsCisgICAgdy53YWxfd3JpdGVfdGltZSwKKyAgICB3LndhbF9zeW5jX2JhY2tl bmQsCisgICAgdy53YWxfc3luY193YWx3cml0ZXIsCisgICAgdy53YWxfc3luY190aW1lLAogICAg IHcuc3RhdHNfcmVzZXQKLSAgIEZST00gcGdfc3RhdF9nZXRfd2FsKCkgdyh3YWxfYnVmZmVyc19m dWxsLCBzdGF0c19yZXNldCk7CisgICBGUk9NIHBnX3N0YXRfZ2V0X3dhbCgpIHcod2FsX3JlY29y ZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgd2FsX2J1ZmZlcnNfZnVsbCwgd2FsX2luaXRfZmlsZSwg d2FsX3dyaXRlX2JhY2tlbmQsIHdhbF93cml0ZV93YWx3cml0ZXIsIHdhbF93cml0ZV90aW1lLCB3 YWxfc3luY19iYWNrZW5kLCB3YWxfc3luY193YWx3cml0ZXIsIHdhbF9zeW5jX3RpbWUsIHN0YXRz X3Jlc2V0KTsKIHBnX3N0YXRfd2FsX3JlY2VpdmVyfCBTRUxFQ1Qgcy5waWQsCiAgICAgcy5zdGF0 dXMsCiAgICAgcy5yZWNlaXZlX3N0YXJ0X2xzbiwK --=_d9a9b487d04d12d09e05954893458e24--