<?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>200832</bug_id>
          
          <creation_ts>2019-08-16 14:25:18 -0700</creation_ts>
          <short_desc>Drop StorageArea::setWorkQueue() member function</short_desc>
          <delta_ts>2019-08-16 18:07:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562225</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 14:25:18 -0700</bug_when>
    <thetext>Drop StorageArea::setWorkQueue() member function and pass the WorkQueue to the StorageArea constructor instead. The WorkQueue can never get updated so an explicit setter is not necessary. It also makes it clearer that the m_queue data member can never be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562227</commentid>
    <comment_count>1</comment_count>
      <attachid>376542</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 14:29:41 -0700</bug_when>
    <thetext>Created attachment 376542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562254</commentid>
    <comment_count>2</comment_count>
      <attachid>376549</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 15:44:26 -0700</bug_when>
    <thetext>Created attachment 376549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562261</commentid>
    <comment_count>3</comment_count>
      <attachid>376552</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-16 15:53:18 -0700</bug_when>
    <thetext>Created attachment 376552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562332</commentid>
    <comment_count>4</comment_count>
      <attachid>376552</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-16 17:33:35 -0700</bug_when>
    <thetext>Comment on attachment 376552
Patch

nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562345</commentid>
    <comment_count>5</comment_count>
      <attachid>376552</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-16 18:06:13 -0700</bug_when>
    <thetext>Comment on attachment 376552
Patch

Clearing flags on attachment: 376552

Committed r248809: &lt;https://trac.webkit.org/changeset/248809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562346</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-16 18:06:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562347</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 18:07:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54415820&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376542</attachid>
            <date>2019-08-16 14:29:41 -0700</date>
            <delta_ts>2019-08-16 15:44:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200832-20190816142941.patch</filename>
            <type>text/plain</type>
            <size>18345</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAyMDU3NTJjMTFlMGUyY2M0
