<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>170639</bug_id>
          
          <creation_ts>2017-04-07 21:37:01 -0700</creation_ts>
          <short_desc>Timer&apos;s nextFireInterval() / repeatInterval() should return Seconds</short_desc>
          <delta_ts>2017-04-08 10:09:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>170625</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>fpizlo</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295635</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 21:37:01 -0700</bug_when>
    <thetext>Timer&apos;s nextFireInterval() / repeatInterval() should return Seconds, not double.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295636</commentid>
    <comment_count>1</comment_count>
      <attachid>306567</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 21:40:02 -0700</bug_when>
    <thetext>Created attachment 306567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295638</commentid>
    <comment_count>2</comment_count>
      <attachid>306568</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-07 22:22:29 -0700</bug_when>
    <thetext>Created attachment 306568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295660</commentid>
    <comment_count>3</comment_count>
      <attachid>306568</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-08 10:09:13 -0700</bug_when>
    <thetext>Comment on attachment 306568
Patch

Clearing flags on attachment: 306568

Committed r215143: &lt;http://trac.webkit.org/changeset/215143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295661</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-08 10:09:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306567</attachid>
            <date>2017-04-07 21:40:02 -0700</date>
            <delta_ts>2017-04-07 22:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170639-20170407214001.patch</filename>
            <type>text/plain</type>
            <size>32830</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNlMDg1MjY3OTI1MzVi
