From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id A15A6D80D5A for ; Thu, 12 Oct 2023 09:10:32 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=ShVYbXc4TMDazaghoDKhvmBw3aTVQHBjM2R7v87vCkQ=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1697101831; v=1; b=OmCQOHBa41qMCf8/fL1H6zyOOLpi3+Ab4zI0yIFmmsDfHnSudnZO8zfsCs2Rs2g7Om3LvwvT R+o58KOCmGi7rz6yyjiP+3pRpvbaah2XxTEsi5qrecbwO8K4ed8wgHEBEfpaKrwF08ytUXXpvRZ FaTuFOH2reesVfDjdHCRKBfQ= X-Received: by 127.0.0.2 with SMTP id RyoWYY7687511xvOhQSmZIU5; Thu, 12 Oct 2023 02:10:31 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web10.7101.1697101830760793659 for ; Thu, 12 Oct 2023 02:10:30 -0700 X-Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-338-IR5yf3OfNxeD7asevwIdNw-1; Thu, 12 Oct 2023 05:10:04 -0400 X-MC-Unique: IR5yf3OfNxeD7asevwIdNw-1 X-Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5BF59811E91; Thu, 12 Oct 2023 09:10:04 +0000 (UTC) X-Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.192.186]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7C01D40C6F79; Thu, 12 Oct 2023 09:10:03 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Ard Biesheuvel , Leif Lindholm , Wenyi Xie Subject: [edk2-devel] [edk2-platforms PATCH 08/19] Hisilicon: drop unused DS3231RealTimeClockLib instance Date: Thu, 12 Oct 2023 11:09:39 +0200 Message-Id: <20231012090950.108577-9-lersek@redhat.com> In-Reply-To: <20231012090950.108577-1-lersek@redhat.com> References: <687bbaf5-3c2b-6d27-44a5-d19541ce97bd@redhat.com> <20231012090950.108577-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,lersek@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: gki8ilIVMO9XEzW8oCCkVYrEx7686176AA= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="US-ASCII"; x-default=true X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=OmCQOHBa; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none) RWRrMi1wbGF0Zm9ybXMgY29udGFpbnMgdHdvIERTMzIzMVJlYWxUaW1lQ2xvY2tMaWIgaW5zdGFu Y2VzOgoKLSBTaWxpY29uL0hpc2lsaWNvbi9MaWJyYXJ5L0RTMzIzMVJlYWxUaW1lQ2xvY2tMaWIK LSBQbGF0Zm9ybS9IaXNpbGljb24vRDAzL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xpYgoK VGhlIGxhdHRlciBpcyBzdGlsbCB1c2VkIChieSB0aGUgRDAzIGFuZCBEMDUgcGxhdGZvcm1zKSwg YnV0IHRoZSBmb3JtZXIKaGFzIG5vdCBiZWVuIHJlZmVyZW5jZWQgc2luY2UgY29tbWl0IDQ3ODI4 MmVhMjhjNyAoIkhpc2lsaWNvbi9EMDI6IFJlbW92ZQpEMDIgcGxhdGZvcm0iLCAyMDE4LTA4LTA4 KS4gUmVtb3ZlIHRoZSB1bnVzZWQgbGlicmFyeSBpbnN0YW5jZS4KCihUaGVyZSdzIG5vIHJlZmVy ZW5jZSBpbiBlZGsyLW5vbi1vc2kgZWl0aGVyLikKCkNjOiBBcmQgQmllc2hldXZlbCA8YXJkYit0 aWFub2NvcmVAa2VybmVsLm9yZz4KQ2M6IExlaWYgTGluZGhvbG0gPHF1aWNfbGxpbmRob2xAcXVp Y2luYy5jb20+CkNjOiBXZW55aSBYaWUgPHhpZXdlbnlpMkBodWF3ZWkuY29tPgpSZWY6IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2NApTaWduZWQtb2Zm LWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPgotLS0KIFNpbGljb24vSGlzaWxp Y29uL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xpYi9EUzMyMzFSZWFsVGltZUNsb2NrTGli LmluZiB8ICA0MyAtLQogU2lsaWNvbi9IaXNpbGljb24vTGlicmFyeS9EUzMyMzFSZWFsVGltZUNs b2NrTGliL0RTMzIzMVJlYWxUaW1lQ2xvY2suaCAgICAgIHwgMTcyIC0tLS0tLS0tCiBTaWxpY29u L0hpc2lsaWNvbi9MaWJyYXJ5L0RTMzIzMVJlYWxUaW1lQ2xvY2tMaWIvRFMzMjMxUmVhbFRpbWVD bG9ja0xpYi5jICAgfCA0MjcgLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NjQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NpbGljb24vSGlzaWxpY29uL0xpYnJhcnkv RFMzMjMxUmVhbFRpbWVDbG9ja0xpYi9EUzMyMzFSZWFsVGltZUNsb2NrTGliLmluZiBiL1NpbGlj b24vSGlzaWxpY29uL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xpYi9EUzMyMzFSZWFsVGlt ZUNsb2NrTGliLmluZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzUwNDJlMDdlZDFm Li4wMDAwMDAwMDAwMDAKLS0tIGEvU2lsaWNvbi9IaXNpbGljb24vTGlicmFyeS9EUzMyMzFSZWFs VGltZUNsb2NrTGliL0RTMzIzMVJlYWxUaW1lQ2xvY2tMaWIuaW5mCisrKyAvZGV2L251bGwKQEAg LTEsNDMgKzAsMCBAQAotIy8qKiBAZmlsZQ0KLSMNCi0jIENvcHlyaWdodCAoYykgMjAwNiwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KLSMgQ29weXJpZ2h0IChj KSAyMDExLTIwMTMsIEFSTSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KLSMgQ29weXJp Z2h0IChjKSAyMDE1LCBIaXNpbGljb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0j IENvcHlyaWdodCAoYykgMjAxNSwgTGluYXJvIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu DQotIw0KLSMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQot Iw0KLSMNCi0jICBCYXNlZCBvbiB0aGUgZmlsZXMgdW5kZXIgQXJtUGxhdGZvcm1Qa2cvTGlicmFy eS9QTDAzMVJlYWxUaW1lQ2xvY2tMaWIvUEwwMzFSZWFsVGltZUNsb2NrTGliLmluZg0KLSMNCi0j KiovDQotDQotW0RlZmluZXNdDQotICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAw eDAwMDEwMDA1DQotICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBEUzMyMzFSZWFs VGltZUNsb2NrTGliDQotICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSA1RkQ4MTI3 RC0xMUUxLTQ4OEYtOENGMS1BMTQzMTU3RDZCRjANCi0gIE1PRFVMRV9UWVBFICAgICAgICAgICAg ICAgICAgICA9IEJBU0UNCi0gIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0K LSAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gUmVhbFRpbWVDbG9ja0xpYg0KLQ0K LVtTb3VyY2VzLmNvbW1vbl0NCi0gIERTMzIzMVJlYWxUaW1lQ2xvY2tMaWIuYw0KLQ0KLVtQYWNr YWdlc10NCi0gIE1kZVBrZy9NZGVQa2cuZGVjDQotICBFbWJlZGRlZFBrZy9FbWJlZGRlZFBrZy5k ZWMNCi0gIFNpbGljb24vSGlzaWxpY29uL0hpc2lQa2cuZGVjDQotDQotW0xpYnJhcnlDbGFzc2Vz XQ0KLSAgSW9MaWINCi0gIFVlZmlMaWINCi0gIERlYnVnTGliDQotICBQY2RMaWINCi0gIEkyQ0xp Yg0KLSAgVGltZUJhc2VMaWINCi0gIFRpbWVyTGliDQotIyBVc2UgRUZpQXRSdW50aW1lIHRvIGNo ZWNrIHN0YWdlDQotICBVZWZpUnVudGltZUxpYg0KLQ0KLVtQY2RdDQotDQpkaWZmIC0tZ2l0IGEv U2lsaWNvbi9IaXNpbGljb24vTGlicmFyeS9EUzMyMzFSZWFsVGltZUNsb2NrTGliL0RTMzIzMVJl YWxUaW1lQ2xvY2suaCBiL1NpbGljb24vSGlzaWxpY29uL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVD bG9ja0xpYi9EUzMyMzFSZWFsVGltZUNsb2NrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGRhMThkMGY1NTg5ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NpbGljb24vSGlzaWxpY29uL0xp YnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xpYi9EUzMyMzFSZWFsVGltZUNsb2NrLmgKKysrIC9k ZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAotLyoqIEBmaWxlDQotKg0KLSogIENvcHlyaWdodCAo YykgMjAxMSwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotKiAgQ29weXJpZ2h0 IChjKSAyMDE1LCBIaXNpbGljb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0qICBD b3B5cmlnaHQgKGMpIDIwMTUsIExpbmFybyBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K LSoNCi0qICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KLSoN Ci0qICBCYXNlZCBvbiB0aGUgZmlsZXMgdW5kZXIgQXJtUGxhdGZvcm1Qa2cvTGlicmFyeS9QTDAz MVJlYWxUaW1lQ2xvY2tMaWIvUEwwMzFSZWFsVGltZUNsb2NrTGliLmluZg0KLSoqLw0KLQ0KLQ0K LSNpZm5kZWYgX19EUzMyMzFfUkVBTF9USU1FX0NMT0NLX0hfXw0KLSNkZWZpbmUgX19EUzMyMzFf UkVBTF9USU1FX0NMT0NLX0hfXw0KLQ0KLSNkZWZpbmUgRFMzMjMxX1JFR0FERFJfU0VDT05EUyAg ICAgIDB4MDANCi0jZGVmaW5lIERTMzIzMV9SRUdBRERSX01JVVRFUyAgICAgICAweDAxDQotI2Rl ZmluZSBEUzMyMzFfUkVHQUREUl9IT1VSUyAgICAgICAgMHgwMg0KLSNkZWZpbmUgRFMzMjMxX1JF R0FERFJfREFZICAgICAgICAgIDB4MDMNCi0jZGVmaW5lIERTMzIzMV9SRUdBRERSX0RBVEUgICAg ICAgICAweDA0DQotI2RlZmluZSBEUzMyMzFfUkVHQUREUl9NT05USCAgICAgICAgMHgwNQ0KLSNk ZWZpbmUgRFMzMjMxX1JFR0FERFJfWUVBUiAgICAgICAgIDB4MDYNCi0jZGVmaW5lIERTMzIzMV9S RUdBRERSX0FMQVJNMVNFQyAgICAweDA3DQotI2RlZmluZSBEUzMyMzFfUkVHQUREUl9BTEFSTTFN SU4gICAgMHgwOA0KLSNkZWZpbmUgRFMzMjMxX1JFR0FERFJfQUxBUk0xSE9VUiAgIDB4MDkNCi0j ZGVmaW5lIERTMzIzMV9SRUdBRERSX0FMQVJNMURBWSAgICAweDBBDQotI2RlZmluZSBEUzMyMzFf UkVHQUREUl9BTEFSTTJNSU4gICAgMHgwQg0KLSNkZWZpbmUgRFMzMjMxX1JFR0FERFJfQUxBUk0y SE9VUiAgIDB4MEMNCi0jZGVmaW5lIERTMzIzMV9SRUdBRERSX0FMQVJNMkRBWSAgICAweDBEDQot I2RlZmluZSBEUzMyMzFfUkVHQUREUl9DT05UUk9MICAgICAgMHgwRQ0KLSNkZWZpbmUgRFMzMjMx X1JFR0FERFJfU1RBVFVTICAgICAgIDB4MEYNCi0jZGVmaW5lIERTMzIzMV9SRUdBRERSX0FHT0ZG U0VUICAgICAweDEwDQotI2RlZmluZSBEUzMyMzFfUkVHQUREUl9URU1QTVNCICAgICAgMHgxMQ0K LSNkZWZpbmUgRFMzMjMxX1JFR0FERFJfVEVNUExTQiAgICAgIDB4MTINCi0NCi0NCi10eXBlZGVm IHVuaW9uIHsNCi0gIHN0cnVjdHsNCi0gICAgVUlOVDggQTFJRToxOw0KLSAgICBVSU5UOCBBMklF OjE7DQotICAgIFVJTlQ4IElOVENOOjE7DQotICAgIFVJTlQ4IFJTVjoyOw0KLSAgICBVSU5UOCBD T05WOjE7DQotICAgIFVJTlQ4IEJCU1FXOjE7DQotICAgIFVJTlQ4IEVPU0NfTjoxOw0KLSAgfWJp dHM7DQotICBVSU5UOCB1ODsNCi19UlRDX0RTMzIzMV9DT05UUk9MOw0KLQ0KLXR5cGVkZWYgdW5p b24gew0KLSAgc3RydWN0ew0KLSAgICBVSU5UOCBBMUY6MTsNCi0gICAgVUlOVDggQTJGOjE7DQot ICAgIFVJTlQ4IEJTWToxOw0KLSAgICBVSU5UOCBFTjMyS0haOjI7DQotICAgIFVJTlQ4IFJzdjoz Ow0KLSAgICBVSU5UOCBPU0Y6MTsNCi0gIH1iaXRzOw0KLSAgVUlOVDggdTg7DQotfVJUQ19EUzMy MzFfU1RBVFVTOw0KLQ0KLQ0KLXR5cGVkZWYgdW5pb24gew0KLSAgc3RydWN0ew0KLSAgICBVSU5U OCBEYXRhOjc7DQotICAgIFVJTlQ4IFNpZ246MTsNCi0gIH1iaXRzOw0KLSAgVUlOVDggdTg7DQot fVJUQ19EUzMyMzFfQUdPRkZTRVQ7DQotDQotdHlwZWRlZiB1bmlvbiB7DQotICBzdHJ1Y3R7DQot ICAgIFVJTlQ4IERhdGE6NzsNCi0gICAgVUlOVDggU2lnbjoxOw0KLSAgfWJpdHM7DQotICBVSU5U OCB1ODsNCi19UlRDX0RTMzIzMV9URU1QTVNCOw0KLQ0KLQ0KLXR5cGVkZWYgdW5pb24gew0KLSAg c3RydWN0ew0KLSAgICBVSU5UOCBSc3Y6NjsNCi0gICAgVUlOVDggRGF0YToyOw0KLSAgfWJpdHM7 DQotICBVSU5UOCB1ODsNCi19UlRDX0RTMzIzMV9URU1QTFNCOw0KLQ0KLXR5cGVkZWYgdW5pb24g ew0KLSAgc3RydWN0ew0KLSAgICBVSU5UOCBTZWNvbmRzOjQ7DQotICAgIFVJTlQ4IFNlY29uZHMx MDozOw0KLSAgICBVSU5UOCBSc3Y6MTsNCi0gIH1iaXRzOw0KLSAgVUlOVDggdTg7DQotfVJUQ19E UzMyMzFfU0VDT05EUzsNCi0NCi10eXBlZGVmIHVuaW9uIHsNCi0gIHN0cnVjdHsNCi0gICAgVUlO VDggTWludXRlczo0Ow0KLSAgICBVSU5UOCBNaW51dGVzMTA6MzsNCi0gICAgVUlOVDggUnN2OjE7 DQotICB9Yml0czsNCi0gIFVJTlQ4IHU4Ow0KLX1SVENfRFMzMjMxX01JTlVURVM7DQotDQotdHlw ZWRlZiB1bmlvbiB7DQotICBzdHJ1Y3R7DQotICAgIFVJTlQ4IEhvdXI6NDsNCi0gICAgVUlOVDgg SG91cnMxMDoxOw0KLSAgICBVSU5UOCBQTV8yMEhvdXJzOjE7DQotICAgIFVJTlQ4IEhvdXIyNF9u OjE7DQotICAgIFVJTlQ4IFJzdjoxOw0KLSAgfWJpdHM7DQotICBVSU5UOCB1ODsNCi19UlRDX0RT MzIzMV9IT1VSUzsNCi0NCi10eXBlZGVmIHVuaW9uIHsNCi0gIHN0cnVjdHsNCi0gICAgVUlOVDgg RGF5OjM7DQotICAgIFVJTlQ4IFJzdjo1Ow0KLSAgfWJpdHM7DQotICBVSU5UOCB1ODsNCi19UlRD X0RTMzIzMV9EQVk7DQotDQotdHlwZWRlZiB1bmlvbiB7DQotICBzdHJ1Y3R7DQotICAgIFVJTlQ4 IE1vbnRoOjQ7DQotICAgIFVJTlQ4IE1vbnRoMTA6MTsNCi0gICAgVUlOVDggUnN2OjI7DQotICAg IFVJTlQ4IENlbnR1cnk6MTsNCi0gIH1iaXRzOw0KLSAgVUlOVDggdTg7DQotfVJUQ19EUzMyMzFf TU9OVEg7DQotDQotdHlwZWRlZiB1bmlvbiB7DQotICBzdHJ1Y3R7DQotICAgIFVJTlQ4IFllYXI6 NDsNCi0gICAgVUlOVDggWWVhcjEwOjQ7DQotICB9Yml0czsNCi0gIFVJTlQ4IHU4Ow0KLX1SVENf RFMzMjMxX1lFQVI7DQotDQotdHlwZWRlZiB1bmlvbiB7DQotICBzdHJ1Y3R7DQotICAgIFVJTlQ4 IFNlY29uZHM6NDsNCi0gICAgVUlOVDggU2Vjb25kczEwOjM7DQotICAgIFVJTlQ4IEExTTE6MTsN Ci0gIH1iaXRzOw0KLSAgVUlOVDggdTg7DQotfVJUQ19EUzMyMzFfQUxBUk0xU0VDOw0KLQ0KLXR5 cGVkZWYgdW5pb24gew0KLSAgc3RydWN0ew0KLSAgICBVSU5UOCBNaW51dGVzOjQ7DQotICAgIFVJ TlQ4IE1pbnV0ZXMxMDozOw0KLSAgICBVSU5UOCBBMU0yOjE7DQotICB9Yml0czsNCi0gIFVJTlQ4 IHU4Ow0KLX1SVENfRFMzMjMxX0FMQVJNMU1JTjsNCi0NCi10eXBlZGVmIHVuaW9uIHsNCi0gIHN0 cnVjdHsNCi0gICAgVUlOVDggSG91cjo0Ow0KLSAgICBVSU5UOCBIb3VyczEwOjE7DQotICAgIFVJ TlQ4IFBNXzIwSG91cnM6MTsNCi0gICAgVUlOVDggSG91cnMyNDoxOw0KLSAgICBVSU5UOCBBMU0z OjE7DQotICB9Yml0czsNCi0gIFVJTlQ4IHU4Ow0KLX1SVENfRFMzMjMxX0FMQVJNMUhPVVI7DQot DQotI2VuZGlmDQpkaWZmIC0tZ2l0IGEvU2lsaWNvbi9IaXNpbGljb24vTGlicmFyeS9EUzMyMzFS ZWFsVGltZUNsb2NrTGliL0RTMzIzMVJlYWxUaW1lQ2xvY2tMaWIuYyBiL1NpbGljb24vSGlzaWxp Y29uL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xpYi9EUzMyMzFSZWFsVGltZUNsb2NrTGli LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwZGM4NjQxNDIzMi4uMDAwMDAwMDAw MDAwCi0tLSBhL1NpbGljb24vSGlzaWxpY29uL0xpYnJhcnkvRFMzMjMxUmVhbFRpbWVDbG9ja0xp Yi9EUzMyMzFSZWFsVGltZUNsb2NrTGliLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0MjcgKzAsMCBA QAotLyoqIEBmaWxlDQotICBJbXBsZW1lbnQgRUZJIFJlYWxUaW1lQ2xvY2sgcnVudGltZSBzZXJ2 aWNlcyB2aWEgUlRDIExpYi4NCi0NCi0gIEN1cnJlbnRseSB0aGlzIGRyaXZlciBkb2VzIG5vdCBz dXBwb3J0IHJ1bnRpbWUgdmlydHVhbCBjYWxsaW5nLg0KLQ0KLSAgQ29weXJpZ2h0IChjKSAyMDA4 IC0gMjAxMCwgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCi0gIENvcHlyaWdo dCAoYykgMjAxMS0yMDEzLCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCi0gIENv cHlyaWdodCAoYykgMjAxNSwgSGlzaWxpY29uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KLSAgQ29weXJpZ2h0IChjKSAyMDE1LCBMaW5hcm8gTGltaXRlZC4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQotDQotICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KLQ0KLSAgQmFzZWQgb24gdGhlIGZpbGVzIHVuZGVyIEFybVBsYXRmb3JtUGtnL0xp YnJhcnkvUEwwMzFSZWFsVGltZUNsb2NrTGliL1BMMDMxUmVhbFRpbWVDbG9ja0xpYi5pbmYNCi0N Ci0qKi8NCi0NCi0jaW5jbHVkZSA8VWVmaS5oPg0KLSNpbmNsdWRlIDxQaUR4ZS5oPg0KLSNpbmNs dWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCi0jaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGli Lmg+DQotI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCi0jaW5jbHVkZSA8TGlicmFyeS9V ZWZpTGliLmg+DQotLy8gVXNlIEVmaUF0UnVudGltZSB0byBjaGVjayBzdGFnZQ0KLSNpbmNsdWRl IDxMaWJyYXJ5L1VlZmlSdW50aW1lTGliLmg+DQotI2luY2x1ZGUgPExpYnJhcnkvSW9MaWIuaD4N Ci0jaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQotI2luY2x1ZGUgPExp YnJhcnkvUGNkTGliLmg+DQotI2luY2x1ZGUgPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxl TGliLmg+DQotI2luY2x1ZGUgPExpYnJhcnkvVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGliLmg+ DQotI2luY2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCi0jaW5jbHVkZSA8TGlicmFyeS9UaW1l QmFzZUxpYi5oPg0KLSNpbmNsdWRlIDxQcm90b2NvbC9SZWFsVGltZUNsb2NrLmg+DQotI2luY2x1 ZGUgPExpYnJhcnkvSTJDTGliLmg+DQotI2luY2x1ZGUgIkRTMzIzMVJlYWxUaW1lQ2xvY2suaCIN Ci0NCi1leHRlcm4gSTJDX0RFVklDRSBnUnRjRGV2aWNlOw0KLQ0KLVNUQVRJQyBCT09MRUFOICAg ICAgIG1EUzMyMzFJbml0aWFsaXplZCA9IEZBTFNFOw0KLQ0KLUVGSV9TVEFUVVMNCi1JZGVudGlm eURTMzIzMSAoDQotICBWT0lEDQotICApDQotew0KLSAgRUZJX1NUQVRVUyAgICBTdGF0dXM7DQot DQotICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCi0gIHJldHVybiBTdGF0dXM7DQotfQ0KLQ0KLUVG SV9TVEFUVVMNCi1Jbml0aWFsaXplRFMzMjMxICgNCi0gIFZPSUQNCi0gICkNCi17DQotICBFRklf U1RBVFVTICAgIFN0YXR1czsNCi0gIEkyQ19ERVZJQ0UgICAgRGV2Ow0KLSAgUlRDX0RTMzIzMV9D T05UUk9MIFRlbXA7DQotICBSVENfRFMzMjMxX0hPVVJTICAgSG91cnM7DQotDQotICAvLyBQcmVw YXJlIHRoZSBoYXJkd2FyZQ0KLSAgKFZPSUQpSWRlbnRpZnlEUzMyMzEoKTsNCi0NCi0gIChWT0lE KUNvcHlNZW0gKCZEZXYsICZnUnRjRGV2aWNlLCBzaXplb2YgKERldikpOw0KLQ0KLSAgU3RhdHVz ID0gSTJDSW5pdChEZXYuU29ja2V0LERldi5Qb3J0LE5vcm1hbCk7DQotICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQotICAgIGdvdG8gRVhJVDsNCi0gIH0NCi0gIC8vIEVuc3VyZSBpbnRlcnJ1 cHRzIGFyZSBtYXNrZWQuIFdlIGRvIG5vdCB3YW50IFJUQyBpbnRlcnJ1cHRzIGluIFVFRkkNCi0g IFN0YXR1cyA9IEkyQ1JlYWQoJkRldixEUzMyMzFfUkVHQUREUl9DT05UUk9MLDEsJlRlbXAudTgp Ow0KLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICBnb3RvIEVYSVQ7DQotICB9DQot ICBUZW1wLmJpdHMuSU5UQ04gPSAwOw0KLSAgU3RhdHVzID0gSTJDV3JpdGUoJkRldixEUzMyMzFf UkVHQUREUl9DT05UUk9MLDEsJlRlbXAudTgpOw0KLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KLSAgICBnb3RvIEVYSVQ7DQotICB9DQotDQotICBNaWNyb1NlY29uZERlbGF5KDIwMDApOw0K LSAgU3RhdHVzID0gSTJDUmVhZCgmRGV2LERTMzIzMV9SRUdBRERSX0hPVVJTLDEsJkhvdXJzLnU4 KTsNCi0gIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgZ290byBFWElUOw0KLSAgfQ0K LSAgSG91cnMuYml0cy5Ib3VyMjRfbiA9IDA7DQotICBTdGF0dXMgPSBJMkNXcml0ZSgmRGV2LERT MzIzMV9SRUdBRERSX0hPVVJTLDEsJkhvdXJzLnU4KTsNCi0gIGlmIChFRklfRVJST1IgKFN0YXR1 cykpIHsNCi0gICAgZ290byBFWElUOw0KLSAgfQ0KLQ0KLQ0KLSAgbURTMzIzMUluaXRpYWxpemVk ID0gVFJVRTsNCi0NCi0gIEVYSVQ6DQotICByZXR1cm4gU3RhdHVzOw0KLX0NCi0NCi0NCi0vKioN Ci0gIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBhbmQgZGF0ZSBpbmZvcm1hdGlvbiwgYW5kIHRo ZSB0aW1lLWtlZXBpbmcgY2FwYWJpbGl0aWVzDQotICBvZiB0aGUgaGFyZHdhcmUgcGxhdGZvcm0u DQotDQotICBAcGFyYW0gIFRpbWUgICAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHN0b3Jh Z2UgdG8gcmVjZWl2ZSBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHRpbWUuDQotICBAcGFyYW0g IENhcGFiaWxpdGllcyAgICAgICAgICAgQW4gb3B0aW9uYWwgcG9pbnRlciB0byBhIGJ1ZmZlciB0 byByZWNlaXZlIHRoZSByZWFsIHRpbWUgY2xvY2sNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZXZpY2UncyBjYXBhYmlsaXRpZXMuDQotDQotICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KLSAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFRpbWUgaXMgTlVMTC4NCi0gIEByZXR2YWwgRUZJ X0RFVklDRV9FUlJPUiAgICAgICBUaGUgdGltZSBjb3VsZCBub3QgYmUgcmV0cmlldmVkIGR1ZSB0 byBoYXJkd2FyZSBlcnJvci4NCi0gIEByZXR2YWwgRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTiBUaGUg dGltZSBjb3VsZCBub3QgYmUgcmV0cmlldmVkIGR1ZSB0byBhbiBhdXRoZW50aWNhdGlvbiBmYWls dXJlLg0KLSoqLw0KLUVGSV9TVEFUVVMNCi1FRklBUEkNCi1MaWJHZXRUaW1lICgNCi0gIE9VVCBF RklfVElNRSAgICAgICAgICAgICAgICAqVGltZSwNCi0gIE9VVCBFRklfVElNRV9DQVBBQklMSVRJ RVMgICAqQ2FwYWJpbGl0aWVzDQotICApDQotew0KLSAgRUZJX1NUQVRVUyAgU3RhdHVzID0gRUZJ X1NVQ0NFU1M7DQotICBVSU5UOCAgICAgICBUZW1wOw0KLSAgVUlOVDggICAgICAgQmFzZUhvdXIg PSAwOw0KLSAgVUlOVDE2ICAgICAgQmFzZVllYXIgPSAxOTAwOw0KLQ0KLSAgSTJDX0RFVklDRSAg ICBEZXY7DQotDQotICAvLyBFbnN1cmUgVGltZSBpcyBhIHZhbGlkIHBvaW50ZXINCi0gIGlmIChO VUxMID09IFRpbWUpIHsNCi0gICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCi0gIH0N Ci0NCi0gIC8vIEluaXRpYWxpemUgdGhlIGhhcmR3YXJlIGlmIG5vdCBhbHJlYWR5IGRvbmUNCi0g IGlmICghbURTMzIzMUluaXRpYWxpemVkKSB7DQotICAgIFN0YXR1cyA9IEluaXRpYWxpemVEUzMy MzEgKCk7DQotICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgICByZXR1cm4gRUZJ X05PVF9SRUFEWTsNCi0gICAgfQ0KLSAgfQ0KLQ0KLSAgKFZPSUQpQ29weU1lbSAoJkRldiwgJmdS dGNEZXZpY2UsIHNpemVvZiAoRGV2KSk7DQotDQotDQotICBTdGF0dXMgfD0gSTJDUmVhZCgmRGV2 LERTMzIzMV9SRUdBRERSX01PTlRILDEsJlRlbXApOw0KLQ0KLSAgVGltZS0+TW9udGggPSAoKFRl bXA+PjQpJjEpKjEwKyhUZW1wJjB4MEYpOw0KLQ0KLQ0KLSAgaWYoVGVtcCYweDgwKXsNCi0gICAg QmFzZVllYXIgPSAyMDAwOw0KLSAgfQ0KLQ0KLSAgU3RhdHVzIHw9IEkyQ1JlYWQoJkRldixEUzMy MzFfUkVHQUREUl9ZRUFSLDEsJlRlbXApOw0KLQ0KLSAgVGltZS0+WWVhciAgPSBCYXNlWWVhciso VGVtcD4+NCkgKjEwICsgKFRlbXAmMHgwRik7DQotDQotDQotICBTdGF0dXMgfD0gSTJDUmVhZCgm RGV2LERTMzIzMV9SRUdBRERSX0RBVEUsMSwmVGVtcCk7DQotDQotICBUaW1lLT5EYXkgICA9ICgo VGVtcD4+NCkmMykgKjEwICsgKFRlbXAmMHgwRik7DQotDQotDQotICBTdGF0dXMgfD0gSTJDUmVh ZCgmRGV2LERTMzIzMV9SRUdBRERSX0hPVVJTLDEsJlRlbXApOw0KLQ0KLSAgQmFzZUhvdXIgPSAw Ow0KLSAgaWYoKFRlbXAmMHgzMCkgPT0gMHgzMCl7DQotICAgIHJldHVybiBFRklfREVWSUNFX0VS Uk9SOw0KLSAgfWVsc2UgaWYoVGVtcCYweDIwKXsNCi0gICAgQmFzZUhvdXIgPSAyMDsNCi0gIH1l bHNlIGlmKFRlbXAmMHgxMCl7DQotICAgIEJhc2VIb3VyID0gMTA7DQotICB9DQotICBUaW1lLT5I b3VyICAgICAgICA9IEJhc2VIb3VyICsgKFRlbXAmMHgwRik7DQotDQotDQotICBTdGF0dXMgfD0g STJDUmVhZCgmRGV2LERTMzIzMV9SRUdBRERSX01JVVRFUywxLCZUZW1wKTsNCi0NCi0gIFRpbWUt Pk1pbnV0ZSAgICAgID0gKChUZW1wPj40KSY3KSAqIDEwICsgKFRlbXAmMHgwRik7DQotDQotDQot ICBTdGF0dXMgfD0gSTJDUmVhZCgmRGV2LERTMzIzMV9SRUdBRERSX1NFQ09ORFMsMSwmVGVtcCk7 DQotDQotICBUaW1lLT5TZWNvbmQgICAgICA9IChUZW1wPj40KSAqIDEwICsgKFRlbXAmMHgwRik7 DQotDQotICBUaW1lLT5OYW5vc2Vjb25kICA9IDA7DQotICBUaW1lLT5EYXlsaWdodCAgICA9IDA7 DQotICBUaW1lLT5UaW1lWm9uZSAgICA9IEVGSV9VTlNQRUNJRklFRF9USU1FWk9ORTsNCi0NCi0g IGlmKChFRklfRVJST1IoU3RhdHVzKSkgfHwgKCFJc1RpbWVWYWxpZChUaW1lKSkgfHwgKChUaW1l LT5ZZWFyIC0gQmFzZVllYXIpID4gOTkpKSB7DQotICAgIHJldHVybiBFRklfREVWSUNFX0VSUk9S Ow0KLSAgfQ0KLQ0KLSAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KLX0NCi0NCi0NCi0vKioNCi0gIFNl dHMgdGhlIGN1cnJlbnQgbG9jYWwgdGltZSBhbmQgZGF0ZSBpbmZvcm1hdGlvbi4NCi0NCi0gIEBw YXJhbSAgVGltZSAgICAgICAgICAgICAgICAgIEEgcG9pbnRlciB0byB0aGUgY3VycmVudCB0aW1l Lg0KLQ0KLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG9wZXJhdGlvbiBjb21w bGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KLSAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgQSB0 aW1lIGZpZWxkIGlzIG91dCBvZiByYW5nZS4NCi0gIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAg ICAgIFRoZSB0aW1lIGNvdWxkIG5vdCBiZSBzZXQgZHVlIGR1ZSB0byBoYXJkd2FyZSBlcnJvci4N Ci0NCi0qKi8NCi1FRklfU1RBVFVTDQotRUZJQVBJDQotTGliU2V0VGltZSAoDQotICBJTiAgRUZJ X1RJTUUgICAgICAgICAgICAgICAgKlRpbWUNCi0gICkNCi17DQotICBFRklfU1RBVFVTICBTdGF0 dXMgPSBFRklfU1VDQ0VTUzsNCi0gIEkyQ19ERVZJQ0UgICAgRGV2Ow0KLSAgVUlOVDggVGVtcDsN Ci0gIFVJTlQxNiBCYXNlWWVhciA9IDE5MDA7DQotDQotICAvLyBDaGVjayB0aGUgaW5wdXQgcGFy YW1ldGVycyBhcmUgd2l0aGluIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgVUVGSQ0KLSAgaWYoIUlz VGltZVZhbGlkKFRpbWUpKXsNCi0gICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCi0g IH0NCi0NCi0gIC8vIEluaXRpYWxpemUgdGhlIGhhcmR3YXJlIGlmIG5vdCBhbHJlYWR5IGRvbmUN Ci0gIGlmICghbURTMzIzMUluaXRpYWxpemVkKSB7DQotICAgIFN0YXR1cyA9IEluaXRpYWxpemVE UzMyMzEgKCk7DQotICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCi0gICAgICBnb3RvIEVY SVQ7DQotICAgIH0NCi0gIH0NCi0NCi0gIChWT0lEKUNvcHlNZW0gKCZEZXYsICZnUnRjRGV2aWNl LCBzaXplb2YgKERldikpOw0KLQ0KLSAgVGVtcCA9ICgoVGltZS0+U2Vjb25kLzEwKTw8NCkgfCAo VGltZS0+U2Vjb25kJTEwKTsNCi0gIE1pY3JvU2Vjb25kRGVsYXkoMTAwMCk7DQotICBTdGF0dXMg PSBJMkNXcml0ZSgmRGV2LERTMzIzMV9SRUdBRERSX1NFQ09ORFMsMSwmVGVtcCk7DQotICBpZihF RklfRVJST1IgKFN0YXR1cykpew0KLSAgICBnb3RvIEVYSVQ7DQotICB9DQotDQotICBUZW1wID0g KChUaW1lLT5NaW51dGUvMTApPDw0KSB8IChUaW1lLT5NaW51dGUlMTApOw0KLSAgTWljcm9TZWNv bmREZWxheSgxMDAwKTsNCi0gIFN0YXR1cyA9IEkyQ1dyaXRlKCZEZXYsRFMzMjMxX1JFR0FERFJf TUlVVEVTLDEsJlRlbXApOw0KLSAgaWYoRUZJX0VSUk9SIChTdGF0dXMpKXsNCi0gICAgZ290byBF WElUOw0KLSAgfQ0KLQ0KLSAgVGVtcCA9IDA7DQotICBpZihUaW1lLT5Ib3VyID4gMTkpew0KLSAg ICBUZW1wID0gMjsNCi0gIH0gZWxzZSBpZihUaW1lLT5Ib3VyID4gOSl7DQotICAgIFRlbXAgPSAx Ow0KLSAgfQ0KLSAgVGVtcCA9IChUZW1wIDw8IDQpIHwgKFRpbWUtPkhvdXIlMTApOw0KLSAgTWlj cm9TZWNvbmREZWxheSgxMDAwKTsNCi0gIFN0YXR1cyA9IEkyQ1dyaXRlKCZEZXYsRFMzMjMxX1JF R0FERFJfSE9VUlMsMSwmVGVtcCk7DQotICBpZihFRklfRVJST1IgKFN0YXR1cykpew0KLSAgICBn b3RvIEVYSVQ7DQotICB9DQotDQotICBUZW1wID0gKChUaW1lLT5EYXkvMTApPDw0KSB8IChUaW1l LT5EYXklMTApOw0KLSAgTWljcm9TZWNvbmREZWxheSgxMDAwKTsNCi0gIFN0YXR1cyA9IEkyQ1dy aXRlKCZEZXYsRFMzMjMxX1JFR0FERFJfREFURSwxLCZUZW1wKTsNCi0gIGlmKEVGSV9FUlJPUiAo U3RhdHVzKSl7DQotICAgIGdvdG8gRVhJVDsNCi0gIH0NCi0NCi0gIFRlbXAgPSAwOw0KLSAgaWYo VGltZS0+WWVhciA+PSAyMDAwKXsNCi0gICAgVGVtcCA9IDB4ODsNCi0gICAgQmFzZVllYXIgPSAy MDAwOw0KLSAgfQ0KLQ0KLSAgaWYoVGltZS0+TW9udGggPiA5KXsNCi0gICAgVGVtcCB8PSAweDE7 DQotICB9DQotICBUZW1wID0gKFRlbXA8PDQpIHwgKFRpbWUtPk1vbnRoJTEwKTsNCi0gIE1pY3Jv U2Vjb25kRGVsYXkoMTAwMCk7DQotICBTdGF0dXMgPSBJMkNXcml0ZSgmRGV2LERTMzIzMV9SRUdB RERSX01PTlRILDEsJlRlbXApOw0KLSAgaWYoRUZJX0VSUk9SIChTdGF0dXMpKXsNCi0gICAgZ290 byBFWElUOw0KLSAgfQ0KLQ0KLSAgVGVtcCA9ICgoKFRpbWUtPlllYXItQmFzZVllYXIpLzEwKTw8 NCkgfCAoVGltZS0+WWVhciUxMCk7DQotICBNaWNyb1NlY29uZERlbGF5KDEwMDApOw0KLSAgU3Rh dHVzID0gSTJDV3JpdGUoJkRldixEUzMyMzFfUkVHQUREUl9ZRUFSLDEsJlRlbXApOw0KLSAgaWYo RUZJX0VSUk9SIChTdGF0dXMpKXsNCi0gICAgZ290byBFWElUOw0KLSAgfQ0KLQ0KLSAgRVhJVDoN Ci0gIHJldHVybiBTdGF0dXM7DQotfQ0KLQ0KLQ0KLS8qKg0KLSAgUmV0dXJucyB0aGUgY3VycmVu dCB3YWtldXAgYWxhcm0gY2xvY2sgc2V0dGluZy4NCi0NCi0gIEBwYXJhbSAgRW5hYmxlZCAgICAg ICAgICAgICAgIEluZGljYXRlcyBpZiB0aGUgYWxhcm0gaXMgY3VycmVudGx5IGVuYWJsZWQgb3Ig ZGlzYWJsZWQuDQotICBAcGFyYW0gIFBlbmRpbmcgICAgICAgICAgICAgICBJbmRpY2F0ZXMgaWYg dGhlIGFsYXJtIHNpZ25hbCBpcyBwZW5kaW5nIGFuZCByZXF1aXJlcyBhY2tub3dsZWRnZW1lbnQu DQotICBAcGFyYW0gIFRpbWUgICAgICAgICAgICAgICAgICBUaGUgY3VycmVudCBhbGFybSBzZXR0 aW5nLg0KLQ0KLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIGFsYXJtIHNldHRp bmdzIHdlcmUgcmV0dXJuZWQuDQotICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBbnkg cGFyYW1ldGVyIGlzIE5VTEwuDQotICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBUaGUg d2FrZXVwIHRpbWUgY291bGQgbm90IGJlIHJldHJpZXZlZCBkdWUgdG8gYSBoYXJkd2FyZSBlcnJv ci4NCi0NCi0qKi8NCi1FRklfU1RBVFVTDQotRUZJQVBJDQotTGliR2V0V2FrZXVwVGltZSAoDQot ICBPVVQgQk9PTEVBTiAgICAgKkVuYWJsZWQsDQotICBPVVQgQk9PTEVBTiAgICAgKlBlbmRpbmcs DQotICBPVVQgRUZJX1RJTUUgICAgKlRpbWUNCi0gICkNCi17DQotICAvLyBOb3QgYSByZXF1aXJl ZCBmZWF0dXJlDQotICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KLX0NCi0NCi0NCi0vKioNCi0g IFNldHMgdGhlIHN5c3RlbSB3YWtldXAgYWxhcm0gY2xvY2sgdGltZS4NCi0NCi0gIEBwYXJhbSAg RW5hYmxlZCAgICAgICAgICAgICAgIEVuYWJsZSBvciBkaXNhYmxlIHRoZSB3YWtldXAgYWxhcm0u DQotICBAcGFyYW0gIFRpbWUgICAgICAgICAgICAgICAgICBJZiBFbmFibGUgaXMgVFJVRSwgdGhl IHRpbWUgdG8gc2V0IHRoZSB3YWtldXAgYWxhcm0gZm9yLg0KLQ0KLSAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgSWYgRW5hYmxlIGlzIFRSVUUsIHRoZW4gdGhlIHdha2V1cCBhbGFybSB3 YXMgZW5hYmxlZC4gSWYNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZSBp cyBGQUxTRSwgdGhlbiB0aGUgd2FrZXVwIGFsYXJtIHdhcyBkaXNhYmxlZC4NCi0gIEByZXR2YWwg RUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgdGltZSBmaWVsZCBpcyBvdXQgb2YgcmFuZ2UuDQotICBA cmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICBUaGUgd2FrZXVwIHRpbWUgY291bGQgbm90IGJl IHNldCBkdWUgdG8gYSBoYXJkd2FyZSBlcnJvci4NCi0gIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVE ICAgICAgIEEgd2FrZXVwIHRpbWVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4N Ci0NCi0qKi8NCi1FRklfU1RBVFVTDQotRUZJQVBJDQotTGliU2V0V2FrZXVwVGltZSAoDQotICBJ TiBCT09MRUFOICAgICAgRW5hYmxlZCwNCi0gIE9VVCBFRklfVElNRSAgICAqVGltZQ0KLSAgKQ0K LXsNCi0gIC8vIE5vdCBhIHJlcXVpcmVkIGZlYXR1cmUNCi0gIHJldHVybiBFRklfVU5TVVBQT1JU RUQ7DQotfQ0KLQ0KLQ0KLQ0KLS8qKg0KLSAgVGhpcyBpcyB0aGUgZGVjbGFyYXRpb24gb2YgYW4g RUZJIGltYWdlIGVudHJ5IHBvaW50LiBUaGlzIGNhbiBiZSB0aGUgZW50cnkgcG9pbnQgdG8gYW4g YXBwbGljYXRpb24NCi0gIHdyaXR0ZW4gdG8gdGhpcyBzcGVjaWZpY2F0aW9uLCBhbiBFRkkgYm9v dCBzZXJ2aWNlIGRyaXZlciwgb3IgYW4gRUZJIHJ1bnRpbWUgZHJpdmVyLg0KLQ0KLSAgQHBhcmFt ICBJbWFnZUhhbmRsZSAgICAgICAgICAgSGFuZGxlIHRoYXQgaWRlbnRpZmllcyB0aGUgbG9hZGVk IGltYWdlLg0KLSAgQHBhcmFtICBTeXN0ZW1UYWJsZSAgICAgICAgICAgU3lzdGVtIFRhYmxlIGZv ciB0aGlzIGltYWdlLg0KLQ0KLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG9w ZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KLQ0KLSoqLw0KLUVGSV9TVEFUVVMNCi1F RklBUEkNCi1MaWJSdGNJbml0aWFsaXplICgNCi0gIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUsDQotICBJTiBFRklfU1lTVEVNX1RBQkxFICAgICAg ICAgICAgICAgICAgICAgICpTeXN0ZW1UYWJsZQ0KLSAgKQ0KLXsNCi0gIEVGSV9TVEFUVVMgICAg U3RhdHVzOw0KLSAgRUZJX0hBTkRMRSAgICBIYW5kbGU7DQotDQotDQotICBFRklfVElNRSAgICAg IEVmaVRpbWU7DQotDQotICAvLyBTZXR1cCB0aGUgc2V0dGVycyBhbmQgZ2V0dGVycw0KLSAgZ1JU LT5HZXRUaW1lICAgICAgID0gTGliR2V0VGltZTsNCi0gIGdSVC0+U2V0VGltZSAgICAgICA9IExp YlNldFRpbWU7DQotICBnUlQtPkdldFdha2V1cFRpbWUgPSBMaWJHZXRXYWtldXBUaW1lOw0KLSAg Z1JULT5TZXRXYWtldXBUaW1lID0gTGliU2V0V2FrZXVwVGltZTsNCi0NCi0gIFN0YXR1cyA9IGdS VC0+R2V0VGltZSAoJkVmaVRpbWUsIE5VTEwpOw0KLSAgaWYoRUZJX0VSUk9SIChTdGF0dXMpIHx8 IChFZmlUaW1lLlllYXIgPCAyMDAwKSB8fCAoRWZpVGltZS5ZZWFyID4gMjA5OSkpew0KLSAgICAg IEVmaVRpbWUuWWVhciAgICAgICAgICA9IDIwMDA7DQotICAgICAgRWZpVGltZS5Nb250aCAgICAg ICAgID0gMTsNCi0gICAgICBFZmlUaW1lLkRheSAgICAgICAgICAgPSAxOw0KLSAgICAgIEVmaVRp bWUuSG91ciAgICAgICAgICA9IDA7DQotICAgICAgRWZpVGltZS5NaW51dGUgICAgICAgID0gMDsN Ci0gICAgICBFZmlUaW1lLlNlY29uZCAgICAgICAgPSAwOw0KLSAgICAgIEVmaVRpbWUuTmFub3Nl Y29uZCAgICA9IDA7DQotICAgICAgRWZpVGltZS5EYXlsaWdodCAgICAgID0gMDsNCi0gICAgICBF ZmlUaW1lLlRpbWVab25lICAgICAgPSBFRklfVU5TUEVDSUZJRURfVElNRVpPTkU7DQotDQotICAg ICAgU3RhdHVzID0gZ1JULT5TZXRUaW1lKCZFZmlUaW1lKTsNCi0gICAgICBpZiAoRUZJX0VSUk9S KFN0YXR1cykpDQotICAgICAgew0KLSAgICAgICAgREVCVUcoKEVGSV9EX0VSUk9SLCAiWyVhXTpb JWRMXSBTdGF0dXMgOiAlclxuIiwgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgU3RhdHVzKSk7DQot ICAgICAgfQ0KLSAgfQ0KLQ0KLSAgLy8gSW5zdGFsbCB0aGUgcHJvdG9jb2wNCi0gIEhhbmRsZSA9 IE5VTEw7DQotICBTdGF0dXMgPSBnQlMtPkluc3RhbGxNdWx0aXBsZVByb3RvY29sSW50ZXJmYWNl cyAoDQotICAgICAgICAgICAgICAgICAgJkhhbmRsZSwNCi0gICAgICAgICAgICAgICAgICAmZ0Vm aVJlYWxUaW1lQ2xvY2tBcmNoUHJvdG9jb2xHdWlkLCAgTlVMTCwNCi0gICAgICAgICAgICAgICAg ICBOVUxMDQotICAgICAgICAgICAgICAgICApOw0KLQ0KLSAgcmV0dXJuIFN0YXR1czsNCi19DQot DQotDQotLyoqDQotICBGaXh1cCBpbnRlcm5hbCBkYXRhIHNvIHRoYXQgRUZJIGNhbiBiZSBjYWxs IGluIHZpcnR1YWwgbW9kZS4NCi0gIENhbGwgdGhlIHBhc3NlZCBpbiBDaGlsZCBOb3RpZnkgZXZl bnQgYW5kIGNvbnZlcnQgYW55IHBvaW50ZXJzIGluDQotICBsaWIgdG8gdmlydHVhbCBtb2RlLg0K LQ0KLSAgQHBhcmFtW2luXSAgICBFdmVudCAgIFRoZSBFdmVudCB0aGF0IGlzIGJlaW5nIHByb2Nl c3NlZA0KLSAgQHBhcmFtW2luXSAgICBDb250ZXh0IEV2ZW50IENvbnRleHQNCi0qKi8NCi1WT0lE DQotRUZJQVBJDQotTGliUnRjVmlydHVhbE5vdGlmeUV2ZW50ICgNCi0gIElOIEVGSV9FVkVOVCAg ICAgICAgRXZlbnQsDQotICBJTiBWT0lEICAgICAgICAgICAgICpDb250ZXh0DQotICApDQotew0K LSAgLy8NCi0gIC8vIE9ubHkgbmVlZGVkIGlmIHlvdSBhcmUgZ29pbmcgdG8gc3VwcG9ydCB0aGUg T1MgY2FsbGluZyBSVEMgZnVuY3Rpb25zIGluIHZpcnR1YWwgbW9kZS4NCi0gIC8vIFlvdSB3aWxs IG5lZWQgdG8gY2FsbCBFZmlDb252ZXJ0UG9pbnRlciAoKS4gVG8gY29udmVydCBhbnkgc3RvcmVk IHBoeXNpY2FsIGFkZHJlc3Nlcw0KLSAgLy8gdG8gdmlydHVhbCBhZGRyZXNzLiBBZnRlciB0aGUg T1MgdHJhbnNpdGlvbnMgdG8gY2FsbGluZyBpbiB2aXJ0dWFsIG1vZGUsIGFsbCBmdXR1cmUNCi0g IC8vIHJ1bnRpbWUgY2FsbHMgd2lsbCBiZSBtYWRlIGluIHZpcnR1YWwgbW9kZS4NCi0gIC8vDQot ICByZXR1cm47DQotfQ0KCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5r czogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBs eSBPbmxpbmUgKCMxMDk1NTkpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2Fn ZS8xMDk1NTkKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDE5MTQ2NzEv NzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3Jp YmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9sZWF2ZS8xMjM2NzExMS83Njg2MTc2 LzE5MTM0NTYyMTIveHl6enkgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0t PS09LQoKDQo=