<?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>217453</bug_id>
          
          <creation_ts>2020-10-07 15:49:33 -0700</creation_ts>
          <short_desc>Rename AudioParamTimeline::valuesForTimeRangeImpl() and split it into separate functions</short_desc>
          <delta_ts>2020-10-08 09:50:42 -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>Web Audio</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695724</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-07 15:49:33 -0700</bug_when>
    <thetext>Rename AudioParamTimeline::valuesForTimeRangeImpl() and split it into separate functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695731</commentid>
    <comment_count>1</comment_count>
      <attachid>410795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-07 15:59:57 -0700</bug_when>
    <thetext>Created attachment 410795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695923</commentid>
    <comment_count>2</comment_count>
      <attachid>410795</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-08 09:25:35 -0700</bug_when>
    <thetext>Comment on attachment 410795
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695933</commentid>
    <comment_count>3</comment_count>
      <attachid>410795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-08 09:49:48 -0700</bug_when>
    <thetext>Comment on attachment 410795
Patch

Clearing flags on attachment: 410795

Committed r268185: &lt;https://trac.webkit.org/changeset/268185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695934</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-08 09:49:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695935</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 09:50:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/70097476&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410795</attachid>
            <date>2020-10-07 15:59:57 -0700</date>
            <delta_ts>2020-10-08 09:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217453-20201007155957.patch</filename>
            <type>text/plain</type>
            <size>37357</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk2YmQ1NGI0MDhiYWE3