MDA3ZjgyMzM1OTAxOTgyNDBhNjA4MTcuLjYzNDM1YTE2M2QzMGVhNmMxOGFhM2VmY2RiYzQxYTZm
ZTgwY2VlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFN0b3JhZ2VBcmVhOjpzZXRX
b3JrUXVldWUoKSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERyb3AgU3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSgpIG1lbWJl
ciBmdW5jdGlvbiBhbmQgcGFzcyB0aGUgV29ya1F1ZXVlIHRvIHRoZSBTdG9yYWdlQXJlYSBjb25z
dHJ1Y3RvciBpbnN0ZWFkLgorICAgICAgICBUaGUgV29ya1F1ZXVlIGNhbiBuZXZlciBnZXQgdXBk
YXRlZCBzbyBhbiBleHBsaWNpdCBzZXR0ZXIgaXMgbm90IG5lY2Vzc2FyeS4gSXQgYWxzbyBtYWtl
cyBpdCBjbGVhcmVyIHRoYXQgdGhlCisgICAgICAgIG1fcXVldWUgZGF0YSBtZW1iZXIgY2FuIG5l
dmVyIGJlIG51bGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OmNsb25lIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWE6Om9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQgY29uc3QpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaDoKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEp
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VB
cmVhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNl
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2Nh
bFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JD
cmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9U
cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKwogMjAxOS0wOC0xNiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsU3RvcmFnZURhdGFiYXNlIGRv
ZXMgbm90IG5lZWQgdG8gc3ViY2xhc3MgVGhyZWFkU2FmZVJlZkNvdW50ZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1l
c3BhY2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS5jcHAKaW5kZXggOTJhYTYzOThlNTYxNDljZjdlNjAzNDBmYjBjNGJl
NDNmYjE3MjZmYy4uNjA1N2I4ZTA3MDk4OTc1ZTFhNmE1OWQ3NGMyN2ZmNmI1ZmYxNjgxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3Rv
cmFnZU5hbWVzcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL0xvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKQEAgLTQ3LDExICs0NywxMSBAQCBMb2Nh
bFN0b3JhZ2VOYW1lc3BhY2U6On5Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKQogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogfQogCi1TdG9yYWdlQXJlYSYgTG9jYWxTdG9yYWdlTmFtZXNw
YWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5
T3JpZ2luLCBJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKK1N0b3JhZ2VBcmVhJiBMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYg
c2VjdXJpdHlPcmlnaW4sIElzRXBoZW1lcmFsIGlzRXBoZW1lcmFsLCBSZWY8V29ya1F1ZXVlPiYm
IHdvcmtRdWV1ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICByZXR1
cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5T3JpZ2luLCBbJl0oKSBtdXRhYmxl
IHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U3RvcmFnZUFyZWE+KGlzRXBoZW1l
cmFsID09IElzRXBoZW1lcmFsOjpZZXMgPyBudWxscHRyIDogdGhpcywgV1RGTW92ZShzZWN1cml0
eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U3RvcmFnZUFyZWE+KGlzRXBoZW1lcmFsID09IElzRXBoZW1lcmFsOjpZZXMgPyBudWxscHRy
IDogdGhpcywgV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzLCBXVEZNb3Zl
KHdvcmtRdWV1ZSkpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFn
ZU5hbWVzcGFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xv
Y2FsU3RvcmFnZU5hbWVzcGFjZS5oCmluZGV4IDhlOWJlYjk3MzA4ZjM2NDMyMzQ0NWQ3MDRjNTVk
ZmEzZjNhOTc5ZTAuLjJlN2I4ZDZmODU5OWE3MTAyZTRhOTJmODg0MGQ4YTJjZDI2ZDhhZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0
b3JhZ2VOYW1lc3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvTG9jYWxTdG9yYWdlTmFtZXNwYWNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgog
ICAgIFN0b3JhZ2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuICZtX3N0
b3JhZ2VNYW5hZ2VyOyB9CiAKICAgICBlbnVtIGNsYXNzIElzRXBoZW1lcmFsIDogYm9vbCB7IE5v
LCBZZXMgfTsKLSAgICBTdG9yYWdlQXJlYSYgZ2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgSXNFcGhlbWVyYWwpOworICAgIFN0b3JhZ2VBcmVhJiBn
ZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBJc0Vw
aGVtZXJhbCwgUmVmPFdvcmtRdWV1ZT4mJik7CiAKICAgICB2b2lkIGNsZWFyU3RvcmFnZUFyZWFz
TWF0Y2hpbmdPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAgICAg
dm9pZCBjbGVhckFsbFN0b3JhZ2VBcmVhcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZS5jcHAKaW5kZXggZjhhMGEyNTA3ZWY4MGM5MTRjMDkzODdlODU3NWU4MTEwNDIyNGY2OC4u
ZTg2ZGUyNGMzODYxMWUwZjUzYzA2MjE5YzM3MDIwZWM1ZDAxMzEwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNw
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwCkBAIC00MywxMSArNDMsMTEgQEAgU2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2U6On5TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpCiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiB9CiAKLVN0b3JhZ2VBcmVhJiBTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9y
aWdpbikKK1N0b3JhZ2VBcmVhJiBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVT
dG9yYWdlQXJlYShTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgUmVmPFdvcmtR
dWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFwLmVuc3VyZShzZWN1cml0eU9yaWdpbiwgW3RoaXMs
ICZzZWN1cml0eU9yaWdpbl0oKSBtdXRhYmxlIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8U3RvcmFnZUFyZWE+KG51bGxwdHIsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pLCBtX3F1
b3RhSW5CeXRlcyk7CisgICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFwLmVuc3VyZShzZWN1cml0
eU9yaWdpbiwgWyZdKCkgbXV0YWJsZSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFN0b3JhZ2VBcmVhPihudWxscHRyLCBXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luKSwgbV9xdW90YUlu
Qnl0ZXMsIFdURk1vdmUod29ya1F1ZXVlKSk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmdldCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5oCmluZGV4IDRjMGRjNDhmMWU0
ZmE3ZTI1OTI1MjEyNWEzZDMwZDczOGZhODVjMzIuLmFiYmZkOTZlMTBhYzc3ZTI1ZDc0YjFhMzli
ZDJiZmRkNjYxZTkwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5oCkBAIC00
Miw3ICs0Miw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RvcmFnZUFyZWFNYXAuaXNFbXB0eSgpOyB9CiAKLSAgICBTdG9yYWdlQXJlYSYgZ2V0T3JD
cmVhdGVTdG9yYWdlQXJlYShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgU3Rv
cmFnZUFyZWEmIGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYsIFJlZjxXb3JrUXVldWU+JiYpOwogCiAgICAgdm9pZCBjbG9uZVRvKFNlc3Npb25TdG9y
YWdlTmFtZXNwYWNlJiBuZXdTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3Bw
CmluZGV4IDcxMjU5ZmVlOTgwYmU0ZTRkOTBhYTVmNDVjMTkxNTA4NzQ4YTM0NmYuLjEyMzUwNzc2
MGRhZTU3NDg0NjRmM2UzMjIwOWRkYWY5NTEzOTRhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcApAQCAtNDIs
MTIgKzQyLDEzIEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVN0b3JhZ2VBcmVhSWRlbnRpZmll
cigpCiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsKIH0KIAotU3RvcmFnZUFyZWE6OlN0b3JhZ2VB
cmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFtZXNwYWNlLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMp
CitTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBsb2NhbFN0
b3JhZ2VOYW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4s
IHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUmVmPFdvcmtRdWV1ZT4mJiBxdWV1ZSkKICAgICA6IG1f
bG9jYWxTdG9yYWdlTmFtZXNwYWNlKG1ha2VXZWFrUHRyKGxvY2FsU3RvcmFnZU5hbWVzcGFjZSkp
CiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogICAgICwgbV9xdW90YUlu
Qnl0ZXMocXVvdGFJbkJ5dGVzKQogICAgICwgbV9zdG9yYWdlTWFwKFN0b3JhZ2VNYXA6OmNyZWF0
ZShtX3F1b3RhSW5CeXRlcykpCiAgICAgLCBtX2lkZW50aWZpZXIoZ2VuZXJhdGVTdG9yYWdlQXJl
YUlkZW50aWZpZXIoKSkKKyAgICAsIG1fcXVldWUoV1RGTW92ZShxdWV1ZSkpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiB9CkBAIC04OCw3ICs4OSw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxTdG9yYWdlQXJlYT4gU3RvcmFnZUFyZWE6OmNsb25lKCkgY29uc3QKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlTmFtZXNwYWNl
KTsKIAotICAgIGF1dG8gc3RvcmFnZUFyZWEgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0b3JhZ2VBcmVh
PihudWxscHRyLCBtX3NlY3VyaXR5T3JpZ2luLCBtX3F1b3RhSW5CeXRlcyk7CisgICAgYXV0byBz
dG9yYWdlQXJlYSA9IHN0ZDo6bWFrZV91bmlxdWU8U3RvcmFnZUFyZWE+KG51bGxwdHIsIG1fc2Vj
dXJpdHlPcmlnaW4sIG1fcXVvdGFJbkJ5dGVzLCBtX3F1ZXVlLmNvcHlSZWYoKSk7CiAgICAgc3Rv
cmFnZUFyZWEtPm1fc3RvcmFnZU1hcCA9IG1fc3RvcmFnZU1hcDsKIAogICAgIHJldHVybiBzdG9y
YWdlQXJlYTsKQEAgLTE4MiwxMCArMTgzLDkgQEAgdm9pZCBTdG9yYWdlQXJlYTo6b3BlbkRhdGFi
YXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyKCkpOwotICAgIEFTU0VSVChtX3F1ZXVlKTsKICAgICAvLyBX
ZSBvcGVuIHRoZSBkYXRhYmFzZSBoZXJlIGV2ZW4gaWYgd2UndmUgYWxyZWFkeSBpbXBvcnRlZCBv
dXIgaXRlbXMgdG8gZW5zdXJlIHRoYXQgdGhlIGRhdGFiYXNlIGlzIG9wZW4gaWYgd2UgbmVlZCB0
byB3cml0ZSB0byBpdC4KICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlRGF0YWJhc2UpCi0gICAgICAg
IG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UgPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKCpt
X3F1ZXVlLCAqbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VNYW5hZ2VyKCktPmxvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcigpLCBtX3NlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAgbV9s
b2NhbFN0b3JhZ2VEYXRhYmFzZSA9IExvY2FsU3RvcmFnZURhdGFiYXNlOjpjcmVhdGUobV9xdWV1
ZS5jb3B5UmVmKCksICptX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+
bG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyKCksIG1fc2VjdXJpdHlPcmlnaW4pOwogCiAgICAg
aWYgKG1fZGlkSW1wb3J0SXRlbXNGcm9tRGF0YWJhc2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJl
YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
LmgKaW5kZXggOWY3YjQ4MjU4YjZhNTQ3NGRhODk5YTEzZDJlYzUxMzVlNmQxMjU0OS4uMzMxZTIz
NjI1OTg0YTRlYTk4MjU1YzQxMjI3OGUwYjkzYTg3YWFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmgKQEAgLTQyLDcg
KzQyLDcgQEAgY2xhc3MgU3RvcmFnZUFyZWEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0
b3JhZ2VBcmVhKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBT
dG9yYWdlQXJlYShMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOworICAgIFN0b3JhZ2VBcmVhKExv
Y2FsU3RvcmFnZU5hbWVzcGFjZSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUmVmPFdvcmtRdWV1ZT4mJik7CiAgICAgflN0b3JhZ2VB
cmVhKCk7CiAKICAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbjsgfQpAQCAtNjUsOCArNjUs
NiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVk
ZWQoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0V29ya1F1ZXVlKFJlZlB0cjxXb3JrUXVldWU+JiYg
cXVldWUpIHsgbV9xdWV1ZSA9IFdURk1vdmUocXVldWUpOyB9Ci0KICAgICB2b2lkIHN5bmNUb0Rh
dGFiYXNlKCk7CiAKIHByaXZhdGU6CkBAIC04NCw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgSGFz
aFNldDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2V2ZW50TGlzdGVuZXJzOwogCiAgICAg
dWludDY0X3QgbV9pZGVudGlmaWVyOwotICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7Cisg
ICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYmZkYzZhOGYyZTY3OTQyYTBlYWMzMDY4ZTM2ZGRhYzJk
MWE5ZjNjNy4uNTJjMjEzNTgyNDliZTNiYTk2YTM0ZjEwNzdlMWU2Njg4ODAxZmJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIuY3BwCkBAIC0xOTIsMzQgKzE5MiwzNCBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2Vy
OjpkZWxldGVMb2NhbFN0b3JhZ2VFbnRyaWVzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6UwogICAgIH0KIH0KIAotU3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2Nh
bFN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgb3JpZ2luKQorU3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpjcmVh
dGVMb2NhbFN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBSZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1ZSkK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChhdXRvKiBsb2Nh
bFN0b3JhZ2VOYW1lc3BhY2UgPSBnZXRPckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShzdG9y
YWdlTmFtZXNwYWNlSUQpKQotICAgICAgICByZXR1cm4gJmxvY2FsU3RvcmFnZU5hbWVzcGFjZS0+
Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9yaWdpbiksIG1fbG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyID8gTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpJc0VwaGVtZXJhbDo6Tm8gOiBM
b2NhbFN0b3JhZ2VOYW1lc3BhY2U6OklzRXBoZW1lcmFsOjpZZXMpOworICAgICAgICByZXR1cm4g
JmxvY2FsU3RvcmFnZU5hbWVzcGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9y
aWdpbiksIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyID8gTG9jYWxTdG9yYWdlTmFtZXNw
YWNlOjpJc0VwaGVtZXJhbDo6Tm8gOiBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OklzRXBoZW1lcmFs
OjpZZXMsIFdURk1vdmUod29ya1F1ZXVlKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
U3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VB
cmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgdG9wTGV2ZWxPcmlnaW4sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdp
bikKK1N0b3JhZ2VBcmVhKiBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9y
YWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIHRvcExldmVsT3JpZ2luLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBv
cmlnaW4sIFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIEFTU0VSVCgoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFRyYW5z
aWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZT4+Ojppc1ZhbGlkS2V5KHN0b3JhZ2VOYW1lc3BhY2VJ
RCkpKTsKIAogICAgIGlmIChhdXRvKiB0cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UgPSBn
ZXRPckNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZShzdG9yYWdlTmFtZXNwYWNl
SUQsIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pKSkKLSAgICAgICAgcmV0dXJuICZ0cmFuc2llbnRM
b2NhbFN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV1RGTW92ZShvcmln
aW4pKTsKKyAgICAgICAgcmV0dXJuICZ0cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UtPmdl
dE9yQ3JlYXRlU3RvcmFnZUFyZWEoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKHdvcmtRdWV1ZSkp
OwogICAgIAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1TdG9yYWdlQXJlYSogU3RvcmFnZU1h
bmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNl
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbikKK1N0b3JhZ2VBcmVhKiBT
dG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VO
YW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBSZWY8V29y
a1F1ZXVlPiYmIHdvcmtRdWV1ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
ICAgICBBU1NFUlQoKEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZT4+Ojppc1ZhbGlkS2V5KHN0b3JhZ2VOYW1lc3BhY2VJRCkpKTsKIAogICAgIGlmIChhdXRv
KiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSA9IGdldE9yQ3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2Uoc3RvcmFnZU5hbWVzcGFjZUlEKSkKLSAgICAgICAgcmV0dXJuICZzZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9yaWdpbikpOworICAg
ICAgICByZXR1cm4gJnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0ZVN0b3JhZ2VB
cmVhKFdURk1vdmUob3JpZ2luKSwgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICAKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggNmY1YThjYzQzN2NhZmFjM2EyYWY1
YjFjNmE0MzM4ZTE0NWNiYWI5Ni4uMTJjNmIyNTg4ZDQ2ZGU3ODk3ZTRiOGYxY2QzZThmNzhiMmQw
YzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTc3LDkgKzc3LDkgQEAgcHVibGljOgogICAgIAog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb2NhbFN0b3JhZ2VEYXRhYmFzZVF1b3RhSW5CeXRl
czsKIAotICAgIFN0b3JhZ2VBcmVhKiBjcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0
b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOwotICAgIFN0
b3JhZ2VBcmVhKiBjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3Jh
Z2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmKTsKLSAgICBTdG9yYWdlQXJlYSogY3JlYXRlU2Vzc2lvblN0b3Jh
Z2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYpOworICAgIFN0b3JhZ2VBcmVhKiBjcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHVpbnQ2
NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFJl
ZjxXb3JrUXVldWU+JiYpOworICAgIFN0b3JhZ2VBcmVhKiBjcmVhdGVUcmFuc2llbnRMb2NhbFN0
b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBSZWY8V29ya1F1ZXVl
PiYmKTsKKyAgICBTdG9yYWdlQXJlYSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VBcmVhKHVpbnQ2NF90
IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFJlZjxX
b3JrUXVldWU+JiYpOwogCiBwcml2YXRlOgogICAgIExvY2FsU3RvcmFnZU5hbWVzcGFjZSogZ2V0
T3JDcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlclNldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCmluZGV4IGIwYTMyNTE4NTQwNzRlMWQ2N2Y3YjM3
NzcxNjBhNWMzNTM1NzU5YWYuLmZmZjdmYWQyNDljYzUxZTEyM2U5OWE3MmEyODRiODBkZThmNTY0
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlclNldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApAQCAtMjk0LDE5ICsyOTQsMTUgQEAgdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8q
IHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZUxvY2FsU3RvcmFnZUFyZWEoc3Rv
cmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKG9yaWdpbkRhdGEpKTsKKyAgICBhdXRvKiBzdG9yYWdl
QXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1l
c3BhY2VJRCwgV1RGTW92ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwogICAgIGlm
ICghc3RvcmFnZUFyZWEpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW52YWxpZFN0b3Jh
Z2VBcmVhSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byBzdG9yYWdlQXJl
YUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvW2l0ZXIsIGlzTmV3RW50
cnldID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIG51bGxwdHIpOwotICAgIGlm
IChpc05ld0VudHJ5KSB7Ci0gICAgICAgIHN0b3JhZ2VBcmVhLT5zZXRXb3JrUXVldWUobV9xdWV1
ZS5wdHIoKSk7Ci0gICAgICAgIGl0ZXItPnZhbHVlID0gc3RvcmFnZUFyZWE7Ci0gICAgfSBlbHNl
Ci0gICAgICAgIEFTU0VSVChzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZSk7CisgICAgYXV0byBp
dGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIHN0b3JhZ2VBcmVhKS5pdGVy
YXRvcjsKKyAgICBBU1NFUlQoc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUpOwogCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7CiAKQEAgLTMyMyw3ICszMTksNyBAQCB2b2lk
IFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byog
c3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdl
QXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUodG9wTGV2ZWxPcmlnaW5EYXRhKSwgV1RG
TW92ZShvcmlnaW5EYXRhKSk7CisgICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdl
ci0+Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdU
Rk1vdmUodG9wTGV2ZWxPcmlnaW5EYXRhKSwgV1RGTW92ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5j
b3B5UmVmKCkpOwogICAgIGlmICghc3RvcmFnZUFyZWEpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOwogICAgICAgICByZXR1cm47CkBAIC0zNTEsNyAr
MzQ3LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VB
cmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25T
dG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSkpOworICAg
IGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25TdG9yYWdl
QXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29w
eVJlZigpKTsKICAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGludmFsaWRTdG9yYWdlQXJlYUlEKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3Rv
cmFnZU5hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcAppbmRleCA4NjI0YzdmZDEzMTFl
YzdiZTUzYWNmZjUzZTE3NzVkOWRmYWQ4YjhmLi42ZWFkZTIyMTI2ZmIxMDRhZWQwMjMyYmMxYTFm
YzUzM2Y1OTUyMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFt
ZXNwYWNlLmNwcApAQCAtNDQsMTEgKzQ0LDExIEBAIFRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6flRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZSgpCiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiB9CiAKLVN0b3JhZ2VBcmVhJiBUcmFuc2llbnRMb2NhbFN0b3JhZ2VO
YW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2Vj
dXJpdHlPcmlnaW4pCitTdG9yYWdlQXJlYSYgVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNl
OjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3Jp
Z2luLCBSZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKLSAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5
T3JpZ2luLCBbdGhpcywgJnNlY3VyaXR5T3JpZ2luXSgpIG11dGFibGUgewotICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgV1RGTW92ZShzZWN1cml0
eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKKyAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAu
ZW5zdXJlKHNlY3VyaXR5T3JpZ2luLCBbJl0oKSBtdXRhYmxlIHsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8U3RvcmFnZUFyZWE+KG51bGxwdHIsIFdURk1vdmUoc2VjdXJpdHlPcmln
aW4pLCBtX3F1b3RhSW5CeXRlcywgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VO
YW1lc3BhY2UuaAppbmRleCBiNzZlNGQwYjRjMGFlY2Y3ZWFmNjE2M2VmNjYyMGE0MzA1MDZiMWRm
Li43YzY0YmUxMGJhMTNkMjdkNTRlOGRlNDlhYmU2YTc2NDJjMGFhMGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9y
YWdlTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5oCkBAIC00MCw3ICs0MCw3IEBAIHB1
YmxpYzoKICAgICBUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKTsKICAgICB+VHJhbnNp
ZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKCk7CiAKLSAgICBTdG9yYWdlQXJlYSYgZ2V0T3JDcmVh
dGVTdG9yYWdlQXJlYShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7CisgICAgU3RvcmFn
ZUFyZWEmIGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYsIFJlZjxXb3JrUXVldWU+JiYpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbnMoKSBjb25zdDsKIAogICAgIHZvaWQgY2xlYXJTdG9yYWdlQXJlYXNNYXRj
aGluZ09yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376549</attachid>
            <date>2019-08-16 15:44:26 -0700</date>
            <delta_ts>2019-08-16 15:53:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200832-20190816154425.patch</filename>
            <type>text/plain</type>
            <size>19229</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY2N2QzNzhkMDk3YjRmMDkz
