<?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>205511</bug_id>
          
          <creation_ts>2019-12-20 11:18:00 -0800</creation_ts>
          <short_desc>[Media in GPU process] Get audio playing</short_desc>
          <delta_ts>2019-12-20 23:35:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>205123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600824</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-20 11:18:00 -0800</bug_when>
    <thetext>Get audio playing in GPU process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600825</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-20 11:18:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58120354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600928</commentid>
    <comment_count>2</comment_count>
      <attachid>386254</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-20 14:23:23 -0800</bug_when>
    <thetext>Created attachment 386254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600947</commentid>
    <comment_count>3</comment_count>
      <attachid>386260</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-20 14:42:59 -0800</bug_when>
    <thetext>Created attachment 386260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600954</commentid>
    <comment_count>4</comment_count>
      <attachid>386260</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-20 14:51:17 -0800</bug_when>
    <thetext>Comment on attachment 386260
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386260&amp;action=review

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:888
&gt; -#if HAVE(AVFOUNDATION_LOADER_DELEGATE)
&gt; +#if HAVE(AVFOUNDATION_LOADER_DELEGATE) &amp;&amp; 0

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600976</commentid>
    <comment_count>5</comment_count>
      <attachid>386266</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-20 15:19:50 -0800</bug_when>
    <thetext>Created attachment 386266
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600984</commentid>
    <comment_count>6</comment_count>
      <attachid>386269</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-20 15:28:37 -0800</bug_when>
    <thetext>Created attachment 386269
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601072</commentid>
    <comment_count>7</comment_count>
      <attachid>386269</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 23:35:52 -0800</bug_when>
    <thetext>Comment on attachment 386269
Patch for landing

Clearing flags on attachment: 386269

Committed r253861: &lt;https://trac.webkit.org/changeset/253861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601073</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-20 23:35:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386254</attachid>
            <date>2019-12-20 14:23:23 -0800</date>
            <delta_ts>2019-12-20 14:42:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>remote-audio-playback-patch.txt</filename>
            <type>text/plain</type>
            <size>55276</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MWRiOWJhZmQ2NS4uMzExY2ZhM2YxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOS0xMi0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEdldCBhdWRpbyBwbGF5aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MTEK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTIwMzU0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBtYW51YWxseSB3aXRoIGEgbW9kaWZp