YzkwZDI4YjliOWM0OTM1NTIwMDljNjBmMy4uMGZjNWRjYTAyMmE2MTZkYzlmYjc2ODkzZWQxZDY5
M2RlOTFiMmI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEwLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEF1ZGlvUGFyYW1U
aW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbCgpIGFuZCBzcGxpdCBpdCBpbnRvIHNlcGFy
YXRlIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVuYW1lIEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbCgp
IHRvIHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKCkgc2luY2UKKyAgICAgICAgdGhlIGZ1bmN0aW9u
IHRha2VzIHN0YXJ0IC8gZW5kIGZyYW1lcyBpbiBhcmd1bWVudCBub3dhZGF5cyAoVGhpcyBjaGFu
Z2VkIGZhaXJseSByZWNlbnRseSkuCisKKyAgICAgICAgQWxzbyBzcGxpdCBldmVudCBwcm9jZXNz
aW5nIGludG8gc2VwYXJhdGUgZnVuY3Rpb24gZm9yIGVhY2ggZXZlbnQgdHlwZS4gVGhpcyByZWR1
Y2VzIHRoZQorICAgICAgICBzaXplIG9mIEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGlt
ZVJhbmdlSW1wbCgpIGFzIHRoZSBmdW5jdGlvbiB3YXMgZ2V0dGluZyBodWdlLgorICAgICAgICBU
aGUgc2l6ZSB3aWxsIGFsc28gaW5jcmVhc2UgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIHZlY3Rvcml6
ZSBwcm9jZXNzaW5nIGZvciBtb3JlIGV2ZW50CisgICAgICAgIHR5cGVzLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGlzIGJhc2VkIG9uIHRoZSBjb3JyZXNwb25kaW5nIEJsaW5rIGltcGxlbWVudGF0
aW9uOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9i
L21hc3Rlci90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3dlYmF1ZGlvL2F1ZGlv
X3BhcmFtX3RpbWVsaW5lLmNjCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6Y2FsY3VsYXRlVGltZWxpbmVWYWx1ZXMpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvckZyYW1lUmFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFtZVJhbmdl
SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnByb2Nlc3NMaW5l
YXJSYW1wKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6cHJvY2Vzc0V4
cG9uZW50aWFsUmFtcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnBy
b2Nlc3NDYW5jZWxWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5l
Ojpwcm9jZXNzU2V0VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6cHJvY2Vzc1NldFZhbHVlQ3VydmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6
OlBhcmFtRXZlbnQ6OmN1cnZlIGNvbnN0KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMjAtMTAtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBDb25zdHJ1Y3RpbmcgYSBBdWRpb1dvcmtsZXROb2RlIHNob3VsZCBj
b25zdHJ1Y3QgYW4gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIG9uIHRoZSBXb3JrbGV0IHRocmVhZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKaW5kZXgg
YWEzN2YxYjg5Yjg5ZjM2NTczNzk5MDllMjQyNWJjMmY5ZmI5MzY3My4uMzdhMzNlNWVjM2RkNjUy
MWIzNDBjNTEyNzQ0M2YxMjA3MDlhYzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBBdWRpb1Bh
cmFtOjpjYWxjdWxhdGVUaW1lbGluZVZhbHVlcyhmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcykKIAogICAgIC8vIE5vdGUgd2UncmUgcnVubmluZyBjb250cm9sIHJhdGUgYXQg
dGhlIHNhbXBsZS1yYXRlLgogICAgIC8vIFBhc3MgaW4gdGhlIGN1cnJlbnQgdmFsdWUgYXMgZGVm
YXVsdCB2YWx1ZS4KLSAgICBtX3ZhbHVlID0gbV90aW1lbGluZS52YWx1ZXNGb3JUaW1lUmFuZ2Uo
c3RhcnRGcmFtZSwgZW5kRnJhbWUsIG1fdmFsdWUsIG1pblZhbHVlKCksIG1heFZhbHVlKCksIHZh
bHVlcywgbnVtYmVyT2ZWYWx1ZXMsIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgIG1fdmFs
dWUgPSBtX3RpbWVsaW5lLnZhbHVlc0ZvckZyYW1lUmFuZ2Uoc3RhcnRGcmFtZSwgZW5kRnJhbWUs
IG1fdmFsdWUsIG1pblZhbHVlKCksIG1heFZhbHVlKCksIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMs
IHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOwogfQogCiB2b2lkIEF1ZGlvUGFyYW06OmNvbm5lY3Qo
QXVkaW9Ob2RlT3V0cHV0KiBvdXRwdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggYTkxYTQ5YTdhZGM5OWJi
NDkyOTE5ZjY4OWY1Yzg3OGU2NTY4YjVjNy4uZmY2ODE3Mjg1MDA4YmU3MGI1NmM1ZTY1NmJmODA1
MzlhNmY1ZDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMzMwLDExICszMzAsMTEgQEAgT3B0aW9uYWw8
ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXgKICAgICBzaXplX3Qgc3RhcnRGcmFtZSA9IGNvbnRleHQuY3VycmVudFNh
bXBsZUZyYW1lKCk7CiAgICAgc2l6ZV90IGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIDE7CiAgICAg
ZG91YmxlIGNvbnRyb2xSYXRlID0gc2FtcGxlUmF0ZSAvIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZTsgLy8gb25lIHBhcmFtZXRlciBjaGFuZ2UgcGVyIHJlbmRlciBxdWFudHVtCi0g
ICAgdmFsdWUgPSB2YWx1ZXNGb3JUaW1lUmFuZ2Uoc3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1
bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCAmdmFsdWUsIDEsIHNhbXBsZVJhdGUsIGNvbnRy
b2xSYXRlKTsKKyAgICB2YWx1ZSA9IHZhbHVlc0ZvckZyYW1lUmFuZ2Uoc3RhcnRGcmFtZSwgZW5k
RnJhbWUsIGRlZmF1bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCAmdmFsdWUsIDEsIHNhbXBs
ZVJhdGUsIGNvbnRyb2xSYXRlKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLWZsb2F0IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlKHNpemVfdCBzdGFydEZyYW1lLCBzaXpl
X3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1h
eFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgZG91YmxlIHNh
bXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkKK2Zsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6
dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBm
bG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQq
IHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3Vi
bGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0
aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgogICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2so
bV9ldmVudHNMb2NrKTsKQEAgLTM0Niw3ICszNDYsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxp
bmU6OnZhbHVlc0ZvclRpbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1l
LAogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KIAotICAgIGZsb2F0IHZhbHVl
ID0gdmFsdWVzRm9yVGltZVJhbmdlSW1wbChzdGFydEZyYW1lLCBlbmRGcmFtZSwgZGVmYXVsdFZh
bHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBzYW1wbGVSYXRlLCBjb250cm9sUmF0ZSk7Cisg
ICAgZmxvYXQgdmFsdWUgPSB2YWx1ZXNGb3JGcmFtZVJhbmdlSW1wbChzdGFydEZyYW1lLCBlbmRG
cmFtZSwgZGVmYXVsdFZhbHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBzYW1wbGVSYXRlLCBj
b250cm9sUmF0ZSk7CiAKICAgICAvLyBDbGFtcCB2YWx1ZXMgYmFzZWQgb24gcmFuZ2UgYWxsb3dl
ZCBieSBBdWRpb1BhcmFtJ3MgbWluIGFuZCBtYXggdmFsdWVzLgogICAgIFZlY3Rvck1hdGg6OmNs
YW1wKHZhbHVlcywgbWluVmFsdWUsIG1heFZhbHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzKTsK
QEAgLTM1NCw3ICszNTQsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRp
bWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLAogICAgIHJldHVybiB2
YWx1ZTsKIH0KIAotZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJ
bXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1
ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVS
YXRlLCBkb3VibGUgY29udHJvbFJhdGUpCitmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVl
c0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZs
b2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMs
IGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpCiB7CiAgICAgQVNTRVJUKHZh
bHVlcyk7CiAgICAgaWYgKCF2YWx1ZXMpCkBAIC00MTksOCArNDE5LDYgQEAgZmxvYXQgQXVkaW9Q
YXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBz
aXplX3QgZW5kRnIKIAogICAgICAgICBoYW5kbGVDYW5jZWxWYWx1ZXMoKmV2ZW50LCBuZXh0RXZl
bnQsIHZhbHVlMiwgdGltZTIsIG5leHRFdmVudFR5cGUpOwogCi0gICAgICAgIGF1dG8gZGVsdGFU
aW1lID0gdGltZTIgLSB0aW1lMTsKLQogICAgICAgICBzaXplX3QgZmlsbFRvRW5kRnJhbWUgPSBl
bmRGcmFtZTsKICAgICAgICAgaWYgKGVuZEZyYW1lID4gdGltZTIudmFsdWUoKSAqIHNhbXBsZVJh
dGUpCiAgICAgICAgICAgICBmaWxsVG9FbmRGcmFtZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oY2Vp
bCh0aW1lMi52YWx1ZSgpICogc2FtcGxlUmF0ZSkpOwpAQCAtNDI5LDM2ICs0MjcsMjkgQEAgZmxv
YXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFy
dEZyYW1lLCBzaXplX3QgZW5kRnIKICAgICAgICAgdW5zaWduZWQgZmlsbFRvRnJhbWUgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZmlsbFRvRW5kRnJhbWUgLSBzdGFydEZyYW1lKTsKICAgICAgICAg
ZmlsbFRvRnJhbWUgPSBzdGQ6Om1pbihmaWxsVG9GcmFtZSwgbnVtYmVyT2ZWYWx1ZXMpOwogCisg
ICAgICAgIGNvbnN0IEF1dG9tYXRpb25TdGF0ZSBjdXJyZW50U3RhdGUgPSB7CisgICAgICAgICAg
ICBudW1iZXJPZlZhbHVlcywKKyAgICAgICAgICAgIHN0YXJ0RnJhbWUsCisgICAgICAgICAgICBl
bmRGcmFtZSwKKyAgICAgICAgICAgIHNhbXBsZVJhdGUsCisgICAgICAgICAgICBjb250cm9sUmF0
ZSwKKyAgICAgICAgICAgIHNhbXBsaW5nUGVyaW9kLAorICAgICAgICAgICAgZmlsbFRvRnJhbWUs
CisgICAgICAgICAgICBmaWxsVG9FbmRGcmFtZSwKKyAgICAgICAgICAgIHZhbHVlMSwKKyAgICAg
ICAgICAgIHRpbWUxLAorICAgICAgICAgICAgdmFsdWUyLAorICAgICAgICAgICAgdGltZTIsCisg
ICAgICAgICAgICBldmVudCwKKyAgICAgICAgICAgIGksCisgICAgICAgIH07CisKICAgICAgICAg
Ly8gRmlyc3QgaGFuZGxlIGxpbmVhciBhbmQgZXhwb25lbnRpYWwgcmFtcHMgd2hpY2ggcmVxdWly
ZSBsb29raW5nIGFoZWFkIHRvIHRoZSBuZXh0IGV2ZW50LgogICAgICAgICBpZiAobmV4dEV2ZW50
VHlwZSA9PSBQYXJhbUV2ZW50OjpMaW5lYXJSYW1wVG9WYWx1ZSkKLSAgICAgICAgICAgIHByb2Nl
c3NMaW5lYXJSYW1wKHZhbHVlcywgd3JpdGVJbmRleCwgZmlsbFRvRnJhbWUsIHZhbHVlLCB2YWx1
ZTEsIHZhbHVlMiwgZGVsdGFUaW1lLCB0aW1lMSwgc2FtcGxpbmdQZXJpb2QsIGN1cnJlbnRGcmFt
ZSk7Ci0gICAgICAgIGVsc2UgaWYgKG5leHRFdmVudFR5cGUgPT0gUGFyYW1FdmVudDo6RXhwb25l
bnRpYWxSYW1wVG9WYWx1ZSkgewotICAgICAgICAgICAgaWYgKCF2YWx1ZTEgfHwgdmFsdWUxICog
dmFsdWUyIDwgMCkgewotICAgICAgICAgICAgICAgIC8vIFBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
LSAgICAgICAgICAgICAgICAvLyBJZiB2YWx1ZTEgYW5kIHZhbHVlMiBoYXZlIG9wcG9zaXRlIHNp
Z25zIG9yIGlmIHZhbHVlMSBpcyB6ZXJvLCB0aGVuIHYodCkgPSB2YWx1ZTEgZm9yIFQwIDw9IHQg
PCBUMS4KLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlMTsKLSAgICAgICAgICAgICAgICBm
b3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpCi0gICAgICAgICAg
ICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBmbG9hdCBudW1TYW1wbGVGcmFtZXMgPSBkZWx0YVRpbWUudmFs
dWUoKSAqIHNhbXBsZVJhdGU7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIHZhbHVlIGdvZXMgZXhw
b25lbnRpYWxseSBmcm9tIHZhbHVlMSB0byB2YWx1ZTIgaW4gYSBkdXJhdGlvbiBvZiBkZWx0YVRp
bWUgc2Vjb25kcyAoY29ycmVzcG9uZGluZyB0byBudW1TYW1wbGVGcmFtZXMpLgotICAgICAgICAg
ICAgICAgIC8vIENvbXB1dGUgdGhlIHBlci1zYW1wbGUgbXVsdGlwbGllci4KLSAgICAgICAgICAg
ICAgICBmbG9hdCBtdWx0aXBsaWVyID0gcG93Zih2YWx1ZTIgLyB2YWx1ZTEsIDEgLyBudW1TYW1w
bGVGcmFtZXMpOwotCi0gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBzdGFydGluZyB2YWx1ZSBv
ZiB0aGUgZXhwb25lbnRpYWwgcmFtcC4KLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlMSAq
IHBvdyh2YWx1ZTIgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlMSksIChjdXJyZW50RnJhbWUg
KiBzYW1wbGluZ1BlcmlvZCAtIHRpbWUxLnZhbHVlKCkpIC8gZGVsdGFUaW1lLnZhbHVlKCkpOwot
Ci0gICAgICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0
ZUluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVl
OwotICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSBtdWx0aXBsaWVyOwotICAgICAgICAgICAg
ICAgICAgICArK2N1cnJlbnRGcmFtZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICAvLyB8dmFsdWV8IGdvdCB1cGRhdGVkIG9uZSBleHRyYSB0aW1lIGluIHRoZSBhYm92ZSBs
b29wLiBSZXN0b3JlIGl0IHRvIHRoZSBsYXN0IGNvbXB1dGVkIHZhbHVlLgotICAgICAgICAgICAg
ICAgIGlmICh3cml0ZUluZGV4ID49IDEpCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlIC89IG11
bHRpcGxpZXI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBw
cm9jZXNzTGluZWFyUmFtcChjdXJyZW50U3RhdGUsIHZhbHVlcywgY3VycmVudEZyYW1lLCB2YWx1
ZSwgd3JpdGVJbmRleCk7CisgICAgICAgIGVsc2UgaWYgKG5leHRFdmVudFR5cGUgPT0gUGFyYW1F
dmVudDo6RXhwb25lbnRpYWxSYW1wVG9WYWx1ZSkKKyAgICAgICAgICAgIHByb2Nlc3NFeHBvbmVu
dGlhbFJhbXAoY3VycmVudFN0YXRlLCB2YWx1ZXMsIGN1cnJlbnRGcmFtZSwgdmFsdWUsIHdyaXRl
SW5kZXgpOworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSBldmVudCB0eXBl
cyBub3QgcmVxdWlyaW5nIGxvb2tpbmcgYWhlYWQgdG8gdGhlIG5leHQgZXZlbnQuCiAgICAgICAg
ICAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgUGFyYW1FdmVu
dDo6U2V0VmFsdWU6CkBAIC00NzMsMTU4ICs0NjQsMTQgQEAgZmxvYXQgQXVkaW9QYXJhbVRpbWVs
aW5lOjp2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5k
RnIKIAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBQYXJhbUV2ZW50
OjpDYW5jZWxWYWx1ZXM6Ci0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHByZXZpb3VzIGV2ZW50
IHdhcyBhIFNldFRhcmdldCBvciBFeHBvbmVudGlhbFJhbXAKLSAgICAgICAgICAgICAgICAvLyBl
dmVudCwgdGhlIGN1cnJlbnQgdmFsdWUgaXMgb25lIHNhbXBsZSBiZWhpbmQuIFVwZGF0ZQotICAg
ICAgICAgICAgICAgIC8vIHRoZSBzYW1wbGUgdmFsdWUgYnkgb25lIHNhbXBsZSwgYnV0IG9ubHkg
YXQgdGhlIHN0YXJ0IG9mCi0gICAgICAgICAgICAgICAgLy8gdGhpcyBDYW5jZWxWYWx1ZXMgZXZl
bnQuCi0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LT5oYXNEZWZhdWx0Q2FuY2VsbGVkVmFsdWUo
KSkKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldmVudC0+dmFsdWUoKTsKLSAgICAgICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZG91YmxlIGNhbmNlbEZyYW1lID0g
dGltZTEudmFsdWUoKSAqIHNhbXBsZVJhdGU7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpID49
IDEgJiYgY2FuY2VsRnJhbWUgPD0gY3VycmVudEZyYW1lICYmIGN1cnJlbnRGcmFtZSA8IGNhbmNl
bEZyYW1lICsgMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBsYXN0RXZlbnRUeXBl
ID0gbV9ldmVudHNbaSAtIDFdLT50eXBlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bGFzdEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50OjpTZXRUYXJnZXQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbG9hdCB0YXJnZXQgPSBtX2V2ZW50c1tpIC0gMV0tPnZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50ID0gbV9ldmVudHNb
aSAtIDFdLT50aW1lQ29uc3RhbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9h
dCBkaXNjcmV0ZVRpbWVDb25zdGFudCA9IHN0YXRpY19jYXN0PGZsb2F0PihBdWRpb1V0aWxpdGll
czo6ZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKHRpbWVDb25zdGFudCwgY29udHJv
bFJhdGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAodGFyZ2V0IC0g
dmFsdWUpICogZGlzY3JldGVUaW1lQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpCi0gICAg
ICAgICAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOwotCi0gICAgICAgICAg
ICAgICAgY3VycmVudEZyYW1lID0gZmlsbFRvRW5kRnJhbWU7Ci0KKyAgICAgICAgICAgICAgICBw
cm9jZXNzQ2FuY2VsVmFsdWVzKGN1cnJlbnRTdGF0ZSwgdmFsdWVzLCBjdXJyZW50RnJhbWUsIHZh
bHVlLCB3cml0ZUluZGV4KTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgUGFyYW1FdmVudDo6U2V0VGFyZ2V0OiB7Ci0gICAgICAgICAgICAgICAgLy8gRXhwb25lbnRp
YWwgYXBwcm9hY2ggdG8gdGFyZ2V0IHZhbHVlIHdpdGggZ2l2ZW4gdGltZSBjb25zdGFudC4KLSAg
ICAgICAgICAgICAgICBmbG9hdCB0YXJnZXQgPSBldmVudC0+dmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICBmbG9hdCB0aW1lQ29uc3RhbnQgPSBldmVudC0+dGltZUNvbnN0YW50KCk7Ci0gICAgICAg
ICAgICAgICAgZmxvYXQgZGlzY3JldGVUaW1lQ29uc3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4o
QXVkaW9VdGlsaXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29u
c3RhbnQsIGNvbnRyb2xSYXRlKSk7Ci0KLSAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHN0YXJ0
aW5nIHZhbHVlIGNvcnJlY3RseS4gVGhpcyBpcyBvbmx5IG5lZWRlZCB3aGVuIHRoZQotICAgICAg
ICAgICAgICAgIC8vIGN1cnJlbnQgdGltZSBpcyAiZXF1YWwiIHRvIHRoZSBzdGFydCB0aW1lIG9m
IHRoaXMgZXZlbnQuIFRoaXMgaXMKLSAgICAgICAgICAgICAgICAvLyB0byBnZXQgdGhlIHNhbXBs
aW5nIGNvcnJlY3QgaWYgdGhlIHN0YXJ0IHRpbWUgb2YgdGhpcyBhdXRvbWF0aW9uCi0gICAgICAg
ICAgICAgICAgLy8gaXNuJ3Qgb24gYSBmcmFtZSBib3VuZGFyeS4gT3RoZXJ3aXNlLCB3ZSBjYW4g
anVzdCBjb250aW51ZSBmcm9tCi0gICAgICAgICAgICAgICAgLy8gd2hlcmUgd2UgbGVmdCBvZmYg
ZnJvbSB0aGUgcHJldmlvdXMgcmVuZGVyaW5nIHF1YW50dW0uCi0gICAgICAgICAgICAgICAgZG91
YmxlIHJhbXBTdGFydEZyYW1lID0gdGltZTEudmFsdWUoKSAqIHNhbXBsZVJhdGU7Ci0gICAgICAg
ICAgICAgICAgLy8gQ29uZGl0aW9uIGlzIGMgLSAxIDwgciA8PSBjIHdoZXJlIGMgPSBjdXJyZW50
RnJhbWUgYW5kIHIgPQotICAgICAgICAgICAgICAgIC8vIHJhbXBTdGFydEZyYW1lLiBDb21wdXRl
IGl0IHRoaXMgd2F5IGJlY2F1c2UgY3VycmVudEZyYW1lIGlzCi0gICAgICAgICAgICAgICAgLy8g
dW5zaWduZWQgYW5kIGNvdWxkIGJlIDAuCi0gICAgICAgICAgICAgICAgaWYgKHJhbXBTdGFydEZy
YW1lIDw9IGN1cnJlbnRGcmFtZSAmJiBjdXJyZW50RnJhbWUgPCByYW1wU3RhcnRGcmFtZSArIDEp
Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGFyZ2V0ICsgKHZhbHVlIC0gdGFyZ2V0KSAq
IGV4cCgtKGN1cnJlbnRGcmFtZSAqIHNhbXBsaW5nUGVyaW9kIC0gdGltZTEudmFsdWUoKSkgLyB0
aW1lQ29uc3RhbnQpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAvLyBPdGhlcndpc2UsIG5lZWQgdG8gY29tcHV0ZSBhIG5ldyB2YWx1ZSBiZWNhdXNlIHx2YWx1
ZXwgaXMgdGhlCi0gICAgICAgICAgICAgICAgICAgIC8vIGxhc3QgY29tcHV0ZWQgdmFsdWUgb2Yg
U2V0VGFyZ2V0LiBUaW1lIGhhcyBwcm9ncmVzc2VkIGJ5IG9uZQotICAgICAgICAgICAgICAgICAg
ICAvLyBmcmFtZSwgc28gd2UgbmVlZCB0byB1cGRhdGUgdGhlIHZhbHVlIGZvciB0aGUgbmV3IGZy
YW1lLgotICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAodGFyZ2V0IC0gdmFsdWUpICogZGlz
Y3JldGVUaW1lQ29uc3RhbnQ7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
Ly8gSWYgdGhlIHZhbHVlIGlzIGNsb3NlIGVub3VnaCB0byB0aGUgdGFyZ2V0LCBqdXN0IGZpbGwg
aW4gdGhlIGRhdGEKLSAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSB0YXJnZXQgdmFsdWUuCi0g
ICAgICAgICAgICAgICAgaWYgKGhhc1NldFRhcmdldENvbnZlcmdlZCh2YWx1ZSwgdGFyZ2V0LCBT
ZWNvbmRzIHsgY3VycmVudEZyYW1lICogc2FtcGxpbmdQZXJpb2QgfSwgdGltZTEsIHRpbWVDb25z
dGFudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1lICs9IGZpbGxUb0ZyYW1l
IC0gd3JpdGVJbmRleDsKLSAgICAgICAgICAgICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBm
aWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVz
W3dyaXRlSW5kZXhdID0gdGFyZ2V0OwotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRhcmdl
dDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
U2V0VGFyZ2V0KHZhbHVlcywgd3JpdGVJbmRleCwgZmlsbFRvRnJhbWUsIHZhbHVlLCB0YXJnZXQs
IGRpc2NyZXRlVGltZUNvbnN0YW50KTsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1l
ID0gZmlsbFRvRW5kRnJhbWU7Ci0gICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICBjYXNl
IFBhcmFtRXZlbnQ6OlNldFRhcmdldDoKKyAgICAgICAgICAgICAgICBwcm9jZXNzU2V0VGFyZ2V0
KGN1cnJlbnRTdGF0ZSwgdmFsdWVzLCBjdXJyZW50RnJhbWUsIHZhbHVlLCB3cml0ZUluZGV4KTsK
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2Ug
UGFyYW1FdmVudDo6U2V0VmFsdWVDdXJ2ZTogewotICAgICAgICAgICAgICAgIGZsb2F0KiBjdXJ2
ZURhdGEgPSBldmVudC0+Y3VydmUoKS5kYXRhKCk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQg
bnVtYmVyT2ZDdXJ2ZVBvaW50cyA9IGV2ZW50LT5jdXJ2ZSgpLnNpemUoKTsKLSAgICAgICAgICAg
ICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0gZXZlbnQtPmN1cnZlRW5kVmFsdWUoKTsKLQotICAg
ICAgICAgICAgICAgIC8vIEN1cnZlIGV2ZW50cyBoYXZlIGR1cmF0aW9uLCBzbyBkb24ndCBqdXN0
IHVzZSBuZXh0IGV2ZW50IHRpbWUuCi0gICAgICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IGV2
ZW50LT5kdXJhdGlvbigpOwotICAgICAgICAgICAgICAgIGRvdWJsZSBjdXJ2ZVBvaW50c1BlckZy
YW1lID0gZXZlbnQtPmN1cnZlUG9pbnRzUGVyU2Vjb25kKCkgKiBzYW1wbGluZ1BlcmlvZDsKLQot
ICAgICAgICAgICAgICAgIGlmICghY3VydmVEYXRhIHx8ICFudW1iZXJPZkN1cnZlUG9pbnRzIHx8
IGR1cmF0aW9uIDw9IDBfcyB8fCBzYW1wbGVSYXRlIDw9IDApIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gRXJyb3IgY29uZGl0aW9uIC0gc2ltcGx5IHByb3BhZ2F0ZSBwcmV2aW91cyB2YWx1ZS4K
LSAgICAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1lID0gZmlsbFRvRW5kRnJhbWU7Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJ
bmRleCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVl
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgICAgICAvLyBTYXZlIG9sZCB2YWx1ZXMgYW5kIHJlY2FsY3VsYXRlIGluZm9ybWF0aW9u
IGJhc2VkIG9uIHRoZSBjdXJ2ZSdzIGR1cmF0aW9uCi0gICAgICAgICAgICAgICAgLy8gaW5zdGVh
ZCBvZiB0aGUgbmV4dCBldmVudCB0aW1lLgotICAgICAgICAgICAgICAgIHVuc2lnbmVkIG5leHRF
dmVudEZpbGxUb0ZyYW1lID0gZmlsbFRvRnJhbWU7Ci0KLSAgICAgICAgICAgICAgICBkb3VibGUg
Y3VydmVFbmRGcmFtZSA9IGNlaWwoc2FtcGxlUmF0ZSAqICh0aW1lMSArIGR1cmF0aW9uKS52YWx1
ZSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoZW5kRnJhbWUgPiBjdXJ2ZUVuZEZyYW1lKQotICAg
ICAgICAgICAgICAgICAgICBmaWxsVG9FbmRGcmFtZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oY3Vy
dmVFbmRGcmFtZSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBm
aWxsVG9FbmRGcmFtZSA9IGVuZEZyYW1lOwotCi0gICAgICAgICAgICAgICAgZmlsbFRvRnJhbWUg
PSAoZmlsbFRvRW5kRnJhbWUgPCBzdGFydEZyYW1lKSA/IDAgOiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZmlsbFRvRW5kRnJhbWUgLSBzdGFydEZyYW1lKTsKLSAgICAgICAgICAgICAgICBmaWxsVG9G
cmFtZSA9IHN0ZDo6bWluKGZpbGxUb0ZyYW1lLCBudW1iZXJPZlZhbHVlcyk7Ci0KLSAgICAgICAg
ICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSBjdXJ2ZSBkYXRhIHVzaW5nIGEgZmxvYXRpbmctcG9p
bnQgdmFsdWUuCi0gICAgICAgICAgICAgICAgLy8gV2UncmUgc2NhbGluZyB0aGUgbnVtYmVyIG9m
IGN1cnZlIHBvaW50cyBieSB0aGUgZHVyYXRpb24gKHNlZSBjdXJ2ZVBvaW50c1BlckZyYW1lKS4K
LSAgICAgICAgICAgICAgICBkb3VibGUgY3VydmVWaXJ0dWFsSW5kZXggPSAwOwotICAgICAgICAg
ICAgICAgIGlmICh0aW1lMS52YWx1ZSgpIDwgY3VycmVudEZyYW1lICogc2FtcGxpbmdQZXJpb2Qp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSW5kZXggc29tZXdoZXJlIGluIHRoZSBtaWRkbGUg
b2YgdGhlIGN1cnZlIGRhdGEuCi0gICAgICAgICAgICAgICAgICAgIC8vIERvbid0IHVzZSB0aW1l
VG9TYW1wbGVGcmFtZSgpIHNpbmNlIHdlIHdhbnQgdGhlIGV4YWN0IGZsb2F0aW5nLXBvaW50IGZy
YW1lLgotICAgICAgICAgICAgICAgICAgICBkb3VibGUgZnJhbWVPZmZzZXQgPSBjdXJyZW50RnJh
bWUgLSB0aW1lMS52YWx1ZSgpICogc2FtcGxlUmF0ZTsKLSAgICAgICAgICAgICAgICAgICAgY3Vy
dmVWaXJ0dWFsSW5kZXggPSBjdXJ2ZVBvaW50c1BlckZyYW1lICogZnJhbWVPZmZzZXQ7Ci0gICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBkZWZhdWx0IHZhbHVl
IGluIGNhc2UgZmlsbFRvRnJhbWUgaXMgMC4KLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGN1cnZl
RW5kVmFsdWU7Ci0KLSAgICAgICAgICAgICAgICAvLyBSZW5kZXIgdGhlIHN0cmV0Y2hlZCBjdXJ2
ZSBkYXRhIHVzaW5nIG5lYXJlc3QgbmVpZ2hib3Igc2FtcGxpbmcuCi0gICAgICAgICAgICAgICAg
Ly8gT3ZlcnNhbXBsZWQgY3VydmUgZGF0YSBjYW4gYmUgcHJvdmlkZWQgaWYgc21vb3RobmVzcyBp
cyBkZXNpcmVkLgotICAgICAgICAgICAgICAgIGludCBrID0gMDsKLSAgICAgICAgICAgICAgICBm
b3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgsICsraykgewotICAg
ICAgICAgICAgICAgICAgICAvLyBDb21wdXRlIGN1cnJlbnQgaW5kZXggdGhpcyB3YXkgdG8gbWlu
aW1pemUgcm91bmQtb2ZmIHRoYXQgd291bGQKLSAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBv
Y2N1cnJlZCBieSBpbmNyZW1lbnRpbmcgdGhlIGluZGV4IGJ5IGN1cnZlUG9pbnRzUGVyRnJhbWUu
Ci0gICAgICAgICAgICAgICAgICAgIGRvdWJsZSBjdXJyZW50VmlydHVhbEluZGV4ID0gY3VydmVW
aXJ0dWFsSW5kZXggKyBrICogY3VydmVQb2ludHNQZXJGcmFtZTsKLSAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgY3VydmVJbmRleDA7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gQ2xhbXAg
aW5kZXggdG8gdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkuCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChjdXJyZW50VmlydHVhbEluZGV4IDwgbnVtYmVyT2ZDdXJ2ZVBvaW50cykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnZlSW5kZXgwID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGN1
cnJlbnRWaXJ0dWFsSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICBjdXJ2ZUluZGV4MCA9IG51bWJlck9mQ3VydmVQb2ludHMgLSAxOwotCi0g
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGN1cnZlSW5kZXgxID0gc3RkOjptaW4oY3VydmVJ
bmRleDAgKyAxLCBudW1iZXJPZkN1cnZlUG9pbnRzIC0gMSk7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgLy8gTGluZWFybHkgaW50ZXJwb2xhdGUgYmV0d2VlbiB0aGUgdHdvIG5lYXJlc3QgY3VydmUg
cG9pbnRzLgotICAgICAgICAgICAgICAgICAgICAvLyB8ZGVsdGF8IGlzIGNsYW1wZWQgdG8gMSBi
ZWNhdXNlIGN1cnJlbnRWaXJ0dWFsSW5kZXggY2FuIGV4Y2VlZAotICAgICAgICAgICAgICAgICAg
ICAvLyBjdXJ2ZUluZGV4MCBieSBtb3JlIHRoYW4gb25lLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiB3
ZSByZWFjaGVkCi0gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnZlIGJ1
dCBzdGlsbCBuZWVkIHZhbHVlcyB0byBmaWxsIG91dCB0aGUKLSAgICAgICAgICAgICAgICAgICAg
Ly8gY3VycmVudCByZW5kZXJpbmcgcXVhbnR1bS4KLSAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KGN1cnZlSW5kZXgwIDwgbnVtYmVyT2ZDdXJ2ZVBvaW50cyk7Ci0gICAgICAgICAgICAgICAgICAg
IEFTU0VSVChjdXJ2ZUluZGV4MSA8IG51bWJlck9mQ3VydmVQb2ludHMpOwotICAgICAgICAgICAg
ICAgICAgICBmbG9hdCBjMCA9IGN1cnZlRGF0YVtjdXJ2ZUluZGV4MF07Ci0gICAgICAgICAgICAg
ICAgICAgIGZsb2F0IGMxID0gY3VydmVEYXRhW2N1cnZlSW5kZXgxXTsKLSAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIGRlbHRhID0gc3RkOjptaW4oY3VycmVudFZpcnR1YWxJbmRleCAtIGN1cnZl
SW5kZXgwLCAxLjApOwotCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYzAgKyAoYzEgLSBj
MCkgKiBkZWx0YTsKLQotICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2
YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdz
IGFueSB0aW1lIGxlZnQgYWZ0ZXIgdGhlIGR1cmF0aW9uIG9mIHRoaXMgZXZlbnQgYW5kIHRoZSBz
dGFydAotICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBuZXh0LCB0aGVuIGp1c3QgcHJvcGFnYXRl
IHRoZSBsYXN0IHZhbHVlLgotICAgICAgICAgICAgICAgIGlmICh3cml0ZUluZGV4IDwgbmV4dEV2
ZW50RmlsbFRvRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjdXJ2ZUVuZFZh
bHVlOwotICAgICAgICAgICAgICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IG5leHRFdmVudEZp
bGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNb
d3JpdGVJbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICAvLyBSZS1hZGp1c3QgY3VycmVudCB0aW1lCi0gICAgICAgICAgICAgICAgY3VycmVudEZyYW1l
ICs9IG5leHRFdmVudEZpbGxUb0ZyYW1lOwotCisgICAgICAgICAgICBjYXNlIFBhcmFtRXZlbnQ6
OlNldFZhbHVlQ3VydmU6CisgICAgICAgICAgICAgICAgcHJvY2Vzc1NldFZhbHVlQ3VydmUoY3Vy
cmVudFN0YXRlLCB2YWx1ZXMsIGN1cnJlbnRGcmFtZSwgdmFsdWUsIHdyaXRlSW5kZXgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBQYXJh
bUV2ZW50OjpMYXN0VHlwZToKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTY0MCwxNCArNDg3LDE2IEBAIGZsb2F0IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlSW1wbChzaXplX3Qgc3RhcnRGcmFtZSwg
c2l6ZV90IGVuZEZyCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi12b2lkIEF1ZGlvUGFyYW1UaW1l
bGluZTo6cHJvY2Vzc0xpbmVhclJhbXAoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQmIHdyaXRlSW5k
ZXgsIHVuc2lnbmVkIGZpbGxUb0ZyYW1lLCBmbG9hdCYgdmFsdWUsIGZsb2F0IHZhbHVlMSwgZmxv
YXQgdmFsdWUyLCBTZWNvbmRzIGRlbHRhVGltZSwgU2Vjb25kcyB0aW1lMSwgZG91YmxlIHNhbXBs
aW5nUGVyaW9kLCBzaXplX3QmIGN1cnJlbnRGcmFtZSkKK3ZvaWQgQXVkaW9QYXJhbVRpbWVsaW5l
Ojpwcm9jZXNzTGluZWFyUmFtcChjb25zdCBBdXRvbWF0aW9uU3RhdGUmIGN1cnJlbnRTdGF0ZSwg
ZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5zaWdu
ZWQmIHdyaXRlSW5kZXgpCiB7Ci0gICAgZmxvYXQgdmFsdWVEZWx0YSA9IHZhbHVlMiAtIHZhbHVl
MTsKKyAgICBhdXRvIGRlbHRhVGltZSA9IGN1cnJlbnRTdGF0ZS50aW1lMiAtIGN1cnJlbnRTdGF0
ZS50aW1lMTsKKyAgICBmbG9hdCB2YWx1ZURlbHRhID0gY3VycmVudFN0YXRlLnZhbHVlMiAtIGN1
cnJlbnRTdGF0ZS52YWx1ZTE7CisKICAgICAvLyBTaW5jZSBkZWx0YVRpbWUgaXMgYSBkb3VibGUs
IDEvZGVsdGFUaW1lIGNhbiBlYXNpbHkgb3ZlcmZsb3cgYSBmbG9hdC4gVGh1cywgaWYgZGVsdGFU
aW1lCiAgICAgLy8gaXMgY2xvc2UgZW5vdWdoIHRvIHplcm8gKGxlc3MgdGhhbiBmbG9hdCBtaW4p
LCB0cmVhdCBpdCBhcyB6ZXJvLgogICAgIGZsb2F0IGsgPSBkZWx0YVRpbWUudmFsdWUoKSA8PSBz
dGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKCkgPyAwIDogMSAvIGRlbHRhVGltZS52YWx1
ZSgpOwogCi0gICAgdW5zaWduZWQgZmlsbFRvRnJhbWVUcnVuYyA9IHdyaXRlSW5kZXggKyAoKGZp
bGxUb0ZyYW1lIC0gd3JpdGVJbmRleCkgLyA0KSAqIDQ7CisgICAgdW5zaWduZWQgZmlsbFRvRnJh
bWVUcnVuYyA9IHdyaXRlSW5kZXggKyAoKGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZSAtIHdyaXRl
SW5kZXgpIC8gNCkgKiA0OwogICAgIGlmIChmaWxsVG9GcmFtZVRydW5jID4gd3JpdGVJbmRleCkg
ewogICAgICAgICAvLyBNaW5pbWl6ZSBpbi1sb29wIG9wZXJhdGlvbnMuIENhbGN1bGF0ZSBzdGFy
dGluZyB2YWx1ZSBhbmQgaW5jcmVtZW50LgogICAgICAgICAvLyBOZXh0IHN0ZXA6IHZhbHVlICs9
IGluYy4KQEAgLTY1OSwxNSArNTA4LDE1IEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpwcm9j
ZXNzTGluZWFyUmFtcChmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCYgd3JpdGVJbmRleCwKICAgICAg
ICAgdmFsdWVzW3dyaXRlSW5kZXggKyAxXSA9IDE7CiAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4
ICsgMl0gPSAyOwogICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleCArIDNdID0gMzsKLSAgICAgICAg
VmVjdG9yTWF0aDo6bXVsdGlwbHlCeVNjYWxhcih2YWx1ZXMgKyB3cml0ZUluZGV4LCBzYW1wbGlu
Z1BlcmlvZCwgdmFsdWVzICsgd3JpdGVJbmRleCwgNCk7Ci0gICAgICAgIFZlY3Rvck1hdGg6OmFk
ZFNjYWxhcih2YWx1ZXMgKyB3cml0ZUluZGV4LCBjdXJyZW50RnJhbWUgKiBzYW1wbGluZ1Blcmlv
ZCAtIHRpbWUxLnZhbHVlKCksIHZhbHVlcyArIHdyaXRlSW5kZXgsIDQpOworICAgICAgICBWZWN0
b3JNYXRoOjptdWx0aXBseUJ5U2NhbGFyKHZhbHVlcyArIHdyaXRlSW5kZXgsIGN1cnJlbnRTdGF0
ZS5zYW1wbGluZ1BlcmlvZCwgdmFsdWVzICsgd3JpdGVJbmRleCwgNCk7CisgICAgICAgIFZlY3Rv
ck1hdGg6OmFkZFNjYWxhcih2YWx1ZXMgKyB3cml0ZUluZGV4LCBjdXJyZW50RnJhbWUgKiBjdXJy
ZW50U3RhdGUuc2FtcGxpbmdQZXJpb2QgLSBjdXJyZW50U3RhdGUudGltZTEudmFsdWUoKSwgdmFs
dWVzICsgd3JpdGVJbmRleCwgNCk7CiAgICAgICAgIFZlY3Rvck1hdGg6Om11bHRpcGx5QnlTY2Fs
YXIodmFsdWVzICsgd3JpdGVJbmRleCwgayAqIHZhbHVlRGVsdGEsIHZhbHVlcyArIHdyaXRlSW5k
ZXgsIDQpOwotICAgICAgICBWZWN0b3JNYXRoOjphZGRTY2FsYXIodmFsdWVzICsgd3JpdGVJbmRl
eCwgdmFsdWUxLCB2YWx1ZXMgKyB3cml0ZUluZGV4LCA0KTsKKyAgICAgICAgVmVjdG9yTWF0aDo6
YWRkU2NhbGFyKHZhbHVlcyArIHdyaXRlSW5kZXgsIGN1cnJlbnRTdGF0ZS52YWx1ZTEsIHZhbHVl
cyArIHdyaXRlSW5kZXgsIDQpOwogCi0gICAgICAgIGZsb2F0IGluYyA9IDQgKiBzYW1wbGluZ1Bl
cmlvZCAqIGsgKiB2YWx1ZURlbHRhOworICAgICAgICBmbG9hdCBpbmMgPSA0ICogY3VycmVudFN0
YXRlLnNhbXBsaW5nUGVyaW9kICogayAqIHZhbHVlRGVsdGE7CiAKICAgICAgICAgLy8gVHJ1bmNh
dGUgbG9vcCBzdGVwcyB0byBtdWx0aXBsZSBvZiA0LgotICAgICAgICB1bnNpZ25lZCBmaWxsVG9G
cmFtZVRydW5jID0gd3JpdGVJbmRleCArICgoZmlsbFRvRnJhbWUgLSB3cml0ZUluZGV4KSAvIDQp
ICogNDsKKyAgICAgICAgdW5zaWduZWQgZmlsbFRvRnJhbWVUcnVuYyA9IHdyaXRlSW5kZXggKyAo
KGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZSAtIHdyaXRlSW5kZXgpIC8gNCkgKiA0OwogICAgICAg
ICAvLyBDb21wdXRlIGZpbmFsIGZyYW1lLgogICAgICAgICBjdXJyZW50RnJhbWUgKz0gZmlsbFRv
RnJhbWVUcnVuYyAtIHdyaXRlSW5kZXg7CiAKQEAgLTY4MiwxNyArNTMxLDEwOCBAQCB2b2lkIEF1
ZGlvUGFyYW1UaW1lbGluZTo6cHJvY2Vzc0xpbmVhclJhbXAoZmxvYXQqIHZhbHVlcywgdW5zaWdu
ZWQmIHdyaXRlSW5kZXgsCiAgICAgICAgIHZhbHVlID0gdmFsdWVzW3dyaXRlSW5kZXggLSAxXTsK
IAogICAgIC8vIFNlcmlhbGx5IHByb2Nlc3MgcmVtYWluaW5nIHZhbHVlcy4KLSAgICBmb3IgKDsg
d3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5kZXgpIHsKLSAgICAgICAgZmxvYXQg
eCA9IChjdXJyZW50RnJhbWUgKiBzYW1wbGluZ1BlcmlvZCAtIHRpbWUxLnZhbHVlKCkpICogazsK
LSAgICAgICAgdmFsdWUgPSB2YWx1ZTEgKyB2YWx1ZURlbHRhICogeDsKKyAgICBmb3IgKDsgd3Jp
dGVJbmRleCA8IGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KSB7CisgICAg
ICAgIGZsb2F0IHggPSAoY3VycmVudEZyYW1lICogY3VycmVudFN0YXRlLnNhbXBsaW5nUGVyaW9k
IC0gY3VycmVudFN0YXRlLnRpbWUxLnZhbHVlKCkpICogazsKKyAgICAgICAgdmFsdWUgPSBjdXJy
ZW50U3RhdGUudmFsdWUxICsgdmFsdWVEZWx0YSAqIHg7CiAgICAgICAgIHZhbHVlc1t3cml0ZUlu
ZGV4XSA9IHZhbHVlOwogICAgICAgICArK2N1cnJlbnRGcmFtZTsKICAgICB9CiB9CiAKLXZvaWQg
QXVkaW9QYXJhbVRpbWVsaW5lOjpwcm9jZXNzU2V0VGFyZ2V0KGZsb2F0KiB2YWx1ZXMsIHVuc2ln
bmVkJiB3cml0ZUluZGV4LCB1bnNpZ25lZCBmaWxsVG9GcmFtZSwgZmxvYXQmIHZhbHVlLCBmbG9h
dCB0YXJnZXQsIGZsb2F0IGRpc2NyZXRlVGltZUNvbnN0YW50KQordm9pZCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OnByb2Nlc3NFeHBvbmVudGlhbFJhbXAoY29uc3QgQXV0b21hdGlvblN0YXRlJiBjdXJy
ZW50U3RhdGUsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFs
dWUsIHVuc2lnbmVkJiB3cml0ZUluZGV4KQogewotICAgIGlmIChmaWxsVG9GcmFtZSA+IHdyaXRl
SW5kZXgpIHsKKyAgICBpZiAoIWN1cnJlbnRTdGF0ZS52YWx1ZTEgfHwgY3VycmVudFN0YXRlLnZh
bHVlMSAqIGN1cnJlbnRTdGF0ZS52YWx1ZTIgPCAwKSB7CisgICAgICAgIC8vIFBlciB0aGUgc3Bl
Y2lmaWNhdGlvbjoKKyAgICAgICAgLy8gSWYgdmFsdWUxIGFuZCB2YWx1ZTIgaGF2ZSBvcHBvc2l0
ZSBzaWducyBvciBpZiB2YWx1ZTEgaXMgemVybywgdGhlbiB2KHQpID0gdmFsdWUxIGZvciBUMCA8
PSB0IDwgVDEuCisgICAgICAgIHZhbHVlID0gY3VycmVudFN0YXRlLnZhbHVlMTsKKyAgICAgICAg
Zm9yICg7IHdyaXRlSW5kZXggPCBjdXJyZW50U3RhdGUuZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRl
eCkKKyAgICAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byBkZWx0YVRpbWUgPSBjdXJyZW50U3RhdGUudGltZTIgLSBj
dXJyZW50U3RhdGUudGltZTE7CisgICAgZmxvYXQgbnVtU2FtcGxlRnJhbWVzID0gZGVsdGFUaW1l
LnZhbHVlKCkgKiBjdXJyZW50U3RhdGUuc2FtcGxlUmF0ZTsKKyAgICAvLyBUaGUgdmFsdWUgZ29l
cyBleHBvbmVudGlhbGx5IGZyb20gdmFsdWUxIHRvIHZhbHVlMiBpbiBhIGR1cmF0aW9uIG9mIGRl
bHRhVGltZSBzZWNvbmRzIChjb3JyZXNwb25kaW5nIHRvIG51bVNhbXBsZUZyYW1lcykuCisgICAg
Ly8gQ29tcHV0ZSB0aGUgcGVyLXNhbXBsZSBtdWx0aXBsaWVyLgorICAgIGZsb2F0IG11bHRpcGxp
ZXIgPSBwb3dmKGN1cnJlbnRTdGF0ZS52YWx1ZTIgLyBjdXJyZW50U3RhdGUudmFsdWUxLCAxIC8g
bnVtU2FtcGxlRnJhbWVzKTsKKworICAgIC8vIFNldCB0aGUgc3RhcnRpbmcgdmFsdWUgb2YgdGhl
IGV4cG9uZW50aWFsIHJhbXAuCisgICAgdmFsdWUgPSBjdXJyZW50U3RhdGUudmFsdWUxICogcG93
KGN1cnJlbnRTdGF0ZS52YWx1ZTIgLyBzdGF0aWNfY2FzdDxkb3VibGU+KGN1cnJlbnRTdGF0ZS52
YWx1ZTEpLCAoY3VycmVudEZyYW1lICogY3VycmVudFN0YXRlLnNhbXBsaW5nUGVyaW9kIC0gY3Vy
cmVudFN0YXRlLnRpbWUxLnZhbHVlKCkpIC8gZGVsdGFUaW1lLnZhbHVlKCkpOworCisgICAgZm9y
ICg7IHdyaXRlSW5kZXggPCBjdXJyZW50U3RhdGUuZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkg
eworICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdmFsdWUgKj0g
bXVsdGlwbGllcjsKKyAgICAgICAgKytjdXJyZW50RnJhbWU7CisgICAgfQorCisgICAgLy8gfHZh
bHVlfCBnb3QgdXBkYXRlZCBvbmUgZXh0cmEgdGltZSBpbiB0aGUgYWJvdmUgbG9vcC4gUmVzdG9y
ZSBpdCB0byB0aGUgbGFzdCBjb21wdXRlZCB2YWx1ZS4KKyAgICBpZiAod3JpdGVJbmRleCA+PSAx
KQorICAgICAgICB2YWx1ZSAvPSBtdWx0aXBsaWVyOworfQorCit2b2lkIEF1ZGlvUGFyYW1UaW1l
bGluZTo6cHJvY2Vzc0NhbmNlbFZhbHVlcyhjb25zdCBBdXRvbWF0aW9uU3RhdGUmIGN1cnJlbnRT
dGF0ZSwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwg
dW5zaWduZWQmIHdyaXRlSW5kZXgpCit7CisgICAgLy8gSWYgdGhlIHByZXZpb3VzIGV2ZW50IHdh
cyBhIFNldFRhcmdldCBvciBFeHBvbmVudGlhbFJhbXAKKyAgICAvLyBldmVudCwgdGhlIGN1cnJl
bnQgdmFsdWUgaXMgb25lIHNhbXBsZSBiZWhpbmQuIFVwZGF0ZQorICAgIC8vIHRoZSBzYW1wbGUg
dmFsdWUgYnkgb25lIHNhbXBsZSwgYnV0IG9ubHkgYXQgdGhlIHN0YXJ0IG9mCisgICAgLy8gdGhp
cyBDYW5jZWxWYWx1ZXMgZXZlbnQuCisgICAgaWYgKGN1cnJlbnRTdGF0ZS5ldmVudC0+aGFzRGVm
YXVsdENhbmNlbGxlZFZhbHVlKCkpCisgICAgICAgIHZhbHVlID0gY3VycmVudFN0YXRlLmV2ZW50
LT52YWx1ZSgpOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgY2FuY2VsRnJhbWUgPSBjdXJy
ZW50U3RhdGUudGltZTEudmFsdWUoKSAqIGN1cnJlbnRTdGF0ZS5zYW1wbGVSYXRlOworICAgICAg
ICBpZiAoY3VycmVudFN0YXRlLmV2ZW50SW5kZXggPj0gMSAmJiBjYW5jZWxGcmFtZSA8PSBjdXJy
ZW50RnJhbWUgJiYgY3VycmVudEZyYW1lIDwgY2FuY2VsRnJhbWUgKyAxKSB7CisgICAgICAgICAg
ICBhdXRvIGxhc3RFdmVudFR5cGUgPSBtX2V2ZW50c1tjdXJyZW50U3RhdGUuZXZlbnRJbmRleCAt
IDFdLT50eXBlKCk7CisgICAgICAgICAgICBpZiAobGFzdEV2ZW50VHlwZSA9PSBQYXJhbUV2ZW50
OjpTZXRUYXJnZXQpIHsKKyAgICAgICAgICAgICAgICBmbG9hdCB0YXJnZXQgPSBtX2V2ZW50c1tj
dXJyZW50U3RhdGUuZXZlbnRJbmRleCAtIDFdLT52YWx1ZSgpOworICAgICAgICAgICAgICAgIGZs
b2F0IHRpbWVDb25zdGFudCA9IG1fZXZlbnRzW2N1cnJlbnRTdGF0ZS5ldmVudEluZGV4IC0gMV0t
PnRpbWVDb25zdGFudCgpOworICAgICAgICAgICAgICAgIGZsb2F0IGRpc2NyZXRlVGltZUNvbnN0
YW50ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25z
dGFudEZvclNhbXBsZVJhdGUodGltZUNvbnN0YW50LCBjdXJyZW50U3RhdGUuY29udHJvbFJhdGUp
KTsKKyAgICAgICAgICAgICAgICB2YWx1ZSArPSAodGFyZ2V0IC0gdmFsdWUpICogZGlzY3JldGVU
aW1lQ29uc3RhbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3Ig
KDsgd3JpdGVJbmRleCA8IGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQor
ICAgICAgICB2YWx1ZXNbd3JpdGVJbmRleF0gPSB2YWx1ZTsKKworICAgIGN1cnJlbnRGcmFtZSA9
IGN1cnJlbnRTdGF0ZS5maWxsVG9FbmRGcmFtZTsKK30KKwordm9pZCBBdWRpb1BhcmFtVGltZWxp
bmU6OnByb2Nlc3NTZXRUYXJnZXQoY29uc3QgQXV0b21hdGlvblN0YXRlJiBjdXJyZW50U3RhdGUs
IGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2ln
bmVkJiB3cml0ZUluZGV4KQoreworICAgIC8vIEV4cG9uZW50aWFsIGFwcHJvYWNoIHRvIHRhcmdl
dCB2YWx1ZSB3aXRoIGdpdmVuIHRpbWUgY29uc3RhbnQuCisgICAgZmxvYXQgdGFyZ2V0ID0gY3Vy
cmVudFN0YXRlLmV2ZW50LT52YWx1ZSgpOworICAgIGZsb2F0IHRpbWVDb25zdGFudCA9IGN1cnJl
bnRTdGF0ZS5ldmVudC0+dGltZUNvbnN0YW50KCk7CisgICAgZmxvYXQgZGlzY3JldGVUaW1lQ29u
c3RhbnQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oQXVkaW9VdGlsaXRpZXM6OmRpc2NyZXRlVGltZUNv
bnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIGN1cnJlbnRTdGF0ZS5jb250cm9sUmF0
ZSkpOworCisgICAgLy8gU2V0IHRoZSBzdGFydGluZyB2YWx1ZSBjb3JyZWN0bHkuIFRoaXMgaXMg
b25seSBuZWVkZWQgd2hlbiB0aGUKKyAgICAvLyBjdXJyZW50IHRpbWUgaXMgImVxdWFsIiB0byB0
aGUgc3RhcnQgdGltZSBvZiB0aGlzIGV2ZW50LiBUaGlzIGlzCisgICAgLy8gdG8gZ2V0IHRoZSBz
YW1wbGluZyBjb3JyZWN0IGlmIHRoZSBzdGFydCB0aW1lIG9mIHRoaXMgYXV0b21hdGlvbgorICAg
IC8vIGlzbid0IG9uIGEgZnJhbWUgYm91bmRhcnkuIE90aGVyd2lzZSwgd2UgY2FuIGp1c3QgY29u
dGludWUgZnJvbQorICAgIC8vIHdoZXJlIHdlIGxlZnQgb2ZmIGZyb20gdGhlIHByZXZpb3VzIHJl
bmRlcmluZyBxdWFudHVtLgorICAgIGRvdWJsZSByYW1wU3RhcnRGcmFtZSA9IGN1cnJlbnRTdGF0
ZS50aW1lMS52YWx1ZSgpICogY3VycmVudFN0YXRlLnNhbXBsZVJhdGU7CisgICAgLy8gQ29uZGl0
aW9uIGlzIGMgLSAxIDwgciA8PSBjIHdoZXJlIGMgPSBjdXJyZW50RnJhbWUgYW5kIHIgPQorICAg
IC8vIHJhbXBTdGFydEZyYW1lLiBDb21wdXRlIGl0IHRoaXMgd2F5IGJlY2F1c2UgY3VycmVudEZy
YW1lIGlzCisgICAgLy8gdW5zaWduZWQgYW5kIGNvdWxkIGJlIDAuCisgICAgaWYgKHJhbXBTdGFy
dEZyYW1lIDw9IGN1cnJlbnRGcmFtZSAmJiBjdXJyZW50RnJhbWUgPCByYW1wU3RhcnRGcmFtZSAr
IDEpCisgICAgICAgIHZhbHVlID0gdGFyZ2V0ICsgKHZhbHVlIC0gdGFyZ2V0KSAqIGV4cCgtKGN1
cnJlbnRGcmFtZSAqIGN1cnJlbnRTdGF0ZS5zYW1wbGluZ1BlcmlvZCAtIGN1cnJlbnRTdGF0ZS50
aW1lMS52YWx1ZSgpKSAvIHRpbWVDb25zdGFudCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIE90
aGVyd2lzZSwgbmVlZCB0byBjb21wdXRlIGEgbmV3IHZhbHVlIGJlY2F1c2UgfHZhbHVlfCBpcyB0
aGUKKyAgICAgICAgLy8gbGFzdCBjb21wdXRlZCB2YWx1ZSBvZiBTZXRUYXJnZXQuIFRpbWUgaGFz
IHByb2dyZXNzZWQgYnkgb25lCisgICAgICAgIC8vIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVwZGF0
ZSB0aGUgdmFsdWUgZm9yIHRoZSBuZXcgZnJhbWUuCisgICAgICAgIHZhbHVlICs9ICh0YXJnZXQg
LSB2YWx1ZSkgKiBkaXNjcmV0ZVRpbWVDb25zdGFudDsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUg
dmFsdWUgaXMgY2xvc2UgZW5vdWdoIHRvIHRoZSB0YXJnZXQsIGp1c3QgZmlsbCBpbiB0aGUgZGF0
YQorICAgIC8vIHdpdGggdGhlIHRhcmdldCB2YWx1ZS4KKyAgICBpZiAoaGFzU2V0VGFyZ2V0Q29u
dmVyZ2VkKHZhbHVlLCB0YXJnZXQsIFNlY29uZHMgeyBjdXJyZW50RnJhbWUgKiBjdXJyZW50U3Rh
dGUuc2FtcGxpbmdQZXJpb2QgfSwgY3VycmVudFN0YXRlLnRpbWUxLCB0aW1lQ29uc3RhbnQpKSB7
CisgICAgICAgIGN1cnJlbnRGcmFtZSArPSBjdXJyZW50U3RhdGUuZmlsbFRvRnJhbWUgLSB3cml0
ZUluZGV4OworICAgICAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGN1cnJlbnRTdGF0ZS5maWxsVG9G
cmFtZTsgKyt3cml0ZUluZGV4KQorICAgICAgICAgICAgdmFsdWVzW3dyaXRlSW5kZXhdID0gdGFy
Z2V0OworICAgICAgICB2YWx1ZSA9IHRhcmdldDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmIChjdXJyZW50U3RhdGUuZmlsbFRvRnJhbWUgPiB3cml0ZUluZGV4KSB7CiAgICAgICAg
IC8vIFJlc29sdmUgcmVjdXJzaW9uIGJ5IGV4cGFuZGluZyBjb25zdGFudHMgdG8gYWNoaWV2ZSBh
IDQtc3RlcCBsb29wIHVucm9sbGluZy4KICAgICAgICAgLy8KICAgICAgICAgLy8gdjEgPSB2MCAr
ICh0IC0gdjApICogYwpAQCAtNzA4LDcgKzY0OCw3IEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5l
Ojpwcm9jZXNzU2V0VGFyZ2V0KGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkJiB3cml0ZUluZGV4LCB1
CiAgICAgICAgIGZsb2F0IGRlbHRhOwogCiAgICAgICAgIC8vIFByb2Nlc3MgNCBsb29wIHN0ZXBz
LgotICAgICAgICB1bnNpZ25lZCBmaWxsVG9GcmFtZVRydW5jID0gd3JpdGVJbmRleCArICgoZmls
bFRvRnJhbWUgLSB3cml0ZUluZGV4KSAvIDQpICogNDsKKyAgICAgICAgdW5zaWduZWQgZmlsbFRv
RnJhbWVUcnVuYyA9IHdyaXRlSW5kZXggKyAoKGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZSAtIHdy
aXRlSW5kZXgpIC8gNCkgKiA0OwogICAgICAgICBjb25zdCBmbG9hdCBjVmVjdG9yWzRdID0geyAw
LCBjMCwgYzEsIGMyIH07CiAKICAgICAgICAgZm9yICg7IHdyaXRlSW5kZXggPCBmaWxsVG9GcmFt
ZVRydW5jOyB3cml0ZUluZGV4ICs9IDQpIHsKQEAgLTcyMiw3ICs2NjIsNyBAQCB2b2lkIEF1ZGlv
UGFyYW1UaW1lbGluZTo6cHJvY2Vzc1NldFRhcmdldChmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCYg
d3JpdGVJbmRleCwgdQogICAgIH0KIAogICAgIC8vIFNlcmlhbGx5IHByb2Nlc3MgcmVtYWluaW5n
IHZhbHVlcy4KLSAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGZpbGxUb0ZyYW1lOyArK3dyaXRlSW5k
ZXgpIHsKKyAgICBmb3IgKDsgd3JpdGVJbmRleCA8IGN1cnJlbnRTdGF0ZS5maWxsVG9GcmFtZTsg
Kyt3cml0ZUluZGV4KSB7CiAgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOwogICAg
ICAgICB2YWx1ZSArPSAodGFyZ2V0IC0gdmFsdWUpICogZGlzY3JldGVUaW1lQ29uc3RhbnQ7CiAg
ICAgfQpAQCAtNzMxLDYgKzY3MSw5OSBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cHJvY2Vz
c1NldFRhcmdldChmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCYgd3JpdGVJbmRleCwgdQogICAgIC8v
IFJlc2V0IGl0IHRvIHRoZSBsYXN0IGNvbXB1dGVkIHZhbHVlLgogICAgIGlmICh3cml0ZUluZGV4
ID49IDEpCiAgICAgICAgIHZhbHVlID0gdmFsdWVzW3dyaXRlSW5kZXggLSAxXTsKKworICAgIGN1
cnJlbnRGcmFtZSA9IGN1cnJlbnRTdGF0ZS5maWxsVG9FbmRGcmFtZTsKK30KKwordm9pZCBBdWRp
b1BhcmFtVGltZWxpbmU6OnByb2Nlc3NTZXRWYWx1ZUN1cnZlKGNvbnN0IEF1dG9tYXRpb25TdGF0
ZSYgY3VycmVudFN0YXRlLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxv
YXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCkKK3sKKyAgICBhdXRvKiBjdXJ2ZURhdGEg
PSBjdXJyZW50U3RhdGUuZXZlbnQtPmN1cnZlKCkuZGF0YSgpOworICAgIHVuc2lnbmVkIG51bWJl
ck9mQ3VydmVQb2ludHMgPSBjdXJyZW50U3RhdGUuZXZlbnQtPmN1cnZlKCkuc2l6ZSgpOworICAg
IGZsb2F0IGN1cnZlRW5kVmFsdWUgPSBjdXJyZW50U3RhdGUuZXZlbnQtPmN1cnZlRW5kVmFsdWUo
KTsKKyAgICBzaXplX3QgZmlsbFRvRW5kRnJhbWUgPSBjdXJyZW50U3RhdGUuZmlsbFRvRW5kRnJh
bWU7CisgICAgdW5zaWduZWQgZmlsbFRvRnJhbWUgPSBjdXJyZW50U3RhdGUuZmlsbFRvRnJhbWU7
CisKKyAgICAvLyBDdXJ2ZSBldmVudHMgaGF2ZSBkdXJhdGlvbiwgc28gZG9uJ3QganVzdCB1c2Ug
bmV4dCBldmVudCB0aW1lLgorICAgIGF1dG8gZHVyYXRpb24gPSBjdXJyZW50U3RhdGUuZXZlbnQt
PmR1cmF0aW9uKCk7CisgICAgZG91YmxlIGN1cnZlUG9pbnRzUGVyRnJhbWUgPSBjdXJyZW50U3Rh
dGUuZXZlbnQtPmN1cnZlUG9pbnRzUGVyU2Vjb25kKCkgKiBjdXJyZW50U3RhdGUuc2FtcGxpbmdQ
ZXJpb2Q7CisKKyAgICBpZiAoIWN1cnZlRGF0YSB8fCAhbnVtYmVyT2ZDdXJ2ZVBvaW50cyB8fCBk
dXJhdGlvbiA8PSAwX3MgfHwgY3VycmVudFN0YXRlLnNhbXBsZVJhdGUgPD0gMCkgeworICAgICAg
ICAvLyBFcnJvciBjb25kaXRpb24gLSBzaW1wbHkgcHJvcGFnYXRlIHByZXZpb3VzIHZhbHVlLgor
ICAgICAgICBjdXJyZW50RnJhbWUgPSBmaWxsVG9FbmRGcmFtZTsKKyAgICAgICAgZm9yICg7IHdy
aXRlSW5kZXggPCBmaWxsVG9GcmFtZTsgKyt3cml0ZUluZGV4KQorICAgICAgICAgICAgdmFsdWVz
W3dyaXRlSW5kZXhdID0gdmFsdWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBT
YXZlIG9sZCB2YWx1ZXMgYW5kIHJlY2FsY3VsYXRlIGluZm9ybWF0aW9uIGJhc2VkIG9uIHRoZSBj
dXJ2ZSdzIGR1cmF0aW9uCisgICAgLy8gaW5zdGVhZCBvZiB0aGUgbmV4dCBldmVudCB0aW1lLgor
ICAgIHVuc2lnbmVkIG5leHRFdmVudEZpbGxUb0ZyYW1lID0gZmlsbFRvRnJhbWU7CisKKyAgICBk
b3VibGUgY3VydmVFbmRGcmFtZSA9IGNlaWwoY3VycmVudFN0YXRlLnNhbXBsZVJhdGUgKiAoY3Vy
cmVudFN0YXRlLnRpbWUxICsgZHVyYXRpb24pLnZhbHVlKCkpOworICAgIGlmIChjdXJyZW50U3Rh
dGUuZW5kRnJhbWUgPiBjdXJ2ZUVuZEZyYW1lKQorICAgICAgICBmaWxsVG9FbmRGcmFtZSA9IHN0
YXRpY19jYXN0PHNpemVfdD4oY3VydmVFbmRGcmFtZSk7CisgICAgZWxzZQorICAgICAgICBmaWxs
VG9FbmRGcmFtZSA9IGN1cnJlbnRTdGF0ZS5lbmRGcmFtZTsKKworICAgIGZpbGxUb0ZyYW1lID0g
KGZpbGxUb0VuZEZyYW1lIDwgY3VycmVudFN0YXRlLnN0YXJ0RnJhbWUpID8gMCA6IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihmaWxsVG9FbmRGcmFtZSAtIGN1cnJlbnRTdGF0ZS5zdGFydEZyYW1lKTsK
KyAgICBmaWxsVG9GcmFtZSA9IHN0ZDo6bWluKGZpbGxUb0ZyYW1lLCBjdXJyZW50U3RhdGUubnVt
YmVyT2ZWYWx1ZXMpOworCisgICAgLy8gSW5kZXggaW50byB0aGUgY3VydmUgZGF0YSB1c2luZyBh
IGZsb2F0aW5nLXBvaW50IHZhbHVlLgorICAgIC8vIFdlJ3JlIHNjYWxpbmcgdGhlIG51bWJlciBv
ZiBjdXJ2ZSBwb2ludHMgYnkgdGhlIGR1cmF0aW9uIChzZWUgY3VydmVQb2ludHNQZXJGcmFtZSku
CisgICAgZG91YmxlIGN1cnZlVmlydHVhbEluZGV4ID0gMDsKKyAgICBpZiAoY3VycmVudFN0YXRl
LnRpbWUxLnZhbHVlKCkgPCBjdXJyZW50RnJhbWUgKiBjdXJyZW50U3RhdGUuc2FtcGxpbmdQZXJp
b2QpIHsKKyAgICAgICAgLy8gSW5kZXggc29tZXdoZXJlIGluIHRoZSBtaWRkbGUgb2YgdGhlIGN1
cnZlIGRhdGEuCisgICAgICAgIC8vIERvbid0IHVzZSB0aW1lVG9TYW1wbGVGcmFtZSgpIHNpbmNl
IHdlIHdhbnQgdGhlIGV4YWN0IGZsb2F0aW5nLXBvaW50IGZyYW1lLgorICAgICAgICBkb3VibGUg
ZnJhbWVPZmZzZXQgPSBjdXJyZW50RnJhbWUgLSBjdXJyZW50U3RhdGUudGltZTEudmFsdWUoKSAq
IGN1cnJlbnRTdGF0ZS5zYW1wbGVSYXRlOworICAgICAgICBjdXJ2ZVZpcnR1YWxJbmRleCA9IGN1
cnZlUG9pbnRzUGVyRnJhbWUgKiBmcmFtZU9mZnNldDsKKyAgICB9CisKKyAgICAvLyBTZXQgdGhl
IGRlZmF1bHQgdmFsdWUgaW4gY2FzZSBmaWxsVG9GcmFtZSBpcyAwLgorICAgIHZhbHVlID0gY3Vy
dmVFbmRWYWx1ZTsKKworICAgIC8vIFJlbmRlciB0aGUgc3RyZXRjaGVkIGN1cnZlIGRhdGEgdXNp
bmcgbmVhcmVzdCBuZWlnaGJvciBzYW1wbGluZy4KKyAgICAvLyBPdmVyc2FtcGxlZCBjdXJ2ZSBk
YXRhIGNhbiBiZSBwcm92aWRlZCBpZiBzbW9vdGhuZXNzIGlzIGRlc2lyZWQuCisgICAgaW50IGsg
PSAwOworICAgIGZvciAoOyB3cml0ZUluZGV4IDwgZmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCwg
KytrKSB7CisgICAgICAgIC8vIENvbXB1dGUgY3VycmVudCBpbmRleCB0aGlzIHdheSB0byBtaW5p
bWl6ZSByb3VuZC1vZmYgdGhhdCB3b3VsZAorICAgICAgICAvLyBoYXZlIG9jY3VycmVkIGJ5IGlu
Y3JlbWVudGluZyB0aGUgaW5kZXggYnkgY3VydmVQb2ludHNQZXJGcmFtZS4KKyAgICAgICAgZG91
YmxlIGN1cnJlbnRWaXJ0dWFsSW5kZXggPSBjdXJ2ZVZpcnR1YWxJbmRleCArIGsgKiBjdXJ2ZVBv
aW50c1BlckZyYW1lOworICAgICAgICB1bnNpZ25lZCBjdXJ2ZUluZGV4MDsKKworICAgICAgICAv
LyBDbGFtcCBpbmRleCB0byB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBhcnJheS4KKyAgICAgICAg
aWYgKGN1cnJlbnRWaXJ0dWFsSW5kZXggPCBudW1iZXJPZkN1cnZlUG9pbnRzKQorICAgICAgICAg
ICAgY3VydmVJbmRleDAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY3VycmVudFZpcnR1YWxJbmRl
eCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGN1cnZlSW5kZXgwID0gbnVtYmVyT2ZDdXJ2
ZVBvaW50cyAtIDE7CisKKyAgICAgICAgdW5zaWduZWQgY3VydmVJbmRleDEgPSBzdGQ6Om1pbihj
dXJ2ZUluZGV4MCArIDEsIG51bWJlck9mQ3VydmVQb2ludHMgLSAxKTsKKworICAgICAgICAvLyBM
aW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHRoZSB0d28gbmVhcmVzdCBjdXJ2ZSBwb2ludHMu
CisgICAgICAgIC8vIHxkZWx0YXwgaXMgY2xhbXBlZCB0byAxIGJlY2F1c2UgY3VycmVudFZpcnR1
YWxJbmRleCBjYW4gZXhjZWVkCisgICAgICAgIC8vIGN1cnZlSW5kZXgwIGJ5IG1vcmUgdGhhbiBv
bmUuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIHJlYWNoZWQKKyAgICAgICAgLy8gdGhlIGVuZCBv
ZiB0aGUgY3VydmUgYnV0IHN0aWxsIG5lZWQgdmFsdWVzIHRvIGZpbGwgb3V0IHRoZQorICAgICAg
ICAvLyBjdXJyZW50IHJlbmRlcmluZyBxdWFudHVtLgorICAgICAgICBBU1NFUlQoY3VydmVJbmRl
eDAgPCBudW1iZXJPZkN1cnZlUG9pbnRzKTsKKyAgICAgICAgQVNTRVJUKGN1cnZlSW5kZXgxIDwg
bnVtYmVyT2ZDdXJ2ZVBvaW50cyk7CisgICAgICAgIGZsb2F0IGMwID0gY3VydmVEYXRhW2N1cnZl
SW5kZXgwXTsKKyAgICAgICAgZmxvYXQgYzEgPSBjdXJ2ZURhdGFbY3VydmVJbmRleDFdOworICAg
ICAgICBkb3VibGUgZGVsdGEgPSBzdGQ6Om1pbihjdXJyZW50VmlydHVhbEluZGV4IC0gY3VydmVJ
bmRleDAsIDEuMCk7CisKKyAgICAgICAgdmFsdWUgPSBjMCArIChjMSAtIGMwKSAqIGRlbHRhOwor
CisgICAgICAgIHZhbHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOworICAgIH0KKworICAgIC8vIElm
IHRoZXJlJ3MgYW55IHRpbWUgbGVmdCBhZnRlciB0aGUgZHVyYXRpb24gb2YgdGhpcyBldmVudCBh
bmQgdGhlIHN0YXJ0CisgICAgLy8gb2YgdGhlIG5leHQsIHRoZW4ganVzdCBwcm9wYWdhdGUgdGhl
IGxhc3QgdmFsdWUuCisgICAgaWYgKHdyaXRlSW5kZXggPCBuZXh0RXZlbnRGaWxsVG9GcmFtZSkg
eworICAgICAgICB2YWx1ZSA9IGN1cnZlRW5kVmFsdWU7CisgICAgICAgIGZvciAoOyB3cml0ZUlu
ZGV4IDwgbmV4dEV2ZW50RmlsbFRvRnJhbWU7ICsrd3JpdGVJbmRleCkKKyAgICAgICAgICAgIHZh
bHVlc1t3cml0ZUluZGV4XSA9IHZhbHVlOworICAgIH0KKworICAgIC8vIFJlLWFkanVzdCBjdXJy
ZW50IHRpbWUKKyAgICBjdXJyZW50RnJhbWUgKz0gbmV4dEV2ZW50RmlsbFRvRnJhbWU7CiB9CiAK
IHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpwcm9jZXNzU2V0VGFyZ2V0Rm9sbG93ZWRCeVJhbXAo
aW50IGV2ZW50SW5kZXgsIFBhcmFtRXZlbnQqJiBldmVudCwgUGFyYW1FdmVudDo6VHlwZSBuZXh0
RXZlbnRUeXBlLCBzaXplX3QgY3VycmVudEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSwgZG91Ymxl
IGNvbnRyb2xSYXRlLCBmbG9hdCYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRleCBkZDdiODU4NmMwOTIzNDJh
OTEyNDM1ZTRhZDAyODZiMzBlMzNhNTk5Li5iZGUwMDBhOTJhYjgyNGUyMjQ5Y2MxMmQwYjZkYjdl
MzAzYzEzZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIC8vIGNv
bnRyb2xSYXRlIGlzIHRoZSByYXRlIChudW1iZXIgcGVyIHNlY29uZCkgYXQgd2hpY2ggcGFyYW1l
dGVyIHZhbHVlcyB3aWxsIGJlIGNhbGN1bGF0ZWQuCiAgICAgLy8gSXQgc2hvdWxkIGVxdWFsIHNh
bXBsZVJhdGUgZm9yIHNhbXBsZS1hY2N1cmF0ZSBwYXJhbWV0ZXIgY2hhbmdlcywgYW5kIG90aGVy
d2lzZSB3aWxsIHVzdWFsbHkgbWF0Y2gKICAgICAvLyB0aGUgcmVuZGVyIHF1YW50dW0gc2l6ZSBz
dWNoIHRoYXQgdGhlIHBhcmFtZXRlciB2YWx1ZSBjaGFuZ2VzIG9uY2UgcGVyIHJlbmRlciBxdWFu
dHVtLgotICAgIGZsb2F0IHZhbHVlc0ZvclRpbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6
ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBt
YXhWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBz
YW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOworICAgIGZsb2F0IHZhbHVlc0ZvckZyYW1l
UmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBlbmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZh
bHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUsIGZsb2F0KiB2YWx1ZXMsIHVuc2ln
bmVkIG51bWJlck9mVmFsdWVzLCBkb3VibGUgc2FtcGxlUmF0ZSwgZG91YmxlIGNvbnRyb2xSYXRl
KTsKIAogICAgIGJvb2wgaGFzVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudHMuc2l6ZSgp
OyB9CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgICAgICBTZWNvbmRzIHRpbWUo
KSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0KICAgICAgICAgZmxvYXQgdGltZUNvbnN0YW50KCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lQ29uc3RhbnQ7IH0KICAgICAgICAgU2Vjb25kcyBkdXJhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KLSAgICAgICAgVmVjdG9yPGZsb2F0PiYg
Y3VydmUoKSB7IHJldHVybiBtX2N1cnZlOyB9CisgICAgICAgIGNvbnN0IFZlY3RvcjxmbG9hdD4m
IGN1cnZlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJ2ZTsgfQogICAgICAgICBQYXJhbUV2ZW50KiBz
YXZlZEV2ZW50KCkgeyByZXR1cm4gbV9zYXZlZEV2ZW50LmdldCgpOyB9CiAKICAgICAgICAgdm9p
ZCBzZXRDYW5jZWxsZWRWYWx1ZShmbG9hdCBjYW5jZWxsZWRWYWx1ZSkKQEAgLTE1MiwxNiArMTUy
LDUxIEBAIHByaXZhdGU6CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXJhbUV2ZW50PiBtX3Nh
dmVkRXZlbnQ7CiAgICAgfTsKIAorICAgIC8vIFN0YXRlIG9mIHRoZSB0aW1lbGluZSBmb3IgdGhl
IGN1cnJlbnQgZXZlbnQuCisgICAgc3RydWN0IEF1dG9tYXRpb25TdGF0ZSB7CisgICAgICAgIC8v
IFBhcmFtZXRlcnMgZm9yIHRoZSBjdXJyZW50IGF1dG9tYXRpb24gcmVxdWVzdC4gTnVtYmVyIG9m
CisgICAgICAgIC8vIHZhbHVlcyB0byBiZSBjb21wdXRlZCBmb3IgdGhlIGF1dG9tYXRpb24gcmVx
dWVzdAorICAgICAgICBjb25zdCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlczsKKyAgICAgICAgLy8g
U3RhcnQgYW5kIGVuZCBmcmFtZXMgZm9yIHRoaXMgYXV0b21hdGlvbiByZXF1ZXN0CisgICAgICAg
IGNvbnN0IHNpemVfdCBzdGFydEZyYW1lOworICAgICAgICBjb25zdCBzaXplX3QgZW5kRnJhbWU7
CisKKyAgICAgICAgLy8gU2FtcGxlIHJhdGUgYW5kIGNvbnRyb2wgcmF0ZSBmb3IgdGhpcyByZXF1
ZXN0CisgICAgICAgIGNvbnN0IGRvdWJsZSBzYW1wbGVSYXRlOworICAgICAgICBjb25zdCBkb3Vi
bGUgY29udHJvbFJhdGU7CisgICAgICAgIGNvbnN0IGRvdWJsZSBzYW1wbGluZ1BlcmlvZDsKKwor
ICAgICAgICAvLyBQYXJhbWV0ZXJzIG5lZWRlZCBmb3IgcHJvY2Vzc2luZyB0aGUgY3VycmVudCBl
dmVudC4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgZmlsbFRvRnJhbWU7CisgICAgICAgIGNvbnN0
IHNpemVfdCBmaWxsVG9FbmRGcmFtZTsKKworICAgICAgICAvLyBWYWx1ZSBhbmQgdGltZSBmb3Ig
dGhlIGN1cnJlbnQgZXZlbnQKKyAgICAgICAgY29uc3QgZmxvYXQgdmFsdWUxOworICAgICAgICBj
b25zdCBTZWNvbmRzIHRpbWUxOworCisgICAgICAgIC8vIFZhbHVlIGFuZCB0aW1lIGZvciB0aGUg
bmV4dCBldmVudCwgaWYgYW55LgorICAgICAgICBjb25zdCBmbG9hdCB2YWx1ZTI7CisgICAgICAg
IGNvbnN0IFNlY29uZHMgdGltZTI7CisKKyAgICAgICAgLy8gVGhlIGN1cnJlbnQgZXZlbnQsIGFu
ZCBpdCdzIGluZGV4IGluIHRoZSBldmVudCB2ZWN0b3IuCisgICAgICAgIGNvbnN0IFBhcmFtRXZl
bnQqIGV2ZW50OworICAgICAgICBjb25zdCBpbnQgZXZlbnRJbmRleDsKKyAgICB9OworCiAgICAg
dm9pZCByZW1vdmVDYW5jZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSk7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0RXZlbnQoVW5pcXVlUmVmPFBhcmFtRXZlbnQ+KTsK
LSAgICBmbG9hdCB2YWx1ZXNGb3JUaW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXpl
X3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQg
bnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOwor
ICAgIGZsb2F0IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXpl
X3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQg
bnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOwog
ICAgIGZsb2F0IGxpbmVhclJhbXBBdFRpbWUoU2Vjb25kcyB0LCBmbG9hdCB2YWx1ZTEsIFNlY29u
ZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMik7CiAgICAgZmxvYXQgZXhwb25l
bnRpYWxSYW1wQXRUaW1lKFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBm
bG9hdCB2YWx1ZTIsIFNlY29uZHMgdGltZTIpOwogICAgIGZsb2F0IHZhbHVlQ3VydmVBdFRpbWUo
U2Vjb25kcyB0LCBTZWNvbmRzIHRpbWUxLCBTZWNvbmRzIGR1cmF0aW9uLCBjb25zdCBmbG9hdCog
Y3VydmVEYXRhLCBzaXplX3QgY3VydmVMZW5ndGgpOwogICAgIHZvaWQgaGFuZGxlQ2FuY2VsVmFs
dWVzKFBhcmFtRXZlbnQmLCBQYXJhbUV2ZW50KiBuZXh0RXZlbnQsIGZsb2F0JiB2YWx1ZTIsIFNl
Y29uZHMmIHRpbWUyLCBQYXJhbUV2ZW50OjpUeXBlJiBuZXh0RXZlbnRUeXBlKTsKICAgICBib29s
IGlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmLCBjb25zdCBQYXJhbUV2ZW50KiBuZXh0
RXZlbnQsIHNpemVfdCBjdXJyZW50RnJhbWUsIGRvdWJsZSBzYW1wbGVSYXRlKSBjb25zdDsKLSAg
ICB2b2lkIHByb2Nlc3NMaW5lYXJSYW1wKGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4LCB1bnNpZ25lZCBmaWxsVG9GcmFtZSwgZmxvYXQmIHZhbHVlLCBmbG9hdCB2YWx1ZTEsIGZs
b2F0IHZhbHVlMiwgU2Vjb25kcyBkZWx0YVRpbWUsIFNlY29uZHMgdGltZTEsIGRvdWJsZSBzYW1w
bGluZ1BlcmlvZCwgc2l6ZV90JiBjdXJyZW50RnJhbWUpOwotICAgIHZvaWQgcHJvY2Vzc1NldFRh
cmdldChmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCYgd3JpdGVJbmRleCwgdW5zaWduZWQgZmlsbFRv
RnJhbWUsIGZsb2F0JiB2YWx1ZSwgZmxvYXQgdGFyZ2V0LCBmbG9hdCBkaXNjcmV0ZVRpbWVDb25z
dGFudCk7CisKKyAgICB2b2lkIHByb2Nlc3NMaW5lYXJSYW1wKGNvbnN0IEF1dG9tYXRpb25TdGF0
ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVu
c2lnbmVkJiB3cml0ZUluZGV4KTsKKyAgICB2b2lkIHByb2Nlc3NFeHBvbmVudGlhbFJhbXAoY29u
c3QgQXV0b21hdGlvblN0YXRlJiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUs
IGZsb2F0JiB2YWx1ZSwgdW5zaWduZWQmIHdyaXRlSW5kZXgpOworICAgIHZvaWQgcHJvY2Vzc0Nh
bmNlbFZhbHVlcyhjb25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3Qm
IGN1cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CisgICAg
dm9pZCBwcm9jZXNzU2V0VGFyZ2V0KGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1
ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4KTsKKyAgICB2b2lkIHByb2Nlc3NTZXRWYWx1ZUN1cnZlKGNvbnN0IEF1dG9tYXRpb25TdGF0
ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVu
c2lnbmVkJiB3cml0ZUluZGV4KTsKICAgICB2b2lkIHByb2Nlc3NTZXRUYXJnZXRGb2xsb3dlZEJ5
UmFtcChpbnQgZXZlbnRJbmRleCwgUGFyYW1FdmVudComLCBQYXJhbUV2ZW50OjpUeXBlIG5leHRF
dmVudFR5cGUsIHNpemVfdCBjdXJyZW50RnJhbWUsIGRvdWJsZSBzYW1wbGluZ1BlcmlvZCwgZG91
YmxlIGNvbnRyb2xSYXRlLCBmbG9hdCYgdmFsdWUpOwogCiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxQ
YXJhbUV2ZW50Pj4gbV9ldmVudHM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>