ZmE2OWQ0MjhiMzNkZDIxZGU4NjQ1NDIuLjYzYmQ4OGFjNDdjODBiMjM3ZTQxMjE2YzM4ZjcyMjdl
ZjE3NmYxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFN0b3JhZ2VBcmVhOjpzZXRX
b3JrUXVldWUoKSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERyb3AgU3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSgpIG1lbWJl
ciBmdW5jdGlvbiBhbmQgcGFzcyB0aGUgV29ya1F1ZXVlIHRvIHRoZSBTdG9yYWdlQXJlYSBjb25z
dHJ1Y3RvciBpbnN0ZWFkLgorICAgICAgICBUaGUgV29ya1F1ZXVlIGNhbiBuZXZlciBnZXQgdXBk
YXRlZCBzbyBhbiBleHBsaWNpdCBzZXR0ZXIgaXMgbm90IG5lY2Vzc2FyeS4gSXQgYWxzbyBtYWtl
cyBpdCBjbGVhcmVyIHRoYXQgdGhlCisgICAgICAgIG1fcXVldWUgZGF0YSBtZW1iZXIgY2FuIG5l
dmVyIGJlIG51bGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OmNsb25lIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWE6Om9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQgY29uc3QpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaDoKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEp
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VB
cmVhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNl
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2Nh
bFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JD
cmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9U
cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKwogMjAxOS0wOC0xNiAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBGdW5jdGlvbnMgd2l0
aCBubyBwYXJhbWV0ZXJzIGluIFdlYktpdC9TaGFyZWQvQVBJL2MgYW5kIFdlYktpdC9VSVByb2Nl
c3MvQVBJL0MgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvTG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3BwCmluZGV4IDkyYWE2
Mzk4ZTU2MTQ5Y2Y3ZTYwMzQwZmIwYzRiZTQzZmIxNzI2ZmMuLjYwNTdiOGUwNzA5ODk3NWUxYTZh
NTlkNzRjMjdmZjZiNWZmMTY4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3Bw
CkBAIC00NywxMSArNDcsMTEgQEAgTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjp+TG9jYWxTdG9yYWdl
TmFtZXNwYWNlKCkKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAotU3RvcmFn
ZUFyZWEmIExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShTZWN1
cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgSXNFcGhlbWVyYWwgaXNFcGhlbWVyYWwp
CitTdG9yYWdlQXJlYSYgTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VB
cmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBJc0VwaGVtZXJhbCBpc0Vw
aGVtZXJhbCwgUmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFwLmVuc3VyZShzZWN1
cml0eU9yaWdpbiwgWyZdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFN0b3JhZ2VBcmVhPihpc0VwaGVtZXJhbCA9PSBJc0VwaGVtZXJhbDo6WWVzID8gbnVsbHB0
ciA6IHRoaXMsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pLCBtX3F1b3RhSW5CeXRlcyk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFN0b3JhZ2VBcmVhPihpc0VwaGVtZXJhbCA9PSBJ
c0VwaGVtZXJhbDo6WWVzID8gbnVsbHB0ciA6IHRoaXMsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4p
LCBtX3F1b3RhSW5CeXRlcywgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICB9KS5pdGVyYXRvci0+
dmFsdWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaAppbmRleCA4ZTli
ZWI5NzMwOGYzNjQzMjM0NDVkNzA0YzU1ZGZhM2YzYTk3OWUwLi4yZTdiOGQ2Zjg1OTlhNzEwMmU0
YTkyZjg4NDBkOGEyY2QyNmQ4YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZU5hbWVzcGFjZS5oCkBA
IC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFnZU1hbmFn
ZXIoKSBjb25zdCB7IHJldHVybiAmbV9zdG9yYWdlTWFuYWdlcjsgfQogCiAgICAgZW51bSBjbGFz
cyBJc0VwaGVtZXJhbCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgU3RvcmFnZUFyZWEmIGdldE9y
Q3JlYXRlU3RvcmFnZUFyZWEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIElzRXBoZW1l
cmFsKTsKKyAgICBTdG9yYWdlQXJlYSYgZ2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgSXNFcGhlbWVyYWwsIFJlZjxXb3JrUXVldWU+JiYpOwogCiAg
ICAgdm9pZCBjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5nT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYpOwogICAgIHZvaWQgY2xlYXJBbGxTdG9yYWdlQXJlYXMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwCmluZGV4IGY4YTBhMjUwN2VmODBjOTE0
YzA5Mzg3ZTg1NzVlODExMDQyMjRmNjguLmU4NmRlMjRjMzg2MTFlMGY1M2MwNjIxOWMzNzAyMGVj
NWQwMTMxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcApAQCAtNDMs
MTEgKzQzLDExIEBAIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjp+U2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UoKQogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogfQogCi1TdG9yYWdlQXJl
YSYgU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJp
dHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCitTdG9yYWdlQXJlYSYgU2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYg
c2VjdXJpdHlPcmlnaW4sIFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlKQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHJldHVybiAqbV9zdG9yYWdlQXJlYU1hcC5lbnN1
cmUoc2VjdXJpdHlPcmlnaW4sIFt0aGlzLCAmc2VjdXJpdHlPcmlnaW5dKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFN0b3JhZ2VBcmVhPihudWxscHRyLCBXVEZN
b3ZlKHNlY3VyaXR5T3JpZ2luKSwgbV9xdW90YUluQnl0ZXMpOworICAgIHJldHVybiAqbV9zdG9y
YWdlQXJlYU1hcC5lbnN1cmUoc2VjdXJpdHlPcmlnaW4sIFsmXSgpIG11dGFibGUgeworICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgV1RGTW92ZShz
ZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzLCBXVEZNb3ZlKHdvcmtRdWV1ZSkpOwogICAg
IH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UuaAppbmRleCA0YzBkYzQ4ZjFlNGZhN2UyNTkyNTIxMjVhM2QzMGQ3MzhmYTg1YzMyLi5h
YmJmZDk2ZTEwYWM3N2UyNWQ3NGIxYTM5YmQyYmZkZDY2MWU5MDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2UuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwLmlzRW1wdHkoKTsgfQog
Ci0gICAgU3RvcmFnZUFyZWEmIGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYpOworICAgIFN0b3JhZ2VBcmVhJiBnZXRPckNyZWF0ZVN0b3JhZ2VBcmVh
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBSZWY8V29ya1F1ZXVlPiYmKTsKIAogICAg
IHZvaWQgY2xvbmVUbyhTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSYgbmV3U2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAppbmRleCA3MTI1OWZlZTk4MGJlNGU0ZDkwYWE1ZjQ1
YzE5MTUwODc0OGEzNDZmLi4xMjM1MDc3NjBkYWU1NzQ4NDY0ZjNlMzIyMDlkZGFmOTUxMzk0YTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYS5jcHAKQEAgLTQyLDEyICs0MiwxMyBAQCBzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVTdG9yYWdlQXJlYUlkZW50aWZpZXIoKQogICAgIHJldHVybiArK2lkZW50aWZpZXI7CiB9
CiAKLVN0b3JhZ2VBcmVhOjpTdG9yYWdlQXJlYShMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqIGxvY2Fs
U3RvcmFnZU5hbWVzcGFjZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
biwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKQorU3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKExvY2Fs
U3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFtZXNwYWNlLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFJlZjxXb3Jr
UXVldWU+JiYgcXVldWUpCiAgICAgOiBtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZShtYWtlV2Vha1B0
cihsb2NhbFN0b3JhZ2VOYW1lc3BhY2UpKQogICAgICwgbV9zZWN1cml0eU9yaWdpbihzZWN1cml0
eU9yaWdpbikKICAgICAsIG1fcXVvdGFJbkJ5dGVzKHF1b3RhSW5CeXRlcykKICAgICAsIG1fc3Rv
cmFnZU1hcChTdG9yYWdlTWFwOjpjcmVhdGUobV9xdW90YUluQnl0ZXMpKQogICAgICwgbV9pZGVu
dGlmaWVyKGdlbmVyYXRlU3RvcmFnZUFyZWFJZGVudGlmaWVyKCkpCisgICAgLCBtX3F1ZXVlKFdU
Rk1vdmUocXVldWUpKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogfQpAQCAt
ODgsNyArODksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZUFyZWE+IFN0b3JhZ2VBcmVhOjpj
bG9uZSgpIGNvbnN0CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJU
KCFtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZSk7CiAKLSAgICBhdXRvIHN0b3JhZ2VBcmVhID0gc3Rk
OjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgbV9zZWN1cml0eU9yaWdpbiwgbV9x
dW90YUluQnl0ZXMpOworICAgIGF1dG8gc3RvcmFnZUFyZWEgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0
b3JhZ2VBcmVhPihudWxscHRyLCBtX3NlY3VyaXR5T3JpZ2luLCBtX3F1b3RhSW5CeXRlcywgbV9x
dWV1ZS5jb3B5UmVmKCkpOwogICAgIHN0b3JhZ2VBcmVhLT5tX3N0b3JhZ2VNYXAgPSBtX3N0b3Jh
Z2VNYXA7CiAKICAgICByZXR1cm4gc3RvcmFnZUFyZWE7CkBAIC0xODIsMTAgKzE4Myw5IEBAIHZv
aWQgU3RvcmFnZUFyZWE6Om9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQoKSBjb25z
dAogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2Ut
PnN0b3JhZ2VNYW5hZ2VyKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcigpKTsKLSAgICBB
U1NFUlQobV9xdWV1ZSk7CiAgICAgLy8gV2Ugb3BlbiB0aGUgZGF0YWJhc2UgaGVyZSBldmVuIGlm
IHdlJ3ZlIGFscmVhZHkgaW1wb3J0ZWQgb3VyIGl0ZW1zIHRvIGVuc3VyZSB0aGF0IHRoZSBkYXRh
YmFzZSBpcyBvcGVuIGlmIHdlIG5lZWQgdG8gd3JpdGUgdG8gaXQuCiAgICAgaWYgKCFtX2xvY2Fs
U3RvcmFnZURhdGFiYXNlKQotICAgICAgICBtX2xvY2FsU3RvcmFnZURhdGFiYXNlID0gTG9jYWxT
dG9yYWdlRGF0YWJhc2U6OmNyZWF0ZSgqbV9xdWV1ZSwgKm1fbG9jYWxTdG9yYWdlTmFtZXNwYWNl
LT5zdG9yYWdlTWFuYWdlcigpLT5sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoKSwgbV9zZWN1
cml0eU9yaWdpbik7CisgICAgICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UgPSBMb2NhbFN0b3Jh
Z2VEYXRhYmFzZTo6Y3JlYXRlKG1fcXVldWUuY29weVJlZigpLCAqbV9sb2NhbFN0b3JhZ2VOYW1l
c3BhY2UtPnN0b3JhZ2VNYW5hZ2VyKCktPmxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcigpLCBt
X3NlY3VyaXR5T3JpZ2luKTsKIAogICAgIGlmIChtX2RpZEltcG9ydEl0ZW1zRnJvbURhdGFiYXNl
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5oCmluZGV4IDlmN2I0ODI1OGI2YTU0NzRkYTg5OWEx
M2QyZWM1MTM1ZTZkMTI1NDkuLjMzMWUyMzYyNTk4NGE0ZWE5ODI1NWM0MTIyNzhlMGI5M2E4N2Fh
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFN0b3JhZ2VBcmVhIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdG9yYWdlQXJlYSk7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgdW5zaWduZWQgcXVvdGFJbkJ5
dGVzKTsKKyAgICBTdG9yYWdlQXJlYShMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFJlZjxXb3Jr
UXVldWU+JiYpOwogICAgIH5TdG9yYWdlQXJlYSgpOwogCiAgICAgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJp
dHlPcmlnaW47IH0KQEAgLTY1LDggKzY1LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBvcGVuRGF0
YWJhc2VBbmRJbXBvcnRJdGVtc0lmTmVlZGVkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFdvcmtR
dWV1ZShSZWZQdHI8V29ya1F1ZXVlPiYmIHF1ZXVlKSB7IG1fcXVldWUgPSBXVEZNb3ZlKHF1ZXVl
KTsgfQotCiAgICAgdm9pZCBzeW5jVG9EYXRhYmFzZSgpOwogCiBwcml2YXRlOgpAQCAtODQsNyAr
ODIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4g
bV9ldmVudExpc3RlbmVyczsKIAogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKLSAgICBSZWZQ
dHI8V29ya1F1ZXVlPiBtX3F1ZXVlOworICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGJmZGM2YThm
MmU2Nzk0MmEwZWFjMzA2OGUzNmRkYWMyZDFhOWYzYzcuLjUyYzIxMzU4MjQ5YmUzYmE5NmEzNGYx
MDc3ZTFlNjY4ODgwMWZiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTkyLDM0ICsxOTIs
MzQgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zvck9y
aWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlMKICAgICB9CiB9CiAKLVN0b3JhZ2VBcmVhKiBT
dG9yYWdlTWFuYWdlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFt
ZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbikKK1N0b3JhZ2VB
cmVhKiBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9y
YWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbiwgUmVm
PFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKICAgICBpZiAoYXV0byogbG9jYWxTdG9yYWdlTmFtZXNwYWNlID0gZ2V0T3JDcmVhdGVM
b2NhbFN0b3JhZ2VOYW1lc3BhY2Uoc3RvcmFnZU5hbWVzcGFjZUlEKSkKLSAgICAgICAgcmV0dXJu
ICZsb2NhbFN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV1RGTW92ZShv
cmlnaW4pLCBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlciA/IExvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6SXNFcGhlbWVyYWw6Ok5vIDogTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpJc0VwaGVtZXJh
bDo6WWVzKTsKKyAgICAgICAgcmV0dXJuICZsb2NhbFN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3Jl
YXRlU3RvcmFnZUFyZWEoV1RGTW92ZShvcmlnaW4pLCBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlciA/IExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6SXNFcGhlbWVyYWw6Ok5vIDogTG9jYWxTdG9y
YWdlTmFtZXNwYWNlOjpJc0VwaGVtZXJhbDo6WWVzLCBXVEZNb3ZlKHdvcmtRdWV1ZSkpOwogCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVN0b3JhZ2VBcmVhKiBTdG9yYWdlTWFuYWdlcjo6Y3Jl
YXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcExldmVsT3JpZ2luLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4pCitTdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFj
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BMZXZlbE9yaWdpbiwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBSZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1
ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoKEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2U+Pjo6aXNW
YWxpZEtleShzdG9yYWdlTmFtZXNwYWNlSUQpKSk7CiAKICAgICBpZiAoYXV0byogdHJhbnNpZW50
TG9jYWxTdG9yYWdlTmFtZXNwYWNlID0gZ2V0T3JDcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VO
YW1lc3BhY2Uoc3RvcmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSkpCi0g
ICAgICAgIHJldHVybiAmdHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0
ZVN0b3JhZ2VBcmVhKFdURk1vdmUob3JpZ2luKSk7CisgICAgICAgIHJldHVybiAmdHJhbnNpZW50
TG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdURk1vdmUob3Jp
Z2luKSwgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotU3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZUFyZWEo
dWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBvcmlnaW4pCitTdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9y
YWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIG9yaWdpbiwgUmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKChIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U+Pjo6aXNWYWxpZEtleShzdG9yYWdlTmFtZXNw
YWNlSUQpKSk7CiAKICAgICBpZiAoYXV0byogc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UgPSBnZXRP
ckNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHN0b3JhZ2VOYW1lc3BhY2VJRCkpCi0gICAg
ICAgIHJldHVybiAmc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3JlYXRlU3RvcmFnZUFy
ZWEoV1RGTW92ZShvcmlnaW4pKTsKKyAgICAgICAgcmV0dXJuICZzZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUod29y
a1F1ZXVlKSk7CiAgICAgCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCmlu
ZGV4IDZmNWE4Y2M0MzdjYWZhYzNhMmFmNWIxYzZhNDMzOGUxNDVjYmFiOTYuLjEyYzZiMjU4OGQ0
NmRlNzg5N2U0YjhmMWNkM2U4Zjc4YjJkMGM1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCkBAIC03Nyw5
ICs3Nyw5IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9jYWxT
dG9yYWdlRGF0YWJhc2VRdW90YUluQnl0ZXM7CiAKLSAgICBTdG9yYWdlQXJlYSogY3JlYXRlTG9j
YWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmKTsKLSAgICBTdG9yYWdlQXJlYSogY3JlYXRlVHJhbnNpZW50TG9jYWxT
dG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7Ci0gICAgU3RvcmFn
ZUFyZWEqIGNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNl
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKKyAgICBTdG9yYWdlQXJlYSogY3Jl
YXRlTG9jYWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBSZWY8V29ya1F1ZXVlPiYmKTsKKyAgICBTdG9yYWdlQXJl
YSogY3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNw
YWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiwgUmVmPFdvcmtRdWV1ZT4mJik7CisgICAgU3RvcmFnZUFyZWEqIGNyZWF0ZVNl
c3Npb25TdG9yYWdlQXJlYSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBSZWY8V29ya1F1ZXVlPiYmKTsKIAogcHJpdmF0ZToKICAgICBM
b2NhbFN0b3JhZ2VOYW1lc3BhY2UqIGdldE9yQ3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHVp
bnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcAppbmRl
eCBiMGEzMjUxODU0MDc0ZTFkNjdmN2IzNzc3MTYwYTVjMzUzNTc1OWFmLi43YTY1Njk1ODVlZTk5
OWQ0ZTMzYWE1ZTZkZGI2YmNkZDY3MGZlMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5jcHAK
QEAgLTI5NCwxOSArMjk0LDE1IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xv
Y2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5j
cmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5E
YXRhKSk7CisgICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlTG9j
YWxTdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSksIG1f
cXVldWUuY29weVJlZigpKTsKICAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGludmFsaWRTdG9yYWdlQXJlYUlEKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7
Ci0gICAgYXV0b1tpdGVyLCBpc05ld0VudHJ5XSA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdl
QXJlYUlELCBudWxscHRyKTsKLSAgICBpZiAoaXNOZXdFbnRyeSkgewotICAgICAgICBzdG9yYWdl
QXJlYS0+c2V0V29ya1F1ZXVlKG1fcXVldWUucHRyKCkpOwotICAgICAgICBpdGVyLT52YWx1ZSA9
IHN0b3JhZ2VBcmVhOwotICAgIH0gZWxzZQotICAgICAgICBBU1NFUlQoc3RvcmFnZUFyZWEgPT0g
aXRlci0+dmFsdWUpOworICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdl
QXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7CisgICAgQVNTRVJUX1VOVVNFRChpdGVyLCBz
dG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9y
YWdlQXJlYUlEKTsKIApAQCAtMzIzLDE4ICszMTksMTUgQEAgdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6Y29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNv
bm4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gc3Rv
cmFnZU1hbmFnZXItPmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVz
cGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luRGF0YSksIFdURk1vdmUob3JpZ2luRGF0YSkp
OworICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVRyYW5zaWVu
dExvY2FsU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3Jp
Z2luRGF0YSksIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigpKTsKICAgICBp
ZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGludmFsaWRTdG9y
YWdlQXJlYUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gc3RvcmFnZUFy
ZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0b1tpdGVyLCBpc05ld0Vu
dHJ5XSA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBudWxscHRyKTsKLSAgICBp
ZiAoaXNOZXdFbnRyeSkKLSAgICAgICAgaXRlci0+dmFsdWUgPSBzdG9yYWdlQXJlYTsKLSAgICBl
bHNlCi0gICAgICAgIEFTU0VSVChzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZSk7CisgICAgYXV0
byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIHN0b3JhZ2VBcmVhKS5p
dGVyYXRvcjsKKyAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3JhZ2VBcmVhID09IGl0ZXItPnZh
bHVlKTsKIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhSUQpOwogCkBAIC0zNTEs
MTggKzM0NCwxNSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3Rv
cmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlU2Vz
c2lvblN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5EYXRhKSk7
CisgICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5EYXRhKSwgbV9xdWV1
ZS5jb3B5UmVmKCkpOwogICAgIGlmICghc3RvcmFnZUFyZWEpIHsKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoaW52YWxpZFN0b3JhZ2VBcmVhSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgYXV0byBzdG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAg
ICBhdXRvW2l0ZXIsIGlzTmV3RW50cnldID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIG51bGxwdHIpOwotICAgIGlmIChpc05ld0VudHJ5KQotICAgICAgICBpdGVyLT52YWx1ZSA9
IHN0b3JhZ2VBcmVhOwotICAgIGVsc2UKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VBcmVhID09IGl0
ZXItPnZhbHVlKTsKKyAgICBhdXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFy
ZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOworICAgIEFTU0VSVF9VTlVTRUQoaXRlciwgc3Rv
cmFnZUFyZWEgPT0gaXRlci0+dmFsdWUpOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFn
ZUFyZWFJRCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UuY3BwCmluZGV4IDg2MjRjN2ZkMTMxMWVjN2JlNTNhY2ZmNTNlMTc3NWQ5ZGZhZDhiOGYu
LjZlYWRlMjIxMjZmYjEwNGFlZDAyMzJiYzFhMWZjNTMzZjU5NTIwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3BwCkBAIC00NCwxMSArNDQsMTEg
QEAgVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjp+VHJhbnNpZW50TG9jYWxTdG9yYWdl
TmFtZXNwYWNlKCkKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAotU3RvcmFn
ZUFyZWEmIFRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdl
QXJlYShTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikKK1N0b3JhZ2VBcmVhJiBU
cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2Vj
dXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4sIFJlZjxXb3JrUXVldWU+JiYgd29ya1F1
ZXVlKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHJldHVybiAqbV9z
dG9yYWdlQXJlYU1hcC5lbnN1cmUoc2VjdXJpdHlPcmlnaW4sIFt0aGlzLCAmc2VjdXJpdHlPcmln
aW5dKCkgbXV0YWJsZSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFN0b3JhZ2VB
cmVhPihudWxscHRyLCBXVEZNb3ZlKHNlY3VyaXR5T3JpZ2luKSwgbV9xdW90YUluQnl0ZXMpOwor
ICAgIHJldHVybiAqbV9zdG9yYWdlQXJlYU1hcC5lbnN1cmUoc2VjdXJpdHlPcmlnaW4sIFsmXSgp
IG11dGFibGUgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4o
bnVsbHB0ciwgV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzLCBXVEZNb3Zl
KHdvcmtRdWV1ZSkpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExv
Y2FsU3RvcmFnZU5hbWVzcGFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5oCmluZGV4IGI3NmU0ZDBiNGMw
YWVjZjdlYWY2MTYzZWY2NjIwYTQzMDUwNmIxZGYuLjdjNjRiZTEwYmExM2QyN2Q1NGU4ZGU0OWFi
ZTZhNzY0MmMwYWEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFt
ZXNwYWNlLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIFRyYW5zaWVudExvY2FsU3Rv
cmFnZU5hbWVzcGFjZSgpOwogICAgIH5UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKTsK
IAotICAgIFN0b3JhZ2VBcmVhJiBnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmKTsKKyAgICBTdG9yYWdlQXJlYSYgZ2V0T3JDcmVhdGVTdG9yYWdlQXJl
YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgUmVmPFdvcmtRdWV1ZT4mJik7CiAgICAg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucygpIGNvbnN0OwogCiAg
ICAgdm9pZCBjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5nT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376552</attachid>
            <date>2019-08-16 15:53:18 -0700</date>
            <delta_ts>2019-08-16 18:06:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200832-20190816155317.patch</filename>
            <type>text/plain</type>
            <size>19702</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY2N2QzNzhkMDk3YjRmMDkz