ZWQgc2FuZGJveCBiZWNhdXNlIGl0IGlzbid0IHBvc3NpYmxlIHRvIGxvYWQgbWVkaWEKKyAgICAg
ICAgaW4gdGhlIEdQVSBwcm9jZXNzIHlldC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpidWZmZXJl
ZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZWVr
YWJsZVRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3JtVGlt
ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM6OmNsZWFyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuaDoKKwogMjAx
OS0xMi0yMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHRoZSBjZXJ0aWZpY2F0ZSBpbmZvIGNoZWNrcyByZWxhdGVkIHRvIGdldFVzZXJNZWRpYQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IGNhNTFjMTdhNjQwLi4yMDU4NzQ4NzY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODk3LDYgKzg5NywxNiBAQCBkb3Vi
bGUgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKQogICAg
IHJldHVybiBtX3ByaXZhdGUtPnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllcjo6YnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7Cisg
ICAgY2xpZW50KCkubWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCk7Cit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIGNs
aWVudCgpLm1lZGlhUGxheWVyU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpOworfQorCiBkb3Vi
bGUgTWVkaWFQbGF5ZXI6OmxpdmVVcGRhdGVJbnRlcnZhbCgpCiB7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+bGl2ZVVwZGF0ZUludGVydmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlNmI4MzM5ZWJhZS4uZjZkOWQ0ZmJhZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
MjY4LDYgKzI2OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDb250ZW50
VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CisKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVk
aWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC0zODUsNiArMzg4LDggQEAgcHVibGljOgogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJsZSgpOworICAgIHZvaWQgYnVm
ZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOworICAgIHZvaWQgc2Vla2FibGVUaW1lUmFuZ2VzQ2hh
bmdlZCgpOwogICAgIE1lZGlhVGltZSBtaW5UaW1lU2Vla2FibGUoKTsKICAgICBNZWRpYVRpbWUg
bWF4VGltZVNlZWthYmxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCmluZGV4IGQyZmQ2MmVjNjQyLi5hODc4
YWMyNDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1UaW1lUmFuZ2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCkBAIC0zNiw2ICszNiwxMSBAQCBQbGF0Zm9ybVRpbWVS
YW5nZXM6OlBsYXRmb3JtVGltZVJhbmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmCiAgICAgYWRkKHN0YXJ0LCBlbmQpOwogfQogCitQbGF0Zm9ybVRpbWVSYW5nZXM6
OlBsYXRmb3JtVGltZVJhbmdlcyhWZWN0b3I8UmFuZ2U+JiYgcmFuZ2VzKQorICAgIDogbV9yYW5n
ZXMgeyBXVEZNb3ZlKHJhbmdlcykgfQoreworfQorCiB2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6
aW52ZXJ0KCkKIHsKICAgICBQbGF0Zm9ybVRpbWVSYW5nZXMgaW52ZXJ0ZWQ7CkBAIC0xNzgsNiAr
MTgzLDExIEBAIHZvaWQgUGxhdGZvcm1UaW1lUmFuZ2VzOjphZGQoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpCiAgICAgbV9yYW5nZXMuaW5zZXJ0KG92ZXJsYXBw
aW5nQXJjSW5kZXgsIGFkZGVkUmFuZ2UpOwogfQogCit2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6
Y2xlYXIoKQoreworICAgIG1fcmFuZ2VzLmNsZWFyKCk7Cit9CisKIGJvb2wgUGxhdGZvcm1UaW1l
UmFuZ2VzOjpjb250YWluKGNvbnN0IE1lZGlhVGltZSYgdGltZSkgY29uc3QKIHsKICAgICByZXR1
cm4gZmluZCh0aW1lKSAhPSBub3RGb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKaW5kZXggZGM1NmRiNmM3ZTguLjk4
MjY4MmNjZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybVRpbWVSYW5nZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVRpbWVSYW5nZXMuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXMuc2l6ZSgpOyB9CiAKICAgICB2
b2lkIGFkZChjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7Cisg
ICAgdm9pZCBjbGVhcigpOwogICAgIAogICAgIGJvb2wgY29udGFpbihjb25zdCBNZWRpYVRpbWUm
KSBjb25zdDsKIApAQCAtNjcsNiArNjgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGR1bXAoV1RG
OjpQcmludFN0cmVhbSYpIGNvbnN0OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxQbGF0Zm9ybVRpbWVSYW5nZXM+IGRlY29kZShEZWNvZGVyJik7CisKIHBy
aXZhdGU6CiAgICAgLy8gV2UgY29uc2lkZXIgYWxsIHRoZSBSYW5nZXMgdG8gYmUgc2VtaS1ib3Vu
ZGVkIGFzIGZvbGxvdzogW3N0YXJ0LCBlbmRbCiAgICAgc3RydWN0IFJhbmdlIHsKQEAgLTgwLDYg
Kzg0LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIE1lZGlhVGltZSBtX3N0YXJ0OwogICAgICAgICBN
ZWRpYVRpbWUgbV9lbmQ7CiAKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICAg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgZW5jb2RlciA8PCBtX3N0YXJ0OworICAgICAgICAgICAgZW5jb2RlciA8PCBtX2VuZDsK
KyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgICAgICBz
dGF0aWMgT3B0aW9uYWw8UmFuZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgICAgICB7
CisgICAgICAgICAgICBPcHRpb25hbDxNZWRpYVRpbWU+IHN0YXJ0OworICAgICAgICAgICAgZGVj
b2RlciA+PiBzdGFydDsKKyAgICAgICAgICAgIGlmICghc3RhcnQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBl
bmQ7CisgICAgICAgICAgICBkZWNvZGVyID4+IGVuZDsKKyAgICAgICAgICAgIGlmICghZW5kKQor
ICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHJldHVy
biB7eyBXVEZNb3ZlKCpzdGFydCksIFdURk1vdmUoKmVuZCkgfX07CisgICAgICAgIH0KKwogICAg
ICAgICBpbmxpbmUgYm9vbCBpc1BvaW50SW5SYW5nZShjb25zdCBNZWRpYVRpbWUmIHBvaW50KSBj
b25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9zdGFydCA8PSBwb2ludCAmJiBw
b2ludCA8IG1fZW5kOwpAQCAtMTEwLDEwICsxMzcsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IHJldHVybiByYW5nZS5tX3N0YXJ0ID49IG1fZW5kOwogICAgICAgICB9CiAgICAgfTsKLSAgICAK
KworICAgIFBsYXRmb3JtVGltZVJhbmdlcyhWZWN0b3I8UmFuZ2U+JiYpOworCiAgICAgVmVjdG9y
PFJhbmdlPiBtX3JhbmdlczsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFBs
YXRmb3JtVGltZVJhbmdlczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBtX3JhbmdlczsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxQbGF0Zm9ybVRpbWVSYW5nZXM+IFBsYXRmb3JtVGltZVJhbmdlczo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8VmVjdG9yPFJhbmdlPj4gYnVmZmVyZWQ7Cisg
ICAgZGVjb2RlciA+PiBidWZmZXJlZDsKKyAgICBpZiAoIWJ1ZmZlcmVkKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmJ1ZmZlcmVkKSB9fTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggM2M3MzYz
MDA2Y2MuLjliODk3M2I2MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNjExLDEyICs2MTEsMTQgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKCkK
ICAgICBtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMgPSBudWxscHRyOwogICAgIG1fY2FjaGVkTWF4
VGltZUxvYWRlZCA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpbnZhbGlkYXRlQ2FjaGVk
RHVyYXRpb24oKTsKKyAgICBtX3BsYXllci0+YnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla2FibGVUaW1lUmFu
Z2VzQ2hhbmdlZCgpCiB7CiAgICAgbV9jYWNoZWRNYXhUaW1lU2Vla2FibGUgPSBNZWRpYVRpbWU6
Onplcm9UaW1lKCk7CiAgICAgbV9jYWNoZWRNaW5UaW1lU2Vla2FibGUgPSBNZWRpYVRpbWU6Onpl
cm9UaW1lKCk7CisgICAgbV9wbGF5ZXItPnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnRpbWVDaGFuZ2VkKGNvbnN0
IE1lZGlhVGltZSYgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2MmY5ZTUwMGRiYy4u
YTlkNTAxNzZlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE5Niw3ICsxOTYsNiBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIE1lZGlhVGltZSBtZWRpYVRpbWVGb3JUaW1l
VmFsdWUoY29uc3QgTWVkaWFUaW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIG1heGlt
dW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQg
Y3JlYXRlQVZQbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZWM2NDcyZmNlMC4uODFlZGRkNGQ4NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTItMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBHZXQgYXVkaW8g
cGxheWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1NTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODEyMDM1ND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnVwZGF0ZUNhY2hlZFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1l
IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuaDoKKwogMjAxOS0xMi0yMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2V0IHdoZXRoZXIgdG8gdXNlIG1vY2sgY2FwdHVyZSBkZXZpY2Vz
IGF0IEdQVVByb2Nlc3MgY3JlYXRpb24gdGltZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDI5MjllNzA0MmEyLi45ZjZhNjA4MDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkuY3BwCkBAIC0yMDIsNiArMjAyLDE4IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OnBhdXNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQp
CiAgICAgICAgIHBsYXllci0+cGF1c2UoKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6c2VlayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVRpbWUmJiB0aW1lKQoreworICAgIGlmIChhdXRvIHBsYXllciA9IG1fcHJveGllcy5nZXQo
aWQpKQorICAgICAgICBwbGF5ZXItPnNlZWsoV1RGTW92ZSh0aW1lKSk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnNlZWtXaXRoVG9sZXJhbmNlKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhVGltZSYm
IG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUmJiBwb3NpdGl2ZVRvbGVyYW5jZSkKK3sKKyAg
ICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5z
ZWVrV2l0aFRvbGVyYW5jZShXVEZNb3ZlKHRpbWUpLCBXVEZNb3ZlKG5lZ2F0aXZlVG9sZXJhbmNl
KSwgV1RGTW92ZShwb3NpdGl2ZVRvbGVyYW5jZSkpOworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzZXRWb2x1bWUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgZG91YmxlIHZvbHVtZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Byb3hp
ZXMuZ2V0KGlkKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggN2U1MWUzYzZlMTIu
LmMwZTdmNGU5MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAtODYsNiArODYs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxheShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHBhdXNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIpOwogCisgICAgdm9pZCBzZWVrKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IE1lZGlhVGltZSYmKTsKKyAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmLCBNZWRpYVRpbWUmJiBuZWdhdGl2ZVRv
bGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFuY2UpOworCiAgICAgdm9pZCBzZXRW
b2x1bWUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgZG91YmxlKTsKICAgICB2
b2lkIHNldE11dGVkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjYw
OTMyYTRlYTMuLmFhNTdmZTliOTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC00Nyw2ICs0Nyw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFNldFZvbHVtZShXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiAg
ICAgU2V0TXV0ZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBib29sIG11dGVkKQogCisgICAgU2VlayhXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSB0aW1lKQorICAgIFNlZWtXaXRoVG9sZXJhbmNlKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lIHRp
bWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lIHBvc2l0aXZlVG9sZXJh
bmNlKQorCiAgICAgU2V0UHJlbG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVs
b2FkIHByZWxvYWQpCiAgICAgU2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgcHJpdmF0ZU1vZGUpCiAgICAgU2V0
UHJlc2VydmVzUGl0Y2goV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBib29sIHByZXNlcnZlc1BpdGNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDdkYjBjYTkz
MzQzLi5iZDI2OGI5MDY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVy
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTQyLDYg
KzQzLDcgQEAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAg
ICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3VwZGF0ZUNh
Y2hlZFN0YXRlTWVzc2FnZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnRpbWVyRmlyZWQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
LCBtX2xvZ2dlcihtX21hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTUxLDYgKzUzLDcgQEAg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSYgbWEKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpp
bnZhbGlkYXRlKCkKIHsKKyAgICBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyLnN0b3Ao
KTsKICAgICBtX3BsYXllci0+aW52YWxpZGF0ZSgpOwogfQogCkBAIC02OSw2ICs3Miw3IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0
ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y2Fu
Y2VsTG9hZCgpCiB7CisgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7
CiAgICAgbV9wbGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KIApAQCAtNzksMTIgKzgzLDI3IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cHJlcGFyZVRvUGxheSgpCiAKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cGxheSgpCiB7CisgICAgaWYgKG1fcGxheWVyLT5tb3ZpZUxvYWRU
eXBlKCkgIT0gV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6TGl2ZVN0
cmVhbSkKKyAgICAgICAgc3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcigpOwogICAg
IG1fcGxheWVyLT5wbGF5KCk7CisgICAgc2VuZENhY2hlZFN0YXRlKCk7CiB9CiAKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6cGF1c2UoKQogeworICAgIG1fdXBkYXRlQ2FjaGVkU3RhdGVN
ZXNzYWdlVGltZXIuc3RvcCgpOwogICAgIG1fcGxheWVyLT5wYXVzZSgpOworICAgIHNlbmRDYWNo
ZWRTdGF0ZSgpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNlZWsoTWVkaWFU
aW1lJiYgdGltZSkKK3sKKyAgICBtX3BsYXllci0+c2Vlayh0aW1lKTsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVRpbWUmJiB0aW1lLCBN
ZWRpYVRpbWUmJiBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFu
Y2UpCit7CisgICAgbV9wbGF5ZXItPnNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9s
ZXJhbmNlLCBwb3NpdGl2ZVRvbGVyYW5jZSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6c2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpCkBAIC0xMTUsMTIgKzEzNCwxNCBAQCB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVz
UGl0Y2gpCiAvLyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29y
a1N0YXRlQ2hhbmdlZChtX2lkLCBtX3BsYXllci0+bmV0d29ya1N0YXRlKCkpLCAwKTsKKyAgICB1
cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29ya1N0YXRlQ2hhbmdlZChtX2lk
LCBtX2NhY2hlZFN0YXRlKSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZWFkeVN0YXRl
Q2hhbmdlZChtX2lkLCBtX3BsYXllci0+cmVhZHlTdGF0ZSgpKSwgMCk7CisgICAgdXBkYXRlQ2Fj
aGVkU3RhdGUoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlYWR5U3RhdGVDaGFuZ2VkKG1faWQsIG1fY2FjaGVk
U3RhdGUpLCAwKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
clZvbHVtZUNoYW5nZWQoKQpAQCAtMTM1LDE2ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllck11dGVDaGFuZ2VkKCkKIAogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlRpbWVD
aGFuZ2VkKG1faWQsIG1fcGxheWVyLT5jdXJyZW50VGltZSgpKSwgMCk7CisgICAgdXBkYXRlQ2Fj
aGVkU3RhdGUoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlRpbWVDaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUp
LCAwKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckR1cmF0
aW9uQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpEdXJhdGlvbkNoYW5nZWQobV9pZCwgbV9wbGF5
ZXItPmR1cmF0aW9uKCkpLCAwKTsKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6RHVyYXRpb25DaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsKIH0KIAogdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKCkKIHsKKyAgICBz
ZW5kQ2FjaGVkU3RhdGUoKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJhdGVDaGFuZ2VkKG1faWQsIG1fcGxheWVy
LT5yYXRlKCkpLCAwKTsKIH0KIApAQCAtMTUzLDEyICsxNzcsMjcgQEAgdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAg
bV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpFbmdpbmVGYWlsZWRUb0xvYWQobV9pZCwgbV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JD
b2RlKCkpLCAwKTsKIH0KIAotLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlBsYXliYWNrU3RhdGVDaGFuZ2VkKG1faWQs
IG1fcGxheWVyLT5wYXVzZWQoKSksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6Om1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9idWZm
ZXJlZENoYW5nZWQgPSB0cnVlOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9zZWVrYWJsZUNo
YW5nZWQgPSB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCkKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OkNoYXJhY3RlcmlzdGlj
Q2hhbmdlZChtX2lkLCBtX3BsYXllci0+aGFzQXVkaW8oKSwgbV9wbGF5ZXItPmhhc1ZpZGVvKCks
IG1fcGxheWVyLT5tb3ZpZUxvYWRUeXBlKCkpLCAwKTsKK30KKworLy8gRklYTUU6IFVuaW1wbGVt
ZW50ZWQKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXNvdXJjZU5v
dFN1cHBvcnRlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTE3OSwxMiArMjE4LDYg
QEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFt
ZUF2YWlsYWJsZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotCiBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1l
ZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKQEAgLTQ0NSw2ICs0NzgsNDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c3RhcnRVcGRhdGVDYWNo
ZWRTdGF0ZU1lc3NhZ2VUaW1lcigpCit7CisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4VGlt
ZXVwZGF0ZUV2ZW50RnJlcXVlbmN5IHsgMTAwX21zIH07CisKKyAgICBpZiAobV91cGRhdGVDYWNo
ZWRTdGF0ZU1lc3NhZ2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKG1heFRpbWV1cGRh
dGVFdmVudEZyZXF1ZW5jeSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGlt
ZXJGaXJlZCgpCit7CisgICAgc2VuZENhY2hlZFN0YXRlKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoKQoreworICAgIG1fY2FjaGVkU3RhdGUu
Y3VycmVudFRpbWUgPSBtX3BsYXllci0+Y3VycmVudFRpbWUoKTsKKyAgICBtX2NhY2hlZFN0YXRl
LmR1cmF0aW9uID0gbV9wbGF5ZXItPmR1cmF0aW9uKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5uZXR3
b3JrU3RhdGUgPSBtX3BsYXllci0+bmV0d29ya1N0YXRlKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5y
ZWFkeVN0YXRlID0gbV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKKyAgICBtX2NhY2hlZFN0YXRlLnBh
dXNlZCA9IG1fcGxheWVyLT5wYXVzZWQoKTsKKyAgICBtX2NhY2hlZFN0YXRlLmxvYWRpbmdQcm9n
cmVzc2VkID0gbV9wbGF5ZXItPmRpZExvYWRpbmdQcm9ncmVzcygpOworCisgICAgaWYgKG1fc2Vl
a2FibGVDaGFuZ2VkKSB7CisgICAgICAgIG1fc2Vla2FibGVDaGFuZ2VkID0gZmFsc2U7CisgICAg
ICAgIG1fY2FjaGVkU3RhdGUubWluVGltZVNlZWthYmxlID0gbV9wbGF5ZXItPm1pblRpbWVTZWVr
YWJsZSgpOworICAgICAgICBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZSA9IG1fcGxheWVy
LT5tYXhUaW1lU2Vla2FibGUoKTsKKyAgICB9CisKKyAgICBpZiAobV9idWZmZXJlZENoYW5nZWQp
IHsKKyAgICAgICAgbV9idWZmZXJlZENoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgbV9jYWNoZWRT
dGF0ZS5idWZmZXJlZFJhbmdlcyA9ICptX3BsYXllci0+YnVmZmVyZWQoKTsKKyAgICB9Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2VuZENhY2hlZFN0YXRlKCkKK3sKKyAgICB1
cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6VXBkYXRlQ2FjaGVkU3RhdGUobV9pZCwg
bV9jYWNoZWRTdGF0ZSksIDApOworICAgIG1fY2FjaGVkU3RhdGUuYnVmZmVyZWRSYW5nZXMuY2xl
YXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNL
X0NPTlRFWFRJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggOWUzZDMyMjNmN2UuLjdmNmNiYWE2YWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTI4LDggKzI4LDEwIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTY1LDYgKzY3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgcGxheSgpOwogICAgIHZvaWQgcGF1c2UoKTsKIAorICAg
IHZvaWQgc2VlayhNZWRpYVRpbWUmJik7CisgICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShNZWRp
YVRpbWUmJiwgTWVkaWFUaW1lJiYgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlhVGltZSYmIHBvc2l0
aXZlVG9sZXJhbmNlKTsKKwogICAgIHZvaWQgc2V0Vm9sdW1lKGRvdWJsZSk7CiAgICAgdm9pZCBz
ZXRNdXRlZChib29sKTsKIApAQCAtODEsOSArODYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1l
ZGlhUGxheWVyVGltZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyRHVyYXRp
b25DaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclJhdGVDaGFuZ2VkKCkgZmlu
YWw7CisgICAgdm9pZCBtZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFuZ2VkKCkgZmluYWw7Cisg
ICAgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CisgICAg
dm9pZCBtZWRpYVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsKIAogICAg
IC8vIE5vdCBpbXBsZW1lbnRlZAotICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hh
bmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgp
IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJTaXplQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZv
aWQgbWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKCkgZmluYWw7CkBAIC0xNDQsOCArMTUyLDYgQEAg
cHJpdmF0ZToKIAogICAgIFN0cmluZyBtZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRv
TG9hZCgpIGNvbnN0IGZpbmFsOwotCiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxh
eWJhY2tSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBtZWRpYVBsYXllcklzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGNvbnN0IGZpbmFsOwpA
QCAtMTU1LDYgKzE2MSwxMSBAQCBwcml2YXRlOgogICAgIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpD
b250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIHN0YXJ0VXBkYXRlQ2FjaGVkU3RhdGVNZXNz
YWdlVGltZXIoKTsKKyAgICB2b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKCk7CisgICAgdm9pZCBzZW5k
Q2FjaGVkU3RhdGUoKTsKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7
IHJldHVybiBtX2xvZ2dlcjsgfQogI2VuZGlmCkBAIC0xNjUsNiArMTc2LDExIEBAIHByaXZhdGU6
CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKICAgICBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9lbmdpbmVJZGVudGlmaWVyOwog
ICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydDsKKyAgICBSdW5Mb29wOjpUaW1lcjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3Vw
ZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyOworICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUg
bV9jYWNoZWRTdGF0ZTsKKworICAgIGJvb2wgbV9zZWVrYWJsZUNoYW5nZWQgeyB0cnVlIH07Cisg
ICAgYm9vbCBtX2J1ZmZlcmVkQ2hhbmdlZCB7IHRydWUgfTsKIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYzVjNmNhNGJhYy4uNGVmMTI4
ZjA5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtOTksNiArOTksNyBAQAogCQkwNzkyMzE0RDIzOUNCQ0I4MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3OTIzMTQ3MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkwNzkyMzE0RjIzOUQ2MjNFMDA5
NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxNEUyMzlENUY1MzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLzsgfTsKIAkJMDdB
NUVCQkMxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2
OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMDdCM0I0NzAyM0FCMzAyRDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlh
UGxheWVyU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgg
Ki87IH07CiAJCTBFOTdENzREMjAwRTkwMDQwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBFOTdENzRDMjAw
RThGRjMwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCAqLzsgfTsKIAkJMEVERTg1MDMyMDA0
RTc1RDAwMDMwNTYwIC8qIFdlYnNpdGVQb3BVcFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEVERTg1MDIyMDA0RTc0OTAwMDMwNTYwIC8qIFdl
YnNpdGVQb3BVcFBvbGljeS5oICovOyB9OwogCQkwRjA4Q0Y1MjFENjNDMTNBMDBCNDhERjEgLyog
V0tGb3JtU2VsZWN0UGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA4Q0Y1MTFENjNDMTNBMDBCNDhERjEgLyogV0tGb3JtU2VsZWN0UGlja2Vy
LmggKi87IH07CkBAIC0yMDY1LDYgKzIwNjYsNyBAQAogCQkwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4
RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3QTVFQkI5MUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVm
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVS
ZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCQTFDN0JBNDNFMDBC
OUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0ZyYW1lSGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2N0Q2QTVGRTg0MDMwN0Mw
MkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcEtpdC5mcmFt
ZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtNTA5Miw2ICs1MDk0LDcgQEAKIAkJ
MDc5MjMxMkYyMzlCM0IwQzAwOTU5OEUyIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICovLAogCQkJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAv
KiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3OTIzMTMyMjM5QjNCMEMw
MDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCAqLywKIAkJCQkwNzkyMzE0RTIz
OUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICov
LApAQCAtMTAzMjQsNiArMTAzMjcsNyBAQAogCQkJCUUzODY2QjA4MjM5OUEyRDEwMEY4OEZFOSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVCMUM1NTE4OTg3RURGMDA0RkNG
OUIgLyogV2ViRG9jdW1lbnRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QjNCNDcwMjNB
QjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAzMkQ3QjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNBMEVGOUYxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDdEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJF
ZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IGE5Yjg5NmI4NmNhLi44ZTQ4M2UwODYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcApAQCAtNDQsNiArNDQsMTUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyN1bmRlZiBub3RJbXBsZW1l
bnRlZAorI2RlZmluZSBub3RJbXBsZW1lbnRlZCgpIGRvIHsgXAorICAgIHN0YXRpYyBib29sIGhh
dmVQcmludGVkID0gZmFsc2U7IFwKKyAgICBpZiAoIWhhdmVQcmludGVkKSB7IFwKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJAQEAgVU5JTVBMRU1FTlRFRDogJXMiLCBXVEZfUFJFVFRZX0ZVTkNUSU9O
KTsgXAorICAgICAgICBoYXZlUHJpbnRlZCA9IHRydWU7IFwKKyAgICB9IFwKK30gd2hpbGUgKDAp
CisKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6
IG1fcGxheWVyKHBsYXllcikKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQpAQCAtNzMsNiArODIs
MTgyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvCiAgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OkxvYWQobV9pZCwgdXJsLCBjb250ZW50VHlwZSwga2V5U3lzdGVtKSwgMCk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjYW5jZWxMb2FkKCkKK3sKKyAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6Q2FuY2VsTG9hZChtX2lkKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpwcmVwYXJlVG9QbGF5KCkKK3sKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6UHJlcGFyZVRvUGxheShtX2lkKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwbGF5KCkKK3sKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IGZhbHNlOworICAg
IG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpQbGF5KG1faWQpLCAwKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnBhdXNlKCkKK3sKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9
IHRydWU7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBhdXNlKG1faWQpLCAwKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJl
c2VydmVzUGl0Y2gpCit7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlNldFByZXNlcnZlc1Bp
dGNoKG1faWQsIHByZXNlcnZlc1BpdGNoKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRWb2x1bWVEb3VibGUoZG91YmxlIHZvbHVtZSkKK3sKKyAgICBtX21hbmFn
ZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6U2V0Vm9sdW1lKG1faWQsIHZvbHVtZSksIDApOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKK3sKKyAgICBtX21h
bmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6U2V0TXV0ZWQobV9pZCwgbXV0ZWQpLCAwKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQg
cHJlbG9hZCkKK3sKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0UHJlbG9hZChtX2lkLCBw
cmVsb2FkKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcml2
YXRlQnJvd3NpbmdNb2RlKGJvb2wgcHJpdmF0ZU1vZGUpCit7CisgICAgbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OlNldFByaXZhdGVCcm93c2luZ01vZGUobV9pZCwgcHJpdmF0ZU1vZGUpLCAwKTsKK30K
KworTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y3VycmVudE1lZGlhVGltZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWU7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrKGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
K3sKKyAgICBtX3NlZWtpbmcgPSB0cnVlOworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZWVr
KG1faWQsIHRpbWUpLCAwKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
ZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiBu
ZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSkKK3sK
KyAgICBtX3NlZWtpbmcgPSB0cnVlOworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZWVrV2l0
aFRvbGVyYW5jZShtX2lkLCB0aW1lLCBuZWdhdGl2ZVRvbGVyYW5jZSwgcG9zaXRpdmVUb2xlcmFu
Y2UpLCAwKTsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRpZExvYWRpbmdQ
cm9ncmVzcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2FjaGVkU3RhdGUubG9hZGluZ1Byb2dy
ZXNzZWQ7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpoYXNWaWRlbygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faGFzVmlkZW87Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpoYXNBdWRpbygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFzQXVkaW87Cit9
CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2Vla2FibGUoKSBjb25zdAoreworICAgIHJldHVybiBtYWtlVW5pcXVlPFBsYXRm
b3JtVGltZVJhbmdlcz4obV9jYWNoZWRTdGF0ZS5taW5UaW1lU2Vla2FibGUsIG1fY2FjaGVkU3Rh
dGUubWF4VGltZVNlZWthYmxlKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJh
bmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpidWZmZXJlZCgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlcykKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8UGxhdGZv
cm1UaW1lUmFuZ2VzPigqbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXMpOworfQorCitNZWRpYVBs
YXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1vdmllTG9hZFR5
cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX21vdmllTG9hZFR5cGU7Cit9CisKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxh
eWVyU3RhdGUmJiBzdGF0ZSkKK3sKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRl
KSk7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnJlYWR5U3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVy
U3RhdGUmJiBzdGF0ZSkKK3sKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7
CisgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp2b2x1bWVDaGFuZ2VkKGRvdWJsZSB2b2x1bWUpCit7CisgICAgbV92
b2x1bWUgPSB2b2x1bWU7CisgICAgbV9wbGF5ZXItPnZvbHVtZUNoYW5nZWQodm9sdW1lKTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om11dGVDaGFuZ2VkKGJvb2wgbXV0ZWQp
Cit7CisgICAgbV9tdXRlZCA9IG11dGVkOworICAgIG1fcGxheWVyLT5tdXRlQ2hhbmdlZChtdXRl
ZCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0aW1lQ2hhbmdlZChSZW1v
dGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCit7CisgICAgbV9zZWVraW5nID0gZmFsc2U7Cisg
ICAgdXBkYXRlQ2FjaGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkpOworICAgIG1fcGxheWVyLT50aW1l
Q2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZHVyYXRpb25D
aGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKK3sKKyAgICB1cGRhdGVDYWNo
ZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7CisgICAgbV9wbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZCgp
OworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmF0ZUNoYW5nZWQoZG91Ymxl
IHJhdGUpCit7CisgICAgbV9yYXRlID0gcmF0ZTsKKyAgICBtX3BsYXllci0+cmF0ZUNoYW5nZWQo
KTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXliYWNrU3RhdGVDaGFu
Z2VkKGJvb2wgcGF1c2VkKQoreworICAgIG1fY2FjaGVkU3RhdGUucGF1c2VkID0gcGF1c2VkOwor
ICAgIG1fcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6ZW5naW5lRmFpbGVkVG9Mb2FkKGxvbmcgcGxhdGZvcm1FcnJvckNv
ZGUpCit7CisgICAgbV9wbGF0Zm9ybUVycm9yQ29kZSA9IHBsYXRmb3JtRXJyb3JDb2RlOworICAg
IG1fcGxheWVyLT5yZW1vdGVFbmdpbmVGYWlsZWRUb0xvYWQoKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBi
b29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1v
dmllTG9hZFR5cGUpCit7CisgICAgbV9tb3ZpZUxvYWRUeXBlID0gbW92aWVMb2FkVHlwZTsKKyAg
ICBtX2hhc0F1ZGlvID0gaGFzQXVkaW87CisgICAgbV9oYXNWaWRlbyA9IGhhc1ZpZGVvOworICAg
IG1fcGxheWVyLT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnVwZGF0ZUNhY2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUm
JiBzdGF0ZSkKK3sKKyAgICBtX2NhY2hlZFN0YXRlLmN1cnJlbnRUaW1lID0gc3RhdGUuY3VycmVu
dFRpbWU7CisgICAgbV9jYWNoZWRTdGF0ZS5kdXJhdGlvbiA9IHN0YXRlLmR1cmF0aW9uOworICAg
IG1fY2FjaGVkU3RhdGUubWluVGltZVNlZWthYmxlID0gc3RhdGUubWluVGltZVNlZWthYmxlOwor
ICAgIG1fY2FjaGVkU3RhdGUubWF4VGltZVNlZWthYmxlID0gc3RhdGUubWF4VGltZVNlZWthYmxl
OworICAgIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0YXRlID0gc3RhdGUubmV0d29ya1N0YXRlOwor
ICAgIG1fY2FjaGVkU3RhdGUucmVhZHlTdGF0ZSA9IHN0YXRlLnJlYWR5U3RhdGU7CisgICAgbV9j
YWNoZWRTdGF0ZS5wYXVzZWQgPSBzdGF0ZS5wYXVzZWQ7CisgICAgbV9jYWNoZWRTdGF0ZS5sb2Fk
aW5nUHJvZ3Jlc3NlZCA9IHN0YXRlLmxvYWRpbmdQcm9ncmVzc2VkOworICAgIGlmIChzdGF0ZS5i
dWZmZXJlZFJhbmdlcy5sZW5ndGgoKSkKKyAgICAgICAgbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5n
ZXMgPSBtYWtlVW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oc3RhdGUuYnVmZmVyZWRSYW5nZXMp
OworfQorCisvLyBGSVhNRTogVW5pbXBsZW1lbnRlZAorCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCopCiB7CkBAIC04MSw3ICsyNjYsOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZh
dGVDbGllbnQqKQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIG5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6
Rm9ybWF0RXJyb3IpOworICAgICAgICBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZSA9IE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yOworICAgICAgICBtX3BsYXllci0+bmV0
d29ya1N0YXRlQ2hhbmdlZCgpOwogICAgIH0pOwogfQogI2VuZGlmCkBAIC05NCwyMyArMjgwLDE1
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0
ZSYpCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgbmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRF
cnJvcik7CisgICAgICAgIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3I7CisgICAgICAgIG1fcGxheWVyLT5uZXR3b3JrU3Rh
dGVDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKIAotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmNhbmNlbExvYWQoKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5j
ZWxMb2FkKG1faWQpLCAwKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBy
ZXBhcmVUb1BsYXkoKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpQcmVwYXJlVG9QbGF5
KG1faWQpLCAwKTsKLX0KLQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCkBAIC0xNjYsMTYgKzM0NCw2IEBAIFN0cmluZyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OmVycm9yTG9nKCkgY29uc3QKIH0KICNlbmRpZgogCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxheSgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OlBsYXkobV9pZCksIDApOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGF1
c2UoKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpQYXVzZShtX2lkKSwgMCk7Ci19Ci0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQ
bGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjEx
LDUxICszNzksMTcgQEAgRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0dXJh
bFNpemUoKSBjb25zdAogICAgIHJldHVybiB7IH07CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpoYXNWaWRlbygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpoYXNB
dWRpbygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRWaXNpYmxlKGJvb2wpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpnZXRTdGFydERhdGUoKSBjb25zdAogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWsoY29uc3QgTWVkaWFUaW1lJikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgTWVkaWFUaW1lJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1ib29sIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2Vla2luZygpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnN0YXJ0VGltZSgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAg
LTI2NywzMSArNDAxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFJhdGVE
b3VibGUoZG91YmxlKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNoKQot
ewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcmVzZXJ2ZXNQaXRjaChtX2lkLCBwcmVz
ZXJ2ZXNQaXRjaCksIDApOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0
Vm9sdW1lRG91YmxlKGRvdWJsZSB2b2x1bWUpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OlNldFZvbHVtZShtX2lkLCB2b2x1bWUpLCAwKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlNldE11dGVkKG1faWQsIG11dGVkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkIHByZWxvYWQpCi17Ci0g
ICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlNldFByZWxvYWQobV9pZCwgcHJlbG9hZCksIDApOwot
fQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9k
ZShib29sIHByaXZhdGVNb2RlKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcml2
YXRlQnJvd3NpbmdNb2RlKG1faWQsIHByaXZhdGVNb2RlKSwgMCk7Ci19Ci0KIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKQEAgLTMxNSwyOCArNDI0LDE0IEBAIGRvdWJsZSBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6Om1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2Vla2FibGUoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmJ1ZmZl
cmVkKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBtYWtlVW5p
cXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKLX0KLQogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6bWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKKyAgICByZXR1cm4g
bV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGU7CiB9CiAKIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6Om1pbk1lZGlhVGltZVNlZWthYmxlKCkgY29uc3QKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CisgICAgcmV0
dXJuIG1fY2FjaGVkU3RhdGUubWluVGltZVNlZWthYmxlOwogfQogCiBkb3VibGUgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29u
c3QKQEAgLTM1NywxMiArNDUyLDYgQEAgdW5zaWduZWQgbG9uZyBsb25nIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dG90YWxCeXRlcygpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwpAQCAtNTAzLDEyICs1OTIsNiBAQCBPcHRpb25hbDxib29sPiBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OndvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4m
KQogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU1lZGlhUGxheWVyOjpNb3ZpZUxvYWRU
eXBlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bW92aWVMb2FkVHlwZSgpIGNvbnN0Ci17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5
cGU6OlVua25vd247Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJl
Rm9yUmVuZGVyaW5nKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtNTIyLDggKzYwNSw3
IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1lZGlhVGltZUZvclRpbWVW
YWx1ZShjb25zdCBNZWRpYVRpbWUmIHRpbWVWCiAKIGRvdWJsZSBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Om1heGltdW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUoKSBjb25zdAogewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIC4yOyAvLyBGSVhNRTog
Z2V0IHRoaXMgdmFsdWUgZnJvbSB0aGUgbWVkaWEgZW5naW5lIHdoZW4gaXQgaXMgY3JlYXRlZC4K
IH0KIAogdW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpkZWNvZGVkRnJhbWVDb3Vu
dCgpIGNvbnN0CkBAIC03MTQsNjAgKzc5Niw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKLXsKLSAgICBtX25ldHdv
cmtTdGF0ZSA9IHN0YXRlOwotICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Ci19
Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZWFkeVN0YXRlQ2hhbmdlZChXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQotewotICAgIG1fcmVhZHlT
dGF0ZSA9IHN0YXRlOwotICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Ci19Ci0K
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2b2x1bWVDaGFuZ2VkKGRvdWJsZSB2b2x1
bWUpCi17Ci0gICAgbV92b2x1bWUgPSB2b2x1bWU7Ci0gICAgbV9wbGF5ZXItPnZvbHVtZUNoYW5n
ZWQodm9sdW1lKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om11dGVDaGFu
Z2VkKGJvb2wgbXV0ZWQpCi17Ci0gICAgbV9tdXRlZCA9IG11dGVkOwotICAgIG1fcGxheWVyLT5t
dXRlQ2hhbmdlZChtdXRlZCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0
aW1lQ2hhbmdlZChNZWRpYVRpbWUgdGltZSkKLXsKLSAgICAvLyBGSVhNRTogc2hvdWxkIHdlIGNh
Y2hlIHRoZSBjdXJyZW50IHRpbWUgaGVyZSBmb3Igc29tZSBhbW91bnQgb2YgdGltZT8KLSAgICBt
X3BsYXllci0+dGltZUNoYW5nZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmR1cmF0aW9uQ2hhbmdlZChNZWRpYVRpbWUgZHVyYXRpb24pCi17Ci0gICAgbV9kdXJhdGlv
biA9IGR1cmF0aW9uOwotICAgIG1fcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoKTsKLX0KLQotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJhdGVDaGFuZ2VkKGRvdWJsZSByYXRlKQotewot
ICAgIG1fcmF0ZSA9IHJhdGU7Ci0gICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2VkKCk7Ci19Ci0KLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChib29sIHBh
dXNlZCkKLXsKLSAgICBtX3BhdXNlZCA9IHBhdXNlZDsKLSAgICBtX3BsYXllci0+cGxheWJhY2tT
dGF0ZUNoYW5nZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmVuZ2lu
ZUZhaWxlZFRvTG9hZChsb25nIHBsYXRmb3JtRXJyb3JDb2RlKQotewotICAgIG1fcGxhdGZvcm1F
cnJvckNvZGUgPSBwbGF0Zm9ybUVycm9yQ29kZTsKLSAgICBtX3BsYXllci0+cmVtb3RlRW5naW5l
RmFpbGVkVG9Mb2FkKCk7Ci19Ci0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0No
YW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCA1YmM3NjdjY2MwMS4uZjBkN2FmZjU3ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
UGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01NSwxNSArNTYsMTcgQEAgcHVibGljOgogICAgIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOyB9CiAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJdGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQogCi0gICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdl
ZChXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKKyAgICB2b2lkIG5ldHdv
cmtTdGF0ZUNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKKyAgICB2b2lkIHJlYWR5
U3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAgdm9pZCB2b2x1bWVD
aGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsKLSAgICB2b2lkIHRp
bWVDaGFuZ2VkKE1lZGlhVGltZSk7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoTWVkaWFUaW1l
KTsKKyAgICB2b2lkIHRpbWVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAg
dm9pZCBkdXJhdGlvbkNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKICAgICB2b2lk
IHJhdGVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChib29s
KTsKICAgICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChsb25nKTsKKyAgICB2b2lkIHVwZGF0ZUNh
Y2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCBjaGFyYWN0ZXJp
c3RpY0NoYW5nZWQoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dl
cjsgfQpAQCAtMTI5LDIxICsxMzIsMjEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0VmlzaWJs
ZShib29sKSBmaW5hbDsKIAotICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBNZWRpYVRpbWUgZHVyYXRpb25NZWRp
YVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLmR1cmF0aW9uOyB9CiAg
ICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlh
VGltZSBnZXRTdGFydERhdGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2Vlayhjb25zdCBN
ZWRpYVRpbWUmKSBmaW5hbDsKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOworICAgIHZv
aWQgc2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBu
ZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSkgZmlu
YWw7CiAKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNlZWtpbmco
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NlZWtpbmc7IH0KIAogICAgIE1lZGlhVGltZSBzdGFy
dFRpbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmF0ZURvdWJsZShkb3VibGUpIGZp
bmFsOwogCi0gICAgYm9vbCBwYXVzZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BhdXNlZDsg
fQorICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5w
YXVzZWQ7IH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFVTRShHU1RSRUFNRVIpCiAg
ICAgZmxvYXQgdm9sdW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMTsgfQpAQCAtMTU1LDggKzE1
OCw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IGZp
bmFsOwogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5hbDsKIAotICAg
IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CisgICAgTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
IHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLnJlYWR5U3Rh
dGU7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxl
KCkgY29uc3QgZmluYWw7CiAKQEAgLTI5NCwxNCArMjk3LDE3IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRp
ZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CiAKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZTo6RW1wdHkgfTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3Jl
YWR5U3RhdGUgeyBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBS
ZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXM7CisKICAgICBk
b3VibGUgbV92b2x1bWUgeyAxIH07Ci0gICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKLSAgICBN
ZWRpYVRpbWUgbV9kdXJhdGlvbjsKICAgICBkb3VibGUgbV9yYXRlIHsgMSB9OwogICAgIGxvbmcg
bV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKLSAgICBib29sIG1fcGF1c2VkIHsgZmFsc2UgfTsK
KyAgICBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVMb2FkVHlwZSB7IE1l
ZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OlVua25vd24gfTsKKyAgICBib29sIG1faGFz
QXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9v
bCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Vla2luZyB7IGZhbHNlIH07CiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWZQdHI8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4N2ZjMTE4ODY2ZS4uMmM4ODBj
OTIxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTE4OSwxNiArMTg5LDE2
IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmln
aW5zKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhCiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2xlYXJNZWRpYUNh
Y2hlRm9yT3JpZ2lucyhyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXRoLCBvcmlnaW5EYXRhKSwg
MCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhUGxheWVyRW51
bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpu
ZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIg
PSBtX3BsYXllcnMuZ2V0KGlkKSkKLSAgICAgICAgcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2Vk
KHN0YXRlKTsKKyAgICAgICAgcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKFdURk1vdmUoc3Rh
dGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhUGxheWVyRW51
bXM6OlJlYWR5U3RhdGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRl
KTsKKyAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVtZSkKQEAg
LTIxMywxNiArMjEzLDE2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50CiAgICAgICAgIHBsYXll
ci0+bXV0ZUNoYW5nZWQobXV0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Ojp0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIE1lZGlhVGltZSYmIHRpbWUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dGlt
ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBS
ZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCi0gICAgICAgIHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZSh0
aW1lKSk7CisgICAgICAgIHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQog
Ci12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lJiYgdGltZSkK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0
YXRlJiYgc3RhdGUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkp
Ci0gICAgICAgIHBsYXllci0+ZHVyYXRpb25DaGFuZ2VkKFdURk1vdmUodGltZSkpOworICAgICAg
ICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSByYXRlKQpAQCAtMjQzLDYgKzI0MywxMiBA
QCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtbwogICAgICAgICBwbGF5ZXItPmVuZ2luZUZhaWxlZFRv
TG9hZChwbGF0Zm9ybUVycm9yQ29kZSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIGxvYWRUeXBlKQoreworICAgIGlmIChhdXRv
IHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgICAgICBwbGF5ZXItPmNoYXJhY3Rlcmlz
dGljQ2hhbmdlZChoYXNBdWRpbywgaGFzVmlkZW8sIGxvYWRUeXBlKTsKK30KKwogdm9pZCBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBz
ZXR0aW5ncykKIHsKICAgICBhdXRvIHJlZ2lzdGVyRW5naW5lID0gW3RoaXNdKE1lZGlhRW5naW5l
UmVnaXN0cmFyIHJlZ2lzdHJhciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpIHsKQEAgLTI1Miw2ICsyNTgsMTIgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdz
JiBzZXR0aW5ncykKICAgICBSZW1vdGVNZWRpYVBsYXllclN1cHBvcnQ6OnNldFJlZ2lzdGVyUmVt
b3RlUGxheWVyQ2FsbGJhY2soc2V0dGluZ3MudXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkgPyBXVEZN
b3ZlKHJlZ2lzdGVyRW5naW5lKSA6IFJlbW90ZU1lZGlhUGxheWVyU3VwcG9ydDo6UmVnaXN0ZXJS
ZW1vdGVQbGF5ZXJDYWxsYmFjaygpKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnVwZGF0ZUNhY2hlZFN0YXRlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIGlmIChh
dXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgICAgICBwbGF5ZXItPnVwZGF0ZUNh
Y2hlZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKK30KKwogSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmdwdVByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCA0Y2ZjMWFjMGU3
Mi4uYzNjMjc3YWM4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaApAQCAtMjksNiArMjks
NyBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
U3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KQEAgLTcwLDE1
ICs3MSwxNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyCi0gICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUpOwotICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOworICAgIHZv
aWQgbmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOworICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSYmKTsKICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBkb3VibGUpOwogICAgIHZvaWQgbXV0ZUNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKLSAgICB2b2lkIHRpbWVD
aGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFU
aW1lJiYpOwotICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgTWVkaWFUaW1lJiYpOworICAgIHZvaWQgdGltZUNoYW5nZWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBs
YXllclN0YXRlJiYpOworICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKICAg
ICB2b2lkIHJhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgZG91YmxlKTsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBlbmdpbmVG
YWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBs
b25nKTsKKyAgICB2b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKKyAgICB2b2lk
IGNoYXJhY3RlcmlzdGljQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhUGxheWVy
UmVtb3RlRmFjdG9yeTsKICAgICB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
bWVzc2FnZXMuaW4KaW5kZXggZWMyYjQzYmNkYjYuLjQ2NThhN2EyOGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjUsMTUgKzI1LDE3IEBACiAK
IG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKIAot
ICAgIE5ldHdvcmtTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0
d29ya1N0YXRlIHN0YXRlKQotICAgIFJlYWR5U3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCisgICAgTmV0d29ya1N0YXRlQ2hhbmdlZChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAgUmVhZHlTdGF0ZUNoYW5nZWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIFZvbHVtZUNoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1l
KQogICAgIE11dGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgYm9vbCBtdXRlKQotICAgIFRpbWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUpCi0gICAgRHVyYXRpb25D
aGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVk
aWFUaW1lIHRpbWUpCisgICAgVGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRl
IHN0YXRlKQorICAgIER1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUg
c3RhdGUpCiAgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKICAgICBQbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQog
ICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29kZSkKKyAgICBVcGRhdGVDYWNoZWRTdGF0
ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAgQ2hhcmFjdGVyaXN0aWND
aGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9v
bCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSkKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j
MWFjODY2Zjc3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oCkBAIC0wLDAgKzEsMTE0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhUGxheWVyRW51bXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtVGltZVJhbmdlcy5oPgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3N0cnVjdCBSZW1vdGVNZWRpYVBsYXllclN0YXRlIHsKKyAgICBNZWRpYVRp
bWUgY3VycmVudFRpbWU7CisgICAgTWVkaWFUaW1lIGR1cmF0aW9uOworICAgIE1lZGlhVGltZSBt
aW5UaW1lU2Vla2FibGU7CisgICAgTWVkaWFUaW1lIG1heFRpbWVTZWVrYWJsZTsKKyAgICBXZWJD
b3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXMgYnVmZmVyZWRSYW5nZXM7CisgICAgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSB7IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZTo6RW1wdHkgfTsKKyAgICBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUgeyBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZyB9OworICAgIGJvb2wgcGF1c2VkIHsgdHJ1ZSB9
OworICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgeyBmYWxzZSB9OworCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBjdXJyZW50VGltZTsKKyAgICAgICAgZW5jb2RlciA8
PCBkdXJhdGlvbjsKKyAgICAgICAgZW5jb2RlciA8PCBtaW5UaW1lU2Vla2FibGU7CisgICAgICAg
IGVuY29kZXIgPDwgbWF4VGltZVNlZWthYmxlOworICAgICAgICBlbmNvZGVyIDw8IGJ1ZmZlcmVk
UmFuZ2VzOworICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0obmV0d29ya1N0YXRlKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVFbnVtKHJlYWR5U3RhdGUpOworICAgICAgICBlbmNvZGVyIDw8IHBh
dXNlZDsKKyAgICAgICAgZW5jb2RlciA8PCBsb2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICB9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8UmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBP
cHRpb25hbDxNZWRpYVRpbWU+IGN1cnJlbnRUaW1lOworICAgICAgICBkZWNvZGVyID4+IGN1cnJl
bnRUaW1lOworICAgICAgICBpZiAoIWN1cnJlbnRUaW1lKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxNZWRpYVRpbWU+IGR1cmF0aW9uOworICAg
ICAgICBkZWNvZGVyID4+IGR1cmF0aW9uOworICAgICAgICBpZiAoIWR1cmF0aW9uKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxNZWRpYVRpbWU+
IG1pblRpbWVTZWVrYWJsZTsKKyAgICAgICAgZGVjb2RlciA+PiBtaW5UaW1lU2Vla2FibGU7Cisg
ICAgICAgIGlmICghbWluVGltZVNlZWthYmxlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICBPcHRpb25hbDxNZWRpYVRpbWU+IG1heFRpbWVTZWVrYWJsZTsKKyAg
ICAgICAgZGVjb2RlciA+PiBtYXhUaW1lU2Vla2FibGU7CisgICAgICAgIGlmICghbWF4VGltZVNl
ZWthYmxlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRp
b25hbDxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkUmFuZ2VzOworICAgICAg
ICBkZWNvZGVyID4+IGJ1ZmZlcmVkUmFuZ2VzOworICAgICAgICBpZiAoIWJ1ZmZlcmVkUmFuZ2Vz
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlOworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShuZXR3b3JrU3RhdGUpKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0
YXRlIHJlYWR5U3RhdGU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlYWR5U3Rh
dGUpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxib29sPiBwYXVzZWQ7CisgICAgICAgIGRlY29kZXIgPj4gcGF1c2VkOworICAgICAgICBpZiAo
IXBhdXNlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8Ym9vbD4gbG9hZGluZ1Byb2dyZXNzZWQ7CisgICAgICAgIGRlY29kZXIgPj4gbG9hZGlu
Z1Byb2dyZXNzZWQ7CisgICAgICAgIGlmICghbG9hZGluZ1Byb2dyZXNzZWQpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKCpjdXJy
ZW50VGltZSksIFdURk1vdmUoKmR1cmF0aW9uKSwgV1RGTW92ZSgqbWluVGltZVNlZWthYmxlKSwg
V1RGTW92ZSgqbWF4VGltZVNlZWthYmxlKSwgV1RGTW92ZSgqYnVmZmVyZWRSYW5nZXMpLCBuZXR3
b3JrU3RhdGUsIHJlYWR5U3RhdGUsIFdURk1vdmUoKnBhdXNlZCksIFdURk1vdmUoKmxvYWRpbmdQ
cm9ncmVzc2VkKSB9fTsKKyAgICB9CisKK307CisKK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386260</attachid>
            <date>2019-12-20 14:42:59 -0800</date>
            <delta_ts>2019-12-20 15:19:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>remote-audio-playback-patch.txt</filename>
            <type>text/plain</type>
            <size>56531</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MWRiOWJhZmQ2NS4uMzExY2ZhM2YxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOS0xMi0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEdldCBhdWRpbyBwbGF5aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MTEK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MTIwMzU0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBtYW51YWxseSB3aXRoIGEgbW9kaWZp