YWU2YWE5NGI0ZmNhYzM5MjI0NWYyZTYyZS4uMWFjYjQyYTc4OGZkNjZlYTNhMWQ3OWU1MTAzMzRk
YTE4OWYyYTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDE3LTA0LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUlu
dGVydmFsKCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXIncyBuZXh0Rmly
ZUludGVydmFsKCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcywgbm90
IGRvdWJsZS4KKworICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjp1
cGRhdGVUaW1lckludGVydmFsSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBhZ2UvU3VzcGVuZGFi
bGVUaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnJlcGVhdEludGVydmFsKToK
KyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6
OnRpbWVUb05leHRTZXJ2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6Omdl
dFRpbWVUb05leHRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpnb0lu
dG9FbmRpbmdPckxvb3BpbmdTdGF0ZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvblRpbWVyRm9yUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvblRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjph
bmltYXRpb25GcmFtZUNhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NT
U0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1h
dGlvbjo6dGltZVRvTmV4dFNlcnZpY2UpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UpOgorICAgICAg
ICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vVGhyZWFkVGltZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFRpbWVyczo6c2hh
cmVkVGltZXJGaXJlZEludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6Om5leHRGaXJlSW50ZXJ2YWwpOgorICAgICAgICAq
IHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdElu
dGVydmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6c2V0SXNJbldpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6c2NoZWR1bGVUaWxlUmV2YWxpZGF0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRpbGVHcmlkOjpyZXZhbGlkYXRlVGlsZXMpOgorCisyMDE3LTA0LTA3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgUkVHUkVTU0lPTiAocjIwMzk0MSk6IGlB
ZCBQcm9kdWNlciB3aWRnZXRzIGZhaWwgdG8gcGxheSBpbiBpQm9va3MKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYzNQogICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzA3OTc5NTg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWE1MWJhOGExMzY4MzdhMjEyNTRhZjll
MjBhOGIxMWExY2FhZGM4OS4uODdjZTcyM2JiN2MxZTU0YTAzZmIyNTEzN2E3MDQ2YjFkYjA2Y2Mz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUludGVydmFsKCkg
LyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUludGVydmFs
KCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcywgbm90IGRvdWJsZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZSk6CisKIDIwMTctMDQtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgYXVkaXRf
dG9rZW5fdCBpbnN0ZWFkIG9mIHBpZF90IGZvciBjaGVja2luZyBzYW5kYm94IG9mIG90aGVyIHBy
b2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CmluZGV4IDBmMDI5MGMxMTg5ZWZjMWVjN2I2YzAwM2QxYTZlMzU1YWU2MTEyNDcuLmEzOTE4NTE1
YWQ3ZWY4ZTc1ZDYwMDg2NTE5NzNiNjVlZTNhYzY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIG1faGF2ZVRvbGRDbGllbnQgPSB0cnVlOwogCiAgICAgICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1cmVUb0ZvcndhcmQoKSk7Ci0g
ICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRlbGF5KCksIGN1
cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExp
c3QoKSk7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRl
bGF5KCksIGN1cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCkudmFsdWUoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKICAgICB9CiAKICAgICB2b2lkIGRpZFN0b3BUaW1lcihG
cmFtZSYgZnJhbWUsIGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MpIG92ZXJyaWRlCkBAIC0yNzgsNyAr
Mjc4LDcgQEAgcHVibGljOgogICAgICAgICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsKIAogICAg
ICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9G
b3J3YXJkKCkpOwotICAgICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fc3Vi
bWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBjdXJyZW50VGltZSgpICsgdGltZXIubmV4
dEZpcmVJbnRlcnZhbCgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZS5s
b2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxh
eSgpLCBjdXJyZW50VGltZSgpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLnZhbHVlKCksIGxv
Y2tCYWNrRm9yd2FyZExpc3QoKSk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJh
bWUmIGZyYW1lLCBib29sIG5ld0xvYWRJblByb2dyZXNzKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmNwcAppbmRleCA0ODg3NmVjZGUwOTJkZGUzNGNjMDQ2YmU3NjMxODUzYTc1MmEyZGNl
Li5iM2I2OTUzODM5Mzk2NDA0NmUzYzBmNDY3MTA1NTRjM2JmOWYyYTU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRp
bWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXBl
YXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VSVChyZXBlYXRJbnRlcnZhbFNlY29uZHMoKSA9
PSBwcmV2aW91c0ludGVydmFsKTsKKyAgICAgICAgQVNTRVJUKHJlcGVhdEludGVydmFsKCkgPT0g
cHJldmlvdXNJbnRlcnZhbCk7CiAgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5n
IERPTVRpbWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20gJS4yZiBtcyB0byAlLjJmIG1zIGR1ZSB0
byB0aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1f
Y3VycmVudFRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50UmVw
ZWF0SW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwog
ICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAppbmRl
eCBmYTA4NDlkNDMxMWY0MzMyNTZhN2Q2OWU5YTJkYzIxMmY5NjMxYjc3Li4yODc2Mjg2YzhjMDcx
OGY4MzYyZGFiYzE1ZjJiZjNkNDExZDBmMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVu
ZGFibGVUaW1lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpz
dXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgbV9zYXZlZElzQWN0aXZlID0gVGltZXJC
YXNlOjppc0FjdGl2ZSgpOwogICAgIGlmIChtX3NhdmVkSXNBY3RpdmUpIHsKICAgICAgICAgbV9z
YXZlZE5leHRGaXJlSW50ZXJ2YWwgPSBUaW1lckJhc2U6Om5leHRVbmFsaWduZWRGaXJlSW50ZXJ2
YWwoKTsKLSAgICAgICAgbV9zYXZlZFJlcGVhdEludGVydmFsID0gVGltZXJCYXNlOjpyZXBlYXRJ
bnRlcnZhbFNlY29uZHMoKTsKKyAgICAgICAgbV9zYXZlZFJlcGVhdEludGVydmFsID0gVGltZXJC
YXNlOjpyZXBlYXRJbnRlcnZhbCgpOwogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKICAgICB9
CiB9CkBAIC0xMTksMTMgKzExOSwxMyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25l
U2hvdChTZWNvbmRzIGludGVydmFsKQogICAgIH0KIH0KIAotZG91YmxlIFN1c3BlbmRhYmxlVGlt
ZXI6OnJlcGVhdEludGVydmFsKCkgY29uc3QKK1NlY29uZHMgU3VzcGVuZGFibGVUaW1lcjo6cmVw
ZWF0SW50ZXJ2YWwoKSBjb25zdAogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIHJl
dHVybiBUaW1lckJhc2U6OnJlcGVhdEludGVydmFsKCk7CiAgICAgaWYgKG1fc2F2ZWRJc0FjdGl2
ZSkKLSAgICAgICAgcmV0dXJuIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbC52YWx1ZSgpOwotICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbV9zYXZlZFJlcGVhdEludGVydmFsOworICAgIHJldHVy
biAwX3M7CiB9CiAKIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbChT
ZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJs
ZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAppbmRleCBm
MDY3MWQ5MWUzODdiZDM1MzFjNTIwZjEyZmZmY2FlZGJkOGNkZDQ1Li5iMDc5ZTU2MzZmMWI2NTQy
ODJlM2M1OWZiNmMyMjRhNmZhMDE0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFJlcGVhdGlu
Zyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyB7IHJlcGVh
dEludGVydmFsIH0pOyB9CiAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7
IHN0YXJ0T25lU2hvdChTZWNvbmRzIHsgaW50ZXJ2YWwgfSk7IH0KIAotICAgIGRvdWJsZSByZXBl
YXRJbnRlcnZhbCgpIGNvbnN0OworICAgIFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdDsK
ICAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRGaXJl
SW50ZXJ2YWwoU2Vjb25kcyB7IGRlbHRhIH0pOyB9CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50
ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIHsgZGVs
dGEgfSk7IH0KIApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFJlcGVh
dGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0UmVw
ZWF0aW5nKG1zVG9TZWNvbmRzKHJlcGVhdEludGVydmFsKSk7IH0KICAgICB2b2lkIHN0YXJ0T25l
U2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdCht
c1RvU2Vjb25kcyhpbnRlcnZhbCkpOyB9CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
IHJlcGVhdEludGVydmFsTVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRl
cnZhbCgpKTsgfQotICAgIFNlY29uZHMgcmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCkgY29uc3QgeyBy
ZXR1cm4gU2Vjb25kcyB7IHJlcGVhdEludGVydmFsKCkgfTsgfQotCiAgICAgdm9pZCBhdWdtZW50
RmlyZUludGVydmFsKFNlY29uZHMgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVy
dmFsKFNlY29uZHMgZGVsdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGUxNzdmMGQ2ZjhkZTkyZjI5NDNiYTc3ZDE5MzViYTdj
NjFlNDQ0ZDAuLmEwNGUxN2JmMjIzZjRmNzBjYWY5ZmFlNjFhZGJiZjg2MzA4ZTllNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC01
NjQsMTIgKzU2NCwxMiBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVBsYXlTdGF0ZShFQW5p
bVBsYXlTdGF0ZSBwbGF5U3RhdGUpCiAgICAgdXBkYXRlU3RhdGVNYWNoaW5lKHBhdXNlID8gIEFu
aW1hdGlvblN0YXRlSW5wdXQ6OlBsYXlTdGF0ZVBhdXNlZCA6IEFuaW1hdGlvblN0YXRlSW5wdXQ6
OlBsYXlTdGF0ZVJ1bm5pbmcsIC0xKTsKIH0KIAotZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVU
b05leHRTZXJ2aWNlKCkKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gQW5pbWF0aW9uQmFzZTo6dGlt
ZVRvTmV4dFNlcnZpY2UoKQogewotICAgIC8vIFJldHVybnMgdGhlIHRpbWUgYXQgd2hpY2ggbmV4
dCBzZXJ2aWNlIGlzIHJlcXVpcmVkLiAtMSBtZWFucyBubyBzZXJ2aWNlIGlzIHJlcXVpcmVkLiAw
IG1lYW5zIAorICAgIC8vIFJldHVybnMgdGhlIHRpbWUgYXQgd2hpY2ggbmV4dCBzZXJ2aWNlIGlz
IHJlcXVpcmVkLiBzdGQ6Om51bGxvcHQgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4gMCBt
ZWFucwogICAgIC8vIHNlcnZpY2UgaXMgcmVxdWlyZWQgbm93LCBhbmQgPiAwIG1lYW5zIHNlcnZp
Y2UgaXMgcmVxdWlyZWQgdGhhdCBtYW55IHNlY29uZHMgaW4gdGhlIGZ1dHVyZS4KICAgICBpZiAo
cGF1c2VkKCkgfHwgaXNOZXcoKSB8fCBwb3N0QWN0aXZlKCkgfHwgZmlsbGluZ0ZvcndhcmRzKCkp
Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAK
ICAgICBpZiAobV9hbmltYXRpb25TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZTo6U3RhcnRXYWl0VGlt
ZXIpIHsKICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKQEAgLTU3OCwxOSArNTc4
LDE5IEBAIGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSgpCiAgICAgICAg
ICAgICAgICAgZmxvYXQgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gbV9vYmplY3QtPnZpZXcoKS5m
cmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKS55KCkudG9GbG9hdCgp
OwogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbFRyaWdnZXIgPSBkb3duY2FzdDxTY3JvbGxB
bmltYXRpb25UcmlnZ2VyPigqbV9hbmltYXRpb24tPnRyaWdnZXIoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+PSBzY3JvbGxUcmlnZ2VyLnN0YXJ0VmFsdWUo
KS52YWx1ZSgpICYmICghc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgpIHx8IGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbiA8PSBzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkudmFsdWUoKSkpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMF9zOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGRvdWJsZSB0aW1lRnJv
bU5vdyA9IG1fYW5pbWF0aW9uLT5kZWxheSgpIC0gKGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgp
IC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUpOwotICAgICAgICByZXR1cm4gc3RkOjptYXgodGltZUZy
b21Ob3csIDAuMCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1heChTZWNvbmRzIHsgdGltZUZyb21O
b3cgfSwgMF9zKTsKICAgICB9CiAgICAgCiAgICAgZmlyZUFuaW1hdGlvbkV2ZW50c0lmTmVlZGVk
KCk7CiAgICAgICAgIAogICAgIC8vIEluIGFsbCBvdGhlciBjYXNlcywgd2UgbmVlZCBzZXJ2aWNl
IHJpZ2h0IGF3YXkuCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDBfczsKIH0KIAogLy8gQ29t
cHV0ZSB0aGUgZnJhY3Rpb25hbCB0aW1lLCB0YWtpbmcgaW50byBhY2NvdW50IGRpcmVjdGlvbi4K
QEAgLTY3NSw3ICs2NzUsNyBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91Ymxl
IHNjYWxlLCBkb3VibGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogICAgIHJldHVybiAw
OwogfQogCi12b2lkIEFuaW1hdGlvbkJhc2U6OmdldFRpbWVUb05leHRFdmVudChkb3VibGUmIHRp
bWUsIGJvb2wmIGlzTG9vcGluZykgY29uc3QKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6Z2V0VGltZVRv
TmV4dEV2ZW50KFNlY29uZHMmIHRpbWUsIGJvb2wmIGlzTG9vcGluZykgY29uc3QKIHsKICAgICAv
LyBEZWNpZGUgd2hlbiB0aGUgZW5kIG9yIGxvb3AgZXZlbnQgbmVlZHMgdG8gZmlyZQogICAgIGNv
bnN0IGRvdWJsZSBlbGFwc2VkRHVyYXRpb24gPSBzdGQ6Om1heChiZWdpbkFuaW1hdGlvblVwZGF0
ZVRpbWUoKSAtIG1fc3RhcnRUaW1lLCAwLjApOwpAQCAtNjk2LDEyICs2OTYsMTIgQEAgdm9pZCBB
bmltYXRpb25CYXNlOjpnZXRUaW1lVG9OZXh0RXZlbnQoZG91YmxlJiB0aW1lLCBib29sJiBpc0xv
b3BpbmcpIGNvbnN0CiAgICAgICAgIGlzTG9vcGluZyA9IGZhbHNlOwogICAgIH0KICAgICAKLSAg
ICB0aW1lID0gZHVyYXRpb25MZWZ0OworICAgIHRpbWUgPSBTZWNvbmRzIHsgZHVyYXRpb25MZWZ0
IH07CiB9CiAKIHZvaWQgQW5pbWF0aW9uQmFzZTo6Z29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUo
KQogewotICAgIGRvdWJsZSB0OworICAgIFNlY29uZHMgdDsKICAgICBib29sIGlzTG9vcGluZzsK
ICAgICBnZXRUaW1lVG9OZXh0RXZlbnQodCwgaXNMb29waW5nKTsKICAgICBMT0coQW5pbWF0aW9u
cywgIiVwIEFuaW1hdGlvblN0YXRlICVzIC0+ICVzIiwgdGhpcywgbmFtZUZvclN0YXRlKG1fYW5p
bWF0aW9uU3RhdGUpLCBpc0xvb3BpbmcgPyAiTG9vcGluZyIgOiAiRW5kaW5nIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggMmRkMGMzMDll
MDU4MmYzNWNmOTM2ZjUwYWNkOWMxYWMzNDE2MzU1ZS4uNzY5MGM5MWRkY2RhZGZkNTg3Y2UwYmY2
ZWU1ZmUxYjY2Yzg3ODA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNB
Y2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlbGVyYXRlZDsgfQogCi0gICAgdmly
dHVhbCBkb3VibGUgdGltZVRvTmV4dFNlcnZpY2UoKTsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UoKTsKIAogICAgIGRvdWJsZSBwcm9ncmVzcyhk
b3VibGUgc2NhbGUgPSAxLCBkb3VibGUgb2Zmc2V0ID0gMCwgY29uc3QgVGltaW5nRnVuY3Rpb24q
ID0gbnVsbHB0cikgY29uc3Q7CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICBzdGF0aWMgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKEVsZW1lbnQqKTsKICAgICAKLSAgICB2
b2lkIGdldFRpbWVUb05leHRFdmVudChkb3VibGUmIHRpbWUsIGJvb2wmIGlzTG9vcGluZykgY29u
c3Q7CisgICAgdm9pZCBnZXRUaW1lVG9OZXh0RXZlbnQoU2Vjb25kcyYgdGltZSwgYm9vbCYgaXNM
b29waW5nKSBjb25zdDsKIAogICAgIGRvdWJsZSBmcmFjdGlvbmFsVGltZShkb3VibGUgc2NhbGUs
IGRvdWJsZSBlbGFwc2VkVGltZSwgZG91YmxlIG9mZnNldCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggMGE3ZTUxZmQ1OTBkM2M4MzBkMzczM2Y2ZjRhZjViN2YzMWVhZjQwZi4uYzViYzIx
ZWM2NGFjNjg4MjAwNDFkOGYyZDU5NzA2YTJlMGVmNjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTEyMywxOSArMTIzLDE5IEBAIGJvb2wgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNs
ZWFyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIHJldHVybiBhbmltYXRpb24tPmlzU3Vz
cGVuZGVkKCk7CiB9CiAKLWRvdWJsZSBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBk
YXRlQW5pbWF0aW9ucyhTZXRDaGFuZ2VkIGNhbGxTZXRDaGFuZ2VkLyogPSBEb05vdENhbGxTZXRD
aGFuZ2VkKi8pCitzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjp1cGRhdGVBbmltYXRpb25zKFNldENoYW5nZWQgY2FsbFNldENoYW5nZWQvKiA9IERv
Tm90Q2FsbFNldENoYW5nZWQqLykKIHsKICAgICBBbmltYXRpb25Qcml2YXRlVXBkYXRlQmxvY2sg
dXBkYXRlQmxvY2soKnRoaXMpOwotICAgIGRvdWJsZSB0aW1lVG9OZXh0U2VydmljZSA9IC0xOwor
ICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2U7CiAgICAgYm9vbCBj
YWxsZWRTZXRDaGFuZ2VkID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGNvbXBvc2l0ZUFuaW1h
dGlvbiA6IG1fY29tcG9zaXRlQW5pbWF0aW9ucykgewogICAgICAgICBDb21wb3NpdGVBbmltYXRp
b24mIGFuaW1hdGlvbiA9ICpjb21wb3NpdGVBbmltYXRpb24udmFsdWU7CiAgICAgICAgIGlmICgh
YW5pbWF0aW9uLmlzU3VzcGVuZGVkKCkgJiYgYW5pbWF0aW9uLmhhc0FuaW1hdGlvbnMoKSkgewot
ICAgICAgICAgICAgZG91YmxlIHQgPSBhbmltYXRpb24udGltZVRvTmV4dFNlcnZpY2UoKTsKLSAg
ICAgICAgICAgIGlmICh0ICE9IC0xICYmICh0IDwgdGltZVRvTmV4dFNlcnZpY2UgfHwgdGltZVRv
TmV4dFNlcnZpY2UgPT0gLTEpKQotICAgICAgICAgICAgICAgIHRpbWVUb05leHRTZXJ2aWNlID0g
dDsKLSAgICAgICAgICAgIGlmICghdGltZVRvTmV4dFNlcnZpY2UpIHsKKyAgICAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdCA9IGFuaW1hdGlvbi50aW1lVG9OZXh0U2VydmljZSgpOwor
ICAgICAgICAgICAgaWYgKHQgJiYgKCF0aW1lVG9OZXh0U2VydmljZSB8fCB0LnZhbHVlKCkgPCB0
aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpKSkKKyAgICAgICAgICAgICAgICB0aW1lVG9OZXh0U2Vy
dmljZSA9IHQudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICh0aW1lVG9OZXh0U2VydmljZSAmJiB0
aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpID09IDBfcykgewogICAgICAgICAgICAgICAgIGlmIChj
YWxsU2V0Q2hhbmdlZCAhPSBDYWxsU2V0Q2hhbmdlZCkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGNvbXBvc2l0ZUFuaW1hdGlv
bi5rZXktPmVsZW1lbnQoKTsKQEAgLTE1NSw0NCArMTU1LDQ3IEBAIGRvdWJsZSBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlQW5pbWF0aW9ucyhTZXRDaGFuZ2VkIGNhbGxTZXRD
aGFuZ2VkCiAKIHZvaWQgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1h
dGlvblRpbWVyRm9yUmVuZGVyZXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7Ci0gICAgZG91
YmxlIHRpbWVUb05leHRTZXJ2aWNlID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHRp
bWVUb05leHRTZXJ2aWNlOwogCiAgICAgY29uc3QgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3Np
dGVBbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KCZyZW5kZXJlcik7CiAgICAg
aWYgKCFjb21wb3NpdGVBbmltYXRpb24tPmlzU3VzcGVuZGVkKCkgJiYgY29tcG9zaXRlQW5pbWF0
aW9uLT5oYXNBbmltYXRpb25zKCkpCiAgICAgICAgIHRpbWVUb05leHRTZXJ2aWNlID0gY29tcG9z
aXRlQW5pbWF0aW9uLT50aW1lVG9OZXh0U2VydmljZSgpOwogCi0gICAgaWYgKG1fYW5pbWF0aW9u
VGltZXIuaXNBY3RpdmUoKSAmJiAobV9hbmltYXRpb25UaW1lci5yZXBlYXRJbnRlcnZhbCgpIHx8
IG1fYW5pbWF0aW9uVGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDw9IHRpbWVUb05leHRTZXJ2aWNl
KSkKKyAgICBpZiAoIXRpbWVUb05leHRTZXJ2aWNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2FuaW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9OZXh0U2VydmljZSk7CisgICAgaWYg
KG1fYW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSAmJiAobV9hbmltYXRpb25UaW1lci5yZXBlYXRJ
bnRlcnZhbCgpIHx8IG1fYW5pbWF0aW9uVGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDw9IHRpbWVU
b05leHRTZXJ2aWNlLnZhbHVlKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FuaW1hdGlv
blRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpKTsKIH0KIAogdm9p
ZCBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlQW5pbWF0aW9uVGltZXIoU2V0
Q2hhbmdlZCBjYWxsU2V0Q2hhbmdlZC8qID0gRG9Ob3RDYWxsU2V0Q2hhbmdlZCovKQogewotICAg
IGRvdWJsZSB0aW1lVG9OZXh0U2VydmljZSA9IHVwZGF0ZUFuaW1hdGlvbnMoY2FsbFNldENoYW5n
ZWQpOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UgPSB1cGRh
dGVBbmltYXRpb25zKGNhbGxTZXRDaGFuZ2VkKTsKIAogICAgIExPRyhBbmltYXRpb25zLCAidXBk
YXRlQW5pbWF0aW9uVGltZXI6IHRpbWVUb05leHRTZXJ2aWNlIGlzICUuMmYiLCB0aW1lVG9OZXh0
U2VydmljZSk7CiAKLSAgICAvLyBJZiB3ZSB3YW50IHNlcnZpY2UgaW1tZWRpYXRlbHksIHdlIHN0
YXJ0IGEgcmVwZWF0aW5nIHRpbWVyIHRvIHJlZHVjZSB0aGUgb3ZlcmhlYWQgb2Ygc3RhcnRpbmcK
KyAgICAvLyBJZiB3ZSBkb24ndCBuZWVkIHNlcnZpY2UsIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRo
ZSB0aW1lciBpcyBubyBsb25nZXIgcnVubmluZwogICAgIGlmICghdGltZVRvTmV4dFNlcnZpY2Up
IHsKKyAgICAgICAgaWYgKG1fYW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
IG1fYW5pbWF0aW9uVGltZXIuc3RvcCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gSWYgd2Ugd2FudCBzZXJ2aWNlIGltbWVkaWF0ZWx5LCB3ZSBzdGFydCBhIHJlcGVhdGluZyB0
aW1lciB0byByZWR1Y2UgdGhlIG92ZXJoZWFkIG9mIHN0YXJ0aW5nCisgICAgaWYgKCF0aW1lVG9O
ZXh0U2VydmljZS52YWx1ZSgpKSB7CiAgICAgICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2Uo
KTsKICAgICAgICAgYm9vbCBzaG91bGRUaHJvdHRsZSA9IHBhZ2UgJiYgcGFnZS0+aXNMb3dQb3dl
ck1vZGVFbmFibGVkKCk7CiAgICAgICAgIFNlY29uZHMgZGVsYXkgPSBzaG91bGRUaHJvdHRsZSA/
IGFuaW1hdGlvblRpbWVyVGhyb3R0bGVkRGVsYXkgOiBhbmltYXRpb25UaW1lckRlbGF5OwogCi0g
ICAgICAgIGlmICghbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpIHx8IG1fYW5pbWF0aW9uVGlt
ZXIucmVwZWF0SW50ZXJ2YWwoKSAhPSBkZWxheS52YWx1ZSgpKQorICAgICAgICBpZiAoIW1fYW5p
bWF0aW9uVGltZXIuaXNBY3RpdmUoKSB8fCBtX2FuaW1hdGlvblRpbWVyLnJlcGVhdEludGVydmFs
KCkgIT0gZGVsYXkpCiAgICAgICAgICAgICBtX2FuaW1hdGlvblRpbWVyLnN0YXJ0UmVwZWF0aW5n
KGRlbGF5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIElmIHdlIGRvbid0IG5l
ZWQgc2VydmljZSwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIHRpbWVyIGlzIG5vIGxvbmdlciBy
dW5uaW5nCi0gICAgaWYgKHRpbWVUb05leHRTZXJ2aWNlIDwgMCkgewotICAgICAgICBpZiAobV9h
bmltYXRpb25UaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9hbmltYXRpb25UaW1lci5z
dG9wKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBPdGhlcndpc2UsIHdlIHdh
bnQgdG8gc3RhcnQgYSBvbmUtc2hvdCB0aW1lciBzbyB3ZSBnZXQgaGVyZSBhZ2FpbgotICAgIG1f
YW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KHRpbWVUb05leHRTZXJ2aWNlKTsKKyAgICBtX2Fu
aW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpKTsKIH0K
IAogdm9pZCBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlU3R5bGVJZk5lZWRl
ZERpc3BhdGNoZXJGaXJlZCgpCkBAIC0yNDcsOSArMjUwLDkgQEAgdm9pZCBDU1NBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYgZWxl
bWVudCkKIAogdm9pZCBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YW5pbWF0aW9uRnJh
bWVDYWxsYmFja0ZpcmVkKCkKIHsKLSAgICBkb3VibGUgdGltZVRvTmV4dFNlcnZpY2UgPSB1cGRh
dGVBbmltYXRpb25zKENhbGxTZXRDaGFuZ2VkKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+
IHRpbWVUb05leHRTZXJ2aWNlID0gdXBkYXRlQW5pbWF0aW9ucyhDYWxsU2V0Q2hhbmdlZCk7CiAK
LSAgICBpZiAodGltZVRvTmV4dFNlcnZpY2UgPj0gMCkKKyAgICBpZiAodGltZVRvTmV4dFNlcnZp
Y2UpCiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+dmlldygpLT5zY2hlZHVsZUFuaW1hdGlv
bigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCA0YzQ4YWQ2NzYxYWNlMTY4
ZmU2YTNiYjA0ZDUzOTM3N2FhMGIxYzMyLi45NTVhODg3YzcxYjAxYWQzN2MzODRlNDBkN2MwMzc4
NjMyYjFlODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHVibGljOgogICAgIH5DU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSgpOwogCiAgICAgLy8g
UmV0dXJucyB0aGUgdGltZSB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gbmVlZHMgdG8gYmUgc2Vy
dmljZWQsIG9yIC0xIGlmIHRoZXJlIGFyZSBub25lLgotICAgIGRvdWJsZSB1cGRhdGVBbmltYXRp
b25zKFNldENoYW5nZWQgY2FsbFNldENoYW5nZWQgPSBEb05vdENhbGxTZXRDaGFuZ2VkKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHVwZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWxs
U2V0Q2hhbmdlZCA9IERvTm90Q2FsbFNldENoYW5nZWQpOwogICAgIHZvaWQgdXBkYXRlQW5pbWF0
aW9uVGltZXIoU2V0Q2hhbmdlZCBjYWxsU2V0Q2hhbmdlZCA9IERvTm90Q2FsbFNldENoYW5nZWQp
OwogCiAgICAgQ29tcG9zaXRlQW5pbWF0aW9uJiBlbnN1cmVDb21wb3NpdGVBbmltYXRpb24oUmVu
ZGVyRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggZDE2ODRlZTlhNjc5NDY1OGQ2OTE0MmQ1ZjE2ZGM4
MThjYWIyZDIxZS4uZGFkZGRhNGI5MjgzZTgzNzY4MzFlOWJhN2I0OTMxODUzYTNkNThjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uY3BwCkBAIC0zNjYsMzMgKzM2NiwzMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+
IENvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IHJlc3VsdFN0eWxlOwogfQogCi1kb3VibGUgQ29tcG9zaXRlQW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSgpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IENvbXBvc2l0ZUFuaW1hdGlv
bjo6dGltZVRvTmV4dFNlcnZpY2UoKSBjb25zdAogewotICAgIC8vIFJldHVybnMgdGhlIHRpbWUg
YXQgd2hpY2ggbmV4dCBzZXJ2aWNlIGlzIHJlcXVpcmVkLiAtMSBtZWFucyBubyBzZXJ2aWNlIGlz
IHJlcXVpcmVkLiAwIG1lYW5zIAorICAgIC8vIFJldHVybnMgdGhlIHRpbWUgYXQgd2hpY2ggbmV4
dCBzZXJ2aWNlIGlzIHJlcXVpcmVkLiBzdGQ6Om51bGxvcHQgbWVhbnMgbm8gc2VydmljZSBpcyBy
ZXF1aXJlZC4gMCBtZWFucwogICAgIC8vIHNlcnZpY2UgaXMgcmVxdWlyZWQgbm93LCBhbmQgPiAw
IG1lYW5zIHNlcnZpY2UgaXMgcmVxdWlyZWQgdGhhdCBtYW55IHNlY29uZHMgaW4gdGhlIGZ1dHVy
ZS4KLSAgICBkb3VibGUgbWluVCA9IC0xOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbWlu
VDsKICAgICAKICAgICBpZiAoIW1fdHJhbnNpdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZv
ciAoYXV0byYgdHJhbnNpdGlvbiA6IG1fdHJhbnNpdGlvbnMudmFsdWVzKCkpIHsKLSAgICAgICAg
ICAgIGRvdWJsZSB0ID0gdHJhbnNpdGlvbi0+dGltZVRvTmV4dFNlcnZpY2UoKTsKLSAgICAgICAg
ICAgIGlmICh0ID09IC0xKQorICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0ID0g
dHJhbnNpdGlvbi0+dGltZVRvTmV4dFNlcnZpY2UoKTsKKyAgICAgICAgICAgIGlmICghdCkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICh0IDwgbWluVCB8fCBtaW5U
ID09IC0xKQotICAgICAgICAgICAgICAgIG1pblQgPSB0OwotICAgICAgICAgICAgaWYgKG1pblQg
PT0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIGlmICghbWluVCB8
fCB0LnZhbHVlKCkgPCBtaW5ULnZhbHVlKCkpCisgICAgICAgICAgICAgICAgbWluVCA9IHQudmFs
dWUoKTsKKyAgICAgICAgICAgIGlmIChtaW5ULnZhbHVlKCkgPT0gMF9zKQorICAgICAgICAgICAg
ICAgIHJldHVybiAwX3M7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFtX2tleWZyYW1lQW5p
bWF0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tD
b25zaXN0ZW5jeSgpOwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVB
bmltYXRpb25zLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBkb3VibGUgdCA9IGFuaW1hdGlvbi0+
dGltZVRvTmV4dFNlcnZpY2UoKTsKLSAgICAgICAgICAgIGlmICh0ID09IC0xKQorICAgICAgICAg
ICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0ID0gYW5pbWF0aW9uLT50aW1lVG9OZXh0U2Vydmlj
ZSgpOworICAgICAgICAgICAgaWYgKCF0KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgaWYgKHQgPCBtaW5UIHx8IG1pblQgPT0gLTEpCi0gICAgICAgICAgICAgICAgbWlu
VCA9IHQ7Ci0gICAgICAgICAgICBpZiAobWluVCA9PSAwKQotICAgICAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgaWYgKCFtaW5UIHx8IHQudmFsdWUoKSA8IG1pblQudmFsdWUoKSkK
KyAgICAgICAgICAgICAgICBtaW5UID0gdC52YWx1ZSgpOworICAgICAgICAgICAgaWYgKG1pblQu
dmFsdWUoKSA9PSAwX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIDBfczsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uaAppbmRleCBmMmI3Nzk4YTcwOTkwODc4Yjg3ZjI3OTRjMjA3MzIxMGI0OGM0M2U5
Li41MzQyYzdkZTAwZjZiYmE5YzEwOTU0OGNiNzU1Y2ZlMjkzMTU0NWYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaApAQCAtNTks
NyArNTksNyBAQCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBnZXRB
bmltYXRlZFN0eWxlKCkgY29uc3Q7CiAgICAgYm9vbCBjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1B
bmltYXRpb24oTGF5b3V0UmVjdCYpIGNvbnN0OwogCi0gICAgZG91YmxlIHRpbWVUb05leHRTZXJ2
aWNlKCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0aW1lVG9OZXh0U2Vydmlj
ZSgpIGNvbnN0OwogICAgIAogICAgIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlJiBhbmlt
YXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRpb25Db250cm9sbGVyOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcAppbmRleCA5MjRlYjRiMzVkMjdmZmIwYjM0MTA3NjJkNmY4MjcwOWExODY4NWJlLi4x
Mzk3NmFmNzE2MzY1ZGQwZjM2ODRhZjA2N2M3OWMzZGU1NDhjMzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0zMTUs
MTcgKzMxNSwxNyBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nQmFj
a2Ryb3BGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKIH0KICNlbmRpZgogCi1kb3VibGUgSW1wbGljaXRB
bmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gSW1w
bGljaXRBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKIHsKLSAgICBkb3VibGUgdCA9IEFu
aW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKCk7Ci0gICAgaWYgKHQgIT0gMCB8fCBwcmVB
Y3RpdmUoKSkKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHQgPSBBbmltYXRpb25CYXNlOjp0
aW1lVG9OZXh0U2VydmljZSgpOworICAgIGlmICghdCB8fCB0LnZhbHVlKCkgIT0gMF9zIHx8IHBy
ZUFjdGl2ZSgpKQogICAgICAgICByZXR1cm4gdDsKLSAgICAgICAgCisKICAgICAvLyBBIHJldHVy
biB2YWx1ZSBvZiAwIG1lYW5zIHdlIG5lZWQgc2VydmljZS4gQnV0IGlmIHRoaXMgaXMgYW4gYWNj
ZWxlcmF0ZWQgYW5pbWF0aW9uIHdlIAogICAgIC8vIG9ubHkgbmVlZCBzZXJ2aWNlIGF0IHRoZSBl
bmQgb2YgdGhlIHRyYW5zaXRpb24uCiAgICAgaWYgKENTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmlt
YXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZChtX2FuaW1hdGluZ1Byb3BlcnR5KSAmJiBpc0Fj
Y2VsZXJhdGVkKCkpIHsKICAgICAgICAgYm9vbCBpc0xvb3Bpbmc7Ci0gICAgICAgIGdldFRpbWVU
b05leHRFdmVudCh0LCBpc0xvb3BpbmcpOworICAgICAgICBnZXRUaW1lVG9OZXh0RXZlbnQodC52
YWx1ZSgpLCBpc0xvb3BpbmcpOwogICAgIH0KICAgICByZXR1cm4gdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCmluZGV4IDk0NDc0
MTdiMDFkYzE4MGM3ODFiNGFiNmQ4YTI3MDM0ZmI1NDQ5MTAuLjhlMTcxOTU4ZDE0ZDNlOTk3OTk2
OThiYmY0NWYzZjc1MTI5Njg0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vSW1wbGljaXRBbmltYXRpb24uaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGJsZW5kUHJvcGVydHlWYWx1ZUluU3R5bGUoQ1NTUHJvcGVydHlJRCwgUmVuZGVyU3R5
bGUqKTsKIAotICAgIGRvdWJsZSB0aW1lVG9OZXh0U2VydmljZSgpIG92ZXJyaWRlOworICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UoKSBvdmVycmlkZTsKICAgICAK
ICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CiAgICAgdm9pZCBz
ZXRBY3RpdmUoYm9vbCBiKSB7IG1fYWN0aXZlID0gYjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IDdlNGRhNmQ4ZTQ4
ZTk4ZjE0ODNhMjBmYWM1YjU1MDQwZWY5Y2NmMGMuLjRmZmYxMWNmNzczNzIzOTU2NjVhMjFhNzli
YjcxMjc3YzgxNDA0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTQ5MCwxNCArNDkwLDE0IEBAIHZvaWQgS2V5ZnJh
bWVBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMo
KQogfQogI2VuZGlmCiAKLWRvdWJsZSBLZXlmcmFtZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZp
Y2UoKQorc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBLZXlmcmFtZUFuaW1hdGlvbjo6dGltZVRvTmV4
dFNlcnZpY2UoKQogewotICAgIGRvdWJsZSB0ID0gQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNl
cnZpY2UoKTsKLSAgICBpZiAodCAhPSAwIHx8IHByZUFjdGl2ZSgpKQorICAgIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gdCA9IEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKCk7CisgICAg
aWYgKCF0IHx8IHQudmFsdWUoKSAhPSAwX3MgfHwgcHJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVy
biB0OwotICAgICAgICAKKwogICAgIC8vIEEgcmV0dXJuIHZhbHVlIG9mIDAgbWVhbnMgd2UgbmVl
ZCBzZXJ2aWNlLiBCdXQgaWYgd2Ugb25seSBoYXZlIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMgd2Ug
Ci0gICAgLy8gb25seSBuZWVkIHNlcnZpY2UgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNpdGlvbgor
ICAgIC8vIG9ubHkgbmVlZCBzZXJ2aWNlIGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zaXRpb24uCiAg
ICAgYm9vbCBhY2NlbGVyYXRlZFByb3BlcnRpZXNPbmx5ID0gdHJ1ZTsKICAgICAKICAgICBmb3Ig
KGF1dG8gcHJvcGVydHlJRCA6IG1fa2V5ZnJhbWVzLnByb3BlcnRpZXMoKSkgewpAQCAtNTA5LDcg
KzUwOSw3IEBAIGRvdWJsZSBLZXlmcmFtZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQog
CiAgICAgaWYgKGFjY2VsZXJhdGVkUHJvcGVydGllc09ubHkpIHsKICAgICAgICAgYm9vbCBpc0xv
b3Bpbmc7Ci0gICAgICAgIGdldFRpbWVUb05leHRFdmVudCh0LCBpc0xvb3BpbmcpOworICAgICAg
ICBnZXRUaW1lVG9OZXh0RXZlbnQodC52YWx1ZSgpLCBpc0xvb3BpbmcpOwogICAgIH0KIAogICAg
IHJldHVybiB0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5
ZnJhbWVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmgKaW5kZXggMGFiOTgyYmE4OTZmY2JjYjYxMDkwMzIxNzlhZDkyZTFiNDFlMmE4
ZS4uNGUwMDBhMTM5ODI2MDgwZmQ5YWU2ZWFkNWUzYTQ0YzI4NmRjY2QxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCkBAIC02MCw3
ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVuYW5pbWF0ZWRTdHlsZShzdGQ6OnVuaXF1
ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fdW5hbmltYXRlZFN0eWxlID0gV1RGTW92ZShz
dHlsZSk7IH0KICAgICBSZW5kZXJTdHlsZSogdW5hbmltYXRlZFN0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV91bmFuaW1hdGVkU3R5bGUuZ2V0KCk7IH0KIAotICAgIGRvdWJsZSB0aW1lVG9OZXh0U2Vy
dmljZSgpIG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNl
cnZpY2UoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgb25BbmltYXRpb25TdGFy
dChkb3VibGUgZWxhcHNlZFRpbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZFRpbWVycy5jcHAKaW5kZXggYmMzYTgxODY3ZWEzNmQzYTA3OTQ1ZDE5ZDBjZTZjYWRiNDVj
OTU3YS4uZjY2NTUzNDZiYTdjNGUzNTlkOGYyYmFiZWJkMzM3OWY3NjA1NjA4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9p
ZCBUaHJlYWRUaW1lcnM6OnNoYXJlZFRpbWVyRmlyZWRJbnRlcm5hbCgpCiAgICAgICAgIHRpbWVy
LT5tX3VuYWxpZ25lZE5leHRGaXJlVGltZSA9IE1vbm90b25pY1RpbWUgeyB9OwogICAgICAgICB0
aW1lci0+aGVhcERlbGV0ZU1pbigpOwogCi0gICAgICAgIFNlY29uZHMgaW50ZXJ2YWwgPSB0aW1l
ci0+cmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCk7CisgICAgICAgIFNlY29uZHMgaW50ZXJ2YWwgPSB0
aW1lci0+cmVwZWF0SW50ZXJ2YWwoKTsKICAgICAgICAgdGltZXItPnNldE5leHRGaXJlVGltZShp
bnRlcnZhbCA/IGZpcmVUaW1lICsgaW50ZXJ2YWwgOiBNb25vdG9uaWNUaW1lIHsgfSk7CiAKICAg
ICAgICAgLy8gT25jZSB0aGUgdGltZXIgaGFzIGJlZW4gZmlyZWQsIGl0IG1heSBiZSBkZWxldGVk
LCBzbyBkbyBub3RoaW5nIGVsc2Ugd2l0aCBpdCBhZnRlciB0aGlzIHBvaW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGltZXIuY3BwCmluZGV4IGNlZWE2OTJlYjc0OWQzYWY5NWY1NjI3M2Q3NzM1MjBmYjhj
NjMzZDQuLjljY2I0MDIxZjUwMzM3OGE4NjIyNGU0YTZkNzUxZGE0OGE5MzI2NzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTIyMSwxMyArMjIxLDEzIEBAIHZvaWQgVGltZXJCYXNl
OjpzdG9wKCkKICAgICBBU1NFUlQoIWluSGVhcCgpKTsKIH0KIAotZG91YmxlIFRpbWVyQmFzZTo6
bmV4dEZpcmVJbnRlcnZhbCgpIGNvbnN0CitTZWNvbmRzIFRpbWVyQmFzZTo6bmV4dEZpcmVJbnRl
cnZhbCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzQWN0aXZlKCkpOwogICAgIE1vbm90b25pY1Rp
bWUgY3VycmVudCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIGlmIChtX25leHRGaXJlVGlt
ZSA8IGN1cnJlbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiAobV9uZXh0RmlyZVRp
bWUgLSBjdXJyZW50KS52YWx1ZSgpOworICAgICAgICByZXR1cm4gMF9zOworICAgIHJldHVybiBt
X25leHRGaXJlVGltZSAtIGN1cnJlbnQ7CiB9CiAKIGlubGluZSB2b2lkIFRpbWVyQmFzZTo6Y2hl
Y2tIZWFwSW5kZXgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKaW5kZXggNjMwNzJjN2E1
OTRjNGVhOGUxZGRiMGNhOGUwZjhhOWU3OTBmODA5Zi4uZTY0MmE1YzJmNDllYjZiYmQ5ZWU3YzI1
NDg5MmU1OTdlYjllZTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGlt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCkBAIC03MCwxMSArNzAs
OSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKCk7CiAgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0OwogCi0gICAgZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwoKSBjb25zdDsg
Ly8gRklYTUU6IFNob3VsZCByZXR1cm4gU2Vjb25kcy4KKyAgICBTZWNvbmRzIG5leHRGaXJlSW50
ZXJ2YWwoKSBjb25zdDsKICAgICBTZWNvbmRzIG5leHRVbmFsaWduZWRGaXJlSW50ZXJ2YWwoKSBj
b25zdDsKLSAgICBkb3VibGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX3JlcGVh
dEludGVydmFsLnZhbHVlKCk7IH0gLy8gRklYTUU6IFNob3VsZCByZXR1cm4gU2Vjb25kcy4KLSAg
ICBTZWNvbmRzIHJlcGVhdEludGVydmFsU2Vjb25kcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwZWF0
SW50ZXJ2YWw7IH0gLy8gRklYTUU6IFJlbW92ZSBvbmNlIHJlcGVhdEludGVydmFsKCkgcmV0dXJu
cyBTZWNvbmRzLgotICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVwZWF0SW50ZXJ2YWxN
UygpIGNvbnN0IHsgcmV0dXJuIHNlY29uZHNUb01TKHJlcGVhdEludGVydmFsKCkpOyB9CisgICAg
U2Vjb25kcyByZXBlYXRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwZWF0SW50ZXJ2YWw7
IH0KIAogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChTZWNvbmRzIGRlbHRhKSB7IHNldE5l
eHRGaXJlVGltZShtX25leHRGaXJlVGltZSArIGRlbHRhKTsgfQogICAgIHZvaWQgYXVnbWVudEZp
cmVJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRGaXJl
SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGNkMDkyZjY0
ZDI2Njg3ZTU3N2M0NDYwZjk2MDhjYzBiYWUzMDk2M2IuLjAxZWE5YWYyOGNlYzFhYmJhYjZlYmI2
NWJlODgwMDA0MGYzMDUyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lk
IFRpbGVDb250cm9sbGVyOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKICAgICBpZiAo
bV9pc0luV2luZG93KQogICAgICAgICBzZXROZWVkc1JldmFsaWRhdGVUaWxlcygpOwogICAgIGVs
c2UgewotICAgICAgICBjb25zdCBkb3VibGUgdGlsZVJldmFsaWRhdGlvblRpbWVvdXQgPSA0Owor
ICAgICAgICBjb25zdCBTZWNvbmRzIHRpbGVSZXZhbGlkYXRpb25UaW1lb3V0ID0gNF9zOwogICAg
ICAgICBzY2hlZHVsZVRpbGVSZXZhbGlkYXRpb24odGlsZVJldmFsaWRhdGlvblRpbWVvdXQpOwog
ICAgIH0KIH0KQEAgLTQ4MCw3ICs0ODAsNyBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjphZGp1c3RU
aWxlQ292ZXJhZ2VSZWN0KEZsb2F0UmVjdCYgY292ZXJhZ2VSZWN0LCBjb25zdCBGbG9hdAogI2Vu
ZGlmCiB9CiAKLXZvaWQgVGlsZUNvbnRyb2xsZXI6OnNjaGVkdWxlVGlsZVJldmFsaWRhdGlvbihk
b3VibGUgaW50ZXJ2YWwpCit2b2lkIFRpbGVDb250cm9sbGVyOjpzY2hlZHVsZVRpbGVSZXZhbGlk
YXRpb24oU2Vjb25kcyBpbnRlcnZhbCkKIHsKICAgICBpZiAobV90aWxlUmV2YWxpZGF0aW9uVGlt
ZXIuaXNBY3RpdmUoKSAmJiBtX3RpbGVSZXZhbGlkYXRpb25UaW1lci5uZXh0RmlyZUludGVydmFs
KCkgPCBpbnRlcnZhbCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmgKaW5kZXggMjc3ODk1MDUxYjRl
MzZlMDNmMmU5MzJlNmY3OGI2YTc5MTYwZmRmZC4uZjAwYzZiYjdiOTkwMTFhNzZiZDlkODI1MDU2
MzU3MGEwNzViMzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvVGlsZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlQ29udHJvbGxlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMTQxLDcgKzE0Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgVGlsZUdyaWQm
IHRpbGVHcmlkKCkgeyByZXR1cm4gKm1fdGlsZUdyaWQ7IH0KIAotICAgIHZvaWQgc2NoZWR1bGVU
aWxlUmV2YWxpZGF0aW9uKGRvdWJsZSBpbnRlcnZhbCk7CisgICAgdm9pZCBzY2hlZHVsZVRpbGVS
ZXZhbGlkYXRpb24oU2Vjb25kcyBpbnRlcnZhbCk7CiAKICAgICBmbG9hdCB0b3BDb250ZW50SW5z
ZXQoKSBjb25zdCB7IHJldHVybiBtX3RvcENvbnRlbnRJbnNldDsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKaW5kZXggMWQyZDgwNzA1
ZThhMzRjODM5ZGRiOTY4N2QyNGU3NDBhMWNkYTIxMy4uOGE5MGMyYmRiYWQ0OGMxNDVhNThhOTE4
NjRjMDBmYzM3MGUzOWMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvVGlsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1RpbGVHcmlkLmNwcApAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgVGlsZUdyaWQ6OnJl
dmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeSB2YWxpZGF0aW9uUG9saWN5KQogICAg
IFRpbGVDb2hvcnQgY3VyckNvaG9ydCA9IG5leHRUaWxlQ29ob3J0KCk7CiAgICAgdW5zaWduZWQg
dGlsZXNJbkNvaG9ydCA9IDA7CiAKLSAgICBkb3VibGUgbWluaW11bVJldmFsaWRhdGlvblRpbWVy
RHVyYXRpb24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOworICAgIFNlY29u
ZHMgbWluaW11bVJldmFsaWRhdGlvblRpbWVyRHVyYXRpb24gPSBTZWNvbmRzOjppbmZpbml0eSgp
OwogICAgIGJvb2wgbmVlZHNUaWxlUmV2YWxpZGF0aW9uID0gZmFsc2U7CiAgICAgCiAgICAgYXV0
byB0aWxlU2l6ZSA9IG1fY29udHJvbGxlci50aWxlU2l6ZSgpOwpAQCAtNDA0LDcgKzQwNCw3IEBA
IHZvaWQgVGlsZUdyaWQ6OnJldmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeSB2YWxp
ZGF0aW9uUG9saWN5KQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgICAgIGRvdWJsZSB0aW1lVW50aWxDb2hvcnRFeHBpcmVzID0gY29ob3J0LnRpbWVV
bnRpbEV4cGlyYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVVbnRpbENvaG9y
dEV4cGlyZXMgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtUmV2YWxpZGF0
aW9uVGltZXJEdXJhdGlvbiA9IHN0ZDo6bWluKG1pbmltdW1SZXZhbGlkYXRpb25UaW1lckR1cmF0
aW9uLCB0aW1lVW50aWxDb2hvcnRFeHBpcmVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1p
bmltdW1SZXZhbGlkYXRpb25UaW1lckR1cmF0aW9uID0gc3RkOjptaW4obWluaW11bVJldmFsaWRh
dGlvblRpbWVyRHVyYXRpb24sIFNlY29uZHMgeyB0aW1lVW50aWxDb2hvcnRFeHBpcmVzIH0pOwog
ICAgICAgICAgICAgICAgICAgICAgICAgbmVlZHNUaWxlUmV2YWxpZGF0aW9uID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlTGF5
ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDM1YTllYTFhY2JhOTIyYzBiYmUzZjcyNjJhMWNi
MDgxMDQ5NmI0MC4uYTRjNDNhNmI4NWU2Nzc2ZGMxOTkyNTkyN2M4NDdkZjQ4NWNhMGI0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjU0
LDggKzI1NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgcGFnZVNjcm9sbEh5c3RlcmVzaXNTZWNvbmRzID0gMC4z
Owotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgaW5pdGlhbExheWVyVm9s
YXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAyMCB9Owotc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjpz
ZWNvbmRzIG1heGltdW1MYXllclZvbGF0aWxpdHlUaW1lckludGVydmFsIHsgMiB9Oworc3RhdGlj
IGNvbnN0IFNlY29uZHMgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAyMF9t
cyB9Oworc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50
ZXJ2YWwgeyAyX3MgfTsKIAogI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIExheWVycywgX19WQV9BUkdT
X18pCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xP
R19FUlJPUl9JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJzLCBfX1ZBX0FSR1Nf
XykKQEAgLTIxNjQsNyArMjE2NCw3IEBAIHZvaWQgV2ViUGFnZTo6Y2FsbFZvbGF0aWxpdHlDb21w
bGV0aW9uSGFuZGxlcnMoKQogCiB2b2lkIFdlYlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmly
ZWQoKQogewotICAgIGF1dG8gbmV3SW50ZXJ2YWwgPSAyICogbV9sYXllclZvbGF0aWxpdHlUaW1l
ci5yZXBlYXRJbnRlcnZhbE1TKCk7CisgICAgU2Vjb25kcyBuZXdJbnRlcnZhbCA9IG1fbGF5ZXJW
b2xhdGlsaXR5VGltZXIucmVwZWF0SW50ZXJ2YWwoKSAqIDIuOwogICAgIGJvb2wgZGlkU3VjY2Vl
ZCA9IG1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogICAgIGlmIChk
aWRTdWNjZWVkIHx8IG5ld0ludGVydmFsID4gbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50
ZXJ2YWwpIHsKICAgICAgICAgbV9sYXllclZvbGF0aWxpdHlUaW1lci5zdG9wKCk7CkBAIC0yMTcz
LDcgKzIxNzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmxheWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RCgiJXAgLSBXZWJQYWdlIC0gRmFpbGVkIHRvIG1hcmsgYWxsIGxheWVycyBhcyB2b2xhdGlsZSwg
d2lsbCByZXRyeSBpbiAlbGxkIG1zIiwgdGhpcywgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihuZXdJ
bnRlcnZhbC5jb3VudCgpKSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiJXAg
LSBXZWJQYWdlIC0gRmFpbGVkIHRvIG1hcmsgYWxsIGxheWVycyBhcyB2b2xhdGlsZSwgd2lsbCBy
ZXRyeSBpbiAlZyBtcyIsIHRoaXMsIG5ld0ludGVydmFsLnZhbHVlKCkgKiAxMDAwKTsKICAgICBt
X2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0YXJ0UmVwZWF0aW5nKG5ld0ludGVydmFsKTsKIH0KIApA
QCAtMjIwNCw3ICsyMjA0LDcgQEAgdm9pZCBXZWJQYWdlOjptYXJrTGF5ZXJzVm9sYXRpbGUoc3Rk
OjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gRmFpbGVkIHRvIG1hcmsg
YWxsIGxheWVycyBhcyB2b2xhdGlsZSwgd2lsbCByZXRyeSBpbiAlbGxkIG1zIiwgdGhpcywgaW5p
dGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwuY291bnQoKSk7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiJXAgLSBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxl
LCB3aWxsIHJldHJ5IGluICVnIG1zIiwgdGhpcywgaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVy
SW50ZXJ2YWwudmFsdWUoKSAqIDEwMDApOwogICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3Rh
cnRSZXBlYXRpbmcoaW5pdGlhbExheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306568</attachid>
            <date>2017-04-07 22:22:29 -0700</date>
            <delta_ts>2017-04-08 10:09:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170639-20170407222227.patch</filename>
            <type>text/plain</type>
            <size>32955</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNlMDg1MjY3OTI1MzVi