ZmE2OWQ0MjhiMzNkZDIxZGU4NjQ1NDIuLjYzYmQ4OGFjNDdjODBiMjM3ZTQxMjE2YzM4ZjcyMjdl
ZjE3NmYxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDgtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFN0b3JhZ2VBcmVhOjpzZXRX
b3JrUXVldWUoKSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMDgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERyb3AgU3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSgpIG1lbWJl
ciBmdW5jdGlvbiBhbmQgcGFzcyB0aGUgV29ya1F1ZXVlIHRvIHRoZSBTdG9yYWdlQXJlYSBjb25z
dHJ1Y3RvciBpbnN0ZWFkLgorICAgICAgICBUaGUgV29ya1F1ZXVlIGNhbiBuZXZlciBnZXQgdXBk
YXRlZCBzbyBhbiBleHBsaWNpdCBzZXR0ZXIgaXMgbm90IG5lY2Vzc2FyeS4gSXQgYWxzbyBtYWtl
cyBpdCBjbGVhcmVyIHRoYXQgdGhlCisgICAgICAgIG1fcXVldWUgZGF0YSBtZW1iZXIgY2FuIG5l
dmVyIGJlIG51bGwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OlN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OmNsb25lIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWE6Om9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQgY29uc3QpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaDoKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6OnNldFdvcmtRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEp
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VB
cmVhKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNl
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2Nh
bFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JD
cmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9U
cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaDoKKwogMjAxOS0wOC0xNiAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBGdW5jdGlvbnMgd2l0
aCBubyBwYXJhbWV0ZXJzIGluIFdlYktpdC9TaGFyZWQvQVBJL2MgYW5kIFdlYktpdC9VSVByb2Nl
c3MvQVBJL0MgYXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvTG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3BwCmluZGV4IDkyYWE2
Mzk4ZTU2MTQ5Y2Y3ZTYwMzQwZmIwYzRiZTQzZmIxNzI2ZmMuLjYwNTdiOGUwNzA5ODk3NWUxYTZh
NTlkNzRjMjdmZjZiNWZmMTY4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3Bw
CkBAIC00NywxMSArNDcsMTEgQEAgTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjp+TG9jYWxTdG9yYWdl
TmFtZXNwYWNlKCkKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAotU3RvcmFn
ZUFyZWEmIExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShTZWN1
cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgSXNFcGhlbWVyYWwgaXNFcGhlbWVyYWwp
CitTdG9yYWdlQXJlYSYgTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VB
cmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBJc0VwaGVtZXJhbCBpc0Vw
aGVtZXJhbCwgUmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFwLmVuc3VyZShzZWN1
cml0eU9yaWdpbiwgWyZdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFN0b3JhZ2VBcmVhPihpc0VwaGVtZXJhbCA9PSBJc0VwaGVtZXJhbDo6WWVzID8gbnVsbHB0
ciA6IHRoaXMsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pLCBtX3F1b3RhSW5CeXRlcyk7CisgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFN0b3JhZ2VBcmVhPihpc0VwaGVtZXJhbCA9PSBJ
c0VwaGVtZXJhbDo6WWVzID8gbnVsbHB0ciA6IHRoaXMsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4p
LCBtX3F1b3RhSW5CeXRlcywgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICB9KS5pdGVyYXRvci0+
dmFsdWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaAppbmRleCA4ZTli
ZWI5NzMwOGYzNjQzMjM0NDVkNzA0YzU1ZGZhM2YzYTk3OWUwLi41ZWYzZmVmY2IzNjEyNThjOWU4
MTY4MWFkNTFmMDhmZjM3ZTA4NGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZU5hbWVzcGFjZS5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtR
dWV1ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6
CiAgICAgU3RvcmFnZU1hbmFnZXIqIHN0b3JhZ2VNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gJm1f
c3RvcmFnZU1hbmFnZXI7IH0KIAogICAgIGVudW0gY2xhc3MgSXNFcGhlbWVyYWwgOiBib29sIHsg
Tm8sIFllcyB9OwotICAgIFN0b3JhZ2VBcmVhJiBnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBJc0VwaGVtZXJhbCk7CisgICAgU3RvcmFnZUFyZWEm
IGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIElz
RXBoZW1lcmFsLCBSZWY8V29ya1F1ZXVlPiYmKTsKIAogICAgIHZvaWQgY2xlYXJTdG9yYWdlQXJl
YXNNYXRjaGluZ09yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsKICAg
ICB2b2lkIGNsZWFyQWxsU3RvcmFnZUFyZWFzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlLmNwcAppbmRleCBmOGEwYTI1MDdlZjgwYzkxNGMwOTM4N2U4NTc1ZTgxMTA0MjI0ZjY4
Li5lODZkZTI0YzM4NjExZTBmNTNjMDYyMTljMzcwMjBlYzVkMDEzMTA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5jcHAKQEAgLTQzLDExICs0MywxMSBAQCBTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZTo6flNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKIH0KIAotU3RvcmFnZUFyZWEmIFNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5
T3JpZ2luKQorU3RvcmFnZUFyZWEmIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0
ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2luLCBSZWY8V29y
a1F1ZXVlPiYmIHdvcmtRdWV1ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5T3JpZ2luLCBbdGhp
cywgJnNlY3VyaXR5T3JpZ2luXSgpIG11dGFibGUgewotICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIG1f
cXVvdGFJbkJ5dGVzKTsKKyAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3Vy
aXR5T3JpZ2luLCBbJl0oKSBtdXRhYmxlIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U3RvcmFnZUFyZWE+KG51bGxwdHIsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pLCBtX3F1b3Rh
SW5CeXRlcywgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWUuZ2V0
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmgKaW5kZXggNGMwZGM0OGYx
ZTRmYTdlMjU5MjUyMTI1YTNkMzBkNzM4ZmE4NWMzMi4uM2I3MGYxMjQxYzRmZDY4N2FhMDBmODky
ZWZiZjQyNTAzY2I2OGQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQyLDcgKzQz
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zdG9y
YWdlQXJlYU1hcC5pc0VtcHR5KCk7IH0KIAotICAgIFN0b3JhZ2VBcmVhJiBnZXRPckNyZWF0ZVN0
b3JhZ2VBcmVhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmKTsKKyAgICBTdG9yYWdlQXJl
YSYgZ2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
UmVmPFdvcmtRdWV1ZT4mJik7CiAKICAgICB2b2lkIGNsb25lVG8oU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UmIG5ld1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAKaW5kZXgg
NzEyNTlmZWU5ODBiZTRlNGQ5MGFhNWY0NWMxOTE1MDg3NDhhMzQ2Zi4uMTIzNTA3NzYwZGFlNTc0
ODQ2NGYzZTMyMjA5ZGRhZjk1MTM5NGExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCkBAIC00MiwxMiArNDIs
MTMgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlU3RvcmFnZUFyZWFJZGVudGlmaWVyKCkKICAg
ICByZXR1cm4gKytpZGVudGlmaWVyOwogfQogCi1TdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9j
YWxTdG9yYWdlTmFtZXNwYWNlKiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcykKK1N0b3Jh
Z2VBcmVhOjpTdG9yYWdlQXJlYShMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqIGxvY2FsU3RvcmFnZU5h
bWVzcGFjZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzLCBSZWY8V29ya1F1ZXVlPiYmIHF1ZXVlKQogICAgIDogbV9sb2NhbFN0
b3JhZ2VOYW1lc3BhY2UobWFrZVdlYWtQdHIobG9jYWxTdG9yYWdlTmFtZXNwYWNlKSkKICAgICAs
IG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhx
dW90YUluQnl0ZXMpCiAgICAgLCBtX3N0b3JhZ2VNYXAoU3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVv
dGFJbkJ5dGVzKSkKICAgICAsIG1faWRlbnRpZmllcihnZW5lcmF0ZVN0b3JhZ2VBcmVhSWRlbnRp
ZmllcigpKQorICAgICwgbV9xdWV1ZShXVEZNb3ZlKHF1ZXVlKSkKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKIH0KQEAgLTg4LDcgKzg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFN0
b3JhZ2VBcmVhPiBTdG9yYWdlQXJlYTo6Y2xvbmUoKSBjb25zdAogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIEFTU0VSVCghbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2UpOwogCi0g
ICAgYXV0byBzdG9yYWdlQXJlYSA9IHN0ZDo6bWFrZV91bmlxdWU8U3RvcmFnZUFyZWE+KG51bGxw
dHIsIG1fc2VjdXJpdHlPcmlnaW4sIG1fcXVvdGFJbkJ5dGVzKTsKKyAgICBhdXRvIHN0b3JhZ2VB
cmVhID0gc3RkOjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgbV9zZWN1cml0eU9y
aWdpbiwgbV9xdW90YUluQnl0ZXMsIG1fcXVldWUuY29weVJlZigpKTsKICAgICBzdG9yYWdlQXJl
YS0+bV9zdG9yYWdlTWFwID0gbV9zdG9yYWdlTWFwOwogCiAgICAgcmV0dXJuIHN0b3JhZ2VBcmVh
OwpAQCAtMTgyLDEwICsxODMsOSBAQCB2b2lkIFN0b3JhZ2VBcmVhOjpvcGVuRGF0YWJhc2VBbmRJ
bXBvcnRJdGVtc0lmTmVlZGVkKCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KG1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5zdG9yYWdlTWFuYWdlcigpLT5sb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIoKSk7Ci0gICAgQVNTRVJUKG1fcXVldWUpOwogICAgIC8vIFdlIG9wZW4g
dGhlIGRhdGFiYXNlIGhlcmUgZXZlbiBpZiB3ZSd2ZSBhbHJlYWR5IGltcG9ydGVkIG91ciBpdGVt
cyB0byBlbnN1cmUgdGhhdCB0aGUgZGF0YWJhc2UgaXMgb3BlbiBpZiB3ZSBuZWVkIHRvIHdyaXRl
IHRvIGl0LgogICAgIGlmICghbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSkKLSAgICAgICAgbV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZSA9IExvY2FsU3RvcmFnZURhdGFiYXNlOjpjcmVhdGUoKm1fcXVldWUs
ICptX2xvY2FsU3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyKCksIG1fc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBtX2xvY2FsU3Rv
cmFnZURhdGFiYXNlID0gTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmNyZWF0ZShtX3F1ZXVlLmNvcHlS
ZWYoKSwgKm1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5zdG9yYWdlTWFuYWdlcigpLT5sb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIoKSwgbV9zZWN1cml0eU9yaWdpbik7CiAKICAgICBpZiAobV9k
aWRJbXBvcnRJdGVtc0Zyb21EYXRhYmFzZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaAppbmRl
eCA5ZjdiNDgyNThiNmE1NDc0ZGE4OTlhMTNkMmVjNTEzNWU2ZDEyNTQ5Li4zMzFlMjM2MjU5ODRh
NGVhOTgyNTVjNDEyMjc4ZTBiOTNhODdhYWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuaApAQCAtNDIsNyArNDIsNyBA
QCBjbGFzcyBTdG9yYWdlQXJlYSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RvcmFnZUFy
ZWEpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFN0b3JhZ2VB
cmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcyk7CisgICAgU3RvcmFnZUFyZWEoTG9jYWxTdG9y
YWdlTmFtZXNwYWNlKiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzLCBSZWY8V29ya1F1ZXVlPiYmKTsKICAgICB+U3RvcmFnZUFyZWEoKTsK
IAogICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luOyB9CkBAIC02NSw4ICs2NSw2IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgb3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpIGNv
bnN0OwogCi0gICAgdm9pZCBzZXRXb3JrUXVldWUoUmVmUHRyPFdvcmtRdWV1ZT4mJiBxdWV1ZSkg
eyBtX3F1ZXVlID0gV1RGTW92ZShxdWV1ZSk7IH0KLQogICAgIHZvaWQgc3luY1RvRGF0YWJhc2Uo
KTsKIAogcHJpdmF0ZToKQEAgLTg0LDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQ+IG1fZXZlbnRMaXN0ZW5lcnM7CiAKICAgICB1aW50NjRf
dCBtX2lkZW50aWZpZXI7Ci0gICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKKyAgICBSZWY8
V29ya1F1ZXVlPiBtX3F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcAppbmRleCBiZmRjNmE4ZjJlNjc5NDJhMGVhYzMwNjhlMzZkZGFjMmQxYTlmM2M3
Li41MmMyMTM1ODI0OWJlM2JhOTZhMzRmMTA3N2UxZTY2ODg4MDFmYmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlci5jcHAKQEAgLTE5MiwzNCArMTkyLDM0IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmRlbGV0
ZUxvY2FsU3RvcmFnZUVudHJpZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTCiAg
ICAgfQogfQogCi1TdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZUxvY2FsU3RvcmFn
ZUFyZWEodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBvcmlnaW4pCitTdG9yYWdlQXJlYSogU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZUxvY2Fs
U3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW4sIFJlZjxXb3JrUXVldWU+JiYgd29ya1F1ZXVlKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKGF1dG8qIGxvY2FsU3RvcmFn
ZU5hbWVzcGFjZSA9IGdldE9yQ3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHN0b3JhZ2VOYW1l
c3BhY2VJRCkpCi0gICAgICAgIHJldHVybiAmbG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5nZXRPckNy
ZWF0ZVN0b3JhZ2VBcmVhKFdURk1vdmUob3JpZ2luKSwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIgPyBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OklzRXBoZW1lcmFsOjpObyA6IExvY2FsU3Rv
cmFnZU5hbWVzcGFjZTo6SXNFcGhlbWVyYWw6Olllcyk7CisgICAgICAgIHJldHVybiAmbG9jYWxT
dG9yYWdlTmFtZXNwYWNlLT5nZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdURk1vdmUob3JpZ2luKSwg
bV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIgPyBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6Oklz
RXBoZW1lcmFsOjpObyA6IExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6SXNFcGhlbWVyYWw6Olllcywg
V1RGTW92ZSh3b3JrUXVldWUpKTsKIAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1TdG9yYWdl
QXJlYSogU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEodWlu
dDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0
b3BMZXZlbE9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luKQorU3Rv
cmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVh
KHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgdG9wTGV2ZWxPcmlnaW4sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbiwg
UmVmPFdvcmtRdWV1ZT4mJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgQVNTRVJUKChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VHJhbnNpZW50TG9j
YWxTdG9yYWdlTmFtZXNwYWNlPj46OmlzVmFsaWRLZXkoc3RvcmFnZU5hbWVzcGFjZUlEKSkpOwog
CiAgICAgaWYgKGF1dG8qIHRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZSA9IGdldE9yQ3Jl
YXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RG
TW92ZSh0b3BMZXZlbE9yaWdpbikpKQotICAgICAgICByZXR1cm4gJnRyYW5zaWVudExvY2FsU3Rv
cmFnZU5hbWVzcGFjZS0+Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9yaWdpbikpOwor
ICAgICAgICByZXR1cm4gJnRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS0+Z2V0T3JDcmVh
dGVTdG9yYWdlQXJlYShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUod29ya1F1ZXVlKSk7CiAgICAg
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVN0b3JhZ2VBcmVhKiBTdG9yYWdlTWFuYWdlcjo6
Y3JlYXRlU2Vzc2lvblN0b3JhZ2VBcmVhKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luKQorU3RvcmFnZUFyZWEqIFN0b3JhZ2VN
YW5hZ2VyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFj
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIFJlZjxXb3JrUXVldWU+
JiYgd29ya1F1ZXVlKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFT
U0VSVCgoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlPj46
OmlzVmFsaWRLZXkoc3RvcmFnZU5hbWVzcGFjZUlEKSkpOwogCiAgICAgaWYgKGF1dG8qIHNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlID0gZ2V0T3JDcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShz
dG9yYWdlTmFtZXNwYWNlSUQpKQotICAgICAgICByZXR1cm4gJnNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlLT5nZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFdURk1vdmUob3JpZ2luKSk7CisgICAgICAgIHJl
dHVybiAmc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UtPmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoV1RG
TW92ZShvcmlnaW4pLCBXVEZNb3ZlKHdvcmtRdWV1ZSkpOwogICAgIAogICAgIHJldHVybiBudWxs
cHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAppbmRleCA2ZjVhOGNjNDM3Y2FmYWMzYTJhZjViMWM2YTQz
MzhlMTQ1Y2JhYjk2Li4xMmM2YjI1ODhkNDZkZTc4OTdlNGI4ZjFjZDNlOGY3OGIyZDBjNTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuaApAQCAtNzcsOSArNzcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGxvY2FsU3RvcmFnZURhdGFiYXNlUXVvdGFJbkJ5dGVzOwogCi0g
ICAgU3RvcmFnZUFyZWEqIGNyZWF0ZUxvY2FsU3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFnZU5h
bWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7Ci0gICAgU3RvcmFnZUFy
ZWEqIGNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFnZU5hbWVz
cGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYpOwotICAgIFN0b3JhZ2VBcmVhKiBjcmVhdGVTZXNzaW9uU3RvcmFnZUFyZWEo
dWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
Jik7CisgICAgU3RvcmFnZUFyZWEqIGNyZWF0ZUxvY2FsU3RvcmFnZUFyZWEodWludDY0X3Qgc3Rv
cmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgUmVmPFdvcmtR
dWV1ZT4mJik7CisgICAgU3RvcmFnZUFyZWEqIGNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFy
ZWEodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFJlZjxXb3JrUXVldWU+JiYpOwor
ICAgIFN0b3JhZ2VBcmVhKiBjcmVhdGVTZXNzaW9uU3RvcmFnZUFyZWEodWludDY0X3Qgc3RvcmFn
ZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgUmVmPFdvcmtRdWV1
ZT4mJik7CiAKIHByaXZhdGU6CiAgICAgTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBnZXRPckNyZWF0
ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTWFuYWdlclNldC5jcHAKaW5kZXggYjBhMzI1MTg1NDA3NGUxZDY3ZjdiMzc3NzE2MGE1
YzM1MzU3NTlhZi4uN2E2NTY5NTg1ZWU5OTlkNGUzM2FhNWU2ZGRiNmJjZGQ2NzBmZTBiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCkBAIC0yOTQsMTkgKzI5NCwxNSBAQCB2b2lkIFN0b3Jh
Z2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgUAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byogc3RvcmFn
ZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlTG9jYWxTdG9yYWdlQXJlYShzdG9yYWdlTmFt
ZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSkpOworICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0g
c3RvcmFnZU1hbmFnZXItPmNyZWF0ZUxvY2FsU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFjZUlE
LCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBtX3F1ZXVlLmNvcHlSZWYoKSk7CiAgICAgaWYgKCFzdG9y
YWdlQXJlYSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnZhbGlkU3RvcmFnZUFyZWFJ
RCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBz
dG9yYWdlQXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG9baXRlciwgaXNOZXdFbnRyeV0gPSBt
X3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgbnVsbHB0cik7Ci0gICAgaWYgKGlzTmV3
RW50cnkpIHsKLSAgICAgICAgc3RvcmFnZUFyZWEtPnNldFdvcmtRdWV1ZShtX3F1ZXVlLnB0cigp
KTsKLSAgICAgICAgaXRlci0+dmFsdWUgPSBzdG9yYWdlQXJlYTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgQVNTRVJUKHN0b3JhZ2VBcmVhID09IGl0ZXItPnZhbHVlKTsKKyAgICBhdXRvIGl0ZXIgPSBt
X3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwor
ICAgIEFTU0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUpOwogCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7CiAKQEAgLTMyMywxOCArMzE5LDE1
IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVUcmFuc2llbnRMb2Nh
bFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbkRh
dGEpLCBXVEZNb3ZlKG9yaWdpbkRhdGEpKTsKKyAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3Jh
Z2VNYW5hZ2VyLT5jcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3Bh
Y2VJRCwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBt
X3F1ZXVlLmNvcHlSZWYoKSk7CiAgICAgaWYgKCFzdG9yYWdlQXJlYSkgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihpbnZhbGlkU3RvcmFnZUFyZWFJRCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRlbnRpZmllcigp
OwotICAgIGF1dG9baXRlciwgaXNOZXdFbnRyeV0gPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFn
ZUFyZWFJRCwgbnVsbHB0cik7Ci0gICAgaWYgKGlzTmV3RW50cnkpCi0gICAgICAgIGl0ZXItPnZh
bHVlID0gc3RvcmFnZUFyZWE7Ci0gICAgZWxzZQotICAgICAgICBBU1NFUlQoc3RvcmFnZUFyZWEg
PT0gaXRlci0+dmFsdWUpOworICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9y
YWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7CisgICAgQVNTRVJUX1VOVVNFRChpdGVy
LCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihz
dG9yYWdlQXJlYUlEKTsKIApAQCAtMzUxLDE4ICszNDQsMTUgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0g
c3RvcmFnZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNl
SUQsIFdURk1vdmUob3JpZ2luRGF0YSkpOworICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFn
ZU1hbmFnZXItPmNyZWF0ZVNlc3Npb25TdG9yYWdlQXJlYShzdG9yYWdlTmFtZXNwYWNlSUQsIFdU
Rk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigpKTsKICAgICBpZiAoIXN0b3JhZ2VB
cmVhKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGludmFsaWRTdG9yYWdlQXJlYUlEKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3Jh
Z2VBcmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0b1tpdGVyLCBpc05ld0VudHJ5XSA9IG1fc3Rv
cmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBudWxscHRyKTsKLSAgICBpZiAoaXNOZXdFbnRy
eSkKLSAgICAgICAgaXRlci0+dmFsdWUgPSBzdG9yYWdlQXJlYTsKLSAgICBlbHNlCi0gICAgICAg
IEFTU0VSVChzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZSk7CisgICAgYXV0byBpdGVyID0gbV9z
dG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKKyAg
ICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3JhZ2VBcmVhID09IGl0ZXItPnZhbHVlKTsKIAogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhSUQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFn
ZU5hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcAppbmRleCA4NjI0YzdmZDEzMTFlYzdi
ZTUzYWNmZjUzZTE3NzVkOWRmYWQ4YjhmLi42ZWFkZTIyMTI2ZmIxMDRhZWQwMjMyYmMxYTFmYzUz
M2Y1OTUyMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNw
YWNlLmNwcApAQCAtNDQsMTEgKzQ0LDExIEBAIFRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFj
ZTo6flRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZSgpCiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiB9CiAKLVN0b3JhZ2VBcmVhJiBUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJp
dHlPcmlnaW4pCitTdG9yYWdlQXJlYSYgVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpn
ZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3JpZ2lu
LCBSZWY8V29ya1F1ZXVlPiYmIHdvcmtRdWV1ZSkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5zdXJlKHNlY3VyaXR5T3Jp
Z2luLCBbdGhpcywgJnNlY3VyaXR5T3JpZ2luXSgpIG11dGFibGUgewotICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxTdG9yYWdlQXJlYT4obnVsbHB0ciwgV1RGTW92ZShzZWN1cml0eU9y
aWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKKyAgICByZXR1cm4gKm1fc3RvcmFnZUFyZWFNYXAuZW5z
dXJlKHNlY3VyaXR5T3JpZ2luLCBbJl0oKSBtdXRhYmxlIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8U3RvcmFnZUFyZWE+KG51bGxwdHIsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4p
LCBtX3F1b3RhSW5CeXRlcywgV1RGTW92ZSh3b3JrUXVldWUpKTsKICAgICB9KS5pdGVyYXRvci0+
dmFsdWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UuaAppbmRleCBiNzZlNGQwYjRjMGFlY2Y3ZWFmNjE2M2VmNjYyMGE0MzA1MDZiMWRmLi5j
NDUzMjViMzNlYzkxOTFjOWQ3MjA4NzkwNjdmMWViYzhmZWE5MzQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvVHJhbnNpZW50TG9jYWxTdG9yYWdl
TmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDAsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAg
VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKCk7CiAgICAgflRyYW5zaWVudExvY2FsU3Rv
cmFnZU5hbWVzcGFjZSgpOwogCi0gICAgU3RvcmFnZUFyZWEmIGdldE9yQ3JlYXRlU3RvcmFnZUFy
ZWEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYpOworICAgIFN0b3JhZ2VBcmVhJiBnZXRP
ckNyZWF0ZVN0b3JhZ2VBcmVhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBSZWY8V29y
a1F1ZXVlPiYmKTsKICAgICBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmln
aW5zKCkgY29uc3Q7CiAKICAgICB2b2lkIGNsZWFyU3RvcmFnZUFyZWFzTWF0Y2hpbmdPcmlnaW4o
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>