ZWQgc2FuZGJveCBiZWNhdXNlIGl0IGlzbid0IHBvc3NpYmxlIHRvIGxvYWQgbWVkaWEKKyAgICAg
ICAgaW4gdGhlIEdQVSBwcm9jZXNzIHlldC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpidWZmZXJl
ZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZWVr
YWJsZVRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdl
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3JtVGlt
ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM6OmNsZWFyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuaDoKKwogMjAx
OS0xMi0yMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHRoZSBjZXJ0aWZpY2F0ZSBpbmZvIGNoZWNrcyByZWxhdGVkIHRvIGdldFVzZXJNZWRpYQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IGNhNTFjMTdhNjQwLi4yMDU4NzQ4NzY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtODk3LDYgKzg5NywxNiBAQCBkb3Vi
bGUgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKQogICAg
IHJldHVybiBtX3ByaXZhdGUtPnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllcjo6YnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7Cisg
ICAgY2xpZW50KCkubWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCk7Cit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIGNs
aWVudCgpLm1lZGlhUGxheWVyU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpOworfQorCiBkb3Vi
bGUgTWVkaWFQbGF5ZXI6OmxpdmVVcGRhdGVJbnRlcnZhbCgpCiB7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+bGl2ZVVwZGF0ZUludGVydmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlNmI4MzM5ZWJhZS4uZjZkOWQ0ZmJhZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
MjY4LDYgKzI2OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDb250ZW50
VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CisKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRp
ZmllcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVk
aWFQbGF5ZXJMb2dnZXIoKSA9IDA7CkBAIC0zODUsNiArMzg4LDggQEAgcHVibGljOgogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJsZSgpOworICAgIHZvaWQgYnVm
ZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOworICAgIHZvaWQgc2Vla2FibGVUaW1lUmFuZ2VzQ2hh
bmdlZCgpOwogICAgIE1lZGlhVGltZSBtaW5UaW1lU2Vla2FibGUoKTsKICAgICBNZWRpYVRpbWUg
bWF4VGltZVNlZWthYmxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCmluZGV4IGQyZmQ2MmVjNjQyLi5hODc4
YWMyNDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1UaW1lUmFuZ2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVRpbWVSYW5nZXMuY3BwCkBAIC0zNiw2ICszNiwxMSBAQCBQbGF0Zm9ybVRpbWVS
YW5nZXM6OlBsYXRmb3JtVGltZVJhbmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmCiAgICAgYWRkKHN0YXJ0LCBlbmQpOwogfQogCitQbGF0Zm9ybVRpbWVSYW5nZXM6
OlBsYXRmb3JtVGltZVJhbmdlcyhWZWN0b3I8UmFuZ2U+JiYgcmFuZ2VzKQorICAgIDogbV9yYW5n
ZXMgeyBXVEZNb3ZlKHJhbmdlcykgfQoreworfQorCiB2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6
aW52ZXJ0KCkKIHsKICAgICBQbGF0Zm9ybVRpbWVSYW5nZXMgaW52ZXJ0ZWQ7CkBAIC0xNzgsNiAr
MTgzLDExIEBAIHZvaWQgUGxhdGZvcm1UaW1lUmFuZ2VzOjphZGQoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpCiAgICAgbV9yYW5nZXMuaW5zZXJ0KG92ZXJsYXBw
aW5nQXJjSW5kZXgsIGFkZGVkUmFuZ2UpOwogfQogCit2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6
Y2xlYXIoKQoreworICAgIG1fcmFuZ2VzLmNsZWFyKCk7Cit9CisKIGJvb2wgUGxhdGZvcm1UaW1l
UmFuZ2VzOjpjb250YWluKGNvbnN0IE1lZGlhVGltZSYgdGltZSkgY29uc3QKIHsKICAgICByZXR1
cm4gZmluZCh0aW1lKSAhPSBub3RGb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKaW5kZXggZGM1NmRiNmM3ZTguLjk4
MjY4MmNjZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybVRpbWVSYW5nZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybVRpbWVSYW5nZXMuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXMuc2l6ZSgpOyB9CiAKICAgICB2
b2lkIGFkZChjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7Cisg
ICAgdm9pZCBjbGVhcigpOwogICAgIAogICAgIGJvb2wgY29udGFpbihjb25zdCBNZWRpYVRpbWUm
KSBjb25zdDsKIApAQCAtNjcsNiArNjgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGR1bXAoV1RG
OjpQcmludFN0cmVhbSYpIGNvbnN0OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxQbGF0Zm9ybVRpbWVSYW5nZXM+IGRlY29kZShEZWNvZGVyJik7CisKIHBy
aXZhdGU6CiAgICAgLy8gV2UgY29uc2lkZXIgYWxsIHRoZSBSYW5nZXMgdG8gYmUgc2VtaS1ib3Vu
ZGVkIGFzIGZvbGxvdzogW3N0YXJ0LCBlbmRbCiAgICAgc3RydWN0IFJhbmdlIHsKQEAgLTgwLDYg
Kzg0LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIE1lZGlhVGltZSBtX3N0YXJ0OwogICAgICAgICBN
ZWRpYVRpbWUgbV9lbmQ7CiAKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICAg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgZW5jb2RlciA8PCBtX3N0YXJ0OworICAgICAgICAgICAgZW5jb2RlciA8PCBtX2VuZDsK
KyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgICAgICBz
dGF0aWMgT3B0aW9uYWw8UmFuZ2U+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgICAgICB7
CisgICAgICAgICAgICBPcHRpb25hbDxNZWRpYVRpbWU+IHN0YXJ0OworICAgICAgICAgICAgZGVj
b2RlciA+PiBzdGFydDsKKyAgICAgICAgICAgIGlmICghc3RhcnQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBl
bmQ7CisgICAgICAgICAgICBkZWNvZGVyID4+IGVuZDsKKyAgICAgICAgICAgIGlmICghZW5kKQor
ICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHJldHVy
biB7eyBXVEZNb3ZlKCpzdGFydCksIFdURk1vdmUoKmVuZCkgfX07CisgICAgICAgIH0KKwogICAg
ICAgICBpbmxpbmUgYm9vbCBpc1BvaW50SW5SYW5nZShjb25zdCBNZWRpYVRpbWUmIHBvaW50KSBj
b25zdAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9zdGFydCA8PSBwb2ludCAmJiBw
b2ludCA8IG1fZW5kOwpAQCAtMTEwLDEwICsxMzcsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IHJldHVybiByYW5nZS5tX3N0YXJ0ID49IG1fZW5kOwogICAgICAgICB9CiAgICAgfTsKLSAgICAK
KworICAgIFBsYXRmb3JtVGltZVJhbmdlcyhWZWN0b3I8UmFuZ2U+JiYpOworCiAgICAgVmVjdG9y
PFJhbmdlPiBtX3JhbmdlczsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFBs
YXRmb3JtVGltZVJhbmdlczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBtX3JhbmdlczsKK30KKwordGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CitPcHRp
b25hbDxQbGF0Zm9ybVRpbWVSYW5nZXM+IFBsYXRmb3JtVGltZVJhbmdlczo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8VmVjdG9yPFJhbmdlPj4gYnVmZmVyZWQ7Cisg
ICAgZGVjb2RlciA+PiBidWZmZXJlZDsKKyAgICBpZiAoIWJ1ZmZlcmVkKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmJ1ZmZlcmVkKSB9fTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggM2M3MzYz
MDA2Y2MuLjliODk3M2I2MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNjExLDEyICs2MTEsMTQgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKCkK
ICAgICBtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMgPSBudWxscHRyOwogICAgIG1fY2FjaGVkTWF4
VGltZUxvYWRlZCA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKICAgICBpbnZhbGlkYXRlQ2FjaGVk
RHVyYXRpb24oKTsKKyAgICBtX3BsYXllci0+YnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla2FibGVUaW1lUmFu
Z2VzQ2hhbmdlZCgpCiB7CiAgICAgbV9jYWNoZWRNYXhUaW1lU2Vla2FibGUgPSBNZWRpYVRpbWU6
Onplcm9UaW1lKCk7CiAgICAgbV9jYWNoZWRNaW5UaW1lU2Vla2FibGUgPSBNZWRpYVRpbWU6Onpl
cm9UaW1lKCk7CisgICAgbV9wbGF5ZXItPnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnRpbWVDaGFuZ2VkKGNvbnN0
IE1lZGlhVGltZSYgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2MmY5ZTUwMGRiYy4u
YTlkNTAxNzZlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE5Niw3ICsxOTYsNiBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIE1lZGlhVGltZSBtZWRpYVRpbWVGb3JUaW1l
VmFsdWUoY29uc3QgTWVkaWFUaW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIG1heGlt
dW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQg
Y3JlYXRlQVZQbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDk0NDU5MmI5MTUuLmUzZjg1
YzViMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg4NSw3ICs4ODUsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwo
Y29uc3QgVVJMJiB1cmwpCiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7
CiAgICAgbV9hdkFzc2V0ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWVVJMQXNzZXRJbnN0YW5jZSgp
IGluaXRXaXRoVVJMOmNvY29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQoKV0pOwogCi0jaWYgSEFW
RShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX0xP
QURFUl9ERUxFR0FURSkgJiYgMAogICAgIEFWQXNzZXRSZXNvdXJjZUxvYWRlciAqcmVzb3VyY2VM
b2FkZXIgPSBtX2F2QXNzZXQuZ2V0KCkucmVzb3VyY2VMb2FkZXI7CiAgICAgW3Jlc291cmNlTG9h
ZGVyIHNldERlbGVnYXRlOm1fbG9hZGVyRGVsZWdhdGUuZ2V0KCkgcXVldWU6Z2xvYmFsTG9hZGVy
RGVsZWdhdGVRdWV1ZSgpXTsKIApAQCAtMTgwMywxMSArMTgwMyw2IEBAIE1lZGlhVGltZSBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29u
c3QgTWVkaWFUCiAgICAgcmV0dXJuIHRpbWVWYWx1ZTsKIH0KIAotZG91YmxlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1heGltdW1EdXJhdGlvblRvQ2FjaGVNZWRpYVRpbWUo
KSBjb25zdAotewotICAgIHJldHVybiAwOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkKIHsKICAgICBpZiAoIW1f
dmlkZW9MYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWVjNjQ3MmZjZTAuLjgxZWRkZDRkODU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gR2V0IGF1ZGlv
IHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgxMjAzNTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGlt
ZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmg6CisKIDIwMTktMTItMjAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFNldCB3aGV0aGVyIHRvIHVzZSBtb2NrIGNhcHR1cmUgZGV2aWNl
cyBhdCBHUFVQcm9jZXNzIGNyZWF0aW9uIHRpbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcAppbmRleCAyOTI5ZTcwNDJhMi4uOWY2YTYwODA1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcApAQCAtMjAyLDYgKzIwMiwxOCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OjpwYXVzZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
KQogICAgICAgICBwbGF5ZXItPnBhdXNlKCk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OnNlZWsoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwg
TWVkaWFUaW1lJiYgdGltZSkKK3sKKyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Byb3hpZXMuZ2V0
KGlkKSkKKyAgICAgICAgcGxheWVyLT5zZWVrKFdURk1vdmUodGltZSkpOworfQorCit2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVRpbWUm
JiBuZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFuY2UpCit7Cisg
ICAgaWYgKGF1dG8gcGxheWVyID0gbV9wcm94aWVzLmdldChpZCkpCisgICAgICAgIHBsYXllci0+
c2Vla1dpdGhUb2xlcmFuY2UoV1RGTW92ZSh0aW1lKSwgV1RGTW92ZShuZWdhdGl2ZVRvbGVyYW5j
ZSksIFdURk1vdmUocG9zaXRpdmVUb2xlcmFuY2UpKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6c2V0Vm9sdW1lKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wcm94
aWVzLmdldChpZCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDdlNTFlM2M2ZTEy
Li5jMGU3ZjRlOTMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTg2LDYgKzg2
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXkoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllcik7CiAgICAgdm9pZCBwYXVzZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyKTsKIAorICAgIHZvaWQgc2VlayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBNZWRpYVRpbWUmJik7CisgICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJiwgTWVkaWFUaW1lJiYgbmVnYXRpdmVU
b2xlcmFuY2UsIE1lZGlhVGltZSYmIHBvc2l0aXZlVG9sZXJhbmNlKTsKKwogICAgIHZvaWQgc2V0
Vm9sdW1lKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAg
dm9pZCBzZXRNdXRlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY2
MDkzMmE0ZWEzLi5hYTU3ZmU5YjkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNDcsNiArNDcsOSBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBTZXRWb2x1bWUoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQog
ICAgIFNldE11dGVkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZCwgYm9vbCBtdXRlZCkKIAorICAgIFNlZWsoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUgdGltZSkKKyAgICBTZWVrV2l0aFRvbGVyYW5jZShX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSB0
aW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlhVGltZSBwb3NpdGl2ZVRvbGVy
YW5jZSkKKwogICAgIFNldFByZWxvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCBwcmVsb2FkKQogICAgIFNldFByaXZhdGVCcm93c2luZ01vZGUoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIHByaXZhdGVNb2RlKQogICAgIFNl
dFByZXNlcnZlc1BpdGNoKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA3ZGIwY2E5
MzM0My4uYmQyNjhiOTA2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
clByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CkBAIC00Miw2
ICs0Myw3IEBAIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHko
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hCiAgICAgLCBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAg
ICAsIG1fZW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQorICAgICwgbV91cGRhdGVD
YWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZW1vdGVNZWRp
YVBsYXllclByb3h5Ojp0aW1lckZpcmVkKQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
ICwgbV9sb2dnZXIobV9tYW5hZ2VyLmxvZ2dlcigpKQogI2VuZGlmCkBAIC01MSw2ICs1Myw3IEBA
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
aW52YWxpZGF0ZSgpCiB7CisgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9w
KCk7CiAgICAgbV9wbGF5ZXItPmludmFsaWRhdGUoKTsKIH0KIApAQCAtNjksNiArNzIsNyBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmNh
bmNlbExvYWQoKQogeworICAgIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIuc3RvcCgp
OwogICAgIG1fcGxheWVyLT5jYW5jZWxMb2FkKCk7CiB9CiAKQEAgLTc5LDEyICs4MywyNyBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnByZXBhcmVUb1BsYXkoKQogCiB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OnBsYXkoKQogeworICAgIGlmIChtX3BsYXllci0+bW92aWVMb2Fk
VHlwZSgpICE9IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OkxpdmVT
dHJlYW0pCisgICAgICAgIHN0YXJ0VXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIoKTsKICAg
ICBtX3BsYXllci0+cGxheSgpOworICAgIHNlbmRDYWNoZWRTdGF0ZSgpOwogfQogCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OnBhdXNlKCkKIHsKKyAgICBtX3VwZGF0ZUNhY2hlZFN0YXRl
TWVzc2FnZVRpbWVyLnN0b3AoKTsKICAgICBtX3BsYXllci0+cGF1c2UoKTsKKyAgICBzZW5kQ2Fj
aGVkU3RhdGUoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZWVrKE1lZGlh
VGltZSYmIHRpbWUpCit7CisgICAgbV9wbGF5ZXItPnNlZWsodGltZSk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6c2Vla1dpdGhUb2xlcmFuY2UoTWVkaWFUaW1lJiYgdGltZSwg
TWVkaWFUaW1lJiYgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlhVGltZSYmIHBvc2l0aXZlVG9sZXJh
bmNlKQoreworICAgIG1fcGxheWVyLT5zZWVrV2l0aFRvbGVyYW5jZSh0aW1lLCBuZWdhdGl2ZVRv
bGVyYW5jZSwgcG9zaXRpdmVUb2xlcmFuY2UpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnNldFZvbHVtZShkb3VibGUgdm9sdW1lKQpAQCAtMTE1LDEyICsxMzQsMTQgQEAgdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZl
c1BpdGNoKQogLy8gTWVkaWFQbGF5ZXJDbGllbnQKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nlc3ND
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Ok5ldHdv
cmtTdGF0ZUNoYW5nZWQobV9pZCwgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZSgpKSwgMCk7CisgICAg
dXBkYXRlQ2FjaGVkU3RhdGUoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Ok5ldHdvcmtTdGF0ZUNoYW5nZWQobV9p
ZCwgbV9jYWNoZWRTdGF0ZSksIDApOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVhZHlTdGF0
ZUNoYW5nZWQobV9pZCwgbV9wbGF5ZXItPnJlYWR5U3RhdGUoKSksIDApOworICAgIHVwZGF0ZUNh
Y2hlZFN0YXRlKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZWFkeVN0YXRlQ2hhbmdlZChtX2lkLCBtX2NhY2hl
ZFN0YXRlKSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJWb2x1bWVDaGFuZ2VkKCkKQEAgLTEzNSwxNiArMTU2LDE5IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJUaW1lQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpUaW1l
Q2hhbmdlZChtX2lkLCBtX3BsYXllci0+Y3VycmVudFRpbWUoKSksIDApOworICAgIHVwZGF0ZUNh
Y2hlZFN0YXRlKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpUaW1lQ2hhbmdlZChtX2lkLCBtX2NhY2hlZFN0YXRl
KSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJEdXJh
dGlvbkNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6RHVyYXRpb25DaGFuZ2VkKG1faWQsIG1fcGxh
eWVyLT5kdXJhdGlvbigpKSwgMCk7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoKTsKKyAgICBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OkR1cmF0aW9uQ2hhbmdlZChtX2lkLCBtX2NhY2hlZFN0YXRlKSwgMCk7CiB9CiAKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCgpCiB7CisgICAg
c2VuZENhY2hlZFN0YXRlKCk7CiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSYXRlQ2hhbmdlZChtX2lkLCBtX3BsYXll
ci0+cmF0ZSgpKSwgMCk7CiB9CiAKQEAgLTE1MywxMiArMTc3LDI3IEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAogICAg
IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6RW5naW5lRmFpbGVkVG9Mb2FkKG1faWQsIG1fcGxheWVyLT5wbGF0Zm9ybUVycm9y
Q29kZSgpKSwgMCk7CiB9CiAKLS8vIEZJWE1FOiBVbmltcGxlbWVudGVkCiB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQoKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpQbGF5YmFja1N0YXRlQ2hhbmdlZChtX2lk
LCBtX3BsYXllci0+cGF1c2VkKCkpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIG1fYnVm
ZmVyZWRDaGFuZ2VkID0gdHJ1ZTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIG1fc2Vla2FibGVD
aGFuZ2VkID0gdHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCit7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpDaGFyYWN0ZXJpc3Rp
Y0NoYW5nZWQobV9pZCwgbV9wbGF5ZXItPmhhc0F1ZGlvKCksIG1fcGxheWVyLT5oYXNWaWRlbygp
LCBtX3BsYXllci0+bW92aWVMb2FkVHlwZSgpKSwgMCk7Cit9CisKKy8vIEZJWE1FOiBVbmltcGxl
bWVudGVkCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVzb3VyY2VO
b3RTdXBwb3J0ZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0xNzksMTIgKzIxOCw2
IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJh
bWVBdmFpbGFibGUoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLQogYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CkBAIC00NDUsNiArNDc4LDQ5IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnN0YXJ0VXBkYXRlQ2Fj
aGVkU3RhdGVNZXNzYWdlVGltZXIoKQoreworICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heFRp
bWV1cGRhdGVFdmVudEZyZXF1ZW5jeSB7IDEwMF9tcyB9OworCisgICAgaWYgKG1fdXBkYXRlQ2Fj
aGVkU3RhdGVNZXNzYWdlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdGFydFJlcGVhdGluZyhtYXhUaW1ldXBk
YXRlRXZlbnRGcmVxdWVuY3kpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnRp
bWVyRmlyZWQoKQoreworICAgIHNlbmRDYWNoZWRTdGF0ZSgpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OnVwZGF0ZUNhY2hlZFN0YXRlKCkKK3sKKyAgICBtX2NhY2hlZFN0YXRl
LmN1cnJlbnRUaW1lID0gbV9wbGF5ZXItPmN1cnJlbnRUaW1lKCk7CisgICAgbV9jYWNoZWRTdGF0
ZS5kdXJhdGlvbiA9IG1fcGxheWVyLT5kdXJhdGlvbigpOworICAgIG1fY2FjaGVkU3RhdGUubmV0
d29ya1N0YXRlID0gbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZSgpOworICAgIG1fY2FjaGVkU3RhdGUu
cmVhZHlTdGF0ZSA9IG1fcGxheWVyLT5yZWFkeVN0YXRlKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5w
YXVzZWQgPSBtX3BsYXllci0+cGF1c2VkKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5sb2FkaW5nUHJv
Z3Jlc3NlZCA9IG1fcGxheWVyLT5kaWRMb2FkaW5nUHJvZ3Jlc3MoKTsKKworICAgIGlmIChtX3Nl
ZWthYmxlQ2hhbmdlZCkgeworICAgICAgICBtX3NlZWthYmxlQ2hhbmdlZCA9IGZhbHNlOworICAg
ICAgICBtX2NhY2hlZFN0YXRlLm1pblRpbWVTZWVrYWJsZSA9IG1fcGxheWVyLT5taW5UaW1lU2Vl
a2FibGUoKTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGUgPSBtX3BsYXll
ci0+bWF4VGltZVNlZWthYmxlKCk7CisgICAgfQorCisgICAgaWYgKG1fYnVmZmVyZWRDaGFuZ2Vk
KSB7CisgICAgICAgIG1fYnVmZmVyZWRDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIG1fY2FjaGVk
U3RhdGUuYnVmZmVyZWRSYW5nZXMgPSAqbV9wbGF5ZXItPmJ1ZmZlcmVkKCk7CisgICAgfQorfQor
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNlbmRDYWNoZWRTdGF0ZSgpCit7CisgICAg
dXBkYXRlQ2FjaGVkU3RhdGUoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlVwZGF0ZUNhY2hlZFN0YXRlKG1faWQs
IG1fY2FjaGVkU3RhdGUpLCAwKTsKKyAgICBtX2NhY2hlZFN0YXRlLmJ1ZmZlcmVkUmFuZ2VzLmNs
ZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVD
S19DT05URVhUSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDllM2QzMjIzZjdlLi43ZjZjYmFhNmFjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCkBAIC0yOCw4ICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC02NSw2ICs2
Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAKKyAg
ICB2b2lkIHNlZWsoTWVkaWFUaW1lJiYpOworICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoTWVk
aWFUaW1lJiYsIE1lZGlhVGltZSYmIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUmJiBwb3Np
dGl2ZVRvbGVyYW5jZSk7CisKICAgICB2b2lkIHNldFZvbHVtZShkb3VibGUpOwogICAgIHZvaWQg
c2V0TXV0ZWQoYm9vbCk7CiAKQEAgLTgxLDkgKzg2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckR1cmF0
aW9uQ2hhbmdlZCgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCgpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpIGZpbmFsOwor
ICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZpbmFsOworICAg
IHZvaWQgbWVkaWFQbGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAKICAg
ICAvLyBOb3QgaW1wbGVtZW50ZWQKLSAgICB2b2lkIG1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNo
YW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQo
KSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyU2l6ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2
b2lkIG1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwpAQCAtMTQ0LDggKzE1Miw2IEBA
IHByaXZhdGU6CiAKICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50
aWZpZXIoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRU
b0xvYWQoKSBjb25zdCBmaW5hbDsKLQogICAgIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBs
YXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgbWVkaWFQbGF5ZXJGdWxsc2NyZWVuTW9kZSgpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCBmaW5hbDsK
QEAgLTE1NSw2ICsxNjEsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgp
IGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3Vw
cG9ydCgpIGNvbnN0IGZpbmFsOwogCisgICAgdm9pZCBzdGFydFVwZGF0ZUNhY2hlZFN0YXRlTWVz
c2FnZVRpbWVyKCk7CisgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIHZvaWQgc2Vu
ZENhY2hlZFN0YXRlKCk7CisgICAgdm9pZCB0aW1lckZpcmVkKCk7CisKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwg
eyByZXR1cm4gbV9sb2dnZXI7IH0KICNlbmRpZgpAQCAtMTY1LDYgKzE3NiwxMSBAQCBwcml2YXRl
OgogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtX21hbmFnZXI7CiAgICAgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsK
ICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQ7CisgICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91
cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRl
IG1fY2FjaGVkU3RhdGU7CisKKyAgICBib29sIG1fc2Vla2FibGVDaGFuZ2VkIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV9idWZmZXJlZENoYW5nZWQgeyB0cnVlIH07CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWM1YzZjYTRiYWMuLjRlZjEy
OGYwOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTk5LDYgKzk5LDcgQEAKIAkJMDc5MjMxNEQyMzlDQkNCODAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzE0NzIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMDc5MjMxNEYyMzlENjIzRTAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3OTIzMTRFMjM5RDVGNTMwMDk1
OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi87IH07CiAJCTA3
QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0E1RUJCQTFDN0JBNDNFMDBCOUNB
NjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRp
YVBsYXllclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5o
ICovOyB9OwogCQkwRTk3RDc0RDIwMEU5MDA0MDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRTk3RDc0QzIw
MEU4RkYzMDBCRjY2NDMgLyogU2FmZUJyb3dzaW5nU1BJLmggKi87IH07CiAJCTBFREU4NTAzMjAw
NEU3NUQwMDAzMDU2MCAvKiBXZWJzaXRlUG9wVXBQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBFREU4NTAyMjAwNEU3NDkwMDAzMDU2MCAvKiBX
ZWJzaXRlUG9wVXBQb2xpY3kuaCAqLzsgfTsKIAkJMEYwOENGNTIxRDYzQzEzQTAwQjQ4REYxIC8q
IFdLRm9ybVNlbGVjdFBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYwOENGNTExRDYzQzEzQTAwQjQ4REYxIC8qIFdLRm9ybVNlbGVjdFBpY2tl
ci5oICovOyB9OwpAQCAtMjA2NSw2ICsyMDY2LDcgQEAKIAkJMDc5MjMxNEUyMzlENUY1MzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0E1RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJl
Zi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFuZGxl
UmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQzRTAw
QjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
N0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QkFGMzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjdENkE1RkU4NDAzMDdD
MDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJh
bWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29y
azsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTUwOTIsNiArNTA5NCw3IEBACiAJ
CTA3OTIzMTJGMjM5QjNCMEMwMDk1OThFMiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJl
bW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLywKIAkJCQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywKIAkJCQkwNzkyMzEzMjIzOUIzQjBD
MDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDc5MjMxNEUy
MzlENUY1MzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAq
LywKQEAgLTEwMzI0LDYgKzEwMzI3LDcgQEAKIAkJCQlFMzg2NkIwODIzOTlBMkQxMDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1QjFDNTUxODk4N0VERjAwNEZD
RjlCIC8qIFdlYkRvY3VtZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0IzQjQ3MDIz
QUIzMDJEMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMzJEN0IxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQTBFRjlGMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZFBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3RDEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAppbmRleCBhOWI4OTZiODZjYS4uOGU0ODNlMDg2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTQ0LDYgKzQ0LDE1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjdW5kZWYgbm90SW1wbGVt
ZW50ZWQKKyNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IFwKKyAgICBzdGF0aWMgYm9vbCBo
YXZlUHJpbnRlZCA9IGZhbHNlOyBcCisgICAgaWYgKCFoYXZlUHJpbnRlZCkgeyBcCisgICAgICAg
IFdURkxvZ0Fsd2F5cygiQEBAIFVOSU1QTEVNRU5URUQ6ICVzIiwgV1RGX1BSRVRUWV9GVU5DVElP
Tik7IFwKKyAgICAgICAgaGF2ZVByaW50ZWQgPSB0cnVlOyBcCisgICAgfSBcCit9IHdoaWxlICgw
KQorCiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShN
ZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBw
bGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAg
OiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKQEAgLTczLDYgKzgy
LDE4MiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjbwogICAgIG1fbWFuYWdlci5ncHVQcm9jZXNz
Q29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpMb2FkKG1faWQsIHVybCwgY29udGVudFR5cGUsIGtleVN5c3RlbSksIDApOwogfQogCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y2FuY2VsTG9hZCgpCit7CisgICAgbV9tYW5hZ2Vy
LmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OkNhbmNlbExvYWQobV9pZCksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cHJlcGFyZVRvUGxheSgpCit7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlByZXBhcmVUb1BsYXkobV9pZCksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGxheSgpCit7CisgICAgbV9jYWNoZWRTdGF0ZS5wYXVzZWQgPSBmYWxzZTsKKyAg
ICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UGxheShtX2lkKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpwYXVzZSgpCit7CisgICAgbV9jYWNoZWRTdGF0ZS5wYXVzZWQg
PSB0cnVlOworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpQYXVzZShtX2lkKSwgMCk7Cit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHBy
ZXNlcnZlc1BpdGNoKQoreworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcmVzZXJ2ZXNQ
aXRjaChtX2lkLCBwcmVzZXJ2ZXNQaXRjaCksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6c2V0Vm9sdW1lRG91YmxlKGRvdWJsZSB2b2x1bWUpCit7CisgICAgbV9tYW5h
Z2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk6OlNldFZvbHVtZShtX2lkLCB2b2x1bWUpLCAwKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgbV9t
YW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OlNldE11dGVkKG1faWQsIG11dGVkKSwgMCk7Cit9CisKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2Fk
IHByZWxvYWQpCit7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlNldFByZWxvYWQobV9pZCwg
cHJlbG9hZCksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJp
dmF0ZUJyb3dzaW5nTW9kZShib29sIHByaXZhdGVNb2RlKQoreworICAgIG1fbWFuYWdlci5ncHVQ
cm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OjpTZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1faWQsIHByaXZhdGVNb2RlKSwgMCk7Cit9
CisKK01lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmN1cnJlbnRNZWRpYVRpbWUo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLmN1cnJlbnRUaW1lOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2Vlayhjb25zdCBNZWRpYVRpbWUmIHRpbWUp
Cit7CisgICAgbV9zZWVraW5nID0gdHJ1ZTsKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2Vl
ayhtX2lkLCB0aW1lKSwgMCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpz
ZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1lZGlhVGltZSYg
bmVnYXRpdmVUb2xlcmFuY2UsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUb2xlcmFuY2UpCit7
CisgICAgbV9zZWVraW5nID0gdHJ1ZTsKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2Vla1dp
dGhUb2xlcmFuY2UobV9pZCwgdGltZSwgbmVnYXRpdmVUb2xlcmFuY2UsIHBvc2l0aXZlVG9sZXJh
bmNlKSwgMCk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpkaWRMb2FkaW5n
UHJvZ3Jlc3MoKSBjb25zdAoreworICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLmxvYWRpbmdQcm9n
cmVzc2VkOworfQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6aGFzVmlkZW8oKSBj
b25zdAoreworICAgIHJldHVybiBtX2hhc1ZpZGVvOworfQorCitib29sIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6aGFzQXVkaW8oKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc0F1ZGlvOwor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnNlZWthYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxQbGF0
Zm9ybVRpbWVSYW5nZXM+KG1fY2FjaGVkU3RhdGUubWluVGltZVNlZWthYmxlLCBtX2NhY2hlZFN0
YXRlLm1heFRpbWVTZWVrYWJsZSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVS
YW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YnVmZmVyZWQoKSBjb25zdAoreworICAg
IGlmICghbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXMpCisgICAgICAgIHJldHVybiBtYWtlVW5p
cXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKworICAgIHJldHVybiBtYWtlVW5pcXVlPFBsYXRm
b3JtVGltZVJhbmdlcz4oKm1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzKTsKK30KKworTWVkaWFQ
bGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptb3ZpZUxvYWRU
eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tb3ZpZUxvYWRUeXBlOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmV0d29ya1N0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBs
YXllclN0YXRlJiYgc3RhdGUpCit7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoV1RGTW92ZShzdGF0
ZSkpOworICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZWFkeVN0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXll
clN0YXRlJiYgc3RhdGUpCit7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkp
OworICAgIG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dm9sdW1lQ2hhbmdlZChkb3VibGUgdm9sdW1lKQoreworICAgIG1f
dm9sdW1lID0gdm9sdW1lOworICAgIG1fcGxheWVyLT52b2x1bWVDaGFuZ2VkKHZvbHVtZSk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptdXRlQ2hhbmdlZChib29sIG11dGVk
KQoreworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICBtX3BsYXllci0+bXV0ZUNoYW5nZWQobXV0
ZWQpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dGltZUNoYW5nZWQoUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIG1fc2Vla2luZyA9IGZhbHNlOwor
ICAgIHVwZGF0ZUNhY2hlZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+dGlt
ZUNoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmR1cmF0aW9u
Q2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCit7CisgICAgdXBkYXRlQ2Fj
aGVkU3RhdGUoV1RGTW92ZShzdGF0ZSkpOworICAgIG1fcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQo
KTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJhdGVDaGFuZ2VkKGRvdWJs
ZSByYXRlKQoreworICAgIG1fcmF0ZSA9IHJhdGU7CisgICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2Vk
KCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF5YmFja1N0YXRlQ2hh
bmdlZChib29sIHBhdXNlZCkKK3sKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IHBhdXNlZDsK
KyAgICBtX3BsYXllci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmVuZ2luZUZhaWxlZFRvTG9hZChsb25nIHBsYXRmb3JtRXJyb3JD
b2RlKQoreworICAgIG1fcGxhdGZvcm1FcnJvckNvZGUgPSBwbGF0Zm9ybUVycm9yQ29kZTsKKyAg
ICBtX3BsYXllci0+cmVtb3RlRW5naW5lRmFpbGVkVG9Mb2FkKCk7Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoYm9vbCBoYXNBdWRpbywg
Ym9vbCBoYXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBt
b3ZpZUxvYWRUeXBlKQoreworICAgIG1fbW92aWVMb2FkVHlwZSA9IG1vdmllTG9hZFR5cGU7Cisg
ICAgbV9oYXNBdWRpbyA9IGhhc0F1ZGlvOworICAgIG1faGFzVmlkZW8gPSBoYXNWaWRlbzsKKyAg
ICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVDYWNoZWRTdGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYgc3RhdGUpCit7CisgICAgbV9jYWNoZWRTdGF0ZS5jdXJyZW50VGltZSA9IHN0YXRlLmN1cnJl
bnRUaW1lOworICAgIG1fY2FjaGVkU3RhdGUuZHVyYXRpb24gPSBzdGF0ZS5kdXJhdGlvbjsKKyAg
ICBtX2NhY2hlZFN0YXRlLm1pblRpbWVTZWVrYWJsZSA9IHN0YXRlLm1pblRpbWVTZWVrYWJsZTsK
KyAgICBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZSA9IHN0YXRlLm1heFRpbWVTZWVrYWJs
ZTsKKyAgICBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZSA9IHN0YXRlLm5ldHdvcmtTdGF0ZTsK
KyAgICBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGUgPSBzdGF0ZS5yZWFkeVN0YXRlOworICAgIG1f
Y2FjaGVkU3RhdGUucGF1c2VkID0gc3RhdGUucGF1c2VkOworICAgIG1fY2FjaGVkU3RhdGUubG9h
ZGluZ1Byb2dyZXNzZWQgPSBzdGF0ZS5sb2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBpZiAoc3RhdGUu
YnVmZmVyZWRSYW5nZXMubGVuZ3RoKCkpCisgICAgICAgIG1fY2FjaGVkQnVmZmVyZWRUaW1lUmFu
Z2VzID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KHN0YXRlLmJ1ZmZlcmVkUmFuZ2Vz
KTsKK30KKworLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKKwogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBTdHJpbmcmLCBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKQogewpAQCAtODEsNyArMjY2LDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50KikKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6
OkZvcm1hdEVycm9yKTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBNZWRp
YVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvcjsKKyAgICAgICAgbV9wbGF5ZXItPm5l
dHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB9KTsKIH0KICNlbmRpZgpAQCAtOTQsMjMgKzI4MCwx
NSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChNZWRpYVN0cmVhbVByaXZh
dGUmKQogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIG5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0
RXJyb3IpOworICAgICAgICBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVy
OjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yOworICAgICAgICBtX3BsYXllci0+bmV0d29ya1N0
YXRlQ2hhbmdlZCgpOwogICAgIH0pOwogfQogI2VuZGlmCiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpjYW5jZWxMb2FkKCkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2Fu
Y2VsTG9hZChtX2lkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
cmVwYXJlVG9QbGF5KCkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UHJlcGFyZVRvUGxh
eShtX2lkKSwgMCk7Ci19Ci0KIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMTY2LDE2ICszNDQsNiBAQCBTdHJpbmcgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjplcnJvckxvZygpIGNvbnN0CiB9CiAjZW5kaWYKIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXkoKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNz
Q29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpQbGF5KG1faWQpLCAwKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBh
dXNlKCkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UGF1c2UobV9pZCksIDApOwotfQot
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlh
UGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTIx
MSw1MSArMzc5LDE3IEBAIEZsb2F0U2l6ZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdHVy
YWxTaXplKCkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6aGFzVmlkZW8oKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6aGFz
QXVkaW8oKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0VmlzaWJsZShib29sKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLU1lZGlhVGltZSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OmN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsKLX0KLQogTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrKGNvbnN0IE1lZGlhVGltZSYpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6
OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1lZGlhVGltZSYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWtpbmcoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzdGFydFRpbWUoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBA
IC0yNjcsMzEgKzQwMSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRSYXRl
RG91YmxlKGRvdWJsZSkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkK
LXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0UHJlc2VydmVzUGl0Y2gobV9pZCwgcHJl
c2VydmVzUGl0Y2gpLCAwKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNl
dFZvbHVtZURvdWJsZShkb3VibGUgdm9sdW1lKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9jZXNz
Q29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpTZXRWb2x1bWUobV9pZCwgdm9sdW1lKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZXRNdXRlZChib29sIG11dGVkKQotewotICAgIG1fbWFuYWdlci5ncHVQcm9j
ZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpTZXRNdXRlZChtX2lkLCBtdXRlZCksIDApOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCBwcmVsb2FkKQotewot
ICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcmVsb2FkKG1faWQsIHByZWxvYWQpLCAwKTsK
LX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByaXZhdGVCcm93c2luZ01v
ZGUoYm9vbCBwcml2YXRlTW9kZSkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0UHJp
dmF0ZUJyb3dzaW5nTW9kZShtX2lkLCBwcml2YXRlTW9kZSksIDApOwotfQotCiBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CkBAIC0zMTUsMjggKzQyNCwxNCBAQCBkb3VibGUgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjptaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdAogICAgIHJldHVybiAwOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnNlZWthYmxlKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBtYWtlVW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpidWZm
ZXJlZCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7Ci19Ci0KIE1lZGlhVGltZSBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6Om1heE1lZGlhVGltZVNlZWthYmxlKCkgY29uc3QKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CisgICAgcmV0dXJu
IG1fY2FjaGVkU3RhdGUubWF4VGltZVNlZWthYmxlOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjptaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOworICAgIHJl
dHVybiBtX2NhY2hlZFN0YXRlLm1pblRpbWVTZWVrYWJsZTsKIH0KIAogZG91YmxlIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6c2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSgpIGNv
bnN0CkBAIC0zNTcsMTIgKzQ1Miw2IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnRvdGFsQnl0ZXMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKQEAgLTUwMywxMiArNTkyLDYgQEAgT3B0aW9uYWw8Ym9vbD4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JikKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1NZWRpYVBsYXllcjo6TW92aWVMb2Fk
VHlwZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1vdmllTG9hZFR5cGUoKSBjb25zdAotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRU
eXBlOjpVbmtub3duOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFy
ZUZvclJlbmRlcmluZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTUyMiw4ICs2MDUs
NyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptZWRpYVRpbWVGb3JUaW1l
VmFsdWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lVgogCiBkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjptYXhpbXVtRHVyYXRpb25Ub0NhY2hlTWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiAuMjsgLy8gRklYTUU6
IGdldCB0aGlzIHZhbHVlIGZyb20gdGhlIG1lZGlhIGVuZ2luZSB3aGVuIGl0IGlzIGNyZWF0ZWQu
CiB9CiAKIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZGVjb2RlZEZyYW1lQ291
bnQoKSBjb25zdApAQCAtNzE0LDYwICs3OTYsNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6c2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmV0d29ya1N0YXRlQ2hhbmdlZChXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUgc3RhdGUpCi17Ci0gICAgbV9uZXR3
b3JrU3RhdGUgPSBzdGF0ZTsKLSAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwot
fQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZUNoYW5nZWQoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSBzdGF0ZSkKLXsKLSAgICBtX3JlYWR5
U3RhdGUgPSBzdGF0ZTsKLSAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwotfQot
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dm9sdW1lQ2hhbmdlZChkb3VibGUgdm9s
dW1lKQotewotICAgIG1fdm9sdW1lID0gdm9sdW1lOwotICAgIG1fcGxheWVyLT52b2x1bWVDaGFu
Z2VkKHZvbHVtZSk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptdXRlQ2hh
bmdlZChib29sIG11dGVkKQotewotICAgIG1fbXV0ZWQgPSBtdXRlZDsKLSAgICBtX3BsYXllci0+
bXV0ZUNoYW5nZWQobXV0ZWQpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
dGltZUNoYW5nZWQoTWVkaWFUaW1lIHRpbWUpCi17Ci0gICAgLy8gRklYTUU6IHNob3VsZCB3ZSBj
YWNoZSB0aGUgY3VycmVudCB0aW1lIGhlcmUgZm9yIHNvbWUgYW1vdW50IG9mIHRpbWU/Ci0gICAg
bV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpkdXJhdGlvbkNoYW5nZWQoTWVkaWFUaW1lIGR1cmF0aW9uKQotewotICAgIG1fZHVyYXRp
b24gPSBkdXJhdGlvbjsKLSAgICBtX3BsYXllci0+ZHVyYXRpb25DaGFuZ2VkKCk7Ci19Ci0KLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyYXRlQ2hhbmdlZChkb3VibGUgcmF0ZSkKLXsK
LSAgICBtX3JhdGUgPSByYXRlOwotICAgIG1fcGxheWVyLT5yYXRlQ2hhbmdlZCgpOwotfQotCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoYm9vbCBw
YXVzZWQpCi17Ci0gICAgbV9wYXVzZWQgPSBwYXVzZWQ7Ci0gICAgbV9wbGF5ZXItPnBsYXliYWNr
U3RhdGVDaGFuZ2VkKCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdp
bmVGYWlsZWRUb0xvYWQobG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkKLXsKLSAgICBtX3BsYXRmb3Jt
RXJyb3JDb2RlID0gcGxhdGZvcm1FcnJvckNvZGU7Ci0gICAgbV9wbGF5ZXItPnJlbW90ZUVuZ2lu
ZUZhaWxlZFRvTG9hZCgpOwotfQotCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dD
aGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggNWJjNzY3Y2NjMDEuLmYwZDdhZmY1N2U3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtNTUsMTUgKzU2LDE3IEBAIHB1YmxpYzoKICAgICBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsgfQogICAgIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySXRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWQ7IH0KIAotICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUpOwotICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5n
ZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSk7CisgICAgdm9pZCBuZXR3
b3JrU3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQgdm9sdW1l
Q2hhbmdlZChkb3VibGUpOwogICAgIHZvaWQgbXV0ZUNoYW5nZWQoYm9vbCk7Ci0gICAgdm9pZCB0
aW1lQ2hhbmdlZChNZWRpYVRpbWUpOwotICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKE1lZGlhVGlt
ZSk7CisgICAgdm9pZCB0aW1lQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOworICAg
IHZvaWQgZHVyYXRpb25DaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAgdm9p
ZCByYXRlQ2hhbmdlZChkb3VibGUpOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoYm9v
bCk7CiAgICAgdm9pZCBlbmdpbmVGYWlsZWRUb0xvYWQobG9uZyk7CisgICAgdm9pZCB1cGRhdGVD
YWNoZWRTdGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOworICAgIHZvaWQgY2hhcmFjdGVy
aXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dn
ZXI7IH0KQEAgLTEyOSwyMSArMTMyLDIxIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFZpc2li
bGUoYm9vbCkgZmluYWw7CiAKLSAgICBNZWRpYVRpbWUgZHVyYXRpb25NZWRpYVRpbWUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CisgICAgTWVkaWFUaW1lIGR1cmF0aW9uTWVk
aWFUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5kdXJhdGlvbjsgfQog
ICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRp
YVRpbWUgZ2V0U3RhcnREYXRlKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNlZWsoY29uc3Qg
TWVkaWFUaW1lJikgZmluYWw7Ci0gICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKKyAgICB2
b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYg
bmVnYXRpdmVUb2xlcmFuY2UsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUb2xlcmFuY2UpIGZp
bmFsOwogCi0gICAgYm9vbCBzZWVraW5nKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzZWVraW5n
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZWVraW5nOyB9CiAKICAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBm
aW5hbDsKIAotICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYXVzZWQ7
IH0KKyAgICBib29sIHBhdXNlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVkU3RhdGUu
cGF1c2VkOyB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBVU0UoR1NUUkVBTUVSKQog
ICAgIGZsb2F0IHZvbHVtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDE7IH0KQEAgLTE1NSw4ICsx
NTgsOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJhdGUoKSBjb25zdCBm
aW5hbDsKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3QgZmluYWw7CiAKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQorICAgIE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGU7IH0KKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5yZWFkeVN0
YXRlOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJs
ZSgpIGNvbnN0IGZpbmFsOwogCkBAIC0yOTQsMTQgKzI5NywxNyBAQCBwcml2YXRlOgogICAgIE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2luZUlkZW50
aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwogCi0g
ICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZSB7IE1lZGlhUGxheWVy
OjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIH07CisgICAg
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzOworCiAgICAg
ZG91YmxlIG1fdm9sdW1lIHsgMSB9OwotICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07Ci0gICAg
TWVkaWFUaW1lIG1fZHVyYXRpb247CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKICAgICBsb25n
IG1fcGxhdGZvcm1FcnJvckNvZGUgeyAwIH07Ci0gICAgYm9vbCBtX3BhdXNlZCB7IGZhbHNlIH07
CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtX21vdmllTG9hZFR5cGUgeyBN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlOjpVbmtub3duIH07CisgICAgYm9vbCBtX2hh
c0F1ZGlvIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzVmlkZW8geyBmYWxzZSB9OworICAgIGJv
b2wgbV9tdXRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3NlZWtpbmcgeyBmYWxzZSB9OwogCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgUmVmUHRyPGNvbnN0IExvZ2dlcj4gbV9sb2dn
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggODdmYzExODg2NmUuLjJjODgw
YzkyMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0xODksMTYgKzE4OSwx
NiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3Jp
Z2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNsZWFyTWVkaWFD
YWNoZUZvck9yaWdpbnMocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0aCwgb3JpZ2luRGF0YSks
IDApOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bmV0d29ya1N0YXRlQ2hh
bmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVBsYXllckVu
dW1zOjpOZXR3b3JrU3RhdGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVy
ID0gbV9wbGF5ZXJzLmdldChpZCkpCi0gICAgICAgIHBsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdl
ZChzdGF0ZSk7CisgICAgICAgIHBsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0
YXRlKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVBsYXllckVu
dW1zOjpSZWFkeVN0YXRlIHN0YXRlKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJl
YWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJl
bW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKLSAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChzdGF0
ZSk7CisgICAgICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCkBA
IC0yMTMsMTYgKzIxMywxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNo
YW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudAogICAgICAgICBwbGF5
ZXItPm11dGVDaGFuZ2VkKG11dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6dGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRp
bWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwg
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1vdmUo
dGltZSkpOworICAgICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1vdmUoc3RhdGUpKTsKIH0K
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSYmIHRpbWUp
Cit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQp
KQotICAgICAgICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHRpbWUpKTsKKyAgICAg
ICAgcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKQEAgLTI0Myw2ICsyNDMsMTIg
QEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZhaWxlZFRvTG9hZChXZWJL
aXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW8KICAgICAgICAgcGxheWVyLT5lbmdpbmVGYWlsZWRU
b0xvYWQocGxhdGZvcm1FcnJvckNvZGUpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBsb2FkVHlwZSkKK3sKKyAgICBpZiAoYXV0
byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5jaGFyYWN0ZXJp
c3RpY0NoYW5nZWQoaGFzQXVkaW8sIGhhc1ZpZGVvLCBsb2FkVHlwZSk7Cit9CisKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgYXV0byByZWdpc3RlckVuZ2luZSA9IFt0aGlzXShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhciByZWdpc3RyYXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSB7CkBAIC0yNTIsNiArMjU4LDEyIEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5n
cyYgc2V0dGluZ3MpCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0OjpzZXRSZWdpc3RlclJl
bW90ZVBsYXllckNhbGxiYWNrKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpID8gV1RG
TW92ZShyZWdpc3RlckVuZ2luZSkgOiBSZW1vdGVNZWRpYVBsYXllclN1cHBvcnQ6OlJlZ2lzdGVy
UmVtb3RlUGxheWVyQ2FsbGJhY2soKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjp1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKK3sKKyAgICBpZiAo
YXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT51cGRhdGVD
YWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7Cit9CisKIElQQzo6Q29ubmVjdGlvbiYgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpncHVQcm9jZXNzQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggNGNmYzFhYzBl
NzIuLmMzYzI3N2FjODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC03MCwx
NSArNzEsMTcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcgotICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlKTsKLSAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKKyAgICB2
b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKKyAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2Vk
KE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CiAgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgZG91YmxlKTsKICAgICB2b2lkIG11dGVDaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7Ci0gICAgdm9pZCB0aW1l
Q2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlh
VGltZSYmKTsKLSAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIE1lZGlhVGltZSYmKTsKKyAgICB2b2lkIHRpbWVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSYmKTsKKyAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAg
ICAgdm9pZCByYXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgZW5naW5l
RmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwg
bG9uZyk7CisgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9p
ZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKIAogICAgIGZyaWVuZCBjbGFzcyBNZWRpYVBsYXll
clJlbW90ZUZhY3Rvcnk7CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCmluZGV4IGVjMmI0M2JjZGI2Li40NjU4YTdhMjhmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI1LDE1ICsyNSwxNyBAQAog
CiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAK
LSAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5l
dHdvcmtTdGF0ZSBzdGF0ZSkKLSAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQorICAgIE5ldHdvcmtTdGF0ZUNoYW5nZWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQorICAgIFJlYWR5U3RhdGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBzdGF0ZSkKICAgICBWb2x1bWVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVt
ZSkKICAgICBNdXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGJvb2wgbXV0ZSkKLSAgICBUaW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSB0aW1lKQotICAgIER1cmF0aW9u
Q2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1l
ZGlhVGltZSB0aW1lKQorICAgIFRpbWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSBzdGF0ZSkKKyAgICBEdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRl
IHN0YXRlKQogICAgIFJhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgZG91YmxlIHJhdGUpCiAgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIHBhdXNlZCkK
ICAgICBFbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBpbnQgcGxhdGZvcm1FcnJvckNvZGUpCisgICAgVXBkYXRlQ2FjaGVkU3Rh
dGUoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3Qg
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQorICAgIENoYXJhY3RlcmlzdGlj
Q2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJv
b2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUpCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YzFhYzg2NmY3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyU3RhdGUuaApAQCAtMCwwICsxLDExNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllckVudW1zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybVRpbWVSYW5nZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSB7CisgICAgTWVkaWFU
aW1lIGN1cnJlbnRUaW1lOworICAgIE1lZGlhVGltZSBkdXJhdGlvbjsKKyAgICBNZWRpYVRpbWUg
bWluVGltZVNlZWthYmxlOworICAgIE1lZGlhVGltZSBtYXhUaW1lU2Vla2FibGU7CisgICAgV2Vi
Q29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkUmFuZ2VzOworICAgIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUgeyBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07CisgICAgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlIHsgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBib29sIHBhdXNlZCB7IHRydWUg
fTsKKyAgICBib29sIGxvYWRpbmdQcm9ncmVzc2VkIHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY3VycmVudFRpbWU7CisgICAgICAgIGVuY29kZXIg
PDwgZHVyYXRpb247CisgICAgICAgIGVuY29kZXIgPDwgbWluVGltZVNlZWthYmxlOworICAgICAg
ICBlbmNvZGVyIDw8IG1heFRpbWVTZWVrYWJsZTsKKyAgICAgICAgZW5jb2RlciA8PCBidWZmZXJl
ZFJhbmdlczsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG5ldHdvcmtTdGF0ZSk7CisgICAg
ICAgIGVuY29kZXIuZW5jb2RlRW51bShyZWFkeVN0YXRlKTsKKyAgICAgICAgZW5jb2RlciA8PCBw
YXVzZWQ7CisgICAgICAgIGVuY29kZXIgPDwgbG9hZGluZ1Byb2dyZXNzZWQ7CisgICAgfQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPFJlbW90ZU1l
ZGlhUGxheWVyU3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyAgICAgICAg
T3B0aW9uYWw8TWVkaWFUaW1lPiBjdXJyZW50VGltZTsKKyAgICAgICAgZGVjb2RlciA+PiBjdXJy
ZW50VGltZTsKKyAgICAgICAgaWYgKCFjdXJyZW50VGltZSkKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBkdXJhdGlvbjsKKyAg
ICAgICAgZGVjb2RlciA+PiBkdXJhdGlvbjsKKyAgICAgICAgaWYgKCFkdXJhdGlvbikKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1l
PiBtaW5UaW1lU2Vla2FibGU7CisgICAgICAgIGRlY29kZXIgPj4gbWluVGltZVNlZWthYmxlOwor
ICAgICAgICBpZiAoIW1pblRpbWVTZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBtYXhUaW1lU2Vla2FibGU7Cisg
ICAgICAgIGRlY29kZXIgPj4gbWF4VGltZVNlZWthYmxlOworICAgICAgICBpZiAoIW1heFRpbWVT
ZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZFJhbmdlczsKKyAgICAg
ICAgZGVjb2RlciA+PiBidWZmZXJlZFJhbmdlczsKKyAgICAgICAgaWYgKCFidWZmZXJlZFJhbmdl
cykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZTsKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZUVudW0obmV0d29ya1N0YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZWFkeVN0
YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9u
YWw8Ym9vbD4gcGF1c2VkOworICAgICAgICBkZWNvZGVyID4+IHBhdXNlZDsKKyAgICAgICAgaWYg
KCFwYXVzZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9w
dGlvbmFsPGJvb2w+IGxvYWRpbmdQcm9ncmVzc2VkOworICAgICAgICBkZWNvZGVyID4+IGxvYWRp
bmdQcm9ncmVzc2VkOworICAgICAgICBpZiAoIWxvYWRpbmdQcm9ncmVzc2VkKQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSgqY3Vy
cmVudFRpbWUpLCBXVEZNb3ZlKCpkdXJhdGlvbiksIFdURk1vdmUoKm1pblRpbWVTZWVrYWJsZSks
IFdURk1vdmUoKm1heFRpbWVTZWVrYWJsZSksIFdURk1vdmUoKmJ1ZmZlcmVkUmFuZ2VzKSwgbmV0
d29ya1N0YXRlLCByZWFkeVN0YXRlLCBXVEZNb3ZlKCpwYXVzZWQpLCBXVEZNb3ZlKCpsb2FkaW5n
UHJvZ3Jlc3NlZCkgfX07CisgICAgfQorCit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386266</attachid>
            <date>2019-12-20 15:19:50 -0800</date>
            <delta_ts>2019-12-20 15:28:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205511-20191220151949.patch</filename>
            <type>text/plain</type>
            <size>52849</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkYjliYWZkNjU0MzNi