YWU2YWE5NGI0ZmNhYzM5MjI0NWYyZTYyZS4uMWFjYjQyYTc4OGZkNjZlYTNhMWQ3OWU1MTAzMzRk
YTE4OWYyYTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDE3LTA0LTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUlu
dGVydmFsKCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXIncyBuZXh0Rmly
ZUludGVydmFsKCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcywgbm90
IGRvdWJsZS4KKworICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjp1
cGRhdGVUaW1lckludGVydmFsSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBhZ2UvU3VzcGVuZGFi
bGVUaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnJlcGVhdEludGVydmFsKToK
KyAgICAgICAgKiBwYWdlL1N1c3BlbmRhYmxlVGltZXIuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6
OnRpbWVUb05leHRTZXJ2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6Omdl
dFRpbWVUb05leHRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpnb0lu
dG9FbmRpbmdPckxvb3BpbmdTdGF0ZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvblRpbWVyRm9yUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvblRp
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjph
bmltYXRpb25GcmFtZUNhbGxiYWNrRmlyZWQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NT
U0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1h
dGlvbjo6dGltZVRvTmV4dFNlcnZpY2UpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UpOgorICAgICAg
ICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vVGhyZWFkVGltZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZFRpbWVyczo6c2hh
cmVkVGltZXJGaXJlZEludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6Om5leHRGaXJlSW50ZXJ2YWwpOgorICAgICAgICAq
IHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OnJlcGVhdElu
dGVydmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6c2V0SXNJbldpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6c2NoZWR1bGVUaWxlUmV2YWxpZGF0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRpbGVHcmlkOjpyZXZhbGlkYXRlVGlsZXMpOgorCisyMDE3LTA0LTA3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgUkVHUkVTU0lPTiAocjIwMzk0MSk6IGlB
ZCBQcm9kdWNlciB3aWRnZXRzIGZhaWwgdG8gcGxheSBpbiBpQm9va3MKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYzNQogICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzA3OTc5NTg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWE1MWJhOGExMzY4MzdhMjEyNTRhZjll
MjBhOGIxMWExY2FhZGM4OS4uODdjZTcyM2JiN2MxZTU0YTAzZmIyNTEzN2E3MDQ2YjFkYjA2Y2Mz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUludGVydmFsKCkg
LyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjM5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZXIncyBuZXh0RmlyZUludGVydmFs
KCkgLyByZXBlYXRJbnRlcnZhbCgpIHNob3VsZCByZXR1cm4gU2Vjb25kcywgbm90IGRvdWJsZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6Om1hcmtMYXllcnNWb2xhdGlsZSk6CisKIDIwMTctMDQtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgYXVkaXRf
dG9rZW5fdCBpbnN0ZWFkIG9mIHBpZF90IGZvciBjaGVja2luZyBzYW5kYm94IG9mIG90aGVyIHBy
b2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CmluZGV4IDBmMDI5MGMxMTg5ZWZjMWVjN2I2YzAwM2QxYTZlMzU1YWU2MTEyNDcuLmEzOTE4NTE1
YWQ3ZWY4ZTc1ZDYwMDg2NTE5NzNiNjVlZTNhYzY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIG1faGF2ZVRvbGRDbGllbnQgPSB0cnVlOwogCiAgICAgICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1cmVUb0ZvcndhcmQoKSk7Ci0g
ICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRlbGF5KCksIGN1
cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExp
c3QoKSk7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRl
bGF5KCksIGN1cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCkudmFsdWUoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKICAgICB9CiAKICAgICB2b2lkIGRpZFN0b3BUaW1lcihG
cmFtZSYgZnJhbWUsIGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MpIG92ZXJyaWRlCkBAIC0yNzgsNyAr
Mjc4LDcgQEAgcHVibGljOgogICAgICAgICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsKIAogICAg
ICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9G
b3J3YXJkKCkpOwotICAgICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fc3Vi
bWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBjdXJyZW50VGltZSgpICsgdGltZXIubmV4
dEZpcmVJbnRlcnZhbCgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZS5s
b2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxh
eSgpLCBjdXJyZW50VGltZSgpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLnZhbHVlKCksIGxv
Y2tCYWNrRm9yd2FyZExpc3QoKSk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJh
bWUmIGZyYW1lLCBib29sIG5ld0xvYWRJblByb2dyZXNzKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmNwcAppbmRleCA0ODg3NmVjZGUwOTJkZGUzNGNjMDQ2YmU3NjMxODUzYTc1MmEyZGNl
Li5iM2I2OTUzODM5Mzk2NDA0NmUzYzBmNDY3MTA1NTRjM2JmOWYyYTU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRp
bWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXBl
YXRJbnRlcnZhbCgpKSB7Ci0gICAgICAgIEFTU0VSVChyZXBlYXRJbnRlcnZhbFNlY29uZHMoKSA9
PSBwcmV2aW91c0ludGVydmFsKTsKKyAgICAgICAgQVNTRVJUKHJlcGVhdEludGVydmFsKCkgPT0g
cHJldmlvdXNJbnRlcnZhbCk7CiAgICAgICAgIExPRyhET01UaW1lcnMsICIlcCAtIFVwZGF0aW5n
IERPTVRpbWVyJ3MgcmVwZWF0IGludGVydmFsIGZyb20gJS4yZiBtcyB0byAlLjJmIG1zIGR1ZSB0
byB0aHJvdHRsaW5nLiIsIHRoaXMsIHByZXZpb3VzSW50ZXJ2YWwubWlsbGlzZWNvbmRzKCksIG1f
Y3VycmVudFRpbWVySW50ZXJ2YWwubWlsbGlzZWNvbmRzKCkpOwogICAgICAgICBhdWdtZW50UmVw
ZWF0SW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwog
ICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAppbmRl
eCBmYTA4NDlkNDMxMWY0MzMyNTZhN2Q2OWU5YTJkYzIxMmY5NjMxYjc3Li4yODc2Mjg2YzhjMDcx
OGY4MzYyZGFiYzE1ZjJiZjNkNDExZDBmMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVu
ZGFibGVUaW1lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBTdXNwZW5kYWJsZVRpbWVyOjpz
dXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiAgICAgbV9zYXZlZElzQWN0aXZlID0gVGltZXJC
YXNlOjppc0FjdGl2ZSgpOwogICAgIGlmIChtX3NhdmVkSXNBY3RpdmUpIHsKICAgICAgICAgbV9z
YXZlZE5leHRGaXJlSW50ZXJ2YWwgPSBUaW1lckJhc2U6Om5leHRVbmFsaWduZWRGaXJlSW50ZXJ2
YWwoKTsKLSAgICAgICAgbV9zYXZlZFJlcGVhdEludGVydmFsID0gVGltZXJCYXNlOjpyZXBlYXRJ
bnRlcnZhbFNlY29uZHMoKTsKKyAgICAgICAgbV9zYXZlZFJlcGVhdEludGVydmFsID0gVGltZXJC
YXNlOjpyZXBlYXRJbnRlcnZhbCgpOwogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKICAgICB9
CiB9CkBAIC0xMTksMTMgKzExOSwxMyBAQCB2b2lkIFN1c3BlbmRhYmxlVGltZXI6OnN0YXJ0T25l
U2hvdChTZWNvbmRzIGludGVydmFsKQogICAgIH0KIH0KIAotZG91YmxlIFN1c3BlbmRhYmxlVGlt
ZXI6OnJlcGVhdEludGVydmFsKCkgY29uc3QKK1NlY29uZHMgU3VzcGVuZGFibGVUaW1lcjo6cmVw
ZWF0SW50ZXJ2YWwoKSBjb25zdAogewogICAgIGlmICghbV9zdXNwZW5kZWQpCiAgICAgICAgIHJl
dHVybiBUaW1lckJhc2U6OnJlcGVhdEludGVydmFsKCk7CiAgICAgaWYgKG1fc2F2ZWRJc0FjdGl2
ZSkKLSAgICAgICAgcmV0dXJuIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbC52YWx1ZSgpOwotICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbV9zYXZlZFJlcGVhdEludGVydmFsOworICAgIHJldHVy
biAwX3M7CiB9CiAKIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6YXVnbWVudEZpcmVJbnRlcnZhbChT
ZWNvbmRzIGRlbHRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJs
ZVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAppbmRleCBm
MDY3MWQ5MWUzODdiZDM1MzFjNTIwZjEyZmZmY2FlZGJkOGNkZDQ1Li5iMDc5ZTU2MzZmMWI2NTQy
ODJlM2M1OWZiNmMyMjRhNmZhMDE0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1N1c3BlbmRhYmxlVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxl
VGltZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFJlcGVhdGlu
Zyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRpbmcoU2Vjb25kcyB7IHJlcGVh
dEludGVydmFsIH0pOyB9CiAgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7
IHN0YXJ0T25lU2hvdChTZWNvbmRzIHsgaW50ZXJ2YWwgfSk7IH0KIAotICAgIGRvdWJsZSByZXBl
YXRJbnRlcnZhbCgpIGNvbnN0OworICAgIFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdDsK
ICAgICB2b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRGaXJl
SW50ZXJ2YWwoU2Vjb25kcyB7IGRlbHRhIH0pOyB9CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50
ZXJ2YWwoZG91YmxlIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChTZWNvbmRzIHsgZGVs
dGEgfSk7IH0KIApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFJlcGVh
dGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0UmVw
ZWF0aW5nKG1zVG9TZWNvbmRzKHJlcGVhdEludGVydmFsKSk7IH0KICAgICB2b2lkIHN0YXJ0T25l
U2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdCht
c1RvU2Vjb25kcyhpbnRlcnZhbCkpOyB9CiAKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRz
IHJlcGVhdEludGVydmFsTVMoKSBjb25zdCB7IHJldHVybiBzZWNvbmRzVG9NUyhyZXBlYXRJbnRl
cnZhbCgpKTsgfQotICAgIFNlY29uZHMgcmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCkgY29uc3QgeyBy
ZXR1cm4gU2Vjb25kcyB7IHJlcGVhdEludGVydmFsKCkgfTsgfQotCiAgICAgdm9pZCBhdWdtZW50
RmlyZUludGVydmFsKFNlY29uZHMgZGVsdGEpOwogICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVy
dmFsKFNlY29uZHMgZGVsdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGUxNzdmMGQ2ZjhkZTkyZjI5NDNiYTc3ZDE5MzViYTdj
NjFlNDQ0ZDAuLmEwNGUxN2JmMjIzZjRmNzBjYWY5ZmFlNjFhZGJiZjg2MzA4ZTllNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBAIC01
NjQsMTIgKzU2NCwxMiBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVBsYXlTdGF0ZShFQW5p
bVBsYXlTdGF0ZSBwbGF5U3RhdGUpCiAgICAgdXBkYXRlU3RhdGVNYWNoaW5lKHBhdXNlID8gIEFu
aW1hdGlvblN0YXRlSW5wdXQ6OlBsYXlTdGF0ZVBhdXNlZCA6IEFuaW1hdGlvblN0YXRlSW5wdXQ6
OlBsYXlTdGF0ZVJ1bm5pbmcsIC0xKTsKIH0KIAotZG91YmxlIEFuaW1hdGlvbkJhc2U6OnRpbWVU
b05leHRTZXJ2aWNlKCkKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gQW5pbWF0aW9uQmFzZTo6dGlt
ZVRvTmV4dFNlcnZpY2UoKQogewotICAgIC8vIFJldHVybnMgdGhlIHRpbWUgYXQgd2hpY2ggbmV4
dCBzZXJ2aWNlIGlzIHJlcXVpcmVkLiAtMSBtZWFucyBubyBzZXJ2aWNlIGlzIHJlcXVpcmVkLiAw
IG1lYW5zIAorICAgIC8vIFJldHVybnMgdGhlIHRpbWUgYXQgd2hpY2ggbmV4dCBzZXJ2aWNlIGlz
IHJlcXVpcmVkLiBzdGQ6Om51bGxvcHQgbWVhbnMgbm8gc2VydmljZSBpcyByZXF1aXJlZC4gMCBt
ZWFucwogICAgIC8vIHNlcnZpY2UgaXMgcmVxdWlyZWQgbm93LCBhbmQgPiAwIG1lYW5zIHNlcnZp
Y2UgaXMgcmVxdWlyZWQgdGhhdCBtYW55IHNlY29uZHMgaW4gdGhlIGZ1dHVyZS4KICAgICBpZiAo
cGF1c2VkKCkgfHwgaXNOZXcoKSB8fCBwb3N0QWN0aXZlKCkgfHwgZmlsbGluZ0ZvcndhcmRzKCkp
Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAK
ICAgICBpZiAobV9hbmltYXRpb25TdGF0ZSA9PSBBbmltYXRpb25TdGF0ZTo6U3RhcnRXYWl0VGlt
ZXIpIHsKICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKQEAgLTU3OCwxOSArNTc4
LDE5IEBAIGRvdWJsZSBBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSgpCiAgICAgICAg
ICAgICAgICAgZmxvYXQgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gbV9vYmplY3QtPnZpZXcoKS5m
cmFtZVZpZXcoKS5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKS55KCkudG9GbG9hdCgp
OwogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbFRyaWdnZXIgPSBkb3duY2FzdDxTY3JvbGxB
bmltYXRpb25UcmlnZ2VyPigqbV9hbmltYXRpb24tPnRyaWdnZXIoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+PSBzY3JvbGxUcmlnZ2VyLnN0YXJ0VmFsdWUo
KS52YWx1ZSgpICYmICghc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgpIHx8IGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbiA8PSBzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkudmFsdWUoKSkpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMF9zOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGRvdWJsZSB0aW1lRnJv
bU5vdyA9IG1fYW5pbWF0aW9uLT5kZWxheSgpIC0gKGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgp
IC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUpOwotICAgICAgICByZXR1cm4gc3RkOjptYXgodGltZUZy
b21Ob3csIDAuMCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1heChTZWNvbmRzIHsgdGltZUZyb21O
b3cgfSwgMF9zKTsKICAgICB9CiAgICAgCiAgICAgZmlyZUFuaW1hdGlvbkV2ZW50c0lmTmVlZGVk
KCk7CiAgICAgICAgIAogICAgIC8vIEluIGFsbCBvdGhlciBjYXNlcywgd2UgbmVlZCBzZXJ2aWNl
IHJpZ2h0IGF3YXkuCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDBfczsKIH0KIAogLy8gQ29t
cHV0ZSB0aGUgZnJhY3Rpb25hbCB0aW1lLCB0YWtpbmcgaW50byBhY2NvdW50IGRpcmVjdGlvbi4K
QEAgLTY3NSw3ICs2NzUsNyBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6cHJvZ3Jlc3MoZG91Ymxl
IHNjYWxlLCBkb3VibGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbgogICAgIHJldHVybiAw
OwogfQogCi12b2lkIEFuaW1hdGlvbkJhc2U6OmdldFRpbWVUb05leHRFdmVudChkb3VibGUmIHRp
bWUsIGJvb2wmIGlzTG9vcGluZykgY29uc3QKK3ZvaWQgQW5pbWF0aW9uQmFzZTo6Z2V0VGltZVRv
TmV4dEV2ZW50KFNlY29uZHMmIHRpbWUsIGJvb2wmIGlzTG9vcGluZykgY29uc3QKIHsKICAgICAv
LyBEZWNpZGUgd2hlbiB0aGUgZW5kIG9yIGxvb3AgZXZlbnQgbmVlZHMgdG8gZmlyZQogICAgIGNv
bnN0IGRvdWJsZSBlbGFwc2VkRHVyYXRpb24gPSBzdGQ6Om1heChiZWdpbkFuaW1hdGlvblVwZGF0
ZVRpbWUoKSAtIG1fc3RhcnRUaW1lLCAwLjApOwpAQCAtNjk2LDEyICs2OTYsMTIgQEAgdm9pZCBB
bmltYXRpb25CYXNlOjpnZXRUaW1lVG9OZXh0RXZlbnQoZG91YmxlJiB0aW1lLCBib29sJiBpc0xv
b3BpbmcpIGNvbnN0CiAgICAgICAgIGlzTG9vcGluZyA9IGZhbHNlOwogICAgIH0KICAgICAKLSAg
ICB0aW1lID0gZHVyYXRpb25MZWZ0OworICAgIHRpbWUgPSBTZWNvbmRzIHsgZHVyYXRpb25MZWZ0
IH07CiB9CiAKIHZvaWQgQW5pbWF0aW9uQmFzZTo6Z29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUo
KQogewotICAgIGRvdWJsZSB0OworICAgIFNlY29uZHMgdDsKICAgICBib29sIGlzTG9vcGluZzsK
ICAgICBnZXRUaW1lVG9OZXh0RXZlbnQodCwgaXNMb29waW5nKTsKICAgICBMT0coQW5pbWF0aW9u
cywgIiVwIEFuaW1hdGlvblN0YXRlICVzIC0+ICVzIiwgdGhpcywgbmFtZUZvclN0YXRlKG1fYW5p
bWF0aW9uU3RhdGUpLCBpc0xvb3BpbmcgPyAiTG9vcGluZyIgOiAiRW5kaW5nIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggMmRkMGMzMDll
MDU4MmYzNWNmOTM2ZjUwYWNkOWMxYWMzNDE2MzU1ZS4uNzY5MGM5MWRkY2RhZGZkNTg3Y2UwYmY2
ZWU1ZmUxYjY2Yzg3ODA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNB
Y2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlbGVyYXRlZDsgfQogCi0gICAgdmly
dHVhbCBkb3VibGUgdGltZVRvTmV4dFNlcnZpY2UoKTsKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UoKTsKIAogICAgIGRvdWJsZSBwcm9ncmVzcyhk
b3VibGUgc2NhbGUgPSAxLCBkb3VibGUgb2Zmc2V0ID0gMCwgY29uc3QgVGltaW5nRnVuY3Rpb24q
ID0gbnVsbHB0cikgY29uc3Q7CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICBzdGF0aWMgdm9pZCBzZXROZWVkc1N0eWxlUmVjYWxjKEVsZW1lbnQqKTsKICAgICAKLSAgICB2
b2lkIGdldFRpbWVUb05leHRFdmVudChkb3VibGUmIHRpbWUsIGJvb2wmIGlzTG9vcGluZykgY29u
c3Q7CisgICAgdm9pZCBnZXRUaW1lVG9OZXh0RXZlbnQoU2Vjb25kcyYgdGltZSwgYm9vbCYgaXNM
b29waW5nKSBjb25zdDsKIAogICAgIGRvdWJsZSBmcmFjdGlvbmFsVGltZShkb3VibGUgc2NhbGUs
IGRvdWJsZSBlbGFwc2VkVGltZSwgZG91YmxlIG9mZnNldCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKaW5kZXggMGE3ZTUxZmQ1OTBkM2M4MzBkMzczM2Y2ZjRhZjViN2YzMWVhZjQwZi4uYTUzY2Nl
N2ZhZGRiMGU1NjQ0N2VlZWRmYmYwMjI1ZjMyNjRjMDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTEyMywxOSArMTIzLDE5IEBAIGJvb2wgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNs
ZWFyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIHJldHVybiBhbmltYXRpb24tPmlzU3Vz
cGVuZGVkKCk7CiB9CiAKLWRvdWJsZSBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBk
YXRlQW5pbWF0aW9ucyhTZXRDaGFuZ2VkIGNhbGxTZXRDaGFuZ2VkLyogPSBEb05vdENhbGxTZXRD
aGFuZ2VkKi8pCitzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjp1cGRhdGVBbmltYXRpb25zKFNldENoYW5nZWQgY2FsbFNldENoYW5nZWQvKiA9IERv
Tm90Q2FsbFNldENoYW5nZWQqLykKIHsKICAgICBBbmltYXRpb25Qcml2YXRlVXBkYXRlQmxvY2sg
dXBkYXRlQmxvY2soKnRoaXMpOwotICAgIGRvdWJsZSB0aW1lVG9OZXh0U2VydmljZSA9IC0xOwor
ICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2U7CiAgICAgYm9vbCBj
YWxsZWRTZXRDaGFuZ2VkID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGNvbXBvc2l0ZUFuaW1h
dGlvbiA6IG1fY29tcG9zaXRlQW5pbWF0aW9ucykgewogICAgICAgICBDb21wb3NpdGVBbmltYXRp
b24mIGFuaW1hdGlvbiA9ICpjb21wb3NpdGVBbmltYXRpb24udmFsdWU7CiAgICAgICAgIGlmICgh
YW5pbWF0aW9uLmlzU3VzcGVuZGVkKCkgJiYgYW5pbWF0aW9uLmhhc0FuaW1hdGlvbnMoKSkgewot
ICAgICAgICAgICAgZG91YmxlIHQgPSBhbmltYXRpb24udGltZVRvTmV4dFNlcnZpY2UoKTsKLSAg
ICAgICAgICAgIGlmICh0ICE9IC0xICYmICh0IDwgdGltZVRvTmV4dFNlcnZpY2UgfHwgdGltZVRv
TmV4dFNlcnZpY2UgPT0gLTEpKQotICAgICAgICAgICAgICAgIHRpbWVUb05leHRTZXJ2aWNlID0g
dDsKLSAgICAgICAgICAgIGlmICghdGltZVRvTmV4dFNlcnZpY2UpIHsKKyAgICAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdCA9IGFuaW1hdGlvbi50aW1lVG9OZXh0U2VydmljZSgpOwor
ICAgICAgICAgICAgaWYgKHQgJiYgKCF0aW1lVG9OZXh0U2VydmljZSB8fCB0LnZhbHVlKCkgPCB0
aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpKSkKKyAgICAgICAgICAgICAgICB0aW1lVG9OZXh0U2Vy
dmljZSA9IHQudmFsdWUoKTsKKyAgICAgICAgICAgIGlmICh0aW1lVG9OZXh0U2VydmljZSAmJiB0
aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpID09IDBfcykgewogICAgICAgICAgICAgICAgIGlmIChj
YWxsU2V0Q2hhbmdlZCAhPSBDYWxsU2V0Q2hhbmdlZCkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGNvbXBvc2l0ZUFuaW1hdGlv
bi5rZXktPmVsZW1lbnQoKTsKQEAgLTE1NSw0NCArMTU1LDQ3IEBAIGRvdWJsZSBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlQW5pbWF0aW9ucyhTZXRDaGFuZ2VkIGNhbGxTZXRD
aGFuZ2VkCiAKIHZvaWQgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1h
dGlvblRpbWVyRm9yUmVuZGVyZXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7Ci0gICAgZG91
YmxlIHRpbWVUb05leHRTZXJ2aWNlID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHRp
bWVUb05leHRTZXJ2aWNlOwogCiAgICAgY29uc3QgQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3Np
dGVBbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuZ2V0KCZyZW5kZXJlcik7CiAgICAg
aWYgKCFjb21wb3NpdGVBbmltYXRpb24tPmlzU3VzcGVuZGVkKCkgJiYgY29tcG9zaXRlQW5pbWF0
aW9uLT5oYXNBbmltYXRpb25zKCkpCiAgICAgICAgIHRpbWVUb05leHRTZXJ2aWNlID0gY29tcG9z
aXRlQW5pbWF0aW9uLT50aW1lVG9OZXh0U2VydmljZSgpOwogCi0gICAgaWYgKG1fYW5pbWF0aW9u
VGltZXIuaXNBY3RpdmUoKSAmJiAobV9hbmltYXRpb25UaW1lci5yZXBlYXRJbnRlcnZhbCgpIHx8
IG1fYW5pbWF0aW9uVGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDw9IHRpbWVUb05leHRTZXJ2aWNl
KSkKKyAgICBpZiAoIXRpbWVUb05leHRTZXJ2aWNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2FuaW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9OZXh0U2VydmljZSk7CisgICAgaWYg
KG1fYW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSAmJiAobV9hbmltYXRpb25UaW1lci5yZXBlYXRJ
bnRlcnZhbCgpIHx8IG1fYW5pbWF0aW9uVGltZXIubmV4dEZpcmVJbnRlcnZhbCgpIDw9IHRpbWVU
b05leHRTZXJ2aWNlLnZhbHVlKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FuaW1hdGlv
blRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9OZXh0U2VydmljZS52YWx1ZSgpKTsKIH0KIAogdm9p
ZCBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRlQW5pbWF0aW9uVGltZXIoU2V0
Q2hhbmdlZCBjYWxsU2V0Q2hhbmdlZC8qID0gRG9Ob3RDYWxsU2V0Q2hhbmdlZCovKQogewotICAg
IGRvdWJsZSB0aW1lVG9OZXh0U2VydmljZSA9IHVwZGF0ZUFuaW1hdGlvbnMoY2FsbFNldENoYW5n
ZWQpOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UgPSB1cGRh
dGVBbmltYXRpb25zKGNhbGxTZXRDaGFuZ2VkKTsKIAotICAgIExPRyhBbmltYXRpb25zLCAidXBk
YXRlQW5pbWF0aW9uVGltZXI6IHRpbWVUb05leHRTZXJ2aWNlIGlzICUuMmYiLCB0aW1lVG9OZXh0
U2VydmljZSk7CisgICAgTE9HKEFuaW1hdGlvbnMsICJ1cGRhdGVBbmltYXRpb25UaW1lcjogdGlt
ZVRvTmV4dFNlcnZpY2UgaXMgJS4yZiIsIHRpbWVUb05leHRTZXJ2aWNlLnZhbHVlX29yKFNlY29u
ZHMgeyAtMSB9KS52YWx1ZSgpKTsKIAotICAgIC8vIElmIHdlIHdhbnQgc2VydmljZSBpbW1lZGlh
dGVseSwgd2Ugc3RhcnQgYSByZXBlYXRpbmcgdGltZXIgdG8gcmVkdWNlIHRoZSBvdmVyaGVhZCBv
ZiBzdGFydGluZworICAgIC8vIElmIHdlIGRvbid0IG5lZWQgc2VydmljZSwgd2Ugd2FudCB0byBt
YWtlIHN1cmUgdGhlIHRpbWVyIGlzIG5vIGxvbmdlciBydW5uaW5nCiAgICAgaWYgKCF0aW1lVG9O
ZXh0U2VydmljZSkgeworICAgICAgICBpZiAobV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpKQor
ICAgICAgICAgICAgbV9hbmltYXRpb25UaW1lci5zdG9wKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBJZiB3ZSB3YW50IHNlcnZpY2UgaW1tZWRpYXRlbHksIHdlIHN0YXJ0IGEg
cmVwZWF0aW5nIHRpbWVyIHRvIHJlZHVjZSB0aGUgb3ZlcmhlYWQgb2Ygc3RhcnRpbmcKKyAgICBp
ZiAoIXRpbWVUb05leHRTZXJ2aWNlLnZhbHVlKCkpIHsKICAgICAgICAgYXV0byogcGFnZSA9IG1f
ZnJhbWUucGFnZSgpOwogICAgICAgICBib29sIHNob3VsZFRocm90dGxlID0gcGFnZSAmJiBwYWdl
LT5pc0xvd1Bvd2VyTW9kZUVuYWJsZWQoKTsKICAgICAgICAgU2Vjb25kcyBkZWxheSA9IHNob3Vs
ZFRocm90dGxlID8gYW5pbWF0aW9uVGltZXJUaHJvdHRsZWREZWxheSA6IGFuaW1hdGlvblRpbWVy
RGVsYXk7CiAKLSAgICAgICAgaWYgKCFtX2FuaW1hdGlvblRpbWVyLmlzQWN0aXZlKCkgfHwgbV9h
bmltYXRpb25UaW1lci5yZXBlYXRJbnRlcnZhbCgpICE9IGRlbGF5LnZhbHVlKCkpCisgICAgICAg
IGlmICghbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpIHx8IG1fYW5pbWF0aW9uVGltZXIucmVw
ZWF0SW50ZXJ2YWwoKSAhPSBkZWxheSkKICAgICAgICAgICAgIG1fYW5pbWF0aW9uVGltZXIuc3Rh
cnRSZXBlYXRpbmcoZGVsYXkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gSWYg
d2UgZG9uJ3QgbmVlZCBzZXJ2aWNlLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdGltZXIgaXMg
bm8gbG9uZ2VyIHJ1bm5pbmcKLSAgICBpZiAodGltZVRvTmV4dFNlcnZpY2UgPCAwKSB7Ci0gICAg
ICAgIGlmIChtX2FuaW1hdGlvblRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2FuaW1h
dGlvblRpbWVyLnN0b3AoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIE90aGVy
d2lzZSwgd2Ugd2FudCB0byBzdGFydCBhIG9uZS1zaG90IHRpbWVyIHNvIHdlIGdldCBoZXJlIGFn
YWluCi0gICAgbV9hbmltYXRpb25UaW1lci5zdGFydE9uZVNob3QodGltZVRvTmV4dFNlcnZpY2Up
OworICAgIG1fYW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KHRpbWVUb05leHRTZXJ2aWNlLnZh
bHVlKCkpOwogfQogCiB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjp1cGRhdGVT
dHlsZUlmTmVlZGVkRGlzcGF0Y2hlckZpcmVkKCkKQEAgLTI0Nyw5ICsyNTAsOSBAQCB2b2lkIENT
U0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChF
bGVtZW50JiBlbGVtZW50KQogCiB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjph
bmltYXRpb25GcmFtZUNhbGxiYWNrRmlyZWQoKQogewotICAgIGRvdWJsZSB0aW1lVG9OZXh0U2Vy
dmljZSA9IHVwZGF0ZUFuaW1hdGlvbnMoQ2FsbFNldENoYW5nZWQpOworICAgIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gdGltZVRvTmV4dFNlcnZpY2UgPSB1cGRhdGVBbmltYXRpb25zKENhbGxTZXRD
aGFuZ2VkKTsKIAotICAgIGlmICh0aW1lVG9OZXh0U2VydmljZSA+PSAwKQorICAgIGlmICh0aW1l
VG9OZXh0U2VydmljZSkKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT52aWV3KCktPnNjaGVk
dWxlQW5pbWF0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IDRjNDhh
ZDY3NjFhY2UxNjhmZTZhM2JiMDRkNTM5Mzc3YWEwYjFjMzIuLjk1NWE4ODdjNzFiMDFhZDM3YzM4
NGU0MGQ3YzAzNzg2MzJiMWU4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAgICAgfkNTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKCk7
CiAKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IGFuaW1hdGlvbiBuZWVk
cyB0byBiZSBzZXJ2aWNlZCwgb3IgLTEgaWYgdGhlcmUgYXJlIG5vbmUuCi0gICAgZG91YmxlIHVw
ZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWxsU2V0Q2hhbmdlZCA9IERvTm90Q2FsbFNldENo
YW5nZWQpOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdXBkYXRlQW5pbWF0aW9ucyhTZXRD
aGFuZ2VkIGNhbGxTZXRDaGFuZ2VkID0gRG9Ob3RDYWxsU2V0Q2hhbmdlZCk7CiAgICAgdm9pZCB1
cGRhdGVBbmltYXRpb25UaW1lcihTZXRDaGFuZ2VkIGNhbGxTZXRDaGFuZ2VkID0gRG9Ob3RDYWxs
U2V0Q2hhbmdlZCk7CiAKICAgICBDb21wb3NpdGVBbmltYXRpb24mIGVuc3VyZUNvbXBvc2l0ZUFu
aW1hdGlvbihSZW5kZXJFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCBkMTY4NGVlOWE2Nzk0NjU4ZDY5
MTQyZDVmMTZkYzgxOGNhYjJkMjFlLi5kYWRkZGE0YjkyODNlODM3NjgzMWU5YmE3YjQ5MzE4NTNh
M2Q1OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3Np
dGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTM2NiwzMyArMzY2LDMzIEBAIHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJTdHlsZT4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlKCkgY29uc3QK
ICAgICByZXR1cm4gcmVzdWx0U3R5bGU7CiB9CiAKLWRvdWJsZSBDb21wb3NpdGVBbmltYXRpb246
OnRpbWVUb05leHRTZXJ2aWNlKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gQ29tcG9z
aXRlQW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSgpIGNvbnN0CiB7Ci0gICAgLy8gUmV0dXJu
cyB0aGUgdGltZSBhdCB3aGljaCBuZXh0IHNlcnZpY2UgaXMgcmVxdWlyZWQuIC0xIG1lYW5zIG5v
IHNlcnZpY2UgaXMgcmVxdWlyZWQuIDAgbWVhbnMgCisgICAgLy8gUmV0dXJucyB0aGUgdGltZSBh
dCB3aGljaCBuZXh0IHNlcnZpY2UgaXMgcmVxdWlyZWQuIHN0ZDo6bnVsbG9wdCBtZWFucyBubyBz
ZXJ2aWNlIGlzIHJlcXVpcmVkLiAwIG1lYW5zCiAgICAgLy8gc2VydmljZSBpcyByZXF1aXJlZCBu
b3csIGFuZCA+IDAgbWVhbnMgc2VydmljZSBpcyByZXF1aXJlZCB0aGF0IG1hbnkgc2Vjb25kcyBp
biB0aGUgZnV0dXJlLgotICAgIGRvdWJsZSBtaW5UID0gLTE7CisgICAgc3RkOjpvcHRpb25hbDxT
ZWNvbmRzPiBtaW5UOwogICAgIAogICAgIGlmICghbV90cmFuc2l0aW9ucy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgZm9yIChhdXRvJiB0cmFuc2l0aW9uIDogbV90cmFuc2l0aW9ucy52YWx1ZXMoKSkg
ewotICAgICAgICAgICAgZG91YmxlIHQgPSB0cmFuc2l0aW9uLT50aW1lVG9OZXh0U2VydmljZSgp
OwotICAgICAgICAgICAgaWYgKHQgPT0gLTEpCisgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPFNl
Y29uZHM+IHQgPSB0cmFuc2l0aW9uLT50aW1lVG9OZXh0U2VydmljZSgpOworICAgICAgICAgICAg
aWYgKCF0KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHQgPCBt
aW5UIHx8IG1pblQgPT0gLTEpCi0gICAgICAgICAgICAgICAgbWluVCA9IHQ7Ci0gICAgICAgICAg
ICBpZiAobWluVCA9PSAwKQotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAg
aWYgKCFtaW5UIHx8IHQudmFsdWUoKSA8IG1pblQudmFsdWUoKSkKKyAgICAgICAgICAgICAgICBt
aW5UID0gdC52YWx1ZSgpOworICAgICAgICAgICAgaWYgKG1pblQudmFsdWUoKSA9PSAwX3MpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIDBfczsKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoIW1f
a2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKSkgewogICAgICAgICBtX2tleWZyYW1lQW5pbWF0
aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDog
bV9rZXlmcmFtZUFuaW1hdGlvbnMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGRvdWJsZSB0ID0g
YW5pbWF0aW9uLT50aW1lVG9OZXh0U2VydmljZSgpOwotICAgICAgICAgICAgaWYgKHQgPT0gLTEp
CisgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHQgPSBhbmltYXRpb24tPnRpbWVU
b05leHRTZXJ2aWNlKCk7CisgICAgICAgICAgICBpZiAoIXQpCiAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBpZiAodCA8IG1pblQgfHwgbWluVCA9PSAtMSkKLSAgICAgICAg
ICAgICAgICBtaW5UID0gdDsKLSAgICAgICAgICAgIGlmIChtaW5UID09IDApCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAoIW1pblQgfHwgdC52YWx1ZSgpIDwgbWlu
VC52YWx1ZSgpKQorICAgICAgICAgICAgICAgIG1pblQgPSB0LnZhbHVlKCk7CisgICAgICAgICAg
ICBpZiAobWluVC52YWx1ZSgpID09IDBfcykKKyAgICAgICAgICAgICAgICByZXR1cm4gMF9zOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IGYyYjc3OThhNzA5OTA4NzhiODdmMjc5NGMyMDcz
MjEwYjQ4YzQzZTkuLjUzNDJjN2RlMDBmNmJiYTljMTA5NTQ4Y2I3NTVjZmUyOTMxNTQ1ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IGdldEFuaW1hdGVkU3R5bGUoKSBjb25zdDsKICAgICBib29sIGNvbXB1dGVFeHRlbnRP
ZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0JikgY29uc3Q7CiAKLSAgICBkb3VibGUgdGlt
ZVRvTmV4dFNlcnZpY2UoKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHRpbWVU
b05leHRTZXJ2aWNlKCkgY29uc3Q7CiAgICAgCiAgICAgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUmIGFuaW1hdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvbkNv
bnRyb2xsZXI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
SW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1w
bGljaXRBbmltYXRpb24uY3BwCmluZGV4IDkyNGViNGIzNWQyN2ZmYjBiMzQxMDc2MmQ2ZjgyNzA5
YTE4Njg1YmUuLjEzOTc2YWY3MTYzNjVkZDBmMzY4NGFmMDY3Yzc5YzNkZTU0OGMzMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5j
cHAKQEAgLTMxNSwxNyArMzE1LDE3IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9y
TWF0Y2hpbmdCYWNrZHJvcEZpbHRlckZ1bmN0aW9uTGlzdHMoKQogfQogI2VuZGlmCiAKLWRvdWJs
ZSBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQorc3RkOjpvcHRpb25hbDxT
ZWNvbmRzPiBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQogewotICAgIGRv
dWJsZSB0ID0gQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZpY2UoKTsKLSAgICBpZiAodCAh
PSAwIHx8IHByZUFjdGl2ZSgpKQorICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gdCA9IEFuaW1h
dGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKCk7CisgICAgaWYgKCF0IHx8IHQudmFsdWUoKSAh
PSAwX3MgfHwgcHJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybiB0OwotICAgICAgICAKKwogICAg
IC8vIEEgcmV0dXJuIHZhbHVlIG9mIDAgbWVhbnMgd2UgbmVlZCBzZXJ2aWNlLiBCdXQgaWYgdGhp
cyBpcyBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24gd2UgCiAgICAgLy8gb25seSBuZWVkIHNlcnZp
Y2UgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNpdGlvbi4KICAgICBpZiAoQ1NTUHJvcGVydHlBbmlt
YXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKG1fYW5pbWF0aW5nUHJvcGVy
dHkpICYmIGlzQWNjZWxlcmF0ZWQoKSkgewogICAgICAgICBib29sIGlzTG9vcGluZzsKLSAgICAg
ICAgZ2V0VGltZVRvTmV4dEV2ZW50KHQsIGlzTG9vcGluZyk7CisgICAgICAgIGdldFRpbWVUb05l
eHRFdmVudCh0LnZhbHVlKCksIGlzTG9vcGluZyk7CiAgICAgfQogICAgIHJldHVybiB0OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgK
aW5kZXggOTQ0NzQxN2IwMWRjMTgwYzc4MWI0YWI2ZDhhMjcwMzRmYjU0NDkxMC4uOGUxNzE5NThk
MTRkM2U5OTc5OTY5OGJiZjQ1ZjNmNzUxMjk2ODQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC03MCw3ICs3MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgYmxlbmRQcm9wZXJ0eVZhbHVlSW5TdHlsZShDU1NQcm9wZXJ0eUlE
LCBSZW5kZXJTdHlsZSopOwogCi0gICAgZG91YmxlIHRpbWVUb05leHRTZXJ2aWNlKCkgb3ZlcnJp
ZGU7CisgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0aW1lVG9OZXh0U2VydmljZSgpIG92ZXJy
aWRlOwogICAgIAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0K
ICAgICB2b2lkIHNldEFjdGl2ZShib29sIGIpIHsgbV9hY3RpdmUgPSBiOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXgg
N2U0ZGE2ZDhlNDhlOThmMTQ4M2EyMGZhYzViNTUwNDBlZjljY2YwYy4uNGZmZjExY2Y3NzM3MjM5
NTY2NWEyMWE3OWJiNzEyNzdjODE0MDQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtNDkwLDE0ICs0OTAsMTQgQEAg
dm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JNYXRjaGluZ0JhY2tkcm9wRmlsdGVyRnVu
Y3Rpb25MaXN0cygpCiB9CiAjZW5kaWYKIAotZG91YmxlIEtleWZyYW1lQW5pbWF0aW9uOjp0aW1l
VG9OZXh0U2VydmljZSgpCitzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IEtleWZyYW1lQW5pbWF0aW9u
Ojp0aW1lVG9OZXh0U2VydmljZSgpCiB7Ci0gICAgZG91YmxlIHQgPSBBbmltYXRpb25CYXNlOjp0
aW1lVG9OZXh0U2VydmljZSgpOwotICAgIGlmICh0ICE9IDAgfHwgcHJlQWN0aXZlKCkpCisgICAg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0ID0gQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZp
Y2UoKTsKKyAgICBpZiAoIXQgfHwgdC52YWx1ZSgpICE9IDBfcyB8fCBwcmVBY3RpdmUoKSkKICAg
ICAgICAgcmV0dXJuIHQ7Ci0gICAgICAgIAorCiAgICAgLy8gQSByZXR1cm4gdmFsdWUgb2YgMCBt
ZWFucyB3ZSBuZWVkIHNlcnZpY2UuIEJ1dCBpZiB3ZSBvbmx5IGhhdmUgYWNjZWxlcmF0ZWQgYW5p
bWF0aW9ucyB3ZSAKLSAgICAvLyBvbmx5IG5lZWQgc2VydmljZSBhdCB0aGUgZW5kIG9mIHRoZSB0
cmFuc2l0aW9uCisgICAgLy8gb25seSBuZWVkIHNlcnZpY2UgYXQgdGhlIGVuZCBvZiB0aGUgdHJh
bnNpdGlvbi4KICAgICBib29sIGFjY2VsZXJhdGVkUHJvcGVydGllc09ubHkgPSB0cnVlOwogICAg
IAogICAgIGZvciAoYXV0byBwcm9wZXJ0eUlEIDogbV9rZXlmcmFtZXMucHJvcGVydGllcygpKSB7
CkBAIC01MDksNyArNTA5LDcgQEAgZG91YmxlIEtleWZyYW1lQW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSgpCiAKICAgICBpZiAoYWNjZWxlcmF0ZWRQcm9wZXJ0aWVzT25seSkgewogICAgICAg
ICBib29sIGlzTG9vcGluZzsKLSAgICAgICAgZ2V0VGltZVRvTmV4dEV2ZW50KHQsIGlzTG9vcGlu
Zyk7CisgICAgICAgIGdldFRpbWVUb05leHRFdmVudCh0LnZhbHVlKCksIGlzTG9vcGluZyk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uaAppbmRleCAwYWI5ODJiYTg5NmZjYmNiNjEwOTAzMjE3OWFk
OTJlMWI0MWUyYThlLi40ZTAwMGExMzk4MjYwODBmZDlhZTZlYWQ1ZTNhNDRjMjg2ZGNjZDEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9u
LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VW5hbmltYXRlZFN0eWxl
KHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV91bmFuaW1hdGVkU3R5bGUg
PSBXVEZNb3ZlKHN0eWxlKTsgfQogICAgIFJlbmRlclN0eWxlKiB1bmFuaW1hdGVkU3R5bGUoKSBj
b25zdCB7IHJldHVybiBtX3VuYW5pbWF0ZWRTdHlsZS5nZXQoKTsgfQogCi0gICAgZG91YmxlIHRp
bWVUb05leHRTZXJ2aWNlKCkgb3ZlcnJpZGU7CisgICAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiB0
aW1lVG9OZXh0U2VydmljZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBvbkFu
aW1hdGlvblN0YXJ0KGRvdWJsZSBlbGFwc2VkVGltZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhyZWFkVGltZXJzLmNwcAppbmRleCBiYzNhODE4NjdlYTM2ZDNhMDc5NDVkMTlk
MGNlNmNhZGI0NWM5NTdhLi5mNjY1NTM0NmJhN2M0ZTM1OWQ4ZjJiYWJlYmQzMzc5Zjc2MDU2MDhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKQEAgLTExMSw3ICsx
MTEsNyBAQCB2b2lkIFRocmVhZFRpbWVyczo6c2hhcmVkVGltZXJGaXJlZEludGVybmFsKCkKICAg
ICAgICAgdGltZXItPm1fdW5hbGlnbmVkTmV4dEZpcmVUaW1lID0gTW9ub3RvbmljVGltZSB7IH07
CiAgICAgICAgIHRpbWVyLT5oZWFwRGVsZXRlTWluKCk7CiAKLSAgICAgICAgU2Vjb25kcyBpbnRl
cnZhbCA9IHRpbWVyLT5yZXBlYXRJbnRlcnZhbFNlY29uZHMoKTsKKyAgICAgICAgU2Vjb25kcyBp
bnRlcnZhbCA9IHRpbWVyLT5yZXBlYXRJbnRlcnZhbCgpOwogICAgICAgICB0aW1lci0+c2V0TmV4
dEZpcmVUaW1lKGludGVydmFsID8gZmlyZVRpbWUgKyBpbnRlcnZhbCA6IE1vbm90b25pY1RpbWUg
eyB9KTsKIAogICAgICAgICAvLyBPbmNlIHRoZSB0aW1lciBoYXMgYmVlbiBmaXJlZCwgaXQgbWF5
IGJlIGRlbGV0ZWQsIHNvIGRvIG5vdGhpbmcgZWxzZSB3aXRoIGl0IGFmdGVyIHRoaXMgcG9pbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKaW5kZXggY2VlYTY5MmViNzQ5ZDNhZjk1ZjU2Mjcz
ZDc3MzUyMGZiOGM2MzNkNC4uOWNjYjQwMjFmNTAzMzc4YTg2MjI0ZTRhNmQ3NTFkYTQ4YTkzMjY3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcApAQCAtMjIxLDEzICsyMjEsMTMgQEAgdm9p
ZCBUaW1lckJhc2U6OnN0b3AoKQogICAgIEFTU0VSVCghaW5IZWFwKCkpOwogfQogCi1kb3VibGUg
VGltZXJCYXNlOjpuZXh0RmlyZUludGVydmFsKCkgY29uc3QKK1NlY29uZHMgVGltZXJCYXNlOjpu
ZXh0RmlyZUludGVydmFsKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNBY3RpdmUoKSk7CiAgICAg
TW9ub3RvbmljVGltZSBjdXJyZW50ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgaWYgKG1f
bmV4dEZpcmVUaW1lIDwgY3VycmVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuICht
X25leHRGaXJlVGltZSAtIGN1cnJlbnQpLnZhbHVlKCk7CisgICAgICAgIHJldHVybiAwX3M7Cisg
ICAgcmV0dXJuIG1fbmV4dEZpcmVUaW1lIC0gY3VycmVudDsKIH0KIAogaW5saW5lIHZvaWQgVGlt
ZXJCYXNlOjpjaGVja0hlYXBJbmRleCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAppbmRl
eCA2MzA3MmM3YTU5NGM0ZWE4ZTFkZGIwY2E4ZTBmOGE5ZTc5MGY4MDlmLi5lNjQyYTVjMmY0OWVi
NmJiZDllZTdjMjU0ODkyZTU5N2ViOWVlNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAg
LTcwLDExICs3MCw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoKTsK
ICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CiAKLSAgICBkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCgpIGNvbnN0OyAvLyBGSVhNRTogU2hvdWxkIHJldHVybiBTZWNvbmRzLgorICAgIFNlY29uZHMg
bmV4dEZpcmVJbnRlcnZhbCgpIGNvbnN0OwogICAgIFNlY29uZHMgbmV4dFVuYWxpZ25lZEZpcmVJ
bnRlcnZhbCgpIGNvbnN0OwotICAgIGRvdWJsZSByZXBlYXRJbnRlcnZhbCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwZWF0SW50ZXJ2YWwudmFsdWUoKTsgfSAvLyBGSVhNRTogU2hvdWxkIHJldHVybiBT
ZWNvbmRzLgotICAgIFNlY29uZHMgcmVwZWF0SW50ZXJ2YWxTZWNvbmRzKCkgY29uc3QgeyByZXR1
cm4gbV9yZXBlYXRJbnRlcnZhbDsgfSAvLyBGSVhNRTogUmVtb3ZlIG9uY2UgcmVwZWF0SW50ZXJ2
YWwoKSByZXR1cm5zIFNlY29uZHMuCi0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBl
YXRJbnRlcnZhbE1TKCkgY29uc3QgeyByZXR1cm4gc2Vjb25kc1RvTVMocmVwZWF0SW50ZXJ2YWwo
KSk7IH0KKyAgICBTZWNvbmRzIHJlcGVhdEludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9yZXBl
YXRJbnRlcnZhbDsgfQogCiAgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKFNlY29uZHMgZGVs
dGEpIHsgc2V0TmV4dEZpcmVUaW1lKG1fbmV4dEZpcmVUaW1lICsgZGVsdGEpOyB9CiAgICAgdm9p
ZCBhdWdtZW50RmlyZUludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsg
YXVnbWVudEZpcmVJbnRlcnZhbChtc1RvU2Vjb25kcyhkZWx0YSkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKaW5k
ZXggY2QwOTJmNjRkMjY2ODdlNTc3YzQ0NjBmOTYwOGNjMGJhZTMwOTYzYi4uMDFlYTlhZjI4Y2Vj
MWFiYmFiNmViYjY1YmU4ODAwMDQwZjMwNTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtMjg1LDcgKzI4
NSw3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93
KQogICAgIGlmIChtX2lzSW5XaW5kb3cpCiAgICAgICAgIHNldE5lZWRzUmV2YWxpZGF0ZVRpbGVz
KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNvbnN0IGRvdWJsZSB0aWxlUmV2YWxpZGF0aW9uVGlt
ZW91dCA9IDQ7CisgICAgICAgIGNvbnN0IFNlY29uZHMgdGlsZVJldmFsaWRhdGlvblRpbWVvdXQg
PSA0X3M7CiAgICAgICAgIHNjaGVkdWxlVGlsZVJldmFsaWRhdGlvbih0aWxlUmV2YWxpZGF0aW9u
VGltZW91dCk7CiAgICAgfQogfQpAQCAtNDgwLDcgKzQ4MCw3IEBAIHZvaWQgVGlsZUNvbnRyb2xs
ZXI6OmFkanVzdFRpbGVDb3ZlcmFnZVJlY3QoRmxvYXRSZWN0JiBjb3ZlcmFnZVJlY3QsIGNvbnN0
IEZsb2F0CiAjZW5kaWYKIH0KIAotdm9pZCBUaWxlQ29udHJvbGxlcjo6c2NoZWR1bGVUaWxlUmV2
YWxpZGF0aW9uKGRvdWJsZSBpbnRlcnZhbCkKK3ZvaWQgVGlsZUNvbnRyb2xsZXI6OnNjaGVkdWxl
VGlsZVJldmFsaWRhdGlvbihTZWNvbmRzIGludGVydmFsKQogewogICAgIGlmIChtX3RpbGVSZXZh
bGlkYXRpb25UaW1lci5pc0FjdGl2ZSgpICYmIG1fdGlsZVJldmFsaWRhdGlvblRpbWVyLm5leHRG
aXJlSW50ZXJ2YWwoKSA8IGludGVydmFsKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuaAppbmRleCAy
Nzc4OTUwNTFiNGUzNmUwM2YyZTkzMmU2Zjc4YjZhNzkxNjBmZGZkLi5mMDBjNmJiN2I5OTAxMWE3
NmJkOWQ4MjUwNTYzNTcwYTA3NWIzOTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xNDEsNyArMTQyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBUaWxlR3JpZCYgdGlsZUdyaWQoKSB7IHJldHVybiAqbV90aWxlR3JpZDsgfQogCi0gICAgdm9p
ZCBzY2hlZHVsZVRpbGVSZXZhbGlkYXRpb24oZG91YmxlIGludGVydmFsKTsKKyAgICB2b2lkIHNj
aGVkdWxlVGlsZVJldmFsaWRhdGlvbihTZWNvbmRzIGludGVydmFsKTsKIAogICAgIGZsb2F0IHRv
cENvbnRlbnRJbnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wQ29udGVudEluc2V0OyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlkLmNwcAppbmRl
eCAxZDJkODA3MDVlOGEzNGM4MzlkZGI5Njg3ZDI0ZTc0MGExY2RhMjEzLi44YTkwYzJiZGJhZDQ4
YzE0NWE1OGE5MTg2NGMwMGZjMzcwZTM5YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBU
aWxlR3JpZDo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9uUG9saWN5IHZhbGlkYXRpb25Q
b2xpY3kpCiAgICAgVGlsZUNvaG9ydCBjdXJyQ29ob3J0ID0gbmV4dFRpbGVDb2hvcnQoKTsKICAg
ICB1bnNpZ25lZCB0aWxlc0luQ29ob3J0ID0gMDsKIAotICAgIGRvdWJsZSBtaW5pbXVtUmV2YWxp
ZGF0aW9uVGltZXJEdXJhdGlvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCk7
CisgICAgU2Vjb25kcyBtaW5pbXVtUmV2YWxpZGF0aW9uVGltZXJEdXJhdGlvbiA9IFNlY29uZHM6
OmluZmluaXR5KCk7CiAgICAgYm9vbCBuZWVkc1RpbGVSZXZhbGlkYXRpb24gPSBmYWxzZTsKICAg
ICAKICAgICBhdXRvIHRpbGVTaXplID0gbV9jb250cm9sbGVyLnRpbGVTaXplKCk7CkBAIC00MDQs
NyArNDA0LDcgQEAgdm9pZCBUaWxlR3JpZDo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9u
UG9saWN5IHZhbGlkYXRpb25Qb2xpY3kpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHRpbWVVbnRpbENvaG9ydEV4cGlyZXMgPSBj
b2hvcnQudGltZVVudGlsRXhwaXJhdGlvbigpOwogICAgICAgICAgICAgICAgICAgICBpZiAodGlt
ZVVudGlsQ29ob3J0RXhwaXJlcyA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlt
dW1SZXZhbGlkYXRpb25UaW1lckR1cmF0aW9uID0gc3RkOjptaW4obWluaW11bVJldmFsaWRhdGlv
blRpbWVyRHVyYXRpb24sIHRpbWVVbnRpbENvaG9ydEV4cGlyZXMpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbWluaW11bVJldmFsaWRhdGlvblRpbWVyRHVyYXRpb24gPSBzdGQ6Om1pbihtaW5p
bXVtUmV2YWxpZGF0aW9uVGltZXJEdXJhdGlvbiwgU2Vjb25kcyB7IHRpbWVVbnRpbENvaG9ydEV4
cGlyZXMgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkc1RpbGVSZXZhbGlkYXRpb24g
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbGVMYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0MzVhOWVhMWFjYmE5MjJjMGJi
ZTNmNzI2MmExY2IwODEwNDk2YjQwLi5hNGM0M2E2Yjg1ZTY3NzZkYzE5OTI1OTI3Yzg0N2RmNDg1
Y2EwYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0yNTQsOCArMjU0LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBwYWdlU2Nyb2xsSHlzdGVyZXNpc1Nl
Y29uZHMgPSAwLjM7Ci1zdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbml0
aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbCB7IDIwIH07Ci1zdGF0aWMgY29uc3Qgc3Rk
OjpjaHJvbm86OnNlY29uZHMgbWF4aW11bUxheWVyVm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwgeyAy
IH07CitzdGF0aWMgY29uc3QgU2Vjb25kcyBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRl
cnZhbCB7IDIwX21zIH07CitzdGF0aWMgY29uc3QgU2Vjb25kcyBtYXhpbXVtTGF5ZXJWb2xhdGls
aXR5VGltZXJJbnRlcnZhbCB7IDJfcyB9OwogCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTGF5ZXJz
LCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCguLi4p
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBMYXllcnMs
IF9fVkFfQVJHU19fKQpAQCAtMjE2NCw3ICsyMTY0LDcgQEAgdm9pZCBXZWJQYWdlOjpjYWxsVm9s
YXRpbGl0eUNvbXBsZXRpb25IYW5kbGVycygpCiAKIHZvaWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGls
aXR5VGltZXJGaXJlZCgpCiB7Ci0gICAgYXV0byBuZXdJbnRlcnZhbCA9IDIgKiBtX2xheWVyVm9s
YXRpbGl0eVRpbWVyLnJlcGVhdEludGVydmFsTVMoKTsKKyAgICBTZWNvbmRzIG5ld0ludGVydmFs
ID0gbV9sYXllclZvbGF0aWxpdHlUaW1lci5yZXBlYXRJbnRlcnZhbCgpICogMi47CiAgICAgYm9v
bCBkaWRTdWNjZWVkID0gbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7
CiAgICAgaWYgKGRpZFN1Y2NlZWQgfHwgbmV3SW50ZXJ2YWwgPiBtYXhpbXVtTGF5ZXJWb2xhdGls
aXR5VGltZXJJbnRlcnZhbCkgewogICAgICAgICBtX2xheWVyVm9sYXRpbGl0eVRpbWVyLnN0b3Ao
KTsKQEAgLTIxNzMsNyArMjE3Myw3IEBAIHZvaWQgV2ViUGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGlt
ZXJGaXJlZCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFz
IHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQgbXMiLCB0aGlzLCBzdGF0aWNfY2FzdDxsb25n
IGxvbmc+KG5ld0ludGVydmFsLmNvdW50KCkpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKCIlcCAtIFdlYlBhZ2UgLSBGYWlsZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0
aWxlLCB3aWxsIHJldHJ5IGluICVnIG1zIiwgdGhpcywgbmV3SW50ZXJ2YWwudmFsdWUoKSAqIDEw
MDApOwogICAgIG1fbGF5ZXJWb2xhdGlsaXR5VGltZXIuc3RhcnRSZXBlYXRpbmcobmV3SW50ZXJ2
YWwpOwogfQogCkBAIC0yMjA0LDcgKzIyMDQsNyBAQCB2b2lkIFdlYlBhZ2U6Om1hcmtMYXllcnNW
b2xhdGlsZShzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNvbXBsZXRpb25IYW5kbGVyKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLSBGYWls
ZWQgdG8gbWFyayBhbGwgbGF5ZXJzIGFzIHZvbGF0aWxlLCB3aWxsIHJldHJ5IGluICVsbGQgbXMi
LCB0aGlzLCBpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZhbC5jb3VudCgpKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIEZhaWxlZCB0byBtYXJrIGFsbCBsYXllcnMg
YXMgdm9sYXRpbGUsIHdpbGwgcmV0cnkgaW4gJWcgbXMiLCB0aGlzLCBpbml0aWFsTGF5ZXJWb2xh
dGlsaXR5VGltZXJJbnRlcnZhbC52YWx1ZSgpICogMTAwMCk7CiAgICAgbV9sYXllclZvbGF0aWxp
dHlUaW1lci5zdGFydFJlcGVhdGluZyhpbml0aWFsTGF5ZXJWb2xhdGlsaXR5VGltZXJJbnRlcnZh
bCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>