MDFhYzliMDFlOTI3NTFmNmY5NTJmNmU4Ny4uY2E4ZDI1NmI5MWQ1ZGVlNjAzNjU3ODM3ODVlM2Ez
ZThmZDUyOThiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEyLTIwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gR2V0IGF1ZGlvIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgx
MjAzNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIFRlc3Rl
ZCBtYW51YWxseSB3aXRoIGEgbW9kaWZpZWQgc2FuZGJveCBiZWNhdXNlIGl0IGlzbid0IHBvc3Np
YmxlIHRvIGxvYWQgbWVkaWEKKyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzIHlldC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpidWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVRpbWVSYW5nZXM6OlBsYXRmb3JtVGltZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVRpbWVSYW5nZXM6OmNsZWFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybVRpbWVSYW5nZXMuaDoKKwogMjAxOS0xMi0yMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBjZXJ0aWZpY2F0ZSBpbmZvIGNoZWNrcyBy
ZWxhdGVkIHRvIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZWM2NDcyZmNlMGM4MWFiOTIyNTM3
YTk1ZjE2NTdmYTA4ZjEzZTg4Li4zMzgzY2QyZDcxODA5YzFlZjJiYjk3MzE0ZDU2YTU4MGQ2YzU2
NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTIwICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vz
c10gR2V0IGF1ZGlvIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgxMjAzNTQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2FjaGVkU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1heGltdW1EdXJhdGlvblRvQ2FjaGVN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oOgorCiAyMDE5LTEyLTIwICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgd2hldGhlciB0byB1c2UgbW9jayBjYXB0dXJl
IGRldmljZXMgYXQgR1BVUHJvY2VzcyBjcmVhdGlvbiB0aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNhNTFjMTdhNjQwN2Ni
OGRhMjMxYTYyMjA2NDRjYjY3YmRhMDc5ZDAuLjIwNTg3NDg3NjVhNmIxNGQ0NWQ2MWIwM2Y1OTNh
NjljNzM0YmUwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTg5Nyw2ICs4OTcsMTYgQEAgZG91YmxlIE1lZGlhUGxheWVyOjpz
ZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkKICAgICByZXR1cm4gbV9wcml2YXRl
LT5zZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCk7CiB9CiAKK3ZvaWQgTWVkaWFQ
bGF5ZXI6OmJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIGNsaWVudCgpLm1lZGlh
UGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVy
OjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkKK3sKKyAgICBjbGllbnQoKS5tZWRpYVBsYXll
clNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKTsKK30KKwogZG91YmxlIE1lZGlhUGxheWVyOjps
aXZlVXBkYXRlSW50ZXJ2YWwoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmxpdmVVcGRhdGVJ
bnRlcnZhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggZTZiODMzOWViYWVkNGMzMzRmODUzZjEzN2RmZDAxNTMzZDlkNjg0NS4uZjZk
OWQ0ZmJhZDg4MWNlNWE2ZjQ2ZGUwM2JkNWQ1YThhODljMWE3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yNjgsNiArMjY4LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNlZWthYmxl
VGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigp
ID0gMDsKQEAgLTM4NSw2ICszODgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCk7CisgICAgdm9pZCBidWZmZXJlZFRpbWVSYW5nZXND
aGFuZ2VkKCk7CisgICAgdm9pZCBzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCk7CiAgICAgTWVk
aWFUaW1lIG1pblRpbWVTZWVrYWJsZSgpOwogICAgIE1lZGlhVGltZSBtYXhUaW1lU2Vla2FibGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1UaW1lUmFuZ2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVGltZVJhbmdlcy5jcHAKaW5kZXggZDJmZDYyZWM2NDI2M2IwNzFiYTg0ZTRlMDliMTcwOThk
MjczM2MyNi4uYTg3OGFjMjQyN2E5ZTUyMjk3NWYzZDNhNmQ3ODRiYzliZWZlNjA0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVS
YW5nZXMuY3BwCkBAIC0zNiw2ICszNiwxMSBAQCBQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3Jt
VGltZVJhbmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmCiAgICAg
YWRkKHN0YXJ0LCBlbmQpOwogfQogCitQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3JtVGltZVJh
bmdlcyhWZWN0b3I8UmFuZ2U+JiYgcmFuZ2VzKQorICAgIDogbV9yYW5nZXMgeyBXVEZNb3ZlKHJh
bmdlcykgfQoreworfQorCiB2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6aW52ZXJ0KCkKIHsKICAg
ICBQbGF0Zm9ybVRpbWVSYW5nZXMgaW52ZXJ0ZWQ7CkBAIC0xNzgsNiArMTgzLDExIEBAIHZvaWQg
UGxhdGZvcm1UaW1lUmFuZ2VzOjphZGQoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQpCiAgICAgbV9yYW5nZXMuaW5zZXJ0KG92ZXJsYXBwaW5nQXJjSW5kZXgsIGFk
ZGVkUmFuZ2UpOwogfQogCit2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6Y2xlYXIoKQoreworICAg
IG1fcmFuZ2VzLmNsZWFyKCk7Cit9CisKIGJvb2wgUGxhdGZvcm1UaW1lUmFuZ2VzOjpjb250YWlu
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkgY29uc3QKIHsKICAgICByZXR1cm4gZmluZCh0aW1lKSAh
PSBub3RGb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtVGltZVJhbmdlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1UaW1lUmFuZ2VzLmgKaW5kZXggZGM1NmRiNmM3ZThjMzQ2NGM5NTMxNGE5OGFmNGFj
MzU5ZTMyNzNkMC4uOTgyNjgyY2NmYTBjMGI4YTcwMjVmNWMzODM4OTk5NTFiMzNkZDZhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFu
Z2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1l
UmFuZ2VzLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzLnNpemUoKTsgfQogCiAgICAgdm9pZCBhZGQoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpOworICAgIHZvaWQgY2xlYXIo
KTsKICAgICAKICAgICBib29sIGNvbnRhaW4oY29uc3QgTWVkaWFUaW1lJikgY29uc3Q7CiAKQEAg
LTY3LDYgKzY4LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkdW1wKFdURjo6UHJpbnRTdHJlYW0m
KSBjb25zdDsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIC8v
IFdlIGNvbnNpZGVyIGFsbCB0aGUgUmFuZ2VzIHRvIGJlIHNlbWktYm91bmRlZCBhcyBmb2xsb3c6
IFtzdGFydCwgZW5kWwogICAgIHN0cnVjdCBSYW5nZSB7CkBAIC04MCw2ICs4NCwyOSBAQCBwcml2
YXRlOgogICAgICAgICBNZWRpYVRpbWUgbV9zdGFydDsKICAgICAgICAgTWVkaWFUaW1lIG1fZW5k
OwogCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgbV9zdGFydDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9lbmQ7CisgICAgICAgIH0KKwor
ICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICAgICAgc3RhdGljIE9wdGlvbmFs
PFJhbmdlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICAgICAgeworICAgICAgICAgICAg
T3B0aW9uYWw8TWVkaWFUaW1lPiBzdGFydDsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gc3RhcnQ7
CisgICAgICAgICAgICBpZiAoIXN0YXJ0KQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgICAgIE9wdGlvbmFsPE1lZGlhVGltZT4gZW5kOworICAgICAgICAg
ICAgZGVjb2RlciA+PiBlbmQ7CisgICAgICAgICAgICBpZiAoIWVuZCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSgq
c3RhcnQpLCBXVEZNb3ZlKCplbmQpIH19OworICAgICAgICB9CisKICAgICAgICAgaW5saW5lIGJv
b2wgaXNQb2ludEluUmFuZ2UoY29uc3QgTWVkaWFUaW1lJiBwb2ludCkgY29uc3QKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIG1fc3RhcnQgPD0gcG9pbnQgJiYgcG9pbnQgPCBtX2VuZDsK
QEAgLTExMCwxMCArMTM3LDI5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gcmFuZ2Uu
bV9zdGFydCA+PSBtX2VuZDsKICAgICAgICAgfQogICAgIH07Ci0gICAgCisKKyAgICBQbGF0Zm9y
bVRpbWVSYW5nZXMoVmVjdG9yPFJhbmdlPiYmKTsKKwogICAgIFZlY3RvcjxSYW5nZT4gbV9yYW5n
ZXM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQbGF0Zm9ybVRpbWVSYW5n
ZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9y
YW5nZXM7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UGxhdGZvcm1U
aW1lUmFuZ2VzPiBQbGF0Zm9ybVRpbWVSYW5nZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIE9wdGlvbmFsPFZlY3RvcjxSYW5nZT4+IGJ1ZmZlcmVkOworICAgIGRlY29kZXIgPj4g
YnVmZmVyZWQ7CisgICAgaWYgKCFidWZmZXJlZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpidWZmZXJlZCkgfX07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IDNjNzM2MzAwNmNjMWY5NTBiMDRl
MjQ2MjY2MTNkMDc1YzU2YzZiY2UuLjliODk3M2I2MWUwMTUyMDEzYzhlZTdjMzliOTBmODY5NDc1
YWNkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCkBAIC02MTEsMTIgKzYxMSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6bG9hZGVkVGltZVJhbmdlc0NoYW5nZWQoKQogICAgIG1fY2FjaGVk
TG9hZGVkVGltZVJhbmdlcyA9IG51bGxwdHI7CiAgICAgbV9jYWNoZWRNYXhUaW1lTG9hZGVkID0g
TWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAgIGludmFsaWRhdGVDYWNoZWREdXJhdGlvbigpOwor
ICAgIG1fcGxheWVyLT5idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkK
IHsKICAgICBtX2NhY2hlZE1heFRpbWVTZWVrYWJsZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsK
ICAgICBtX2NhY2hlZE1pblRpbWVTZWVrYWJsZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKKyAg
ICBtX3BsYXllci0+c2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiB0
aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDYyZjllNTAwZGJjYWE4NDZhOTg1M2VhNTg1
MzVhMGQwNzA3OWM2OWUuLmE5ZDUwMTc2ZWNjZDMzZDBlNzU5NGI3YmJjMjE2ZTIyYjNjZDU0YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE5Niw3ICsxOTYsNiBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIE1lZGlhVGltZSBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3Qg
TWVkaWFUaW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIG1heGltdW1EdXJhdGlvblRv
Q2FjaGVNZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY3JlYXRlQVZQbGF5
ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDk0NDU5MmI5MTU1NjZiNDkyODM5ZTk3YmI0Zjlm
NTNjNWZhNTUyNy4uZmEzZWE1Y2I1OWE2MzQ4ZDYxZDFlMjkyYWU5ZWE2MTJmZjEwYzIwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xODAzLDExICsxODAzLDYgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1lZGlhVGltZUZvclRpbWVWYWx1ZShj
b25zdCBNZWRpYVQKICAgICByZXR1cm4gdGltZVZhbHVlOwogfQogCi1kb3VibGUgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGlt
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKQogewogICAgIGlmICgh
bV92aWRlb0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjkyOWU3
MDQyYTI1NjllYjhmM2MyNmNlZTMwMzQwMjI0MTIxODU0Yy4uOWY2YTYwODA1MDQ1YTVlMWM2MDg1
ZjFjOWRiYWU3MWUzMjA5YTVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBA
IC0yMDIsNiArMjAyLDE4IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnBh
dXNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQpCiAgICAgICAgIHBsYXll
ci0+cGF1c2UoKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c2Vl
ayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1l
KQoreworICAgIGlmIChhdXRvIHBsYXllciA9IG1fcHJveGllcy5nZXQoaWQpKQorICAgICAgICBw
bGF5ZXItPnNlZWsoV1RGTW92ZSh0aW1lKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OnNlZWtXaXRoVG9sZXJhbmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhVGltZSYmIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWUmJiBwb3NpdGl2ZVRvbGVyYW5jZSkKK3sKKyAgICBpZiAoYXV0byBwbGF5
ZXIgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5zZWVrV2l0aFRvbGVyYW5j
ZShXVEZNb3ZlKHRpbWUpLCBXVEZNb3ZlKG5lZ2F0aXZlVG9sZXJhbmNlKSwgV1RGTW92ZShwb3Np
dGl2ZVRvbGVyYW5jZSkpOworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpzZXRWb2x1bWUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91Ymxl
IHZvbHVtZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggN2U1MWUzYzZlMTJhYTRiZWI4NTRhMjg4ZjI1
NWM4YWZmNDZkMGZjNy4uYzBlN2Y0ZTkzM2FjNTdkNDc2ZTJmYjVjMmMwYjViZDYwYTUzOTFiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTg2LDYgKzg2LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBsYXkoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBwYXVzZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIAorICAgIHZv
aWQgc2VlayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJik7
CisgICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBNZWRpYVRpbWUmJiwgTWVkaWFUaW1lJiYgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlh
VGltZSYmIHBvc2l0aXZlVG9sZXJhbmNlKTsKKwogICAgIHZvaWQgc2V0Vm9sdW1lKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRNdXRlZChN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY2MDkzMmE0ZWEzNmQ2NDYx
MzhjMWNhOWY3MzM3NGZkN2FiOGQ1ZDcuLmFhNTdmZTliOTMzZmIxMjliMmEwNWVhZWE3ZjlmNzUw
ODhlMjdkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KQEAgLTQ3LDYgKzQ3LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0Vm9sdW1lKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVtZSkKICAgICBTZXRNdXRlZChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQp
CiAKKyAgICBTZWVrKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZCwgTWVkaWFUaW1lIHRpbWUpCisgICAgU2Vla1dpdGhUb2xlcmFuY2UoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUgdGltZSwgTWVkaWFUaW1l
IG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUgcG9zaXRpdmVUb2xlcmFuY2UpCisKICAgICBT
ZXRQcmVsb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwg
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCkK
ICAgICBTZXRQcml2YXRlQnJvd3NpbmdNb2RlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZCwgYm9vbCBwcml2YXRlTW9kZSkKICAgICBTZXRQcmVzZXJ2ZXNQaXRj
aChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggN2RiMGNhOTMzNDM4NjJiMDYyZjZl
NDYxOGYyM2Q4YTllODNiMDk2Yi4uYmQyNjhiOTA2ODYzNmUwMWY0N2QxNWViYWY1YzAxNTZiMmFj
ZWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTQyLDYgKzQzLDcgQEAgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92
ZShjb25uZWN0aW9uKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9lbmdpbmVJ
ZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVz
c2FnZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnRpbWVyRmlyZWQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlciht
X21hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTUxLDYgKzUzLDcgQEAgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYgbWEKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRlKCkK
IHsKKyAgICBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyLnN0b3AoKTsKICAgICBtX3Bs
YXllci0+aW52YWxpZGF0ZSgpOwogfQogCkBAIC02OSw2ICs3Miw3IEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y2FuY2VsTG9hZCgpCiB7
CisgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CiAgICAgbV9wbGF5
ZXItPmNhbmNlbExvYWQoKTsKIH0KIApAQCAtNzksMTIgKzgzLDI3IEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZVRvUGxheSgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6cGxheSgpCiB7CisgICAgaWYgKG1fcGxheWVyLT5tb3ZpZUxvYWRUeXBlKCkgIT0gV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6TGl2ZVN0cmVhbSkKKyAgICAg
ICAgc3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcigpOwogICAgIG1fcGxheWVyLT5w
bGF5KCk7CisgICAgc2VuZENhY2hlZFN0YXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cGF1c2UoKQogeworICAgIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIu
c3RvcCgpOwogICAgIG1fcGxheWVyLT5wYXVzZSgpOworICAgIHNlbmRDYWNoZWRTdGF0ZSgpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNlZWsoTWVkaWFUaW1lJiYgdGltZSkK
K3sKKyAgICBtX3BsYXllci0+c2Vlayh0aW1lKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVRpbWUmJiBu
ZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFuY2UpCit7CisgICAg
bV9wbGF5ZXItPnNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3Np
dGl2ZVRvbGVyYW5jZSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0Vm9s
dW1lKGRvdWJsZSB2b2x1bWUpCkBAIC0xMTUsMTIgKzEzNCwxNCBAQCB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVzUGl0Y2gpCiAvLyBN
ZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29ya1N0YXRlQ2hhbmdl
ZChtX2lkLCBtX3BsYXllci0+bmV0d29ya1N0YXRlKCkpLCAwKTsKKyAgICB1cGRhdGVDYWNoZWRT
dGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29ya1N0YXRlQ2hhbmdlZChtX2lkLCBtX2NhY2hlZFN0
YXRlKSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJS
ZWFkeVN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZWFkeVN0YXRlQ2hhbmdlZChtX2lk
LCBtX3BsYXllci0+cmVhZHlTdGF0ZSgpKSwgMCk7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoKTsK
KyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OlJlYWR5U3RhdGVDaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsK
IH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclZvbHVtZUNoYW5n
ZWQoKQpAQCAtMTM1LDE2ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllck11dGVDaGFuZ2VkKCkKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlRpbWVDaGFuZ2VkKG1faWQs
IG1fcGxheWVyLT5jdXJyZW50VGltZSgpKSwgMCk7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoKTsK
KyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OlRpbWVDaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsKIH0KIAog
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZCgp
CiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpEdXJhdGlvbkNoYW5nZWQobV9pZCwgbV9wbGF5ZXItPmR1cmF0aW9u
KCkpLCAwKTsKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6RHVyYXRpb25D
aGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKCkKIHsKKyAgICBzZW5kQ2FjaGVkU3Rh
dGUoKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OlJhdGVDaGFuZ2VkKG1faWQsIG1fcGxheWVyLT5yYXRlKCkpLCAw
KTsKIH0KIApAQCAtMTUzLDEyICsxNzcsMjcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpFbmdp
bmVGYWlsZWRUb0xvYWQobV9pZCwgbV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpLCAwKTsK
IH0KIAotLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OlBsYXliYWNrU3RhdGVDaGFuZ2VkKG1faWQsIG1fcGxheWVyLT5w
YXVzZWQoKSksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9idWZmZXJlZENoYW5nZWQg
PSB0cnVlOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2Vl
a2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9zZWVrYWJsZUNoYW5nZWQgPSB0cnVl
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ2hhcmFjdGVy
aXN0aWNDaGFuZ2VkKCkKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OkNoYXJhY3RlcmlzdGljQ2hhbmdlZChtX2lk
LCBtX3BsYXllci0+aGFzQXVkaW8oKSwgbV9wbGF5ZXItPmhhc1ZpZGVvKCksIG1fcGxheWVyLT5t
b3ZpZUxvYWRUeXBlKCkpLCAwKTsKK30KKworLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTE3OSwxMiArMjE4LDYgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotCiBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVu
ZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTQ0
NSw2ICs0NzgsNDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNo
b3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lcigpCit7CisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4VGltZXVwZGF0ZUV2ZW50
RnJlcXVlbmN5IHsgMTAwX21zIH07CisKKyAgICBpZiAobV91cGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3VwZGF0ZUNhY2hl
ZFN0YXRlTWVzc2FnZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKG1heFRpbWV1cGRhdGVFdmVudEZyZXF1
ZW5jeSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJlZCgpCit7
CisgICAgc2VuZENhY2hlZFN0YXRlKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6dXBkYXRlQ2FjaGVkU3RhdGUoKQoreworICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUg
PSBtX3BsYXllci0+Y3VycmVudFRpbWUoKTsKKyAgICBtX2NhY2hlZFN0YXRlLmR1cmF0aW9uID0g
bV9wbGF5ZXItPmR1cmF0aW9uKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBt
X3BsYXllci0+bmV0d29ya1N0YXRlKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlID0g
bV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IG1fcGxh
eWVyLT5wYXVzZWQoKTsKKyAgICBtX2NhY2hlZFN0YXRlLmxvYWRpbmdQcm9ncmVzc2VkID0gbV9w
bGF5ZXItPmRpZExvYWRpbmdQcm9ncmVzcygpOworCisgICAgaWYgKG1fc2Vla2FibGVDaGFuZ2Vk
KSB7CisgICAgICAgIG1fc2Vla2FibGVDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIG1fY2FjaGVk
U3RhdGUubWluVGltZVNlZWthYmxlID0gbV9wbGF5ZXItPm1pblRpbWVTZWVrYWJsZSgpOworICAg
ICAgICBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZSA9IG1fcGxheWVyLT5tYXhUaW1lU2Vl
a2FibGUoKTsKKyAgICB9CisKKyAgICBpZiAobV9idWZmZXJlZENoYW5nZWQpIHsKKyAgICAgICAg
bV9idWZmZXJlZENoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5idWZmZXJl
ZFJhbmdlcyA9ICptX3BsYXllci0+YnVmZmVyZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6c2VuZENhY2hlZFN0YXRlKCkKK3sKKyAgICB1cGRhdGVDYWNoZWRT
dGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6VXBkYXRlQ2FjaGVkU3RhdGUobV9pZCwgbV9jYWNoZWRTdGF0
ZSksIDApOworICAgIG1fY2FjaGVkU3RhdGUuYnVmZmVyZWRSYW5nZXMuY2xlYXIoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmgKaW5kZXggOWUzZDMyMjNmN2ViZTlhNjAyOTA0NTI0YzY5ZjBjNmFmMmQ5NDc5
ZC4uN2Y2Y2JhYTZhY2JkMWQ5ZWYzNzg2ZmRlNTk4OTJmMDBiN2ExOWQ0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCkBAIC0yOCw4ICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC02NSw2ICs2Nyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAKKyAgICB2b2lkIHNlZWso
TWVkaWFUaW1lJiYpOworICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoTWVkaWFUaW1lJiYsIE1l
ZGlhVGltZSYmIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUmJiBwb3NpdGl2ZVRvbGVyYW5j
ZSk7CisKICAgICB2b2lkIHNldFZvbHVtZShkb3VibGUpOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9v
bCk7CiAKQEAgLTgxLDkgKzg2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYVBsYXllclRp
bWVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZCgp
IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIHZv
aWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG1lZGlh
UGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQ
bGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAKICAgICAvLyBOb3QgaW1w
bGVtZW50ZWQKLSAgICB2b2lkIG1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQoKSBmaW5h
bDsKICAgICB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKSBmaW5hbDsKICAg
ICB2b2lkIG1lZGlhUGxheWVyU2l6ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxh
eWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwpAQCAtMTQ0LDggKzE1Miw2IEBAIHByaXZhdGU6CiAK
ICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25z
dCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25z
dCBmaW5hbDsKLQogICAgIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgp
IGNvbnN0IGZpbmFsOwogICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
bWVkaWFQbGF5ZXJGdWxsc2NyZWVuTW9kZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQ
bGF5ZXJJc1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCBmaW5hbDsKQEAgLTE1NSw2ICsx
NjEsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+
JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0
IGZpbmFsOwogCisgICAgdm9pZCBzdGFydFVwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyKCk7
CisgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIHZvaWQgc2VuZENhY2hlZFN0YXRl
KCk7CisgICAgdm9pZCB0aW1lckZpcmVkKCk7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9s
b2dnZXI7IH0KICNlbmRpZgpAQCAtMTY1LDYgKzE3NiwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtX21hbmFnZXI7CiAgICAgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8
V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7Cisg
ICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRhdGVDYWNoZWRT
dGF0ZU1lc3NhZ2VUaW1lcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3Rh
dGU7CisKKyAgICBib29sIG1fc2Vla2FibGVDaGFuZ2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9i
dWZmZXJlZENoYW5nZWQgeyB0cnVlIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWM1YzZjYTRiYWNiYTRiMTM0ZDQ0YWY5MjAwYjBi
MWU4YjRjYTJiMy4uNGYwNDQ4MjEzYTg3NDhhOTdjYWExNDQ2YTEyZDg5NWE0MDk3YjE5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
OSw2ICs5OSw3IEBACiAJCTA3OTIzMTREMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc5MjMxNDcyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTA3OTIzMTRGMjM5RDYyM0UwMDk1OThFMiAvKiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovOyB9OwogCQkwN0E1RUJCQzFDN0JB
NDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBNUVCQkExQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJh
bWVIYW5kbGVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkwN0IzQjQ3MDIzQUIzMDJEMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCM0I0
NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLzsgfTsKIAkJ
MEU5N0Q3NEQyMDBFOTAwNDAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEU5N0Q3NEMyMDBFOEZGMzAwQkY2
NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oICovOyB9OwogCQkwRURFODUwMzIwMDRFNzVEMDAwMzA1
NjAgLyogV2Vic2l0ZVBvcFVwUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRURFODUwMjIwMDRFNzQ5MDAwMzA1NjAgLyogV2Vic2l0ZVBvcFVw
UG9saWN5LmggKi87IH07CiAJCTBGMDhDRjUyMUQ2M0MxM0EwMEI0OERGMSAvKiBXS0Zvcm1TZWxl
Y3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMDhDRjUxMUQ2M0MxM0EwMEI0OERGMSAvKiBXS0Zvcm1TZWxlY3RQaWNrZXIuaCAqLzsgfTsK
QEAgLTIwNjUsNiArMjA2Niw3IEBACiAJCTA3OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2OSAvKiBX
S0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnJh
bWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdCM0I0NkYyM0FC
MkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyog
QXBwS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0
aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC01MDk4LDYgKzUxMDAsNyBAQAogCQkJCTA3OTIzMTMw
MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovLAogCQkJ
CTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAq
LywKIAkJCQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwMTUwLDYgKzEwMTUzLDcgQEAKIAkJCQkwNzkyMzE0
QTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0IzQjQ3MDIzQUIzMDJEMDBC
QTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFC
Nzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52
b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFFNDAwRjNFQzA1IC8q
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAppbmRleCBhOWI4OTZiODZjYWQyNTk3NjQ1NmRhMjkxZDVhNTk4MTc5NDA5M2Yz
Li44ZTQ4M2UwODYwZjFjNmFhNjU0MmY5OGQxZTI1NWMxYWRjODljODMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCkBAIC00NCw2ICs0NCwxNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI3VuZGVm
IG5vdEltcGxlbWVudGVkCisjZGVmaW5lIG5vdEltcGxlbWVudGVkKCkgZG8geyBcCisgICAgc3Rh
dGljIGJvb2wgaGF2ZVByaW50ZWQgPSBmYWxzZTsgXAorICAgIGlmICghaGF2ZVByaW50ZWQpIHsg
XAorICAgICAgICBXVEZMb2dBbHdheXMoIkBAQCBVTklNUExFTUVOVEVEOiAlcyIsIFdURl9QUkVU
VFlfRlVOQ1RJT04pOyBcCisgICAgICAgIGhhdmVQcmludGVkID0gdHJ1ZTsgXAorICAgIH0gXAor
fSB3aGlsZSAoMCkKKwogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5h
Z2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCkBA
IC03Myw2ICs4MiwxODIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY28KICAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6TG9hZChtX2lkLCB1cmwsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pLCAwKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNhbmNlbExvYWQoKQoreworICAg
IG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5jZWxMb2FkKG1faWQpLCAwKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVUb1BsYXkoKQoreworICAgIG1fbWFuYWdl
ci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OjpQcmVwYXJlVG9QbGF5KG1faWQpLCAwKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnBsYXkoKQoreworICAgIG1fY2FjaGVkU3RhdGUucGF1c2VkID0g
ZmFsc2U7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBsYXkobV9pZCksIDApOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGF1c2UoKQoreworICAgIG1fY2FjaGVkU3Rh
dGUucGF1c2VkID0gdHJ1ZTsKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UGF1c2UobV9pZCks
IDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJlc2VydmVzUGl0
Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKK3sKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0
UHJlc2VydmVzUGl0Y2gobV9pZCwgcHJlc2VydmVzUGl0Y2gpLCAwKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZvbHVtZURvdWJsZShkb3VibGUgdm9sdW1lKQorewor
ICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRWb2x1bWUobV9pZCwgdm9sdW1lKSwgMCk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRNdXRlZChib29sIG11dGVkKQor
eworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRNdXRlZChtX2lkLCBtdXRlZCksIDApOwor
fQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJlbG9hZChNZWRpYVBsYXll
cjo6UHJlbG9hZCBwcmVsb2FkKQoreworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcmVs
b2FkKG1faWQsIHByZWxvYWQpLCAwKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFByaXZhdGVCcm93c2luZ01vZGUoYm9vbCBwcml2YXRlTW9kZSkKK3sKKyAgICBtX21h
bmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6U2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShtX2lkLCBwcml2YXRlTW9k
ZSksIDApOworfQorCitNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjdXJyZW50
TWVkaWFUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5jdXJyZW50VGlt
ZTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWsoY29uc3QgTWVkaWFU
aW1lJiB0aW1lKQoreworICAgIG1fc2Vla2luZyA9IHRydWU7CisgICAgbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OlNlZWsobV9pZCwgdGltZSksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBN
ZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVG9s
ZXJhbmNlKQoreworICAgIG1fc2Vla2luZyA9IHRydWU7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlNlZWtXaXRoVG9sZXJhbmNlKG1faWQsIHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3Np
dGl2ZVRvbGVyYW5jZSksIDApOworfQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5s
b2FkaW5nUHJvZ3Jlc3NlZDsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omhh
c1ZpZGVvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWaWRlbzsKK30KKworYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Omhhc0F1ZGlvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9o
YXNBdWRpbzsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPihtX2NhY2hlZFN0YXRlLm1pblRpbWVTZWVrYWJsZSwg
bV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGUpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmJ1ZmZlcmVkKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzKQorICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CisKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCptX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlcyk7Cit9
CisKK01lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bW92aWVMb2FkVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbW92aWVMb2FkVHlwZTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIHVwZGF0ZUNhY2hlZFN0YXRlKFdU
Rk1vdmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworfQor
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZUNoYW5nZWQoUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIHVwZGF0ZUNhY2hlZFN0YXRlKFdURk1v
dmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKK30KKwordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZvbHVtZUNoYW5nZWQoZG91YmxlIHZvbHVtZSkK
K3sKKyAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKyAgICBtX3BsYXllci0+dm9sdW1lQ2hhbmdlZCh2
b2x1bWUpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bXV0ZUNoYW5nZWQo
Ym9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAgbV9wbGF5ZXItPm11dGVD
aGFuZ2VkKG11dGVkKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRpbWVD
aGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKK3sKKyAgICBtX3NlZWtpbmcg
PSBmYWxzZTsKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7CisgICAgbV9w
bGF5ZXItPnRpbWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpkdXJhdGlvbkNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAg
IHVwZGF0ZUNhY2hlZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+ZHVyYXRp
b25DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyYXRlQ2hh
bmdlZChkb3VibGUgcmF0ZSkKK3sKKyAgICBtX3JhdGUgPSByYXRlOworICAgIG1fcGxheWVyLT5y
YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxheWJh
Y2tTdGF0ZUNoYW5nZWQoYm9vbCBwYXVzZWQpCit7CisgICAgbV9jYWNoZWRTdGF0ZS5wYXVzZWQg
PSBwYXVzZWQ7CisgICAgbV9wbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVGYWlsZWRUb0xvYWQobG9uZyBwbGF0
Zm9ybUVycm9yQ29kZSkKK3sKKyAgICBtX3BsYXRmb3JtRXJyb3JDb2RlID0gcGxhdGZvcm1FcnJv
ckNvZGU7CisgICAgbV9wbGF5ZXItPnJlbW90ZUVuZ2luZUZhaWxlZFRvTG9hZCgpOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wg
aGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSkKK3sKKyAgICBtX21vdmllTG9hZFR5cGUgPSBtb3ZpZUxv
YWRUeXBlOworICAgIG1faGFzQXVkaW8gPSBoYXNBdWRpbzsKKyAgICBtX2hhc1ZpZGVvID0gaGFz
VmlkZW87CisgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpOworfQorCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2FjaGVkU3RhdGUoUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUgPSBz
dGF0ZS5jdXJyZW50VGltZTsKKyAgICBtX2NhY2hlZFN0YXRlLmR1cmF0aW9uID0gc3RhdGUuZHVy
YXRpb247CisgICAgbV9jYWNoZWRTdGF0ZS5taW5UaW1lU2Vla2FibGUgPSBzdGF0ZS5taW5UaW1l
U2Vla2FibGU7CisgICAgbV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGUgPSBzdGF0ZS5tYXhU
aW1lU2Vla2FibGU7CisgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBzdGF0ZS5uZXR3
b3JrU3RhdGU7CisgICAgbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlID0gc3RhdGUucmVhZHlTdGF0
ZTsKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IHN0YXRlLnBhdXNlZDsKKyAgICBtX2NhY2hl
ZFN0YXRlLmxvYWRpbmdQcm9ncmVzc2VkID0gc3RhdGUubG9hZGluZ1Byb2dyZXNzZWQ7CisgICAg
aWYgKHN0YXRlLmJ1ZmZlcmVkUmFuZ2VzLmxlbmd0aCgpKQorICAgICAgICBtX2NhY2hlZEJ1ZmZl
cmVkVGltZVJhbmdlcyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPihzdGF0ZS5idWZm
ZXJlZFJhbmdlcyk7Cit9CisKKy8vIEZJWE1FOiBVbmltcGxlbWVudGVkCisKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29uc3Qg
U3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikKIHsKQEAgLTgxLDcgKzI2Niw4IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlh
U291cmNlUHJpdmF0ZUNsaWVudCopCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpGb3JtYXRFcnJvcik7CisgICAgICAgIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0
YXRlID0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3I7CisgICAgICAgIG1f
cGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKQEAgLTk0
LDIzICsyODAsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFT
dHJlYW1Qcml2YXRlJikKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3Rh
dGU6OkZvcm1hdEVycm9yKTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBN
ZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvcjsKKyAgICAgICAgbV9wbGF5ZXIt
Pm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB9KTsKIH0KICNlbmRpZgogCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y2FuY2VsTG9hZCgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OkNhbmNlbExvYWQobV9pZCksIDApOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cHJlcGFyZVRvUGxheSgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBy
ZXBhcmVUb1BsYXkobV9pZCksIDApOwotfQotCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogeworICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTE2NiwxNiArMzQ0LDYgQEAgU3RyaW5n
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZXJyb3JMb2coKSBjb25zdAogfQogI2VuZGlmCiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF5KCkKLXsKLSAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6UGxheShtX2lkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwYXVzZSgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBhdXNlKG1faWQp
LCAwKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldEJ1ZmZlcmluZ1Bv
bGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CkBAIC0yMTEsNTEgKzM3OSwxNyBAQCBGbG9hdFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Omhhc1ZpZGVvKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Omhhc0F1ZGlvKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpc2li
bGUoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1NZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci19Ci0KIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2Vlayhjb25zdCBNZWRpYVRp
bWUmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVraW5nKCkgY29uc3QKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c3RhcnRUaW1lKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwpAQCAtMjY3LDMxICs0MDEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c2V0UmF0ZURvdWJsZShkb3VibGUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2Vy
dmVzUGl0Y2gpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlNldFByZXNlcnZlc1BpdGNo
KG1faWQsIHByZXNlcnZlc1BpdGNoKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRWb2x1bWVEb3VibGUoZG91YmxlIHZvbHVtZSkKLXsKLSAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6U2V0Vm9sdW1lKG1faWQsIHZvbHVtZSksIDApOwotfQotCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKLXsKLSAgICBtX21hbmFn
ZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6U2V0TXV0ZWQobV9pZCwgbXV0ZWQpLCAwKTsKLX0KLQotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJl
bG9hZCkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0UHJlbG9hZChtX2lkLCBwcmVs
b2FkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcml2YXRl
QnJvd3NpbmdNb2RlKGJvb2wgcHJpdmF0ZU1vZGUpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlNldFByaXZhdGVCcm93c2luZ01vZGUobV9pZCwgcHJpdmF0ZU1vZGUpLCAwKTsKLX0KLQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMzE1LDI4ICs0MjQsMTQgQEAgZG91YmxlIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrYWJsZSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQotCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwor
ICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZTsKIH0KIAogTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5taW5UaW1lU2Vla2FibGU7CiB9CiAKIGRvdWJs
ZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmll
ZFRpbWUoKSBjb25zdApAQCAtMzU3LDEyICs0NTIsNiBAQCB1bnNpZ25lZCBsb25nIGxvbmcgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsK
IH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRpZExvYWRpbmdQcm9ncmVzcygp
IGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRTaXplKGNvbnN0IEludFNpemUmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC01MDMsMTIgKzU5Miw2IEBAIE9wdGlvbmFsPGJv
b2w+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d291bGRUYWludE9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiYpCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotTWVkaWFQbGF5ZXI6
Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptb3ZpZUxvYWRUeXBlKCkg
Y29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZTo6VW5rbm93bjsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC01
MjIsOCArNjA1LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFU
aW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVYKIAogZG91YmxlIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSgpIGNvbnN0
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gLjI7
IC8vIEZJWE1FOiBnZXQgdGhpcyB2YWx1ZSBmcm9tIHRoZSBtZWRpYSBlbmdpbmUgd2hlbiBpdCBp
cyBjcmVhdGVkLgogfQogCiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRlY29k
ZWRGcmFtZUNvdW50KCkgY29uc3QKQEAgLTcxNCw2MCArNzk2LDYgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5ldHdvcmtTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQotewot
ICAgIG1fbmV0d29ya1N0YXRlID0gc3RhdGU7Ci0gICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNo
YW5nZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlYWR5U3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCi17Ci0g
ICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7Ci0gICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5n
ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZvbHVtZUNoYW5nZWQo
ZG91YmxlIHZvbHVtZSkKLXsKLSAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKLSAgICBtX3BsYXllci0+
dm9sdW1lQ2hhbmdlZCh2b2x1bWUpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bXV0ZUNoYW5nZWQoYm9vbCBtdXRlZCkKLXsKLSAgICBtX211dGVkID0gbXV0ZWQ7Ci0gICAg
bV9wbGF5ZXItPm11dGVDaGFuZ2VkKG11dGVkKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnRpbWVDaGFuZ2VkKE1lZGlhVGltZSB0aW1lKQotewotICAgIC8vIEZJWE1FOiBz
aG91bGQgd2UgY2FjaGUgdGhlIGN1cnJlbnQgdGltZSBoZXJlIGZvciBzb21lIGFtb3VudCBvZiB0
aW1lPwotICAgIG1fcGxheWVyLT50aW1lQ2hhbmdlZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6ZHVyYXRpb25DaGFuZ2VkKE1lZGlhVGltZSBkdXJhdGlvbikKLXsKLSAg
ICBtX2R1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgbV9wbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZCgp
OwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmF0ZUNoYW5nZWQoZG91Ymxl
IHJhdGUpCi17Ci0gICAgbV9yYXRlID0gcmF0ZTsKLSAgICBtX3BsYXllci0+cmF0ZUNoYW5nZWQo
KTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXliYWNrU3RhdGVDaGFu
Z2VkKGJvb2wgcGF1c2VkKQotewotICAgIG1fcGF1c2VkID0gcGF1c2VkOwotICAgIG1fcGxheWVy
LT5wbGF5YmFja1N0YXRlQ2hhbmdlZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6ZW5naW5lRmFpbGVkVG9Mb2FkKGxvbmcgcGxhdGZvcm1FcnJvckNvZGUpCi17Ci0gICAg
bV9wbGF0Zm9ybUVycm9yQ29kZSA9IHBsYXRmb3JtRXJyb3JDb2RlOwotICAgIG1fcGxheWVyLT5y
ZW1vdGVFbmdpbmVGYWlsZWRUb0xvYWQoKTsKLX0KLQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDViYzc2N2NjYzAxYTllMTcz
ZjEzNTlhZjYwMTNkM2E3YjEyZGUyMmUuLmYwZDdhZmY1N2U3NzVkNTY1OTgxMWEyZjc4MDZkYTYx
ZmE4Y2JkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIu
aD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01NSwxNSArNTYsMTcgQEAgcHVibGlj
OgogICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOyB9
CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJdGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCi0gICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2Vk
KFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSk7Ci0gICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKKyAg
ICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKKyAg
ICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAg
dm9pZCB2b2x1bWVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsK
LSAgICB2b2lkIHRpbWVDaGFuZ2VkKE1lZGlhVGltZSk7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5n
ZWQoTWVkaWFUaW1lKTsKKyAgICB2b2lkIHRpbWVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CisgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYm
KTsKICAgICB2b2lkIHJhdGVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRl
Q2hhbmdlZChib29sKTsKICAgICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChsb25nKTsKKyAgICB2
b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9p
ZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICptX2xvZ2dlcjsgfQpAQCAtMTI5LDIxICsxMzIsMjEgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2V0VmlzaWJsZShib29sKSBmaW5hbDsKIAotICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlh
VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBNZWRpYVRpbWUg
ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLmR1
cmF0aW9uOyB9CiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsK
IAogICAgIE1lZGlhVGltZSBnZXRTdGFydERhdGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
c2Vlayhjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIGZp
bmFsOworICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
TWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRv
bGVyYW5jZSkgZmluYWw7CiAKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHNlZWtpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NlZWtpbmc7IH0KIAogICAgIE1l
ZGlhVGltZSBzdGFydFRpbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmF0ZURvdWJs
ZShkb3VibGUpIGZpbmFsOwogCi0gICAgYm9vbCBwYXVzZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3BhdXNlZDsgfQorICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
YWNoZWRTdGF0ZS5wYXVzZWQ7IH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFVTRShH
U1RSRUFNRVIpCiAgICAgZmxvYXQgdm9sdW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMTsgfQpA
QCAtMTU1LDggKzE1OCw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBm
aW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9
CisgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0
YXRlLnJlYWR5U3RhdGU7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5n
ZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CiAKQEAgLTI5NCwxNCArMjk3LDE3IEBAIHByaXZh
dGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3Rl
RW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IG1faWQ7CiAKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsg
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHkgfTsKLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhp
bmcgfTsKKyAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5n
ZXM7CisKICAgICBkb3VibGUgbV92b2x1bWUgeyAxIH07Ci0gICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKLSAgICBNZWRpYVRpbWUgbV9kdXJhdGlvbjsKICAgICBkb3VibGUgbV9yYXRlIHsgMSB9
OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKLSAgICBib29sIG1fcGF1c2Vk
IHsgZmFsc2UgfTsKKyAgICBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVM
b2FkVHlwZSB7IE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OlVua25vd24gfTsKKyAg
ICBib29sIG1faGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Vla2luZyB7IGZh
bHNlIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWZQdHI8Y29uc3QgTG9n
Z2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4N2ZjMTE4
ODY2ZWJhNzk3OTFhZjc1NmU1NjBjZDc2NzZlZDJmOWNkLi4yYzg4MGM5MjFlY2QyNDRiYTAzZDNj
NTJhNmU4ZmIyNjA2ZDdmMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0x
ODksMTYgKzE4OSwxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRp
YUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogICAgIGdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OkNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0aCwg
b3JpZ2luRGF0YSksIDApOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bmV0
d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7CiAgICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCi0gICAgICAgIHBsYXllci0+bmV0d29y
a1N0YXRlQ2hhbmdlZChzdGF0ZSk7CisgICAgICAgIHBsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdl
ZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
ZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKICAgICBpZiAoYXV0
byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKLSAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRl
Q2hhbmdlZChzdGF0ZSk7CisgICAgICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoV1RGTW92
ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJs
ZSB2b2x1bWUpCkBAIC0yMTMsMTYgKzIxMywxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bXV0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudAog
ICAgICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKG11dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6dGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnRpbWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChh
dXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPnRpbWVDaGFu
Z2VkKFdURk1vdmUodGltZSkpOworICAgICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1vdmUo
c3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlh
VGltZSYmIHRpbWUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFu
Z2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHRp
bWUpKTsKKyAgICAgICAgcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKQEAgLTI0
Myw2ICsyNDMsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZhaWxl
ZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW8KICAgICAgICAgcGxheWVyLT5l
bmdpbmVGYWlsZWRUb0xvYWQocGxhdGZvcm1FcnJvckNvZGUpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRl
bywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBsb2FkVHlwZSkKK3sK
KyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVy
LT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoaGFzQXVkaW8sIGhhc1ZpZGVvLCBsb2FkVHlwZSk7Cit9
CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgYXV0byByZWdpc3RlckVuZ2luZSA9IFt0aGlz
XShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSB7CkBAIC0yNTIsNiArMjU4
LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0Ojpz
ZXRSZWdpc3RlclJlbW90ZVBsYXllckNhbGxiYWNrKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JN
ZWRpYSgpID8gV1RGTW92ZShyZWdpc3RlckVuZ2luZSkgOiBSZW1vdGVNZWRpYVBsYXllclN1cHBv
cnQ6OlJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2soKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkK
K3sKKyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxh
eWVyLT51cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7Cit9CisKIElQQzo6Q29ubmVj
dGlvbiYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpncHVQcm9jZXNzQ29ubmVjdGlvbigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggNGNmYzFhYzBlNzI4ODE0NjZkNDEyNjhhY2FhMmEzYzQyNGU0ODNiMi4uYzNjMjc3YWM4OGMz
NGRjNjA5YWNhY2ZlZWQ2YWU1OTc4MzI4ZjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
ci5oPgpAQCAtNzAsMTUgKzcxLDE3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIC8vIE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIKLSAgICB2b2lkIG5ldHdvcmtTdGF0ZUNo
YW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSk7CisgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQgdm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBtdXRlQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwot
ICAgIHZvaWQgdGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBNZWRpYVRpbWUmJik7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJik7CisgICAgdm9p
ZCB0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXll
clN0YXRlJiYpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBkb3VibGUpOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5n
ZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAg
ICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIGxvbmcpOworICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYpOworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAKICAgICBmcmllbmQgY2xh
c3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBlYzJiNDNiY2RiNjFiNTNhZmU1MWJlZjNj
M2Q0MzdlZmU3ZTRiNTAxLi40NjU4YTdhMjhmNmM3OGUxMGNlMDU0NWQ3MGZmYzNmZmM1MGRkYzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjUs
MTUgKzI1LDE3IEBACiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RS
ZWZDb3VudGVkIHsKIAotICAgIE5ldHdvcmtTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQotICAgIFJlYWR5U3RhdGVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCisgICAgTmV0d29y
a1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAgUmVh
ZHlTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIFZv
bHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBkb3VibGUgdm9sdW1lKQogICAgIE11dGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQotICAgIFRpbWVDaGFuZ2VkKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUp
Ci0gICAgRHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUpCisgICAgVGltZUNoYW5nZWQoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclN0YXRlIHN0YXRlKQorICAgIER1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyU3RhdGUgc3RhdGUpCiAgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKICAgICBQbGF5YmFja1N0
YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IGJvb2wgcGF1c2VkKQogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29kZSkKKyAgICBV
cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAg
Q2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSkKIH0K
IAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386269</attachid>
            <date>2019-12-20 15:28:37 -0800</date>
            <delta_ts>2019-12-20 23:35:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205511-20191220152836.patch</filename>
            <type>text/plain</type>
            <size>57287</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkYjliYWZkNjU0MzNi
MDFhYzliMDFlOTI3NTFmNmY5NTJmNmU4Ny4uY2E4ZDI1NmI5MWQ1ZGVlNjAzNjU3ODM3ODVlM2Ez
ZThmZDUyOThiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEyLTIwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gR2V0IGF1ZGlvIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgx
MjAzNTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIFRlc3Rl
ZCBtYW51YWxseSB3aXRoIGEgbW9kaWZpZWQgc2FuZGJveCBiZWNhdXNlIGl0IGlzbid0IHBvc3Np
YmxlIHRvIGxvYWQgbWVkaWEKKyAgICAgICAgaW4gdGhlIEdQVSBwcm9jZXNzIHlldC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpidWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVRpbWVSYW5nZXM6OlBsYXRmb3JtVGltZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVRpbWVSYW5nZXM6OmNsZWFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybVRpbWVSYW5nZXMuaDoKKwogMjAxOS0xMi0yMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBjZXJ0aWZpY2F0ZSBpbmZvIGNoZWNrcyBy
ZWxhdGVkIHRvIGdldFVzZXJNZWRpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZWM2NDcyZmNlMGM4MWFiOTIyNTM3
YTk1ZjE2NTdmYTA4ZjEzZTg4Li4zMzgzY2QyZDcxODA5YzFlZjJiYjk3MzE0ZDU2YTU4MGQ2YzU2
NWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTIwICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vz
c10gR2V0IGF1ZGlvIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgxMjAzNTQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2FjaGVkU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1heGltdW1EdXJhdGlvblRvQ2FjaGVN
ZWRpYVRpbWUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oOgorCiAyMDE5LTEyLTIwICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgd2hldGhlciB0byB1c2UgbW9jayBjYXB0dXJl
IGRldmljZXMgYXQgR1BVUHJvY2VzcyBjcmVhdGlvbiB0aW1lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNhNTFjMTdhNjQwN2Ni
OGRhMjMxYTYyMjA2NDRjYjY3YmRhMDc5ZDAuLjIwNTg3NDg3NjVhNmIxNGQ0NWQ2MWIwM2Y1OTNh
NjljNzM0YmUwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTg5Nyw2ICs4OTcsMTYgQEAgZG91YmxlIE1lZGlhUGxheWVyOjpz
ZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkKICAgICByZXR1cm4gbV9wcml2YXRl
LT5zZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCk7CiB9CiAKK3ZvaWQgTWVkaWFQ
bGF5ZXI6OmJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQoreworICAgIGNsaWVudCgpLm1lZGlh
UGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVy
OjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkKK3sKKyAgICBjbGllbnQoKS5tZWRpYVBsYXll
clNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKTsKK30KKwogZG91YmxlIE1lZGlhUGxheWVyOjps
aXZlVXBkYXRlSW50ZXJ2YWwoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPmxpdmVVcGRhdGVJ
bnRlcnZhbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggZTZiODMzOWViYWVkNGMzMzRmODUzZjEzN2RmZDAxNTMzZDlkNjg0NS4uZjZk
OWQ0ZmJhZDg4MWNlNWE2ZjQ2ZGUwM2JkNWQ1YThhODljMWE3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yNjgsNiArMjY4LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNlZWthYmxl
VGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigp
ID0gMDsKQEAgLTM4NSw2ICszODgsOCBAQCBwdWJsaWM6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCk7CisgICAgdm9pZCBidWZmZXJlZFRpbWVSYW5nZXND
aGFuZ2VkKCk7CisgICAgdm9pZCBzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCk7CiAgICAgTWVk
aWFUaW1lIG1pblRpbWVTZWVrYWJsZSgpOwogICAgIE1lZGlhVGltZSBtYXhUaW1lU2Vla2FibGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1UaW1lUmFuZ2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVGltZVJhbmdlcy5jcHAKaW5kZXggZDJmZDYyZWM2NDI2M2IwNzFiYTg0ZTRlMDliMTcwOThk
MjczM2MyNi4uYTg3OGFjMjQyN2E5ZTUyMjk3NWYzZDNhNmQ3ODRiYzliZWZlNjA0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVS
YW5nZXMuY3BwCkBAIC0zNiw2ICszNiwxMSBAQCBQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3Jt
VGltZVJhbmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmCiAgICAg
YWRkKHN0YXJ0LCBlbmQpOwogfQogCitQbGF0Zm9ybVRpbWVSYW5nZXM6OlBsYXRmb3JtVGltZVJh
bmdlcyhWZWN0b3I8UmFuZ2U+JiYgcmFuZ2VzKQorICAgIDogbV9yYW5nZXMgeyBXVEZNb3ZlKHJh
bmdlcykgfQoreworfQorCiB2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6aW52ZXJ0KCkKIHsKICAg
ICBQbGF0Zm9ybVRpbWVSYW5nZXMgaW52ZXJ0ZWQ7CkBAIC0xNzgsNiArMTgzLDExIEBAIHZvaWQg
UGxhdGZvcm1UaW1lUmFuZ2VzOjphZGQoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQpCiAgICAgbV9yYW5nZXMuaW5zZXJ0KG92ZXJsYXBwaW5nQXJjSW5kZXgsIGFk
ZGVkUmFuZ2UpOwogfQogCit2b2lkIFBsYXRmb3JtVGltZVJhbmdlczo6Y2xlYXIoKQoreworICAg
IG1fcmFuZ2VzLmNsZWFyKCk7Cit9CisKIGJvb2wgUGxhdGZvcm1UaW1lUmFuZ2VzOjpjb250YWlu
KGNvbnN0IE1lZGlhVGltZSYgdGltZSkgY29uc3QKIHsKICAgICByZXR1cm4gZmluZCh0aW1lKSAh
PSBub3RGb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtVGltZVJhbmdlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1UaW1lUmFuZ2VzLmgKaW5kZXggZGM1NmRiNmM3ZThjMzQ2NGM5NTMxNGE5OGFmNGFj
MzU5ZTMyNzNkMC4uOTgyNjgyY2NmYTBjMGI4YTcwMjVmNWMzODM4OTk5NTFiMzNkZDZhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFu
Z2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1l
UmFuZ2VzLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzLnNpemUoKTsgfQogCiAgICAgdm9pZCBhZGQoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpOworICAgIHZvaWQgY2xlYXIo
KTsKICAgICAKICAgICBib29sIGNvbnRhaW4oY29uc3QgTWVkaWFUaW1lJikgY29uc3Q7CiAKQEAg
LTY3LDYgKzY4LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkdW1wKFdURjo6UHJpbnRTdHJlYW0m
KSBjb25zdDsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBkZWNvZGUoRGVjb2RlciYpOworCiBwcml2YXRlOgogICAgIC8v
IFdlIGNvbnNpZGVyIGFsbCB0aGUgUmFuZ2VzIHRvIGJlIHNlbWktYm91bmRlZCBhcyBmb2xsb3c6
IFtzdGFydCwgZW5kWwogICAgIHN0cnVjdCBSYW5nZSB7CkBAIC04MCw2ICs4NCwyOSBAQCBwcml2
YXRlOgogICAgICAgICBNZWRpYVRpbWUgbV9zdGFydDsKICAgICAgICAgTWVkaWFUaW1lIG1fZW5k
OwogCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgbV9zdGFydDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgbV9lbmQ7CisgICAgICAgIH0KKwor
ICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICAgICAgc3RhdGljIE9wdGlvbmFs
PFJhbmdlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICAgICAgeworICAgICAgICAgICAg
T3B0aW9uYWw8TWVkaWFUaW1lPiBzdGFydDsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gc3RhcnQ7
CisgICAgICAgICAgICBpZiAoIXN0YXJ0KQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICAgICAgICAgIE9wdGlvbmFsPE1lZGlhVGltZT4gZW5kOworICAgICAgICAg
ICAgZGVjb2RlciA+PiBlbmQ7CisgICAgICAgICAgICBpZiAoIWVuZCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSgq
c3RhcnQpLCBXVEZNb3ZlKCplbmQpIH19OworICAgICAgICB9CisKICAgICAgICAgaW5saW5lIGJv
b2wgaXNQb2ludEluUmFuZ2UoY29uc3QgTWVkaWFUaW1lJiBwb2ludCkgY29uc3QKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIG1fc3RhcnQgPD0gcG9pbnQgJiYgcG9pbnQgPCBtX2VuZDsK
QEAgLTExMCwxMCArMTM3LDI5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gcmFuZ2Uu
bV9zdGFydCA+PSBtX2VuZDsKICAgICAgICAgfQogICAgIH07Ci0gICAgCisKKyAgICBQbGF0Zm9y
bVRpbWVSYW5nZXMoVmVjdG9yPFJhbmdlPiYmKTsKKwogICAgIFZlY3RvcjxSYW5nZT4gbV9yYW5n
ZXM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBQbGF0Zm9ybVRpbWVSYW5n
ZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9y
YW5nZXM7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8UGxhdGZvcm1U
aW1lUmFuZ2VzPiBQbGF0Zm9ybVRpbWVSYW5nZXM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIE9wdGlvbmFsPFZlY3RvcjxSYW5nZT4+IGJ1ZmZlcmVkOworICAgIGRlY29kZXIgPj4g
YnVmZmVyZWQ7CisgICAgaWYgKCFidWZmZXJlZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpidWZmZXJlZCkgfX07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IDNjNzM2MzAwNmNjMWY5NTBiMDRl
MjQ2MjY2MTNkMDc1YzU2YzZiY2UuLjliODk3M2I2MWUwMTUyMDEzYzhlZTdjMzliOTBmODY5NDc1
YWNkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCkBAIC02MTEsMTIgKzYxMSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6bG9hZGVkVGltZVJhbmdlc0NoYW5nZWQoKQogICAgIG1fY2FjaGVk
TG9hZGVkVGltZVJhbmdlcyA9IG51bGxwdHI7CiAgICAgbV9jYWNoZWRNYXhUaW1lTG9hZGVkID0g
TWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogICAgIGludmFsaWRhdGVDYWNoZWREdXJhdGlvbigpOwor
ICAgIG1fcGxheWVyLT5idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkK
IHsKICAgICBtX2NhY2hlZE1heFRpbWVTZWVrYWJsZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsK
ICAgICBtX2NhY2hlZE1pblRpbWVTZWVrYWJsZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKKyAg
ICBtX3BsYXllci0+c2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiB0
aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDYyZjllNTAwZGJjYWE4NDZhOTg1M2VhNTg1
MzVhMGQwNzA3OWM2OWUuLmE5ZDUwMTc2ZWNjZDMzZDBlNzU5NGI3YmJjMjE2ZTIyYjNjZDU0YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTE5Niw3ICsxOTYsNiBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIE1lZGlhVGltZSBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoY29uc3Qg
TWVkaWFUaW1lJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIG1heGltdW1EdXJhdGlvblRv
Q2FjaGVNZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgY3JlYXRlQVZQbGF5
ZXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDk0NDU5MmI5MTU1NjZiNDkyODM5ZTk3YmI0Zjlm
NTNjNWZhNTUyNy4uZmEzZWE1Y2I1OWE2MzQ4ZDYxZDFlMjkyYWU5ZWE2MTJmZjEwYzIwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xODAzLDExICsxODAzLDYgQEAgTWVkaWFUaW1lIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om1lZGlhVGltZUZvclRpbWVWYWx1ZShj
b25zdCBNZWRpYVQKICAgICByZXR1cm4gdGltZVZhbHVlOwogfQogCi1kb3VibGUgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGlt
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKQogewogICAgIGlmICgh
bV92aWRlb0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjkyOWU3
MDQyYTI1NjllYjhmM2MyNmNlZTMwMzQwMjI0MTIxODU0Yy4uOWY2YTYwODA1MDQ1YTVlMWM2MDg1
ZjFjOWRiYWU3MWUzMjA5YTVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBA
IC0yMDIsNiArMjAyLDE4IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnBh
dXNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQpCiAgICAgICAgIHBsYXll
ci0+cGF1c2UoKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c2Vl
ayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1l
KQoreworICAgIGlmIChhdXRvIHBsYXllciA9IG1fcHJveGllcy5nZXQoaWQpKQorICAgICAgICBw
bGF5ZXItPnNlZWsoV1RGTW92ZSh0aW1lKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OnNlZWtXaXRoVG9sZXJhbmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIE1lZGlhVGltZSYmIHRpbWUsIE1lZGlhVGltZSYmIG5lZ2F0aXZlVG9sZXJh
bmNlLCBNZWRpYVRpbWUmJiBwb3NpdGl2ZVRvbGVyYW5jZSkKK3sKKyAgICBpZiAoYXV0byBwbGF5
ZXIgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5zZWVrV2l0aFRvbGVyYW5j
ZShXVEZNb3ZlKHRpbWUpLCBXVEZNb3ZlKG5lZ2F0aXZlVG9sZXJhbmNlKSwgV1RGTW92ZShwb3Np
dGl2ZVRvbGVyYW5jZSkpOworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpzZXRWb2x1bWUoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91Ymxl
IHZvbHVtZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggN2U1MWUzYzZlMTJhYTRiZWI4NTRhMjg4ZjI1
NWM4YWZmNDZkMGZjNy4uYzBlN2Y0ZTkzM2FjNTdkNDc2ZTJmYjVjMmMwYjViZDYwYTUzOTFiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTg2LDYgKzg2LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBsYXkoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBwYXVzZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIAorICAgIHZv
aWQgc2VlayhNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJik7
CisgICAgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBNZWRpYVRpbWUmJiwgTWVkaWFUaW1lJiYgbmVnYXRpdmVUb2xlcmFuY2UsIE1lZGlh
VGltZSYmIHBvc2l0aXZlVG9sZXJhbmNlKTsKKwogICAgIHZvaWQgc2V0Vm9sdW1lKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRNdXRlZChN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY2MDkzMmE0ZWEzNmQ2NDYx
MzhjMWNhOWY3MzM3NGZkN2FiOGQ1ZDcuLmFhNTdmZTliOTMzZmIxMjliMmEwNWVhZWE3ZjlmNzUw
ODhlMjdkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KQEAgLTQ3LDYgKzQ3LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0Vm9sdW1lKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVtZSkKICAgICBTZXRNdXRlZChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQp
CiAKKyAgICBTZWVrKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZCwgTWVkaWFUaW1lIHRpbWUpCisgICAgU2Vla1dpdGhUb2xlcmFuY2UoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUgdGltZSwgTWVkaWFUaW1l
IG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUgcG9zaXRpdmVUb2xlcmFuY2UpCisKICAgICBT
ZXRQcmVsb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwg
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQgcHJlbG9hZCkK
ICAgICBTZXRQcml2YXRlQnJvd3NpbmdNb2RlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZCwgYm9vbCBwcml2YXRlTW9kZSkKICAgICBTZXRQcmVzZXJ2ZXNQaXRj
aChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgcHJl
c2VydmVzUGl0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggN2RiMGNhOTMzNDM4NjJiMDYyZjZl
NDYxOGYyM2Q4YTllODNiMDk2Yi4uYmQyNjhiOTA2ODYzNmUwMWY0N2QxNWViYWY1YzAxNTZiMmFj
ZWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTQyLDYgKzQzLDcgQEAgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSYgbWEKICAgICAsIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92
ZShjb25uZWN0aW9uKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9lbmdpbmVJ
ZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVz
c2FnZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnRpbWVyRmlyZWQpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlciht
X21hbmFnZXIubG9nZ2VyKCkpCiAjZW5kaWYKQEAgLTUxLDYgKzUzLDcgQEAgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYgbWEKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRlKCkK
IHsKKyAgICBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyLnN0b3AoKTsKICAgICBtX3Bs
YXllci0+aW52YWxpZGF0ZSgpOwogfQogCkBAIC02OSw2ICs3Miw3IEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNv
cmU6Ok1lZGlhCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y2FuY2VsTG9hZCgpCiB7
CisgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CiAgICAgbV9wbGF5
ZXItPmNhbmNlbExvYWQoKTsKIH0KIApAQCAtNzksMTIgKzgzLDI3IEBAIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cHJlcGFyZVRvUGxheSgpCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6cGxheSgpCiB7CisgICAgaWYgKG1fcGxheWVyLT5tb3ZpZUxvYWRUeXBlKCkgIT0gV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6TGl2ZVN0cmVhbSkKKyAgICAg
ICAgc3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcigpOwogICAgIG1fcGxheWVyLT5w
bGF5KCk7CisgICAgc2VuZENhY2hlZFN0YXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cGF1c2UoKQogeworICAgIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIu
c3RvcCgpOwogICAgIG1fcGxheWVyLT5wYXVzZSgpOworICAgIHNlbmRDYWNoZWRTdGF0ZSgpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNlZWsoTWVkaWFUaW1lJiYgdGltZSkK
K3sKKyAgICBtX3BsYXllci0+c2Vlayh0aW1lKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpzZWVrV2l0aFRvbGVyYW5jZShNZWRpYVRpbWUmJiB0aW1lLCBNZWRpYVRpbWUmJiBu
ZWdhdGl2ZVRvbGVyYW5jZSwgTWVkaWFUaW1lJiYgcG9zaXRpdmVUb2xlcmFuY2UpCit7CisgICAg
bV9wbGF5ZXItPnNlZWtXaXRoVG9sZXJhbmNlKHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3Np
dGl2ZVRvbGVyYW5jZSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0Vm9s
dW1lKGRvdWJsZSB2b2x1bWUpCkBAIC0xMTUsMTIgKzEzNCwxNCBAQCB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVzUGl0Y2gpCiAvLyBN
ZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29ya1N0YXRlQ2hhbmdl
ZChtX2lkLCBtX3BsYXllci0+bmV0d29ya1N0YXRlKCkpLCAwKTsKKyAgICB1cGRhdGVDYWNoZWRT
dGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6TmV0d29ya1N0YXRlQ2hhbmdlZChtX2lkLCBtX2NhY2hlZFN0
YXRlKSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJS
ZWFkeVN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZWFkeVN0YXRlQ2hhbmdlZChtX2lk
LCBtX3BsYXllci0+cmVhZHlTdGF0ZSgpKSwgMCk7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoKTsK
KyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OlJlYWR5U3RhdGVDaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsK
IH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclZvbHVtZUNoYW5n
ZWQoKQpAQCAtMTM1LDE2ICsxNTYsMTkgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllck11dGVDaGFuZ2VkKCkKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpt
ZWRpYVBsYXllclRpbWVDaGFuZ2VkKCkKIHsKLSAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlRpbWVDaGFuZ2VkKG1faWQs
IG1fcGxheWVyLT5jdXJyZW50VGltZSgpKSwgMCk7CisgICAgdXBkYXRlQ2FjaGVkU3RhdGUoKTsK
KyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OlRpbWVDaGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsKIH0KIAog
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZCgp
CiB7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpEdXJhdGlvbkNoYW5nZWQobV9pZCwgbV9wbGF5ZXItPmR1cmF0aW9u
KCkpLCAwKTsKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6RHVyYXRpb25D
aGFuZ2VkKG1faWQsIG1fY2FjaGVkU3RhdGUpLCAwKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKCkKIHsKKyAgICBzZW5kQ2FjaGVkU3Rh
dGUoKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OlJhdGVDaGFuZ2VkKG1faWQsIG1fcGxheWVyLT5yYXRlKCkpLCAw
KTsKIH0KIApAQCAtMTUzLDEyICsxNzcsMjcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpFbmdp
bmVGYWlsZWRUb0xvYWQobV9pZCwgbV9wbGF5ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpLCAwKTsK
IH0KIAotLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6bWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OlBsYXliYWNrU3RhdGVDaGFuZ2VkKG1faWQsIG1fcGxheWVyLT5w
YXVzZWQoKSksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxh
eWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9idWZmZXJlZENoYW5nZWQg
PSB0cnVlOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyU2Vl
a2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpCit7CisgICAgbV9zZWVrYWJsZUNoYW5nZWQgPSB0cnVl
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ2hhcmFjdGVy
aXN0aWNDaGFuZ2VkKCkKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OkNoYXJhY3RlcmlzdGljQ2hhbmdlZChtX2lk
LCBtX3BsYXllci0+aGFzQXVkaW8oKSwgbV9wbGF5ZXItPmhhc1ZpZGVvKCksIG1fcGxheWVyLT5t
b3ZpZUxvYWRUeXBlKCkpLCAwKTsKK30KKworLy8gRklYTUU6IFVuaW1wbGVtZW50ZWQKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCgp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTE3OSwxMiArMjE4LDYgQEAgdm9pZCBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotCiBib29sIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyUmVu
ZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTQ0
NSw2ICs0NzgsNDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllclNo
b3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lcigpCit7CisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4VGltZXVwZGF0ZUV2ZW50
RnJlcXVlbmN5IHsgMTAwX21zIH07CisKKyAgICBpZiAobV91cGRhdGVDYWNoZWRTdGF0ZU1lc3Nh
Z2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3VwZGF0ZUNhY2hl
ZFN0YXRlTWVzc2FnZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKG1heFRpbWV1cGRhdGVFdmVudEZyZXF1
ZW5jeSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dGltZXJGaXJlZCgpCit7
CisgICAgc2VuZENhY2hlZFN0YXRlKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6dXBkYXRlQ2FjaGVkU3RhdGUoKQoreworICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUg
PSBtX3BsYXllci0+Y3VycmVudFRpbWUoKTsKKyAgICBtX2NhY2hlZFN0YXRlLmR1cmF0aW9uID0g
bV9wbGF5ZXItPmR1cmF0aW9uKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBt
X3BsYXllci0+bmV0d29ya1N0YXRlKCk7CisgICAgbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlID0g
bV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IG1fcGxh
eWVyLT5wYXVzZWQoKTsKKyAgICBtX2NhY2hlZFN0YXRlLmxvYWRpbmdQcm9ncmVzc2VkID0gbV9w
bGF5ZXItPmRpZExvYWRpbmdQcm9ncmVzcygpOworCisgICAgaWYgKG1fc2Vla2FibGVDaGFuZ2Vk
KSB7CisgICAgICAgIG1fc2Vla2FibGVDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIG1fY2FjaGVk
U3RhdGUubWluVGltZVNlZWthYmxlID0gbV9wbGF5ZXItPm1pblRpbWVTZWVrYWJsZSgpOworICAg
ICAgICBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZSA9IG1fcGxheWVyLT5tYXhUaW1lU2Vl
a2FibGUoKTsKKyAgICB9CisKKyAgICBpZiAobV9idWZmZXJlZENoYW5nZWQpIHsKKyAgICAgICAg
bV9idWZmZXJlZENoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5idWZmZXJl
ZFJhbmdlcyA9ICptX3BsYXllci0+YnVmZmVyZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6c2VuZENhY2hlZFN0YXRlKCkKK3sKKyAgICB1cGRhdGVDYWNoZWRT
dGF0ZSgpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6VXBkYXRlQ2FjaGVkU3RhdGUobV9pZCwgbV9jYWNoZWRTdGF0
ZSksIDApOworICAgIG1fY2FjaGVkU3RhdGUuYnVmZmVyZWRSYW5nZXMuY2xlYXIoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmgKaW5kZXggOWUzZDMyMjNmN2ViZTlhNjAyOTA0NTI0YzY5ZjBjNmFmMmQ5NDc5
ZC4uN2Y2Y2JhYTZhY2JkMWQ5ZWYzNzg2ZmRlNTk4OTJmMDBiN2ExOWQ0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCkBAIC0yOCw4ICsyOCwxMCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC02NSw2ICs2Nyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAKKyAgICB2b2lkIHNlZWso
TWVkaWFUaW1lJiYpOworICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoTWVkaWFUaW1lJiYsIE1l
ZGlhVGltZSYmIG5lZ2F0aXZlVG9sZXJhbmNlLCBNZWRpYVRpbWUmJiBwb3NpdGl2ZVRvbGVyYW5j
ZSk7CisKICAgICB2b2lkIHNldFZvbHVtZShkb3VibGUpOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9v
bCk7CiAKQEAgLTgxLDkgKzg2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYVBsYXllclRp
bWVDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZCgp
IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIHZv
aWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG1lZGlh
UGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQ
bGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAKICAgICAvLyBOb3QgaW1w
bGVtZW50ZWQKLSAgICB2b2lkIG1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQoKSBmaW5h
bDsKICAgICB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKSBmaW5hbDsKICAg
ICB2b2lkIG1lZGlhUGxheWVyU2l6ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxh
eWVyRW5naW5lVXBkYXRlZCgpIGZpbmFsOwpAQCAtMTQ0LDggKzE1Miw2IEBAIHByaXZhdGU6CiAK
ICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25z
dCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25z
dCBmaW5hbDsKLQogICAgIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgp
IGNvbnN0IGZpbmFsOwogICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
bWVkaWFQbGF5ZXJGdWxsc2NyZWVuTW9kZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQ
bGF5ZXJJc1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCBmaW5hbDsKQEAgLTE1NSw2ICsx
NjEsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+
JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0
IGZpbmFsOwogCisgICAgdm9pZCBzdGFydFVwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyKCk7
CisgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZSgpOworICAgIHZvaWQgc2VuZENhY2hlZFN0YXRl
KCk7CisgICAgdm9pZCB0aW1lckZpcmVkKCk7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
ICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9s
b2dnZXI7IH0KICNlbmRpZgpAQCAtMTY1LDYgKzE3NiwxMSBAQCBwcml2YXRlOgogICAgIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtX21hbmFnZXI7CiAgICAgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8
V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7Cisg
ICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRhdGVDYWNoZWRT
dGF0ZU1lc3NhZ2VUaW1lcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3Rh
dGU7CisKKyAgICBib29sIG1fc2Vla2FibGVDaGFuZ2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9i
dWZmZXJlZENoYW5nZWQgeyB0cnVlIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWM1YzZjYTRiYWNiYTRiMTM0ZDQ0YWY5MjAwYjBi
MWU4YjRjYTJiMy4uNGYwNDQ4MjEzYTg3NDhhOTdjYWExNDQ2YTEyZDg5NWE0MDk3YjE5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
OSw2ICs5OSw3IEBACiAJCTA3OTIzMTREMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc5MjMxNDcyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTA3OTIzMTRGMjM5RDYyM0UwMDk1OThFMiAvKiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzE0RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICovOyB9OwogCQkwN0E1RUJCQzFDN0JB
NDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdBNUVCQkExQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJh
bWVIYW5kbGVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkwN0IzQjQ3MDIzQUIzMDJEMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCM0I0
NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLzsgfTsKIAkJ
MEU5N0Q3NEQyMDBFOTAwNDAwQkY2NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEU5N0Q3NEMyMDBFOEZGMzAwQkY2
NjQzIC8qIFNhZmVCcm93c2luZ1NQSS5oICovOyB9OwogCQkwRURFODUwMzIwMDRFNzVEMDAwMzA1
NjAgLyogV2Vic2l0ZVBvcFVwUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRURFODUwMjIwMDRFNzQ5MDAwMzA1NjAgLyogV2Vic2l0ZVBvcFVw
UG9saWN5LmggKi87IH07CiAJCTBGMDhDRjUyMUQ2M0MxM0EwMEI0OERGMSAvKiBXS0Zvcm1TZWxl
Y3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMDhDRjUxMUQ2M0MxM0EwMEI0OERGMSAvKiBXS0Zvcm1TZWxlY3RQaWNrZXIuaCAqLzsgfTsK
QEAgLTIwNjUsNiArMjA2Niw3IEBACiAJCTA3OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2OSAvKiBX
S0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnJh
bWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdCM0I0NkYyM0FC
MkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
N0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyog
QXBwS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQXBwS2l0LmZyYW1ld29yazsgcGF0
aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcEtpdC5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC01MDk4LDYgKzUxMDAsNyBAQAogCQkJCTA3OTIzMTMw
MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovLAogCQkJ
CTA3OTIzMTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAq
LywKIAkJCQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluICovLAorCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwMTUwLDYgKzEwMTUzLDcgQEAKIAkJCQkwNzkyMzE0
QTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0IzQjQ3MDIzQUIzMDJEMDBC
QTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFC
Nzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52
b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFFNDAwRjNFQzA1IC8q
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAppbmRleCBhOWI4OTZiODZjYWQyNTk3NjQ1NmRhMjkxZDVhNTk4MTc5NDA5M2Yz
Li44ZTQ4M2UwODYwZjFjNmFhNjU0MmY5OGQxZTI1NWMxYWRjODljODMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCkBAIC00NCw2ICs0NCwxNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI3VuZGVm
IG5vdEltcGxlbWVudGVkCisjZGVmaW5lIG5vdEltcGxlbWVudGVkKCkgZG8geyBcCisgICAgc3Rh
dGljIGJvb2wgaGF2ZVByaW50ZWQgPSBmYWxzZTsgXAorICAgIGlmICghaGF2ZVByaW50ZWQpIHsg
XAorICAgICAgICBXVEZMb2dBbHdheXMoIkBAQCBVTklNUExFTUVOVEVEOiAlcyIsIFdURl9QUkVU
VFlfRlVOQ1RJT04pOyBcCisgICAgICAgIGhhdmVQcmludGVkID0gdHJ1ZTsgXAorICAgIH0gXAor
fSB3aGlsZSAoMCkKKwogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5h
Z2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCkBA
IC03Myw2ICs4MiwxODIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY28KICAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6TG9hZChtX2lkLCB1cmwsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pLCAwKTsK
IH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNhbmNlbExvYWQoKQoreworICAg
IG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5jZWxMb2FkKG1faWQpLCAwKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnByZXBhcmVUb1BsYXkoKQoreworICAgIG1fbWFuYWdl
ci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OjpQcmVwYXJlVG9QbGF5KG1faWQpLCAwKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OnBsYXkoKQoreworICAgIG1fY2FjaGVkU3RhdGUucGF1c2VkID0g
ZmFsc2U7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBsYXkobV9pZCksIDApOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGF1c2UoKQoreworICAgIG1fY2FjaGVkU3Rh
dGUucGF1c2VkID0gdHJ1ZTsKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UGF1c2UobV9pZCks
IDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJlc2VydmVzUGl0
Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKK3sKKyAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0
UHJlc2VydmVzUGl0Y2gobV9pZCwgcHJlc2VydmVzUGl0Y2gpLCAwKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZvbHVtZURvdWJsZShkb3VibGUgdm9sdW1lKQorewor
ICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRWb2x1bWUobV9pZCwgdm9sdW1lKSwgMCk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRNdXRlZChib29sIG11dGVkKQor
eworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRNdXRlZChtX2lkLCBtdXRlZCksIDApOwor
fQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0UHJlbG9hZChNZWRpYVBsYXll
cjo6UHJlbG9hZCBwcmVsb2FkKQoreworICAgIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTZXRQcmVs
b2FkKG1faWQsIHByZWxvYWQpLCAwKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnNldFByaXZhdGVCcm93c2luZ01vZGUoYm9vbCBwcml2YXRlTW9kZSkKK3sKKyAgICBtX21h
bmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6U2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShtX2lkLCBwcml2YXRlTW9k
ZSksIDApOworfQorCitNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjdXJyZW50
TWVkaWFUaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5jdXJyZW50VGlt
ZTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWsoY29uc3QgTWVkaWFU
aW1lJiB0aW1lKQoreworICAgIG1fc2Vla2luZyA9IHRydWU7CisgICAgbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OlNlZWsobV9pZCwgdGltZSksIDApOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBN
ZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVG9s
ZXJhbmNlKQoreworICAgIG1fc2Vla2luZyA9IHRydWU7CisgICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlNlZWtXaXRoVG9sZXJhbmNlKG1faWQsIHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3Np
dGl2ZVRvbGVyYW5jZSksIDApOworfQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5s
b2FkaW5nUHJvZ3Jlc3NlZDsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omhh
c1ZpZGVvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNWaWRlbzsKK30KKworYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Omhhc0F1ZGlvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9o
YXNBdWRpbzsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VV
bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPihtX2NhY2hlZFN0YXRlLm1pblRpbWVTZWVrYWJsZSwg
bV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGUpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmJ1ZmZlcmVkKCkgY29u
c3QKK3sKKyAgICBpZiAoIW1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzKQorICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CisKKyAgICByZXR1cm4gbWFrZVVu
aXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCptX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlcyk7Cit9
CisKK01lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bW92aWVMb2FkVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbW92aWVMb2FkVHlwZTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIHVwZGF0ZUNhY2hlZFN0YXRlKFdU
Rk1vdmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworfQor
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVhZHlTdGF0ZUNoYW5nZWQoUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIHVwZGF0ZUNhY2hlZFN0YXRlKFdURk1v
dmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKK30KKwordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZvbHVtZUNoYW5nZWQoZG91YmxlIHZvbHVtZSkK
K3sKKyAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKyAgICBtX3BsYXllci0+dm9sdW1lQ2hhbmdlZCh2
b2x1bWUpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bXV0ZUNoYW5nZWQo
Ym9vbCBtdXRlZCkKK3sKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAgbV9wbGF5ZXItPm11dGVD
aGFuZ2VkKG11dGVkKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnRpbWVD
aGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKK3sKKyAgICBtX3NlZWtpbmcg
PSBmYWxzZTsKKyAgICB1cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7CisgICAgbV9w
bGF5ZXItPnRpbWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpkdXJhdGlvbkNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAg
IHVwZGF0ZUNhY2hlZFN0YXRlKFdURk1vdmUoc3RhdGUpKTsKKyAgICBtX3BsYXllci0+ZHVyYXRp
b25DaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyYXRlQ2hh
bmdlZChkb3VibGUgcmF0ZSkKK3sKKyAgICBtX3JhdGUgPSByYXRlOworICAgIG1fcGxheWVyLT5y
YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGxheWJh
Y2tTdGF0ZUNoYW5nZWQoYm9vbCBwYXVzZWQpCit7CisgICAgbV9jYWNoZWRTdGF0ZS5wYXVzZWQg
PSBwYXVzZWQ7CisgICAgbV9wbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVGYWlsZWRUb0xvYWQobG9uZyBwbGF0
Zm9ybUVycm9yQ29kZSkKK3sKKyAgICBtX3BsYXRmb3JtRXJyb3JDb2RlID0gcGxhdGZvcm1FcnJv
ckNvZGU7CisgICAgbV9wbGF5ZXItPnJlbW90ZUVuZ2luZUZhaWxlZFRvTG9hZCgpOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wg
aGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSkKK3sKKyAgICBtX21vdmllTG9hZFR5cGUgPSBtb3ZpZUxv
YWRUeXBlOworICAgIG1faGFzQXVkaW8gPSBoYXNBdWRpbzsKKyAgICBtX2hhc1ZpZGVvID0gaGFz
VmlkZW87CisgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpOworfQorCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlQ2FjaGVkU3RhdGUoUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSYmIHN0YXRlKQoreworICAgIG1fY2FjaGVkU3RhdGUuY3VycmVudFRpbWUgPSBz
dGF0ZS5jdXJyZW50VGltZTsKKyAgICBtX2NhY2hlZFN0YXRlLmR1cmF0aW9uID0gc3RhdGUuZHVy
YXRpb247CisgICAgbV9jYWNoZWRTdGF0ZS5taW5UaW1lU2Vla2FibGUgPSBzdGF0ZS5taW5UaW1l
U2Vla2FibGU7CisgICAgbV9jYWNoZWRTdGF0ZS5tYXhUaW1lU2Vla2FibGUgPSBzdGF0ZS5tYXhU
aW1lU2Vla2FibGU7CisgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBzdGF0ZS5uZXR3
b3JrU3RhdGU7CisgICAgbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlID0gc3RhdGUucmVhZHlTdGF0
ZTsKKyAgICBtX2NhY2hlZFN0YXRlLnBhdXNlZCA9IHN0YXRlLnBhdXNlZDsKKyAgICBtX2NhY2hl
ZFN0YXRlLmxvYWRpbmdQcm9ncmVzc2VkID0gc3RhdGUubG9hZGluZ1Byb2dyZXNzZWQ7CisgICAg
aWYgKHN0YXRlLmJ1ZmZlcmVkUmFuZ2VzLmxlbmd0aCgpKQorICAgICAgICBtX2NhY2hlZEJ1ZmZl
cmVkVGltZVJhbmdlcyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPihzdGF0ZS5idWZm
ZXJlZFJhbmdlcyk7Cit9CisKKy8vIEZJWE1FOiBVbmltcGxlbWVudGVkCisKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29uc3Qg
U3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikKIHsKQEAgLTgxLDcgKzI2Niw4IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlh
U291cmNlUHJpdmF0ZUNsaWVudCopCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgbmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlOjpGb3JtYXRFcnJvcik7CisgICAgICAgIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0
YXRlID0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6Rm9ybWF0RXJyb3I7CisgICAgICAgIG1f
cGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKQEAgLTk0
LDIzICsyODAsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoTWVkaWFT
dHJlYW1Qcml2YXRlJikKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3Rh
dGU6OkZvcm1hdEVycm9yKTsKKyAgICAgICAgbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGUgPSBN
ZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3JtYXRFcnJvcjsKKyAgICAgICAgbV9wbGF5ZXIt
Pm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKICAgICB9KTsKIH0KICNlbmRpZgogCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y2FuY2VsTG9hZCgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OkNhbmNlbExvYWQobV9pZCksIDApOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cHJlcGFyZVRvUGxheSgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBy
ZXBhcmVUb1BsYXkobV9pZCksIDApOwotfQotCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogeworICAgIG5vdEltcGxlbWVudGVk
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTE2NiwxNiArMzQ0LDYgQEAgU3RyaW5n
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6ZXJyb3JMb2coKSBjb25zdAogfQogI2VuZGlmCiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwbGF5KCkKLXsKLSAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6UGxheShtX2lkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwYXVzZSgpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlBhdXNlKG1faWQp
LCAwKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldEJ1ZmZlcmluZ1Bv
bGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CkBAIC0yMTEsNTEgKzM3OSwxNyBAQCBGbG9hdFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6Omhhc1ZpZGVvKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6Omhhc0F1ZGlvKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFZpc2li
bGUoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1NZWRpYVRpbWUgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci19Ci0KIE1l
ZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6c2Vlayhjb25zdCBNZWRpYVRp
bWUmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpzZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVraW5nKCkgY29uc3QKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogTWVkaWFUaW1lIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c3RhcnRUaW1lKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwpAQCAtMjY3LDMxICs0MDEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6c2V0UmF0ZURvdWJsZShkb3VibGUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2Vy
dmVzUGl0Y2gpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlNldFByZXNlcnZlc1BpdGNo
KG1faWQsIHByZXNlcnZlc1BpdGNoKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpzZXRWb2x1bWVEb3VibGUoZG91YmxlIHZvbHVtZSkKLXsKLSAgICBtX21hbmFnZXIu
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6U2V0Vm9sdW1lKG1faWQsIHZvbHVtZSksIDApOwotfQotCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKLXsKLSAgICBtX21hbmFn
ZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6U2V0TXV0ZWQobV9pZCwgbXV0ZWQpLCAwKTsKLX0KLQotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJl
bG9hZCkKLXsKLSAgICBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U2V0UHJlbG9hZChtX2lkLCBwcmVs
b2FkKSwgMCk7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcml2YXRl
QnJvd3NpbmdNb2RlKGJvb2wgcHJpdmF0ZU1vZGUpCi17Ci0gICAgbV9tYW5hZ2VyLmdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OlNldFByaXZhdGVCcm93c2luZ01vZGUobV9pZCwgcHJpdmF0ZU1vZGUpLCAwKTsKLX0KLQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMzE1LDI4ICs0MjQsMTQgQEAgZG91YmxlIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpzZWVrYWJsZSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7Ci19Ci0K
LXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQotCiBNZWRpYVRpbWUgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0CiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwor
ICAgIHJldHVybiBtX2NhY2hlZFN0YXRlLm1heFRpbWVTZWVrYWJsZTsKIH0KIAogTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKKyAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5taW5UaW1lU2Vla2FibGU7CiB9CiAKIGRvdWJs
ZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmll
ZFRpbWUoKSBjb25zdApAQCAtMzU3LDEyICs0NTIsNiBAQCB1bnNpZ25lZCBsb25nIGxvbmcgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1cm4gMDsK
IH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRpZExvYWRpbmdQcm9ncmVzcygp
IGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRTaXplKGNvbnN0IEludFNpemUmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC01MDMsMTIgKzU5Miw2IEBAIE9wdGlvbmFsPGJv
b2w+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6d291bGRUYWludE9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiYpCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotTWVkaWFQbGF5ZXI6
Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptb3ZpZUxvYWRUeXBlKCkg
Y29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZTo6VW5rbm93bjsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC01
MjIsOCArNjA1LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVkaWFU
aW1lRm9yVGltZVZhbHVlKGNvbnN0IE1lZGlhVGltZSYgdGltZVYKIAogZG91YmxlIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bWF4aW11bUR1cmF0aW9uVG9DYWNoZU1lZGlhVGltZSgpIGNvbnN0
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gLjI7
IC8vIEZJWE1FOiBnZXQgdGhpcyB2YWx1ZSBmcm9tIHRoZSBtZWRpYSBlbmdpbmUgd2hlbiBpdCBp
cyBjcmVhdGVkLgogfQogCiB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmRlY29k
ZWRGcmFtZUNvdW50KCkgY29uc3QKQEAgLTcxNCw2MCArNzk2LDYgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5ldHdvcmtTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQotewot
ICAgIG1fbmV0d29ya1N0YXRlID0gc3RhdGU7Ci0gICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNo
YW5nZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlYWR5U3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCi17Ci0g
ICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7Ci0gICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5n
ZWQoKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZvbHVtZUNoYW5nZWQo
ZG91YmxlIHZvbHVtZSkKLXsKLSAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKLSAgICBtX3BsYXllci0+
dm9sdW1lQ2hhbmdlZCh2b2x1bWUpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bXV0ZUNoYW5nZWQoYm9vbCBtdXRlZCkKLXsKLSAgICBtX211dGVkID0gbXV0ZWQ7Ci0gICAg
bV9wbGF5ZXItPm11dGVDaGFuZ2VkKG11dGVkKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnRpbWVDaGFuZ2VkKE1lZGlhVGltZSB0aW1lKQotewotICAgIC8vIEZJWE1FOiBz
aG91bGQgd2UgY2FjaGUgdGhlIGN1cnJlbnQgdGltZSBoZXJlIGZvciBzb21lIGFtb3VudCBvZiB0
aW1lPwotICAgIG1fcGxheWVyLT50aW1lQ2hhbmdlZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6ZHVyYXRpb25DaGFuZ2VkKE1lZGlhVGltZSBkdXJhdGlvbikKLXsKLSAg
ICBtX2R1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgbV9wbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZCgp
OwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmF0ZUNoYW5nZWQoZG91Ymxl
IHJhdGUpCi17Ci0gICAgbV9yYXRlID0gcmF0ZTsKLSAgICBtX3BsYXllci0+cmF0ZUNoYW5nZWQo
KTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBsYXliYWNrU3RhdGVDaGFu
Z2VkKGJvb2wgcGF1c2VkKQotewotICAgIG1fcGF1c2VkID0gcGF1c2VkOwotICAgIG1fcGxheWVy
LT5wbGF5YmFja1N0YXRlQ2hhbmdlZCgpOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6ZW5naW5lRmFpbGVkVG9Mb2FkKGxvbmcgcGxhdGZvcm1FcnJvckNvZGUpCi17Ci0gICAg
bV9wbGF0Zm9ybUVycm9yQ29kZSA9IHBsYXRmb3JtRXJyb3JDb2RlOwotICAgIG1fcGxheWVyLT5y
ZW1vdGVFbmdpbmVGYWlsZWRUb0xvYWQoKTsKLX0KLQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDViYzc2N2NjYzAxYTllMTcz
ZjEzNTlhZjYwMTNkM2E3YjEyZGUyMmUuLmYwZDdhZmY1N2U3NzVkNTY1OTgxMWEyZjc4MDZkYTYx
ZmE4Y2JkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIu
aD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01NSwxNSArNTYsMTcgQEAgcHVibGlj
OgogICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOyB9
CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBwbGF5ZXJJdGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCi0gICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2Vk
KFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSk7Ci0gICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKKyAg
ICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKKyAg
ICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAg
dm9pZCB2b2x1bWVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBtdXRlQ2hhbmdlZChib29sKTsK
LSAgICB2b2lkIHRpbWVDaGFuZ2VkKE1lZGlhVGltZSk7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5n
ZWQoTWVkaWFUaW1lKTsKKyAgICB2b2lkIHRpbWVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CisgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYm
KTsKICAgICB2b2lkIHJhdGVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRl
Q2hhbmdlZChib29sKTsKICAgICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChsb25nKTsKKyAgICB2
b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9p
ZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICptX2xvZ2dlcjsgfQpAQCAtMTI5LDIxICsxMzIsMjEgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2V0VmlzaWJsZShib29sKSBmaW5hbDsKIAotICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlh
VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBNZWRpYVRpbWUg
ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLmR1
cmF0aW9uOyB9CiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBmaW5hbDsK
IAogICAgIE1lZGlhVGltZSBnZXRTdGFydERhdGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
c2Vlayhjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIGZp
bmFsOworICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
TWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRv
bGVyYW5jZSkgZmluYWw7CiAKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHNlZWtpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NlZWtpbmc7IH0KIAogICAgIE1l
ZGlhVGltZSBzdGFydFRpbWUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmF0ZURvdWJs
ZShkb3VibGUpIGZpbmFsOwogCi0gICAgYm9vbCBwYXVzZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3BhdXNlZDsgfQorICAgIGJvb2wgcGF1c2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
YWNoZWRTdGF0ZS5wYXVzZWQ7IH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IFVTRShH
U1RSRUFNRVIpCiAgICAgZmxvYXQgdm9sdW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMTsgfQpA
QCAtMTU1LDggKzE1OCw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0
ZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBm
aW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9
CisgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIE1lZGlhUGxheWVy
OjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0
YXRlLnJlYWR5U3RhdGU7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5n
ZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CiAKQEAgLTI5NCwxNCArMjk3LDE3IEBAIHByaXZh
dGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3Rl
RW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IG1faWQ7CiAKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsg
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHkgfTsKLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhp
bmcgfTsKKyAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5n
ZXM7CisKICAgICBkb3VibGUgbV92b2x1bWUgeyAxIH07Ci0gICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKLSAgICBNZWRpYVRpbWUgbV9kdXJhdGlvbjsKICAgICBkb3VibGUgbV9yYXRlIHsgMSB9
OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKLSAgICBib29sIG1fcGF1c2Vk
IHsgZmFsc2UgfTsKKyAgICBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVM
b2FkVHlwZSB7IE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OlVua25vd24gfTsKKyAg
ICBib29sIG1faGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Vla2luZyB7IGZh
bHNlIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWZQdHI8Y29uc3QgTG9n
Z2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4N2ZjMTE4
ODY2ZWJhNzk3OTFhZjc1NmU1NjBjZDc2NzZlZDJmOWNkLi4yYzg4MGM5MjFlY2QyNDRiYTAzZDNj
NTJhNmU4ZmIyNjA2ZDdmMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0x
ODksMTYgKzE4OSwxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRp
YUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogICAgIGdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OkNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0aCwg
b3JpZ2luRGF0YSksIDApOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bmV0
d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUgc3RhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7CiAgICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCi0gICAgICAgIHBsYXllci0+bmV0d29y
a1N0YXRlQ2hhbmdlZChzdGF0ZSk7CisgICAgICAgIHBsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdl
ZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
ZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKICAgICBpZiAoYXV0
byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKLSAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRl
Q2hhbmdlZChzdGF0ZSk7CisgICAgICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoV1RGTW92
ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJs
ZSB2b2x1bWUpCkBAIC0yMTMsMTYgKzIxMywxNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bXV0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudAog
ICAgICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKG11dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6dGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnRpbWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChh
dXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPnRpbWVDaGFu
Z2VkKFdURk1vdmUodGltZSkpOworICAgICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1vdmUo
c3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlh
VGltZSYmIHRpbWUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFu
Z2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQotICAgICAgICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHRp
bWUpKTsKKyAgICAgICAgcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKQEAgLTI0
Myw2ICsyNDMsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZhaWxl
ZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW8KICAgICAgICAgcGxheWVyLT5l
bmdpbmVGYWlsZWRUb0xvYWQocGxhdGZvcm1FcnJvckNvZGUpOwogfQogCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRl
bywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBsb2FkVHlwZSkKK3sK
KyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVy
LT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoaGFzQXVkaW8sIGhhc1ZpZGVvLCBsb2FkVHlwZSk7Cit9
CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgYXV0byByZWdpc3RlckVuZ2luZSA9IFt0aGlz
XShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSB7CkBAIC0yNTIsNiArMjU4
LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhj
b25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdXBwb3J0Ojpz
ZXRSZWdpc3RlclJlbW90ZVBsYXllckNhbGxiYWNrKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JN
ZWRpYSgpID8gV1RGTW92ZShyZWdpc3RlckVuZ2luZSkgOiBSZW1vdGVNZWRpYVBsYXllclN1cHBv
cnQ6OlJlZ2lzdGVyUmVtb3RlUGxheWVyQ2FsbGJhY2soKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkK
K3sKKyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxh
eWVyLT51cGRhdGVDYWNoZWRTdGF0ZShXVEZNb3ZlKHN0YXRlKSk7Cit9CisKIElQQzo6Q29ubmVj
dGlvbiYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpncHVQcm9jZXNzQ29ubmVjdGlvbigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggNGNmYzFhYzBlNzI4ODE0NjZkNDEyNjhhY2FhMmEzYzQyNGU0ODNiMi4uYzNjMjc3YWM4OGMz
NGRjNjA5YWNhY2ZlZWQ2YWU1OTc4MzI4ZjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
ci5oPgpAQCAtNzAsMTUgKzcxLDE3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogICAgIC8vIE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIKLSAgICB2b2lkIG5ldHdvcmtTdGF0ZUNo
YW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSk7CisgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQgdm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBtdXRlQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGJvb2wpOwot
ICAgIHZvaWQgdGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBNZWRpYVRpbWUmJik7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBNZWRpYVRpbWUmJik7CisgICAgdm9p
ZCB0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CisgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXll
clN0YXRlJiYpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBkb3VibGUpOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5n
ZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sKTsKICAg
ICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIGxvbmcpOworICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYpOworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CiAKICAgICBmcmllbmQgY2xh
c3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBlYzJiNDNiY2RiNjFiNTNhZmU1MWJlZjNj
M2Q0MzdlZmU3ZTRiNTAxLi40NjU4YTdhMjhmNmM3OGUxMGNlMDU0NWQ3MGZmYzNmZmM1MGRkYzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjUs
MTUgKzI1LDE3IEBACiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RS
ZWZDb3VudGVkIHsKIAotICAgIE5ldHdvcmtTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQotICAgIFJlYWR5U3RhdGVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90
IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCisgICAgTmV0d29y
a1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAgUmVh
ZHlTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIFZv
bHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBkb3VibGUgdm9sdW1lKQogICAgIE11dGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQotICAgIFRpbWVDaGFuZ2VkKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUp
Ci0gICAgRHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUpCisgICAgVGltZUNoYW5nZWQoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclN0YXRlIHN0YXRlKQorICAgIER1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyU3RhdGUgc3RhdGUpCiAgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKICAgICBQbGF5YmFja1N0
YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IGJvb2wgcGF1c2VkKQogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29kZSkKKyAgICBV
cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCisgICAg
Q2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSkKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYWM4NjZmNzcyNjJj
MzNiOWMwNGE5ZTgzNjg4OTJhZDhkNzc5YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyU3RhdGUuaApAQCAtMCww
ICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllckVudW1zLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVRpbWVSYW5nZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSB7CisgICAgTWVkaWFUaW1lIGN1cnJlbnRUaW1lOworICAgIE1lZGlhVGltZSBkdXJhdGlvbjsK
KyAgICBNZWRpYVRpbWUgbWluVGltZVNlZWthYmxlOworICAgIE1lZGlhVGltZSBtYXhUaW1lU2Vl
a2FibGU7CisgICAgV2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkUmFuZ2VzOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUg
eyBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07CisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlIHsgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKKyAgICBib29s
IHBhdXNlZCB7IHRydWUgfTsKKyAgICBib29sIGxvYWRpbmdQcm9ncmVzc2VkIHsgZmFsc2UgfTsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgY3VycmVudFRpbWU7Cisg
ICAgICAgIGVuY29kZXIgPDwgZHVyYXRpb247CisgICAgICAgIGVuY29kZXIgPDwgbWluVGltZVNl
ZWthYmxlOworICAgICAgICBlbmNvZGVyIDw8IG1heFRpbWVTZWVrYWJsZTsKKyAgICAgICAgZW5j
b2RlciA8PCBidWZmZXJlZFJhbmdlczsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG5ldHdv
cmtTdGF0ZSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShyZWFkeVN0YXRlKTsKKyAgICAg
ICAgZW5jb2RlciA8PCBwYXVzZWQ7CisgICAgICAgIGVuY29kZXIgPDwgbG9hZGluZ1Byb2dyZXNz
ZWQ7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIE9w
dGlvbmFsPFJlbW90ZU1lZGlhUGxheWVyU3RhdGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
ICAgIHsKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBjdXJyZW50VGltZTsKKyAgICAgICAg
ZGVjb2RlciA+PiBjdXJyZW50VGltZTsKKyAgICAgICAgaWYgKCFjdXJyZW50VGltZSkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1l
PiBkdXJhdGlvbjsKKyAgICAgICAgZGVjb2RlciA+PiBkdXJhdGlvbjsKKyAgICAgICAgaWYgKCFk
dXJhdGlvbikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8TWVkaWFUaW1lPiBtaW5UaW1lU2Vla2FibGU7CisgICAgICAgIGRlY29kZXIgPj4gbWlu
VGltZVNlZWthYmxlOworICAgICAgICBpZiAoIW1pblRpbWVTZWVrYWJsZSkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8TWVkaWFUaW1lPiBtYXhU
aW1lU2Vla2FibGU7CisgICAgICAgIGRlY29kZXIgPj4gbWF4VGltZVNlZWthYmxlOworICAgICAg
ICBpZiAoIW1heFRpbWVTZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJl
ZFJhbmdlczsKKyAgICAgICAgZGVjb2RlciA+PiBidWZmZXJlZFJhbmdlczsKKyAgICAgICAgaWYg
KCFidWZmZXJlZFJhbmdlcykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0
ZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0obmV0d29ya1N0YXRlKSkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bShyZWFkeVN0YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gcGF1c2VkOworICAgICAgICBkZWNvZGVyID4+IHBhdXNl
ZDsKKyAgICAgICAgaWYgKCFwYXVzZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGxvYWRpbmdQcm9ncmVzc2VkOworICAgICAgICBk
ZWNvZGVyID4+IGxvYWRpbmdQcm9ncmVzc2VkOworICAgICAgICBpZiAoIWxvYWRpbmdQcm9ncmVz
c2VkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4g
e3sgV1RGTW92ZSgqY3VycmVudFRpbWUpLCBXVEZNb3ZlKCpkdXJhdGlvbiksIFdURk1vdmUoKm1p
blRpbWVTZWVrYWJsZSksIFdURk1vdmUoKm1heFRpbWVTZWVrYWJsZSksIFdURk1vdmUoKmJ1ZmZl
cmVkUmFuZ2VzKSwgbmV0d29ya1N0YXRlLCByZWFkeVN0YXRlLCBXVEZNb3ZlKCpwYXVzZWQpLCBX
VEZNb3ZlKCpsb2FkaW5nUHJvZ3Jlc3NlZCkgfX07CisgICAgfQorCit9OworCit9CisKKyNlbmRp
Zgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>