<?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>37433</bug_id>
          
          <creation_ts>2010-04-11 21:52:32 -0700</creation_ts>
          <short_desc>REGRESSION(r57468): Broke the world...  Must have applied the patch wrong (Requested by abarth on #webkit).</short_desc>
          <delta_ts>2010-04-11 21:55:13 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>37175</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>211534</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-11 21:52:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57468 broke the build:
Broke the world...  Must have applied the patch wrong (Requested by abarth on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211535</commentid>
    <comment_count>1</comment_count>
      <attachid>53144</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-11 21:52:42 -0700</bug_when>
    <thetext>Created attachment 53144
ROLLOUT of r57468

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211536</commentid>
    <comment_count>2</comment_count>
      <attachid>53144</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-11 21:55:06 -0700</bug_when>
    <thetext>Comment on attachment 53144
ROLLOUT of r57468

Clearing flags on attachment: 53144

Committed r57469: &lt;http://trac.webkit.org/changeset/57469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211537</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-11 21:55:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53144</attachid>
            <date>2010-04-11 21:52:42 -0700</date>
            <delta_ts>2010-04-11 21:55:06 -0700</delta_ts>
            <desc>ROLLOUT of r57468</desc>
            <filename>bug-37433-20100412045241.patch</filename>
            <type>text/plain</type>
            <size>65797</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAzNzU3ZDhmLi5hMTlkN2UyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
V2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yODUsNyArMjg1LDYgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9
ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0RvY0xvYWRlci5jcHAgXAogCWxvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgXAogCWxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
IFwKLQlsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIFwKIAlsb2FkZXIvRm9ybVN0YXRlLmNwcCBc
CiAJbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDdkYzU3YTcuLjZmZmE3NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTAtMDQtMTEgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI1NzQ2OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvNTc0NjgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM3NDMzCisKKyAgICAgICAgQnJva2UgdGhlIHdvcmxkLi4uICBNdXN0IGhhdmUgYXBwbGll
ZCB0aGUgcGF0Y2ggd3JvbmcKKyAgICAgICAgKFJlcXVlc3RlZCBieSBhYmFydGggb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgor
ICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlSWZKYXZhU2NyaXB0VVJMKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNsb3NlKToKKyAg
ICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20v
U2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50RGF0YTo6
c2NyaXB0Q2hhcnNldCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBsb2Fk
ZXIvRG9jTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY0xvYWRlcjo6cmVxdWVzdFBy
ZWxvYWQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZmluaXNoZWRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyOjpzZXR1cEZvclJlcGxhY2VCeU1JTUVUeXBlKToKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFdyaXRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjYW5SZWZlclRvUGFyZW50RnJhbWVFbmNvZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlcGxhY2VEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2xlYXIp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVkRmlyc3REYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRSZXNwb25zZU1JTUVUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZW5kSWZOb3RMb2FkaW5nTWFpblJlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjplbmNvZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6c2V0RW5jb2RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmFkZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnRyYW5zaXRpb25U
b0NvbW1pdHRlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6b3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZmluaXNoZWRMb2FkaW5nRG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFEb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURvY3VtZW50OjpyZXBsYWNlTWVkaWFF
bGVtZW50VGltZXJGaXJlZCk6CisgICAgICAgICogbG9hZGVyL1BsdWdpbkRvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblRva2VuaXplcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhQnVpbGRlcjo6ZGF0YUVuY29kaW5nKToKKyAgICAgICAg
KiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6
OmRhdGFDaGFuZ2VkKToKKwogMjAxMC0wNC0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZTQ5Yjkz
ZS4uOWIyNGMzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzA2LDggKzEzMDYsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAogCVdlYkNvcmUvbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5oIFwKLQlXZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAg
XAotCVdlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIFwKIAlXZWJDb3JlL2xvYWRlci9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
XAogCVdlYkNvcmUvbG9hZGVyL0ZUUERpcmVjdG9yeURvY3VtZW50LmggXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4
IDJiNTc5MGIuLjMxNWM3ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAor
KysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTE1Nyw2ICsxNTcsNyBAQCBfX1pON1dl
YkNvcmUxMUZpbGVDaG9vc2VyMTFjaG9vc2VGaWxlc0VSS04zV1RGNlZlY3RvcklOU182U3RyaW5n
RUxtMEVFRQogX19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlckQxRXYKIF9fWk43V2ViQ29yZTExRnJh
bWVMb2FkZXIxMWNvbXBsZXRlVVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExRnJhbWVM
b2FkZXIxMWxvYWRBcmNoaXZlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdBcmNoaXZlRUVFCitfX1pO
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMTFzZXRFbmNvZGluZ0VSS05TXzZTdHJpbmdFYgogX19aTjdX
ZWJDb3JlMTFGcmFtZUxvYWRlcjEyc2hvdWxkUmVsb2FkRVJLTlNfNEtVUkxFUzNfCiBfX1pON1dl
YkNvcmUxMUZyYW1lTG9hZGVyMTRkZXRhY2hDaGlsZHJlbkV2CiBfX1pON1dlYkNvcmUxMUZyYW1l
TG9hZGVyMTRzdG9wQWxsTG9hZGVyc0VOU18xNERhdGFiYXNlUG9saWN5RQpAQCAtMzAxLDcgKzMw
Miw2IEBAIF9fWk43V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXI4c2V0VGl0bGVFUktOU182U3RyaW5n
RQogX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlckMxRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RF
UktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRlckMyRVJL
TlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRQogX19aTjdXZWJDb3Jl
MTREb2N1bWVudExvYWRlckQyRXYKLV9fWk43V2ViQ29yZTE0RG9jdW1lbnRXcml0ZXIxMXNldEVu
Y29kaW5nRVJLTlNfNlN0cmluZ0ViCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMTJyZWxl
YXNlUHJveHlFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTIwZm9yY2VDb250ZW50U25p
ZmZpbmdFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFdgpA
QCAtODEzLDYgKzgxMyw3IEBAIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRmcmFtZUhhc0xv
YWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE1Y29udGFpbnNQbHVnaW5zRXYKIF9f
Wk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTVmaXJzdExheW91dERvbmVFdgogX19aTks3V2ViQ29y
ZTExRnJhbWVMb2FkZXIxNm91dGdvaW5nUmVmZXJyZXJFdgorX19aTks3V2ViQ29yZTExRnJhbWVM
b2FkZXIxNnJlc3BvbnNlTUlNRVR5cGVFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIyMGFj
dGl2ZURvY3VtZW50TG9hZGVyRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMjdudW1QZW5k
aW5nT3JMb2FkaW5nUmVxdWVzdHNFYgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXI4bG9hZFR5
cGVFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBlNjVmZmQ3Li5lYjNjYzIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTczMiw4ICsxNzMyLDYgQEAKICAg
ICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaCcsCi0gICAgICAgICAgICAnbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcCcsCi0gICAgICAgICAgICAnbG9hZGVyL0RvY3VtZW50V3JpdGVyLmgnLAogICAgICAg
ICAgICAgJ2xvYWRlci9FbXB0eUNsaWVudHMuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZUUERp
cmVjdG9yeURvY3VtZW50LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL0ZUUERpcmVjdG9yeURv
Y3VtZW50LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggMGUyZWU3ZC4uNzk4ODI3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC03MzQsNyArNzM0LDYgQEAgU09V
UkNFUyArPSBcCiAgICAgbG9hZGVyL0RvY0xvYWRlci5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIFwK
LSAgICBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIFwKICAgICBsb2FkZXIvRm9ybVN0YXRlLmNw
cCBcCiAgICAgbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1NmNh
MTU0Li45ZGVhY2NmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIx
Mzk3LDE0ICsyMTM5Nyw2IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxEb2N1bWVudFdyaXRlci5jcHAiDQotCQkJCT4NCi0JCQk8
L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcRG9jdW1lbnRX
cml0ZXIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjhkNWZjYS4uYTY2NjhjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI0ODIsOCArMjQ4Miw2IEBACiAJCTk3MDU5OTc4MTA3RDk3NTIwMEE1MEE3QyAv
KiBQb2xpY3lDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTcwNTk5NzQxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNhbGxiYWNrLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwNTk5Nzkx
MDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBv
bGljeUNoZWNrZXIuY3BwICovOyB9OwogCQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9s
aWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NzM4ODlBMDExNkVBOURD
MDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTczODg5OUUxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50
V3JpdGVyLmNwcCAqLzsgfTsKLQkJOTczODg5QTExMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50
V3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzM4ODk5RjExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzNFMzI1NjEwODgzQjdDMDA1
QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTczRTMyNTQxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291
cmNlTG9hZE5vdGlmaWVyLmNwcCAqLzsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAwNUJDNDkzIC8q
IFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5NzlGNDNEMzEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDExMDc1RTQ0
QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKQEAgLTc5MTcsOCArNzkx
NSw2IEBACiAJCTk3MDU5OTc0MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xpY3lDYWxsYmFjay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb2xpY3lD
aGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5NzYxMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUG9saWN5Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzM4
ODk5RTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRXcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5NzM4ODk5RjExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRXcml0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRTMyNTQxMDg4M0I3QzAwNUJDNDkzIC8q
IFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTczRTMyNTUxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE5vdGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QxMTA3NUU0NEEwMDAwRjgzQiAv
KiBSZWRpcmVjdFNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZWRpcmVjdFNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTIxOSw4ICsxNTIxNSw2IEBACiAJCQkJNjU2RDM3MUUwQURCQTVERTAwQTQ1NTREIC8qIERv
Y3VtZW50TG9hZGVyLmggKi8sCiAJCQkJMEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgKi8sCiAJCQkJMEI5MDU2MTYwRjI1NzhCRTAwOTVGRjZB
IC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oICovLAotCQkJCTk3Mzg4OTlFMTE2RUE5REMw
MEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgKi8sCi0JCQkJOTczODg5OUYxMTZFQTlEQzAw
QURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi8sCiAJCQkJQjI1NTk5MEQwRDAwRDhCOTAwQkI4
MjVDIC8qIEVtcHR5Q2xpZW50cy5oICovLAogCQkJCTY1NkQzNzIzMEFEQkE1REUwMEE0NTU0RCAv
KiBGb3JtU3RhdGUuY3BwICovLAogCQkJCTY1NkQzNzIyMEFEQkE1REUwMEE0NTU0RCAvKiBGb3Jt
U3RhdGUuaCAqLywKQEAgLTIxMDY3LDcgKzIxMDYxLDYgQEAKIAkJCQkyNTQyRjREQTExNjZDMjVB
MDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzVENEFBNzkxMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4OTUyNTNENzExNkM0QzY4MDBDQUJGMDAgLyogRmlsZVN0cmVhbS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk5NzM4ODlBMDExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL1Njcmlw
dENvbnRyb2xsZXJCYXNlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJh
c2UuY3BwCmluZGV4IDQxZDJlMGEuLjA0NjdmMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0
Q29udHJvbGxlckJhc2UuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBTY3JpcHRDb250cm9s
bGVyOjpleGVjdXRlSWZKYXZhU2NyaXB0VVJMKGNvbnN0IEtVUkwmIHVybCwgYm9vbCB1c2VyR2Vz
dHVyZSwKICAgICAvLyAgICAgICAgc3luY2hyb25vdXNseSBjYW4gY2F1c2UgY3Jhc2hlczoKICAg
ICAvLyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3ODIK
ICAgICBpZiAocmVwbGFjZURvY3VtZW50KSAKLSAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPndy
aXRlcigpLT5yZXBsYWNlRG9jdW1lbnQoc2NyaXB0UmVzdWx0KTsKKyAgICAgICAgbV9mcmFtZS0+
bG9hZGVyKCktPnJlcGxhY2VEb2N1bWVudChzY3JpcHRSZXN1bHQpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggZTU2ZGE3My4uNjM4ZjQ3OSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc2
OSw3ICsxNzY5LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xvc2UoKQogICAgIGlmIChmcmFtZSkgewog
ICAgICAgICAvLyBUaGlzIGNvZGUgY2FsbHMgaW1wbGljaXRDbG9zZSgpIGlmIGFsbCBsb2FkaW5n
IGhhcyBjb21wbGV0ZWQuCiAgICAgICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1l
LT5sb2FkZXIoKTsKLSAgICAgICAgZnJhbWVMb2FkZXItPndyaXRlcigpLT5lbmRJZk5vdExvYWRp
bmdNYWluUmVzb3VyY2UoKTsKKyAgICAgICAgZnJhbWVMb2FkZXItPmVuZElmTm90TG9hZGluZ01h
aW5SZXNvdXJjZSgpOwogICAgICAgICBmcmFtZUxvYWRlci0+Y2hlY2tDb21wbGV0ZWQoKTsKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBCZWNhdXNlIHdlIGhhdmUgbm8gZnJhbWUsIHdlIGRvbid0
IGtub3cgaWYgYWxsIGxvYWRpbmcgaGFzIGNvbXBsZXRlZCwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCmluZGV4IDE5NGRkOWEuLjkyYTJiNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9kb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IFN0cmluZyBjaGFyc2V0ID0gYXR0cnMuZ2V0KCJjaGFyc2V0Iik7CiAgICAgICAgICAgICAgICAg
aWYgKGNoYXJzZXQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPndyaXRlcigpLT5lbmNvZGluZygpOworICAgICAg
ICAgICAgICAgICAgICBjaGFyc2V0ID0gZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmVu
Y29kaW5nKCk7CiAKICAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+
ZG9jTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHVybCwgY2hhcnNldCk7CiAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDIyZDY5ODEuLjczMWMzYmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgU3RyaW5nIFNjcmlwdEVsZW1lbnREYXRh
OjpzY3JpcHRDaGFyc2V0KCkgY29uc3QKICAgICAvLyBJZiBjaGFyc2V0IGhhcyBub3QgYmVlbiBk
ZWNsYXJlZCBpbiBzY3JpcHQgdGFnLCBmYWxsIGJhY2sgdG8gZnJhbWUgZW5jb2RpbmcuCiAgICAg
aWYgKGNoYXJzZXQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAgICAgICAgICBjaGFyc2V0ID0gZnJhbWUt
PmxvYWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSBm
cmFtZS0+bG9hZGVyKCktPmVuY29kaW5nKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNoYXJzZXQ7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGU4NTAwN2YuLmU3M2EzNjAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBIVE1MTGlua0VsZW1l
bnQ6OnByb2Nlc3MoKQogICAgICAgICAKICAgICAgICAgU3RyaW5nIGNoYXJzZXQgPSBnZXRBdHRy
aWJ1dGUoY2hhcnNldEF0dHIpOwogICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkgJiYgZG9j
dW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNoYXJzZXQgPSBkb2N1bWVudCgpLT5mcmFt
ZSgpLT5sb2FkZXIoKS0+d3JpdGVyKCktPmVuY29kaW5nKCk7CisgICAgICAgICAgICBjaGFyc2V0
ID0gZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmVuY29kaW5nKCk7CiAKICAgICAgICAg
aWYgKG1fY2FjaGVkU2hlZXQpIHsKICAgICAgICAgICAgIGlmIChtX2xvYWRpbmcpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9jTG9h
ZGVyLmNwcAppbmRleCBhMzlkM2FhLi4zMWUxZjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9Eb2NMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAKQEAgLTQw
NCw3ICs0MDQsNyBAQCB2b2lkIERvY0xvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbgogewogICAgIFN0cmluZyBlbmNv
ZGluZzsKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCi0gICAgICAgIGVuY29kaW5nID0gY2hhcnNl
dC5pc0VtcHR5KCkgPyBtX2RvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPndyaXRlcigpLT5lbmNvZGlu
ZygpIDogY2hhcnNldDsKKyAgICAgICAgZW5jb2RpbmcgPSBjaGFyc2V0LmlzRW1wdHkoKSA/IG1f
ZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZW5jb2RpbmcoKSA6IGNoYXJzZXQ7CiAKICAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgdXJsLCBlbmNvZGlu
ZywgdHJ1ZSk7CiAgICAgaWYgKCFyZXNvdXJjZSB8fCBtX3ByZWxvYWRzLmNvbnRhaW5zKHJlc291
cmNlKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA5NWE5ZDY2Li4zN2EyZGUyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6ZmluaXNoZWRMb2FkaW5nKCkKICAgICBjb21taXRJZlJlYWR5KCk7CiAgICAg
aWYgKEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZUxvYWRlcigpKSB7CiAgICAgICAgIGxvYWRl
ci0+ZmluaXNoZWRMb2FkaW5nRG9jdW1lbnQodGhpcyk7Ci0gICAgICAgIGxvYWRlci0+d3JpdGVy
KCktPmVuZCgpOworICAgICAgICBsb2FkZXItPmVuZCgpOwogICAgIH0KIH0KIApAQCAtMzA3LDcg
KzMwNyw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGUo
Y29uc3QgU3RyaW5nJiBuZXdNSU1FVHlwZSkKICAgICB9CiAgICAgCiAgICAgZnJhbWVMb2FkZXIo
KS0+ZmluaXNoZWRMb2FkaW5nRG9jdW1lbnQodGhpcyk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCkt
PndyaXRlcigpLT5lbmQoKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+ZW5kKCk7CiAgICAgCiAg
ICAgZnJhbWVMb2FkZXIoKS0+c2V0UmVwbGFjaW5nKCk7CiAgICAgbV9nb3RGaXJzdEJ5dGUgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTQ4NTgzOS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRl
ci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMC4gQWRhbSBCYXJ0aC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAK
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKLQotI2luY2x1ZGUgIkRPTUltcGxl
bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIK
LSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiUGxhY2Vob2xkZXJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKLSNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgot
I2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKLSNpbmNsdWRlICJUb2tlbml6ZXIuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW5saW5lIGJvb2wgY2FuUmVmZXJUb1Bh
cmVudEZyYW1lRW5jb2RpbmcoY29uc3QgRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZSogcGFyZW50
RnJhbWUpIAotewotICAgIHJldHVybiBwYXJlbnRGcmFtZSAmJiBwYXJlbnRGcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpKTsKLX0KLSAgICAKLURvY3VtZW50V3JpdGVyOjpEb2N1bWVudFdyaXRlcihG
cmFtZSogZnJhbWUpCi0gICAgOiBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV9yZWNlaXZlZERhdGEo
ZmFsc2UpCi0gICAgLCBtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyKGZhbHNlKQotewotfQotCi12
b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBodG1sKQot
ewotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwotICAgIGJlZ2luKG1f
ZnJhbWUtPmxvYWRlcigpLT51cmwoKSwgdHJ1ZSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSk7Ci0gICAgYWRkRGF0YShodG1sKTsKLSAgICBlbmQoKTsKLX0KLQotdm9pZCBE
b2N1bWVudFdyaXRlcjo6Y2xlYXIoKQotewotICAgIG1fZGVjb2RlciA9IDA7Ci0gICAgbV9yZWNl
aXZlZERhdGEgPSBmYWxzZTsKLSAgICBpZiAoIW1fZW5jb2RpbmdXYXNDaG9zZW5CeVVzZXIpCi0g
ICAgICAgIG1fZW5jb2RpbmcgPSBTdHJpbmcoKTsKLX0KLQotdm9pZCBEb2N1bWVudFdyaXRlcjo6
YmVnaW4oKQotewotICAgIGJlZ2luKEtVUkwoKSk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRXcml0ZXI6
OmJlZ2luKGNvbnN0IEtVUkwmIHVybCwgYm9vbCBkaXNwYXRjaCwgU2VjdXJpdHlPcmlnaW4qIG9y
aWdpbikKLXsKLSAgICAvLyBXZSBuZWVkIHRvIHRha2UgYSByZWZlcmVuY2UgdG8gdGhlIHNlY3Vy
aXR5IG9yaWdpbiBiZWNhdXNlIHxjbGVhcnwKLSAgICAvLyBtaWdodCBkZXN0cm95IHRoZSBkb2N1
bWVudCB0aGF0IG93bnMgaXQuCi0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBmb3JjZWRTZWN1
cml0eU9yaWdpbiA9IG9yaWdpbjsKLQotICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQ7Ci0K
LSAgICAvLyBDcmVhdGUgYSBuZXcgZG9jdW1lbnQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmcmFtZSwg
YmVjYXVzZSBpdCBtYXkgbmVlZCB0byBpbmhlcml0IGFuIGFsaWFzZWQgc2VjdXJpdHkgY29udGV4
dC4KLSAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlE
b2N1bWVudCgpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxkVXNlUGx1Z2lu
RG9jdW1lbnQobV9taW1lVHlwZSkpCi0gICAgICAgIGRvY3VtZW50ID0gUGx1Z2luRG9jdW1lbnQ6
OmNyZWF0ZShtX2ZyYW1lKTsKLSAgICBlbHNlIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVu
dCgpLT5oYXNIVE1MVmlldygpKQotICAgICAgICBkb2N1bWVudCA9IFBsYWNlaG9sZGVyRG9jdW1l
bnQ6OmNyZWF0ZShtX2ZyYW1lKTsKLSAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50ID0gRE9NSW1w
bGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KG1fbWltZVR5cGUsIG1fZnJhbWUsIG1fZnJhbWUt
PmluVmlld1NvdXJjZU1vZGUoKSk7Ci0KLSAgICBib29sIHJlc2V0U2NyaXB0aW5nID0gIShtX2Zy
YW1lLT5sb2FkZXIoKS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSAmJiBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NlY3VyZVRyYW5zaXRpb25Ubyh1
cmwpKTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xlYXIocmVzZXRTY3JpcHRpbmcsIHJlc2V0
U2NyaXB0aW5nKTsKLSAgICBpZiAocmVzZXRTY3JpcHRpbmcpCi0gICAgICAgIG1fZnJhbWUtPnNj
cmlwdCgpLT51cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKLQotICAgIG1fZnJhbWUtPmxv
YWRlcigpLT5zZXRVUkwodXJsKTsKLSAgICBkb2N1bWVudC0+c2V0VVJMKHVybCk7Ci0gICAgbV9m
cmFtZS0+c2V0RG9jdW1lbnQoZG9jdW1lbnQpOwotICAgIGlmIChtX2RlY29kZXIpCi0gICAgICAg
IGRvY3VtZW50LT5zZXREZWNvZGVyKG1fZGVjb2Rlci5nZXQoKSk7Ci0gICAgaWYgKGZvcmNlZFNl
Y3VyaXR5T3JpZ2luKQotICAgICAgICBkb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4oZm9yY2Vk
U2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwotICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5zZXRVUkwo
ZG9jdW1lbnQtPnVybCgpKTsKLSAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0U2VjdXJpdHlP
cmlnaW4oZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOwotCi0gICAgbV9mcmFtZS0+bG9hZGVy
KCktPmRpZEJlZ2luRG9jdW1lbnQoZGlzcGF0Y2gpOwotCi0gICAgZG9jdW1lbnQtPmltcGxpY2l0
T3BlbigpOwotCi0gICAgaWYgKG1fZnJhbWUtPnZpZXcoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+
Y2xpZW50KCktPmhhc0hUTUxWaWV3KCkpCi0gICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c2V0Q29u
dGVudHNTaXplKEludFNpemUoKSk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRXcml0ZXI6OmFkZERhdGEo
Y29uc3QgY2hhciogc3RyLCBpbnQgbGVuLCBib29sIGZsdXNoKQotewotICAgIGlmIChsZW4gPT0g
MCAmJiAhZmx1c2gpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChsZW4gPT0gLTEpCi0gICAg
ICAgIGxlbiA9IHN0cmxlbihzdHIpOwotCi0gICAgVG9rZW5pemVyKiB0b2tlbml6ZXIgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKTsKLSAgICBpZiAodG9rZW5pemVyICYmIHRva2Vu
aXplci0+d2FudHNSYXdEYXRhKCkpIHsKLSAgICAgICAgaWYgKGxlbiA+IDApCi0gICAgICAgICAg
ICB0b2tlbml6ZXItPndyaXRlUmF3RGF0YShzdHIsIGxlbik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgCi0gICAgaWYgKCFtX2RlY29kZXIpIHsKLSAgICAgICAgaWYgKFNldHRpbmdzKiBz
ZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgICAgIG1fZGVjb2RlciA9
IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShtX21pbWVUeXBlLAotICAgICAgICAgICAgICAg
IHNldHRpbmdzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpLAotICAgICAgICAgICAgICAgIHNl
dHRpbmdzLT51c2VzRW5jb2RpbmdEZXRlY3RvcigpKTsKLSAgICAgICAgICAgIEZyYW1lKiBwYXJl
bnRGcmFtZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7Ci0gICAgICAgICAgICAvLyBTZXQg
dGhlIGhpbnQgZW5jb2RpbmcgdG8gdGhlIHBhcmVudCBmcmFtZSBlbmNvZGluZyBvbmx5IGlmCi0g
ICAgICAgICAgICAvLyB0aGUgcGFyZW50IGFuZCB0aGUgY3VycmVudCBmcmFtZXMgc2hhcmUgdGhl
IHNlY3VyaXR5IG9yaWdpbi4KLSAgICAgICAgICAgIC8vIFdlIGltcG9zZSB0aGlzIGNvbmRpdGlv
biBiZWNhdXNlIHNvbWVib2R5IGNhbiBtYWtlIGEgY2hpbGQgZnJhbWUgCi0gICAgICAgICAgICAv
LyBjb250YWluaW5nIGEgY2FyZWZ1bGx5IGNyYWZ0ZWQgaHRtbC9qYXZhc2NyaXB0IGluIG9uZSBl
bmNvZGluZwotICAgICAgICAgICAgLy8gdGhhdCBjYW4gYmUgbWlzdGFrZW4gZm9yIGhpbnRFbmNv
ZGluZyAob3IgcmVsYXRlZCBlbmNvZGluZykgYnkKLSAgICAgICAgICAgIC8vIGFuIGF1dG8gZGV0
ZWN0b3IuIFdoZW4gaW50ZXJwcmV0ZWQgaW4gdGhlIGxhdHRlciwgaXQgY291bGQgYmUKLSAgICAg
ICAgICAgIC8vIGFuIGF0dGFjayB2ZWN0b3IuCi0gICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBt
aWdodCBiZSB0b28gY2F1dGlvdXMgZm9yIG5vbi03Yml0LWVuY29kaW5ncyBhbmQKLSAgICAgICAg
ICAgIC8vIHdlIG1heSBjb25zaWRlciByZWxheGluZyB0aGlzIGxhdGVyIGFmdGVyIHRlc3Rpbmcu
Ci0gICAgICAgICAgICBpZiAoY2FuUmVmZXJUb1BhcmVudEZyYW1lRW5jb2RpbmcobV9mcmFtZSwg
cGFyZW50RnJhbWUpKQotICAgICAgICAgICAgICAgIG1fZGVjb2Rlci0+c2V0SGludEVuY29kaW5n
KHBhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5kZWNvZGVyKCkpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShtX21pbWVU
eXBlLCBTdHJpbmcoKSk7Ci0gICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IG1fZnJhbWUtPnRy
ZWUoKS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChtX2VuY29kaW5nLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgaWYgKGNhblJlZmVyVG9QYXJlbnRGcmFtZUVuY29kaW5nKG1fZnJhbWUsIHBhcmVu
dEZyYW1lKSkKLSAgICAgICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5nKHBhcmVudEZy
YW1lLT5kb2N1bWVudCgpLT5pbnB1dEVuY29kaW5nKCksIFRleHRSZXNvdXJjZURlY29kZXI6OkVu
Y29kaW5nRnJvbVBhcmVudEZyYW1lKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1f
ZGVjb2Rlci0+c2V0RW5jb2RpbmcobV9lbmNvZGluZywKLSAgICAgICAgICAgICAgICBtX2VuY29k
aW5nV2FzQ2hvc2VuQnlVc2VyID8gVGV4dFJlc291cmNlRGVjb2Rlcjo6VXNlckNob3NlbkVuY29k
aW5nIDogVGV4dFJlc291cmNlRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7Ci0gICAg
ICAgIH0KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0RGVjb2RlcihtX2RlY29kZXIu
Z2V0KCkpOwotICAgIH0KLQotICAgIFN0cmluZyBkZWNvZGVkID0gbV9kZWNvZGVyLT5kZWNvZGUo
c3RyLCBsZW4pOwotICAgIGlmIChmbHVzaCkKLSAgICAgICAgZGVjb2RlZCArPSBtX2RlY29kZXIt
PmZsdXNoKCk7Ci0gICAgaWYgKGRlY29kZWQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoIW1fcmVjZWl2ZWREYXRhKSB7Ci0gICAgICAgIG1fcmVjZWl2ZWREYXRhID0gdHJ1
ZTsKLSAgICAgICAgaWYgKG1fZGVjb2Rlci0+ZW5jb2RpbmcoKS51c2VzVmlzdWFsT3JkZXJpbmco
KSkKLSAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldFZpc3VhbGx5T3JkZXJlZCgp
OwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7
Ci0gICAgfQotCi0gICAgaWYgKHRva2VuaXplcikgewotICAgICAgICBBU1NFUlQoIXRva2VuaXpl
ci0+d2FudHNSYXdEYXRhKCkpOwotICAgICAgICB0b2tlbml6ZXItPndyaXRlKGRlY29kZWQsIHRy
dWUpOwotICAgIH0KLX0KLQotdm9pZCBEb2N1bWVudFdyaXRlcjo6YWRkRGF0YShjb25zdCBTdHJp
bmcmIHN0cikKLXsKLSAgICBpZiAoc3RyLmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoIW1fcmVjZWl2ZWREYXRhKSB7Ci0gICAgICAgIG1fcmVjZWl2ZWREYXRhID0gdHJ1ZTsK
LSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0UGFyc2VNb2RlKERvY3VtZW50OjpTdHJp
Y3QpOwotICAgIH0KLQotICAgIGlmIChUb2tlbml6ZXIqIHRva2VuaXplciA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPnRva2VuaXplcigpKQotICAgICAgICB0b2tlbml6ZXItPndyaXRlKHN0ciwgdHJ1
ZSk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCi17Ci0gICAgbV9mcmFtZS0+bG9h
ZGVyKCktPmRpZEVuZERvY3VtZW50KCk7Ci0gICAgZW5kSWZOb3RMb2FkaW5nTWFpblJlc291cmNl
KCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZElmTm90TG9hZGluZ01haW5SZXNvdXJj
ZSgpCi17Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5pc0xvYWRpbmdNYWluUmVzb3VyY2Uo
KSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICAvLyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDg1NAotICAgIC8vIFRoZSBmcmFtZSdzIGxhc3QgcmVmIG1heSBiZSByZW1vdmVkIGFuZCBpdCBj
YW4gYmUgZGVsZXRlZCBieSBjaGVja0NvbXBsZXRlZCgpLCAKLSAgICAvLyBzbyB3ZSdsbCBhZGQg
YSBwcm90ZWN0aXZlIHJlZmNvdW50Ci0gICAgUmVmUHRyPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFt
ZSk7Ci0KLSAgICAvLyBtYWtlIHN1cmUgbm90aGluZydzIGxlZnQgaW4gdGhlcmUKLSAgICB3cml0
ZSgwLCAwLCB0cnVlKTsKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5maW5pc2hQYXJzaW5nKCk7
Ci19Ci0KLVN0cmluZyBEb2N1bWVudFdyaXRlcjo6ZW5jb2RpbmcoKSBjb25zdAotewotICAgIGlm
IChtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyICYmICFtX2VuY29kaW5nLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIG1fZW5jb2Rpbmc7Ci0gICAgaWYgKG1fZGVjb2RlciAmJiBtX2RlY29kZXIt
PmVuY29kaW5nKCkuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gbV9kZWNvZGVyLT5lbmNvZGlu
ZygpLm5hbWUoKTsKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygp
OwotICAgIHJldHVybiBzZXR0aW5ncyA/IHNldHRpbmdzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFt
ZSgpIDogU3RyaW5nKCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRXcml0ZXI6OnNldEVuY29kaW5nKGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCB1c2VyQ2hvc2VuKQotewotICAgIG1fZnJhbWUtPmxvYWRl
cigpLT53aWxsU2V0RW5jb2RpbmcoKTsKLSAgICBtX2VuY29kaW5nID0gbmFtZTsKLSAgICBtX2Vu
Y29kaW5nV2FzQ2hvc2VuQnlVc2VyID0gdXNlckNob3NlbjsKLX0KLQotdm9pZCBEb2N1bWVudFdy
aXRlcjo6c2V0RGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyKiBkZWNvZGVyKQotewotICAgIG1f
ZGVjb2RlciA9IGRlY29kZXI7Ci19Ci0KLVN0cmluZyBEb2N1bWVudFdyaXRlcjo6ZGVwcmljYXRl
ZEZyYW1lRW5jb2RpbmcoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS0+
dXJsKCkuaXNFbXB0eSgpID8gbV9lbmNvZGluZyA6IGVuY29kaW5nKCk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVy
LmggYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYWJiNTNjLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
V3JpdGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLiBBZGFtIEJhcnRoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBZGFtIEJhcnRoLiAoIkFkYW0gQmFy
dGgiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEb2N1bWVu
dFdyaXRlcl9oCi0jZGVmaW5lIERvY3VtZW50V3JpdGVyX2gKLQotI2luY2x1ZGUgIktVUkwuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIEZyYW1lOwotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBUZXh0UmVzb3VyY2VEZWNv
ZGVyOwotCi1jbGFzcyBEb2N1bWVudFdyaXRlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci1wdWJs
aWM6Ci0gICAgRG9jdW1lbnRXcml0ZXIoRnJhbWUqKTsKLQotICAgIHZvaWQgcmVwbGFjZURvY3Vt
ZW50KGNvbnN0IFN0cmluZyYpOwotCi0gICAgdm9pZCBiZWdpbigpOwotICAgIHZvaWQgYmVnaW4o
Y29uc3QgS1VSTCYsIGJvb2wgZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUgPSB0cnVlLCBT
ZWN1cml0eU9yaWdpbiogZm9yY2VkU2VjdXJpdHlPcmlnaW4gPSAwKTsKLSAgICB2b2lkIGFkZERh
dGEoY29uc3QgY2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoID0gLTEsIGJvb2wgZmx1c2ggPSBmYWxz
ZSk7Ci0gICAgdm9pZCBlbmQoKTsKLSAgICB2b2lkIGVuZElmTm90TG9hZGluZ01haW5SZXNvdXJj
ZSgpOwotICAgIHZvaWQgY2xlYXIoKTsKLQotICAgIFN0cmluZyBlbmNvZGluZygpIGNvbnN0Owot
ICAgIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGluZywgYm9vbCB1c2VyQ2hv
c2VuKTsKLQotICAgIC8vIEZJWE1FOiBJdCdzIHJlYWxseSB1bmZvcnVuYXRlIHRvIG5lZWQgdG8g
ZXhwb3NlIHRoaXMgcGllY2Ugb2Ygc3RhdGUuCi0gICAgLy8gSSBzdXNwZWN0IGEgYmV0dGVyIGRl
c2lnbiBpcyB0byBkaXNlbnRhbmdsZSB1c2VyLXByb3ZpZGVkIGVuY29kaW5ncywKLSAgICAvLyBk
ZWZhdWx0IGVuY29kaW5ncywgYW5kIHRoZSBkZWNvZGluZyB3ZSdyZSBjdXJyZW50bHkgdXNpbmcu
Ci0gICAgU3RyaW5nIGRlcHJpY2F0ZWRGcmFtZUVuY29kaW5nKCkgY29uc3Q7Ci0KLSAgICBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQotICAgIHZv
aWQgc2V0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSB7IG1fbWltZVR5cGUgPSB0eXBlOyB9
Ci0KLSAgICB2b2lkIHNldERlY29kZXIoVGV4dFJlc291cmNlRGVjb2RlciopOwotCi1wcml2YXRl
OgotICAgIHZvaWQgYWRkRGF0YShjb25zdCBTdHJpbmcmKTsKLQotICAgIEZyYW1lKiBtX2ZyYW1l
OwotCi0gICAgYm9vbCBtX3JlY2VpdmVkRGF0YTsKLSAgICBTdHJpbmcgbV9taW1lVHlwZTsKLQot
ICAgIGJvb2wgbV9lbmNvZGluZ1dhc0Nob3NlbkJ5VXNlcjsKLSAgICBTdHJpbmcgbV9lbmNvZGlu
ZzsKLSAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRG9jdW1lbnRXcml0ZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDMyYzJlOWEuLjI3Yzc5NmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTE2NCwxMyArMTY0LDE3IEBAIHN0YXRpYyBpbnQgbnVtUmVxdWVzdHMoRG9jdW1lbnQq
IGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC0+ZG9jTG9hZGVyKCktPnJlcXVlc3RDb3Vu
dCgpOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgY2FuUmVmZXJUb1BhcmVudEZyYW1lRW5jb2Rp
bmcoY29uc3QgRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZSogcGFyZW50RnJhbWUpIAoreworICAg
IHJldHVybiBwYXJlbnRGcmFtZSAmJiBwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+Y2FuQWNjZXNzKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsK
K30KKwogRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJD
bGllbnQqIGNsaWVudCkKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NsaWVudChjbGll
bnQpCiAgICAgLCBtX3BvbGljeUNoZWNrZXIoZnJhbWUpCiAgICAgLCBtX2hpc3RvcnkoZnJhbWUp
CiAgICAgLCBtX25vdGlmZXIoZnJhbWUpCi0gICAgLCBtX3dyaXRlcihmcmFtZSkKICAgICAsIG1f
c3RhdGUoRnJhbWVTdGF0ZUNvbW1pdHRlZFBhZ2UpCiAgICAgLCBtX2xvYWRUeXBlKEZyYW1lTG9h
ZFR5cGVTdGFuZGFyZCkKICAgICAsIG1fZGVsZWdhdGVJc0hhbmRsaW5nUHJvdmlzaW9uYWxMb2Fk
RXJyb3IoZmFsc2UpCkBAIC0xODUsNiArMTg5LDggQEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVy
KEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1faXNDb21w
bGV0ZShmYWxzZSkKICAgICAsIG1faXNMb2FkaW5nTWFpblJlc291cmNlKGZhbHNlKQogICAgICwg
bV9uZWVkc0NsZWFyKGZhbHNlKQorICAgICwgbV9yZWNlaXZlZERhdGEoZmFsc2UpCisgICAgLCBt
X2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyKGZhbHNlKQogICAgICwgbV9jb250YWluc1BsdWdJbnMo
ZmFsc2UpCiAgICAgLCBtX2NoZWNrVGltZXIodGhpcywgJkZyYW1lTG9hZGVyOjpjaGVja1RpbWVy
RmlyZWQpCiAgICAgLCBtX3Nob3VsZENhbGxDaGVja0NvbXBsZXRlZChmYWxzZSkKQEAgLTIyNSw4
ICsyMzEsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjppbml0KCkKICAgICBzZXRTdGF0ZShGcmFtZVN0
YXRlUHJvdmlzaW9uYWwpOwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c2V0UmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZShLVVJMKCksICJ0ZXh0L2h0bWwiLCAwLCBTdHJpbmcoKSwg
U3RyaW5nKCkpKTsKICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPmZpbmlzaGVkTG9h
ZGluZygpOwotICAgIHdyaXRlcigpLT5iZWdpbihLVVJMKCksIGZhbHNlKTsKLSAgICB3cml0ZXIo
KS0+ZW5kKCk7CisgICAgYmVnaW4oS1VSTCgpLCBmYWxzZSk7CisgICAgZW5kKCk7CiAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgIG1fY3JlYXRpbmdJbml0aWFs
RW1wdHlEb2N1bWVudCA9IGZhbHNlOwogICAgIG1fZGlkQ2FsbEltcGxpY2l0Q2xvc2UgPSB0cnVl
OwpAQCAtNjk5LDYgKzcwNSwxNCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjYW5jZWxBbmRDbGVhcigp
CiAgICAgbV9mcmFtZS0+c2NyaXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwog
fQogCit2b2lkIEZyYW1lTG9hZGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBodG1s
KQoreworICAgIHN0b3BBbGxMb2FkZXJzKCk7CisgICAgYmVnaW4obV9VUkwsIHRydWUsIG1fZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIHdyaXRlKGh0bWwpOworICAg
IGVuZCgpOworfQorCiB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhcihib29sIGNsZWFyV2luZG93UHJv
cGVydGllcywgYm9vbCBjbGVhclNjcmlwdE9iamVjdHMsIGJvb2wgY2xlYXJGcmFtZVZpZXcpCiB7
CiAgICAgbV9mcmFtZS0+ZWRpdG9yKCktPmNsZWFyKCk7CkBAIC03MzIsNyArNzQ2LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y2xlYXIoYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wgY2xl
YXJTY3JpcHRPYmplY3RzLCBib28KICAgICAvLyBEbyBub3QgZHJvcCB0aGUgZG9jdW1lbnQgYmVm
b3JlIHRoZSBTY3JpcHRDb250cm9sbGVyIGFuZCB2aWV3IGFyZSBjbGVhcmVkCiAgICAgLy8gYXMg
c29tZSBkZXN0cnVjdG9ycyBtaWdodCBzdGlsbCB0cnkgdG8gYWNjZXNzIHRoZSBkb2N1bWVudC4K
ICAgICBtX2ZyYW1lLT5zZXREb2N1bWVudCgwKTsKLSAgICB3cml0ZXIoKS0+Y2xlYXIoKTsKKyAg
ICBtX2RlY29kZXIgPSAwOwogCiAgICAgbV9jb250YWluc1BsdWdJbnMgPSBmYWxzZTsKIApAQCAt
NzQ0LDEyICs3NTgsMTcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xlYXIoYm9vbCBjbGVhcldpbmRv
d1Byb3BlcnRpZXMsIGJvb2wgY2xlYXJTY3JpcHRPYmplY3RzLCBib28KICAgICBtX2NoZWNrVGlt
ZXIuc3RvcCgpOwogICAgIG1fc2hvdWxkQ2FsbENoZWNrQ29tcGxldGVkID0gZmFsc2U7CiAgICAg
bV9zaG91bGRDYWxsQ2hlY2tMb2FkQ29tcGxldGUgPSBmYWxzZTsKKworICAgIG1fcmVjZWl2ZWRE
YXRhID0gZmFsc2U7CiAgICAgbV9pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCA9IGZh
bHNlOworCisgICAgaWYgKCFtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyKQorICAgICAgICBtX2Vu
Y29kaW5nID0gU3RyaW5nKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJlY2VpdmVkRmlyc3RE
YXRhKCkKIHsKLSAgICB3cml0ZXIoKS0+YmVnaW4obV93b3JraW5nVVJMLCBmYWxzZSk7CisgICAg
YmVnaW4obV93b3JraW5nVVJMLCBmYWxzZSk7CiAKICAgICBkaXNwYXRjaERpZENvbW1pdExvYWQo
KTsKICAgICBkaXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0c0luQWxsV29ybGRzKCk7CkBAIC03
ODAsNDkgKzc5OSwxOTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRGaXJzdERhdGEoKQog
ICAgIG1fZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlUmVkaXJlY3QoZGVsYXks
IHVybCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnNldFVSTChjb25zdCBLVVJMJiB1cmwpCitj
b25zdCBTdHJpbmcmIEZyYW1lTG9hZGVyOjpyZXNwb25zZU1JTUVUeXBlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZXNwb25zZU1JTUVUeXBlOworfQorCit2b2lkIEZyYW1lTG9hZGVyOjpzZXRS
ZXNwb25zZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBtX3Jlc3BvbnNlTUlN
RVR5cGUgPSB0eXBlOworfQorICAgIAordm9pZCBGcmFtZUxvYWRlcjo6YmVnaW4oKQogeworICAg
IGJlZ2luKEtVUkwoKSk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXI6OmJlZ2luKGNvbnN0IEtVUkwm
IHVybCwgYm9vbCBkaXNwYXRjaCwgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICAvLyBX
ZSBuZWVkIHRvIHRha2UgYSByZWZlcmVuY2UgdG8gdGhlIHNlY3VyaXR5IG9yaWdpbiBiZWNhdXNl
IHxjbGVhcnwKKyAgICAvLyBtaWdodCBkZXN0cm95IHRoZSBkb2N1bWVudCB0aGF0IG93bnMgaXQu
CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBmb3JjZWRTZWN1cml0eU9yaWdpbiA9IG9yaWdp
bjsKKworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQ7CisKKyAgICAvLyBDcmVhdGUgYSBu
ZXcgZG9jdW1lbnQgYmVmb3JlIGNsZWFyaW5nIHRoZSBmcmFtZSwgYmVjYXVzZSBpdCBtYXkgbmVl
ZCB0byBpbmhlcml0IGFuIGFsaWFzZWQgc2VjdXJpdHkgY29udGV4dC4KKyAgICBpZiAoIW1faXNE
aXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgJiYgbV9jbGllbnQtPnNob3VsZFVzZVBsdWdp
bkRvY3VtZW50KG1fcmVzcG9uc2VNSU1FVHlwZSkpCisgICAgICAgIGRvY3VtZW50ID0gUGx1Z2lu
RG9jdW1lbnQ6OmNyZWF0ZShtX2ZyYW1lKTsKKyAgICBlbHNlIGlmICghbV9jbGllbnQtPmhhc0hU
TUxWaWV3KCkpCisgICAgICAgIGRvY3VtZW50ID0gUGxhY2Vob2xkZXJEb2N1bWVudDo6Y3JlYXRl
KG1fZnJhbWUpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQgPSBET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlRG9jdW1lbnQobV9yZXNwb25zZU1JTUVUeXBlLCBtX2ZyYW1lLCBtX2ZyYW1lLT5p
blZpZXdTb3VyY2VNb2RlKCkpOworCisgICAgYm9vbCByZXNldFNjcmlwdGluZyA9ICEobV9pc0Rp
c3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLT5pc1NlY3VyZVRyYW5zaXRpb25Ubyh1cmwpKTsKKyAgICBjbGVhcihyZXNl
dFNjcmlwdGluZywgcmVzZXRTY3JpcHRpbmcpOworICAgIGlmIChyZXNldFNjcmlwdGluZykKKyAg
ICAgICAgbV9mcmFtZS0+c2NyaXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwor
CisgICAgbV9uZWVkc0NsZWFyID0gdHJ1ZTsKKyAgICBtX2lzQ29tcGxldGUgPSBmYWxzZTsKKyAg
ICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0gZmFsc2U7CisgICAgbV9pc0xvYWRpbmdNYWluUmVz
b3VyY2UgPSB0cnVlOworICAgIG1faXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgPSBt
X2NyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQ7CisKICAgICBLVVJMIHJlZih1cmwpOwogICAg
IHJlZi5zZXRVc2VyKFN0cmluZygpKTsKICAgICByZWYuc2V0UGFzcyhTdHJpbmcoKSk7CiAgICAg
cmVmLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwogICAgIG1fb3V0Z29pbmdSZWZlcnJlciA9
IHJlZi5zdHJpbmcoKTsKICAgICBtX1VSTCA9IHVybDsKLX0KIAotdm9pZCBGcmFtZUxvYWRlcjo6
ZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQoteworICAgIGRvY3VtZW50LT5zZXRVUkwo
bV9VUkwpOworICAgIG1fZnJhbWUtPnNldERvY3VtZW50KGRvY3VtZW50KTsKKwogICAgIGlmICht
X3BlbmRpbmdTdGF0ZU9iamVjdCkgewotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zdGF0
ZVBvcHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7CisgICAgICAgIGRvY3VtZW50LT5z
dGF0ZVBvcHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7CiAgICAgICAgIG1fcGVuZGlu
Z1N0YXRlT2JqZWN0LmNsZWFyKCk7CiAgICAgfQorICAgIAorICAgIGlmIChtX2RlY29kZXIpCisg
ICAgICAgIGRvY3VtZW50LT5zZXREZWNvZGVyKG1fZGVjb2Rlci5nZXQoKSk7CisgICAgaWYgKGZv
cmNlZFNlY3VyaXR5T3JpZ2luKQorICAgICAgICBkb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4o
Zm9yY2VkU2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogCi0gICAgbV9uZWVkc0NsZWFyID0gdHJ1ZTsK
LSAgICBtX2lzQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX2RpZENhbGxJbXBsaWNpdENsb3NlID0g
ZmFsc2U7Ci0gICAgbV9pc0xvYWRpbmdNYWluUmVzb3VyY2UgPSB0cnVlOwotICAgIG1faXNEaXNw
bGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgPSBtX2NyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1l
bnQ7CisgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNldFVSTChkb2N1bWVudC0+dXJsKCkpOwor
ICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5zZXRTZWN1cml0eU9yaWdpbihkb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKSk7CiAKICAgICBpZiAoZGlzcGF0Y2gpCiAgICAgICAgIGRpc3BhdGNoRGlk
Q2xlYXJXaW5kb3dPYmplY3RzSW5BbGxXb3JsZHMoKTsKLQorICAgIAogICAgIHVwZGF0ZUZpcnN0
UGFydHlGb3JDb29raWVzKCk7CiAKLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zZXR0aW5ncygpOwotICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvY0xvYWRl
cigpLT5zZXRBdXRvTG9hZEltYWdlcyhzZXR0aW5ncyAmJiBzZXR0aW5ncy0+bG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KCkpOworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50LT5zZXR0
aW5ncygpOworICAgIGRvY3VtZW50LT5kb2NMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoc2V0
dGluZ3MgJiYgc2V0dGluZ3MtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpKTsKIAogICAgIGlm
IChtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIFN0cmluZyBkbnNQcmVmZXRjaENvbnRyb2wg
PSBtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZCgiWC1ETlMtUHJl
ZmV0Y2gtQ29udHJvbCIpOwogICAgICAgICBpZiAoIWRuc1ByZWZldGNoQ29udHJvbC5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZUROU1ByZWZldGNoQ29u
dHJvbEhlYWRlcihkbnNQcmVmZXRjaENvbnRyb2wpOworICAgICAgICAgICAgZG9jdW1lbnQtPnBh
cnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGRuc1ByZWZldGNoQ29udHJvbCk7CiAgICAgfQog
CiAgICAgaGlzdG9yeSgpLT5yZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOworCisgICAgZG9jdW1lbnQt
PmltcGxpY2l0T3BlbigpOworICAgIAorICAgIGlmIChtX2ZyYW1lLT52aWV3KCkgJiYgbV9jbGll
bnQtPmhhc0hUTUxWaWV3KCkpCisgICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c2V0Q29udGVudHNT
aXplKEludFNpemUoKSk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXI6OndyaXRlKGNvbnN0IGNoYXIq
IHN0ciwgaW50IGxlbiwgYm9vbCBmbHVzaCkKK3sKKyAgICBpZiAobGVuID09IDAgJiYgIWZsdXNo
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKGxlbiA9PSAtMSkKKyAgICAgICAgbGVu
ID0gc3RybGVuKHN0cik7CisKKyAgICBUb2tlbml6ZXIqIHRva2VuaXplciA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPnRva2VuaXplcigpOworICAgIGlmICh0b2tlbml6ZXIgJiYgdG9rZW5pemVyLT53
YW50c1Jhd0RhdGEoKSkgeworICAgICAgICBpZiAobGVuID4gMCkKKyAgICAgICAgICAgIHRva2Vu
aXplci0+d3JpdGVSYXdEYXRhKHN0ciwgbGVuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAKKyAgICBpZiAoIW1fZGVjb2RlcikgeworICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdz
ID0gbV9mcmFtZS0+c2V0dGluZ3MoKSkgeworICAgICAgICAgICAgbV9kZWNvZGVyID0gVGV4dFJl
c291cmNlRGVjb2Rlcjo6Y3JlYXRlKG1fcmVzcG9uc2VNSU1FVHlwZSwKKyAgICAgICAgICAgICAg
ICBzZXR0aW5ncy0+ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKSwKKyAgICAgICAgICAgICAgICBz
ZXR0aW5ncy0+dXNlc0VuY29kaW5nRGV0ZWN0b3IoKSk7CisgICAgICAgICAgICBGcmFtZSogcGFy
ZW50RnJhbWUgPSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICAgICAgLy8gU2V0
IHRoZSBoaW50IGVuY29kaW5nIHRvIHRoZSBwYXJlbnQgZnJhbWUgZW5jb2Rpbmcgb25seSBpZgor
ICAgICAgICAgICAgLy8gdGhlIHBhcmVudCBhbmQgdGhlIGN1cnJlbnQgZnJhbWVzIHNoYXJlIHRo
ZSBzZWN1cml0eSBvcmlnaW4uCisgICAgICAgICAgICAvLyBXZSBpbXBvc2UgdGhpcyBjb25kaXRp
b24gYmVjYXVzZSBzb21lYm9keSBjYW4gbWFrZSBhIGNoaWxkIGZyYW1lIAorICAgICAgICAgICAg
Ly8gY29udGFpbmluZyBhIGNhcmVmdWxseSBjcmFmdGVkIGh0bWwvamF2YXNjcmlwdCBpbiBvbmUg
ZW5jb2RpbmcKKyAgICAgICAgICAgIC8vIHRoYXQgY2FuIGJlIG1pc3Rha2VuIGZvciBoaW50RW5j
b2RpbmcgKG9yIHJlbGF0ZWQgZW5jb2RpbmcpIGJ5CisgICAgICAgICAgICAvLyBhbiBhdXRvIGRl
dGVjdG9yLiBXaGVuIGludGVycHJldGVkIGluIHRoZSBsYXR0ZXIsIGl0IGNvdWxkIGJlCisgICAg
ICAgICAgICAvLyBhbiBhdHRhY2sgdmVjdG9yLgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
bWlnaHQgYmUgdG9vIGNhdXRpb3VzIGZvciBub24tN2JpdC1lbmNvZGluZ3MgYW5kCisgICAgICAg
ICAgICAvLyB3ZSBtYXkgY29uc2lkZXIgcmVsYXhpbmcgdGhpcyBsYXRlciBhZnRlciB0ZXN0aW5n
LgorICAgICAgICAgICAgaWYgKGNhblJlZmVyVG9QYXJlbnRGcmFtZUVuY29kaW5nKG1fZnJhbWUs
IHBhcmVudEZyYW1lKSkKKyAgICAgICAgICAgICAgICBtX2RlY29kZXItPnNldEhpbnRFbmNvZGlu
ZyhwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpKTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBtX2RlY29kZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUobV9yZXNw
b25zZU1JTUVUeXBlLCBTdHJpbmcoKSk7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IG1f
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CisgICAgICAgIGlmIChtX2VuY29kaW5nLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgaWYgKGNhblJlZmVyVG9QYXJlbnRGcmFtZUVuY29kaW5nKG1fZnJh
bWUsIHBhcmVudEZyYW1lKSkKKyAgICAgICAgICAgICAgICBtX2RlY29kZXItPnNldEVuY29kaW5n
KHBhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5pbnB1dEVuY29kaW5nKCksIFRleHRSZXNvdXJjZURl
Y29kZXI6OkVuY29kaW5nRnJvbVBhcmVudEZyYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIG1fZGVjb2Rlci0+c2V0RW5jb2RpbmcobV9lbmNvZGluZywKKyAgICAgICAgICAgICAg
ICBtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyID8gVGV4dFJlc291cmNlRGVjb2Rlcjo6VXNlckNo
b3NlbkVuY29kaW5nIDogVGV4dFJlc291cmNlRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRl
cik7CisgICAgICAgIH0KKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0RGVjb2Rlciht
X2RlY29kZXIuZ2V0KCkpOworICAgIH0KKworICAgIFN0cmluZyBkZWNvZGVkID0gbV9kZWNvZGVy
LT5kZWNvZGUoc3RyLCBsZW4pOworICAgIGlmIChmbHVzaCkKKyAgICAgICAgZGVjb2RlZCArPSBt
X2RlY29kZXItPmZsdXNoKCk7CisgICAgaWYgKGRlY29kZWQuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIW1fcmVjZWl2ZWREYXRhKSB7CisgICAgICAgIG1fcmVjZWl2ZWRE
YXRhID0gdHJ1ZTsKKyAgICAgICAgaWYgKG1fZGVjb2Rlci0+ZW5jb2RpbmcoKS51c2VzVmlzdWFs
T3JkZXJpbmcoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldFZpc3VhbGx5
T3JkZXJlZCgpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWNhbGNTdHlsZShOb2Rl
OjpGb3JjZSk7CisgICAgfQorCisgICAgaWYgKHRva2VuaXplcikgeworICAgICAgICBBU1NFUlQo
IXRva2VuaXplci0+d2FudHNSYXdEYXRhKCkpOworICAgICAgICB0b2tlbml6ZXItPndyaXRlKGRl
Y29kZWQsIHRydWUpOworICAgIH0KK30KKwordm9pZCBGcmFtZUxvYWRlcjo6d3JpdGUoY29uc3Qg
U3RyaW5nJiBzdHIpCit7CisgICAgaWYgKHN0ci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFtX3JlY2VpdmVkRGF0YSkgeworICAgICAgICBtX3JlY2VpdmVkRGF0YSA9IHRy
dWU7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldFBhcnNlTW9kZShEb2N1bWVudDo6
U3RyaWN0KTsKKyAgICB9CisKKyAgICBpZiAoVG9rZW5pemVyKiB0b2tlbml6ZXIgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT50b2tlbml6ZXIoKSkKKyAgICAgICAgdG9rZW5pemVyLT53cml0ZShzdHIs
IHRydWUpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpkaWRFbmREb2N1bWVudCgpCit2b2lkIEZy
YW1lTG9hZGVyOjplbmQoKQogewogICAgIG1faXNMb2FkaW5nTWFpblJlc291cmNlID0gZmFsc2U7
CisgICAgZW5kSWZOb3RMb2FkaW5nTWFpblJlc291cmNlKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2Fk
ZXI6OmVuZElmTm90TG9hZGluZ01haW5SZXNvdXJjZSgpCit7CisgICAgaWYgKG1faXNMb2FkaW5n
TWFpblJlc291cmNlIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwODU0CisgICAgLy8gVGhlIGZyYW1lJ3MgbGFzdCByZWYgbWF5IGJlIHJlbW92
ZWQgYW5kIGl0IGNhbiBiZSBkZWxldGVkIGJ5IGNoZWNrQ29tcGxldGVkKCksIAorICAgIC8vIHNv
IHdlJ2xsIGFkZCBhIHByb3RlY3RpdmUgcmVmY291bnQKKyAgICBSZWZQdHI8RnJhbWU+IHByb3Rl
Y3RvcihtX2ZyYW1lKTsKKworICAgIC8vIG1ha2Ugc3VyZSBub3RoaW5nJ3MgbGVmdCBpbiB0aGVy
ZQorICAgIHdyaXRlKDAsIDAsIHRydWUpOworICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmZpbmlz
aFBhcnNpbmcoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6aWNvbkxvYWREZWNpc2lvbkF2YWls
YWJsZSgpCkBAIC0xMTAwLDYgKzEyNjAsMTYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEFyY2hp
dmUoUGFzc1JlZlB0cjxBcmNoaXZlPiBwcnBBcmNoaXZlKQogICAgIGxvYWQoZG9jdW1lbnRMb2Fk
ZXIuZ2V0KCkpOwogfQogCitTdHJpbmcgRnJhbWVMb2FkZXI6OmVuY29kaW5nKCkgY29uc3QKK3sK
KyAgICBpZiAobV9lbmNvZGluZ1dhc0Nob3NlbkJ5VXNlciAmJiAhbV9lbmNvZGluZy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBtX2VuY29kaW5nOworICAgIGlmIChtX2RlY29kZXIgJiYgbV9k
ZWNvZGVyLT5lbmNvZGluZygpLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG1fZGVjb2Rlci0+
ZW5jb2RpbmcoKS5uYW1lKCk7CisgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0
dGluZ3MoKTsKKyAgICByZXR1cm4gc2V0dGluZ3MgPyBzZXR0aW5ncy0+ZGVmYXVsdFRleHRFbmNv
ZGluZ05hbWUoKSA6IFN0cmluZygpOworfQorCiBib29sIEZyYW1lTG9hZGVyOjpyZXF1ZXN0T2Jq
ZWN0KFJlbmRlckVtYmVkZGVkT2JqZWN0KiByZW5kZXJlciwgY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLAogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpCiB7CkBAIC0xMzYzLDEwICsxNTMzLDEyIEBAIHZvaWQgRnJhbWVMb2FkZXI6
OnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24oKQogICAgIG1fc3VibWl0dGVk
Rm9ybVVSTCA9IEtVUkwoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6d2lsbFNldEVuY29kaW5n
KCkKK3ZvaWQgRnJhbWVMb2FkZXI6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCB1c2VyQ2hvc2VuKQogewogICAgIGlmICghbV93b3JraW5nVVJMLmlzRW1wdHkoKSkKICAgICAg
ICAgcmVjZWl2ZWRGaXJzdERhdGEoKTsKKyAgICBtX2VuY29kaW5nID0gbmFtZTsKKyAgICBtX2Vu
Y29kaW5nV2FzQ2hvc2VuQnlVc2VyID0gdXNlckNob3NlbjsKIH0KIAogdm9pZCBGcmFtZUxvYWRl
cjo6YWRkRGF0YShjb25zdCBjaGFyKiBieXRlcywgaW50IGxlbmd0aCkKQEAgLTEzNzQsNyArMTU0
Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZERhdGEoY29uc3QgY2hhciogYnl0ZXMsIGludCBs
ZW5ndGgpCiAgICAgQVNTRVJUKG1fd29ya2luZ1VSTC5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCht
X2ZyYW1lLT5kb2N1bWVudCgpKTsKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+cGFy
c2luZygpKTsKLSAgICB3cml0ZXIoKS0+YWRkRGF0YShieXRlcywgbGVuZ3RoKTsKKyAgICB3cml0
ZShieXRlcywgbGVuZ3RoKTsKIH0KIAogI2lmIEVOQUJMRShXTUwpCkBAIC0yNDg2LDcgKzI2NTgs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0cmFuc2l0aW9uVG9Db21taXR0ZWQoUGFzc1JlZlB0cjxD
YWNoZWRQYWdlPiBjYWNoZWRQYWdlKQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogCi0gICAgd3JpdGVyKCktPnNldE1JTUVUeXBlKGRsLT5yZXNwb25zZU1JTUVUeXBl
KCkpOworICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IGRsLT5yZXNwb25zZU1JTUVUeXBlKCk7CiAK
ICAgICAvLyBUZWxsIHRoZSBjbGllbnQgd2UndmUgY29tbWl0dGVkIHRoaXMgVVJMLgogICAgIEFT
U0VSVChtX2ZyYW1lLT52aWV3KCkpOwpAQCAtMjYwMyw4ICsyNzc1LDggQEAgdm9pZCBGcmFtZUxv
YWRlcjo6b3BlbihDYWNoZWRGcmFtZUJhc2UmIGNhY2hlZEZyYW1lKQogICAgIG1fVVJMID0gdXJs
OwogICAgIG1fd29ya2luZ1VSTCA9IHVybDsKIAotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zdGFy
dGVkKCk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsZWFyKHRydWUsIHRydWUsIGNhY2hlZEZy
YW1lLmlzTWFpbkZyYW1lKCkpOworICAgIHN0YXJ0ZWQoKTsKKyAgICBjbGVhcih0cnVlLCB0cnVl
LCBjYWNoZWRGcmFtZS5pc01haW5GcmFtZSgpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IGNhY2hlZEZyYW1lLmRvY3VtZW50KCk7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKQEAgLTI2MzEs
MTEgKzI4MDMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZyYW1lQmFzZSYgY2Fj
aGVkRnJhbWUpCiAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNldFVSTChkb2N1bWVudC0+dXJs
KCkpOwogICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5zZXRTZWN1cml0eU9yaWdpbihkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiAKLSAgICAvLyBGSVhNRTogSSB3b3VsZCBoYXZlIGV4cGVj
dGVkIHVzIHRvIHJlc3RvcmUgdGhlIHZhbHVlIG9mCi0gICAgLy8gRG9jdW1lbnRXcml0ZXI6Om1f
ZW5jb2RpbmcgaGVyZSwgYnV0IHdlIGRvbid0IHNlZW0gdG8uIEkgd29uZGVyIGlmCi0gICAgLy8g
dGhhdCdzIGEgYnVnLiAgT25lIHdheSB0byB0ZXN0IGlzIHRvIGxvb2sgYXQgdGhlIGZhbGxiYWNr
IGFycmF5IG9mCi0gICAgLy8gZW5jb2RpbmdzIGZvciBkZWNvZGluZyBjb250ZW50IGRpc3Bvc2l0
aW9uLgotICAgIHdyaXRlcigpLT5zZXREZWNvZGVyKGRvY3VtZW50LT5kZWNvZGVyKCkpOworICAg
IG1fZGVjb2RlciA9IGRvY3VtZW50LT5kZWNvZGVyKCk7CiAKICAgICB1cGRhdGVGaXJzdFBhcnR5
Rm9yQ29va2llcygpOwogCkBAIC0yNzI3LDE0ICsyODk1LDE0IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmZpbmlzaGVkTG9hZGluZ0RvY3VtZW50KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgQXJj
aGl2ZVJlc291cmNlKiBtYWluUmVzb3VyY2UgPSBhcmNoaXZlLT5tYWluUmVzb3VyY2UoKTsKICAg
ICBsb2FkZXItPnNldFBhcnNlZEFyY2hpdmVEYXRhKG1haW5SZXNvdXJjZS0+ZGF0YSgpKTsKIAot
ICAgIHdyaXRlcigpLT5zZXRNSU1FVHlwZShtYWluUmVzb3VyY2UtPm1pbWVUeXBlKCkpOworICAg
IG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1haW5SZXNvdXJjZS0+bWltZVR5cGUoKTsKIAogICAgIGNs
b3NlVVJMKCk7CiAgICAgZGlkT3BlblVSTChtYWluUmVzb3VyY2UtPnVybCgpKTsKIAogICAgIFN0
cmluZyB1c2VyQ2hvc2VuRW5jb2RpbmcgPSBkb2N1bWVudExvYWRlcigpLT5vdmVycmlkZUVuY29k
aW5nKCk7CiAgICAgYm9vbCBlbmNvZGluZ0lzVXNlckNob3NlbiA9ICF1c2VyQ2hvc2VuRW5jb2Rp
bmcuaXNOdWxsKCk7Ci0gICAgd3JpdGVyKCktPnNldEVuY29kaW5nKGVuY29kaW5nSXNVc2VyQ2hv
c2VuID8gdXNlckNob3NlbkVuY29kaW5nIDogbWFpblJlc291cmNlLT50ZXh0RW5jb2RpbmcoKSwg
ZW5jb2RpbmdJc1VzZXJDaG9zZW4pOworICAgIHNldEVuY29kaW5nKGVuY29kaW5nSXNVc2VyQ2hv
c2VuID8gdXNlckNob3NlbkVuY29kaW5nIDogbWFpblJlc291cmNlLT50ZXh0RW5jb2RpbmcoKSwg
ZW5jb2RpbmdJc1VzZXJDaG9zZW4pOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkp
OwogCkBAIC0zMTQxLDEyICszMzA5LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVs
ZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKIAogICAg
IC8vIEFsd2F5cyB0cnkgVVRGLTguIElmIHRoYXQgZmFpbHMsIHRyeSBmcmFtZSBlbmNvZGluZyAo
aWYgYW55KSBhbmQgdGhlbiB0aGUgZGVmYXVsdC4KICAgICAvLyBGb3IgYSBuZXdseSBvcGVuZWQg
ZnJhbWUgd2l0aCBhbiBlbXB0eSBVUkwsIGVuY29kaW5nKCkgc2hvdWxkIG5vdCBiZSB1c2VkLCBi
ZWNhdXNlIHRoaXMgbWV0aG9kcyBhc2tzIGRlY29kZXIsIHdoaWNoIHVzZXMgSVNPLTg4NTktMS4K
LSAgICBTdHJpbmcgZW5jb2RpbmcxID0gIlVURi04IjsKLSAgICBTdHJpbmcgZW5jb2RpbmcyID0g
d3JpdGVyKCktPmRlcHJpY2F0ZWRGcmFtZUVuY29kaW5nKCk7Ci0gICAgU3RyaW5nIGVuY29kaW5n
MzsKLSAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKSkKLSAg
ICAgICAgZW5jb2RpbmczID0gc2V0dGluZ3MtPmRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCk7Ci0g
ICAgcmVxdWVzdC5zZXRSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tB
cnJheShlbmNvZGluZzEsIGVuY29kaW5nMiwgZW5jb2RpbmczKTsKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOworICAgIHJlcXVlc3Quc2V0UmVzcG9uc2VDb250
ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoIlVURi04IiwgbV9VUkwuaXNFbXB0
eSgpID8gbV9lbmNvZGluZyA6IGVuY29kaW5nKCksIHNldHRpbmdzID8gc2V0dGluZ3MtPmRlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lKCkgOiBTdHJpbmcoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0cmluZyBv
cmlnaW4pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCAxZDcxZWI0Li5lZDRmZjY2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNkZWZpbmUgRnJhbWVMb2FkZXJfaAogCiAjaW5j
bHVkZSAiQ2FjaGVQb2xpY3kuaCIKLSNpbmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJIaXN0b3J5Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlBvbGljeUNhbGxiYWNrLmgiCkBAIC0xMDAsNyArOTksNiBAQCBwdWJsaWM6CiAg
ICAgUG9saWN5Q2hlY2tlciogcG9saWN5Q2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuICZtX3BvbGlj
eUNoZWNrZXI7IH0KICAgICBIaXN0b3J5Q29udHJvbGxlciogaGlzdG9yeSgpIGNvbnN0IHsgcmV0
dXJuICZtX2hpc3Rvcnk7IH0KICAgICBSZXNvdXJjZUxvYWROb3RpZmllciogbm90aWZpZXIoKSBj
b25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9Ci0gICAgRG9jdW1lbnRXcml0ZXIqIHdyaXRlcigp
IGNvbnN0IHsgcmV0dXJuICZtX3dyaXRlcjsgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90
IGNvb2wsIHBlb3BsZS4gVGhlcmUgYXJlIHRvbyBtYW55IGRpZmZlcmVudCBmdW5jdGlvbnMgdGhh
dCBhbGwgc3RhcnQgbG9hZHMuCiAgICAgLy8gV2Ugc2hvdWxkIGFpbSB0byBjb25zb2xpZGF0ZSB0
aGVzZSBpbnRvIGEgc21hbGxlciBzZXQgb2YgZnVuY3Rpb25zLCBhbmQgdHJ5IHRvIHJldXNlIG1v
cmUgb2YKQEAgLTIyOCwxNiArMjI2LDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRXhwbGlj
aXRPcGVuKCk7CiAKLSAgICAvLyBDYWxsYmFja3MgZnJvbSBEb2N1bWVudFdyaXRlcgotICAgIHZv
aWQgZGlkQmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKTsK
LSAgICB2b2lkIGRpZEVuZERvY3VtZW50KCk7Ci0gICAgdm9pZCB3aWxsU2V0RW5jb2RpbmcoKTsK
LQogICAgIEtVUkwgaWNvblVSTCgpOwogICAgIHZvaWQgY29tbWl0SWNvblVSTFRvSWNvbkRhdGFi
YXNlKGNvbnN0IEtVUkwmKTsKIAogICAgIEtVUkwgYmFzZVVSTCgpIGNvbnN0OwogCisgICAgdm9p
ZCByZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIGJlZ2luKCk7Cisg
ICAgdm9pZCBiZWdpbihjb25zdCBLVVJMJiwgYm9vbCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWls
YWJsZSA9IHRydWUsIFNlY3VyaXR5T3JpZ2luKiBmb3JjZWRTZWN1cml0eU9yaWdpbiA9IDApOwor
CisgICAgdm9pZCB3cml0ZShjb25zdCBjaGFyKiBzdHJpbmcsIGludCBsZW5ndGggPSAtMSwgYm9v
bCBmbHVzaCA9IGZhbHNlKTsKKyAgICB2b2lkIHdyaXRlKGNvbnN0IFN0cmluZyYpOworICAgIHZv
aWQgZW5kKCk7CisgICAgdm9pZCBlbmRJZk5vdExvYWRpbmdNYWluUmVzb3VyY2UoKTsKKworICAg
IHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGluZywgYm9vbCB1c2VyQ2hvc2Vu
KTsKKyAgICBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsKKwogICAgIHZvaWQgdG9rZW5pemVyUHJv
Y2Vzc2VkRGF0YSgpOwogCiAgICAgdm9pZCBoYW5kbGVkT25sb2FkRXZlbnRzKCk7CkBAIC0yNzcs
OCArMjgzLDggQEAgcHVibGljOgogCiAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV9VUkw7IH0KIAotICAgIC8vIHNldFVSTCBpcyBhIGxvdy1sZXZlbCBzZXR0ZXIgYW5kIGRv
ZXMgbm90IHRyaWdnZXIgbG9hZGluZy4KLSAgICB2b2lkIHNldFVSTChjb25zdCBLVVJMJik7Cisg
ICAgdm9pZCBzZXRSZXNwb25zZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IFN0
cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0OwogCiAgICAgYm9vbCBhbGxvd1BsdWdpbnMo
UmVhc29uRm9yQ2FsbGluZ0FsbG93UGx1Z2lucyk7CiAgICAgYm9vbCBjb250YWluc1BsdWdpbnMo
KSBjb25zdDsKQEAgLTI5Nyw3ICszMDMsNiBAQCBwdWJsaWM6CiAgICAgS1VSTCBjb21wbGV0ZVVS
TChjb25zdCBTdHJpbmcmIHVybCk7CiAKICAgICB2b2lkIGNhbmNlbEFuZENsZWFyKCk7Ci0gICAg
dm9pZCBjbGVhcihib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJT
Y3JpcHRPYmplY3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUpOwogCiAgICAg
dm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmKTsKIApAQCAtMzQyLDggKzM0Nyw2IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBPYmplY3RDb250ZW50VHlwZSBkZWZhdWx0T2JqZWN0Q29udGVudFR5
cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotICAgIGJvb2wg
aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2lzRGlz
cGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50OyB9Ci0KIHByaXZhdGU6CiAgICAgYm9vbCBjYW5D
YWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKCk7CiAjaWZuZGVmIE5ERUJVRwpAQCAtNDA4LDYg
KzQxMSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUhpc3RvcnlBZnRlckNsaWVudFJl
ZGlyZWN0KCk7CiAKKyAgICB2b2lkIGNsZWFyKGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVzID0g
dHJ1ZSwgYm9vbCBjbGVhclNjcmlwdE9iamVjdHMgPSB0cnVlLCBib29sIGNsZWFyRnJhbWVWaWV3
ID0gdHJ1ZSk7CisKICAgICBib29sIHNob3VsZFJlbG9hZFRvSGFuZGxlVW5yZWFjaGFibGVVUkwo
RG9jdW1lbnRMb2FkZXIqKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7CkBA
IC00NjAsNyArNDY1LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIgbV9w
b2xpY3lDaGVja2VyOwogICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5Owog
ICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3RpZmVyOwotICAgIG11dGFibGUg
RG9jdW1lbnRXcml0ZXIgbV93cml0ZXI7CiAKICAgICBGcmFtZVN0YXRlIG1fc3RhdGU7CiAgICAg
RnJhbWVMb2FkVHlwZSBtX2xvYWRUeXBlOwpAQCAtNDg0LDYgKzQ4OCw4IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNFeGVjdXRpbmdKYXZhU2NyaXB0Rm9ybUFjdGlvbjsKIAorICAgIFN0cmlu
ZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisKICAgICBib29sIG1fZGlkQ2FsbEltcGxpY2l0Q2xvc2U7
CiAgICAgYm9vbCBtX3dhc1VubG9hZEV2ZW50RW1pdHRlZDsKICAgICBib29sIG1fdW5sb2FkRXZl
bnRCZWluZ0Rpc3BhdGNoZWQ7CkBAIC01MDEsNiArNTA3LDExIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2NhbmNlbGxpbmdXaXRoTG9hZEluUHJvZ3Jlc3M7CiAKICAgICBib29sIG1fbmVlZHNDbGVh
cjsKKyAgICBib29sIG1fcmVjZWl2ZWREYXRhOworCisgICAgYm9vbCBtX2VuY29kaW5nV2FzQ2hv
c2VuQnlVc2VyOworICAgIFN0cmluZyBtX2VuY29kaW5nOworICAgIFJlZlB0cjxUZXh0UmVzb3Vy
Y2VEZWNvZGVyPiBtX2RlY29kZXI7CiAKICAgICBib29sIG1fY29udGFpbnNQbHVnSW5zOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NZWRpYURvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL01lZGlhRG9jdW1lbnQuY3BwCmluZGV4IDI3MzYxZmMuLmEyZDYyNzYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01l
ZGlhRG9jdW1lbnQuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBNZWRpYURvY3VtZW50Ojpy
ZXBsYWNlTWVkaWFFbGVtZW50VGltZXJGaXJlZChUaW1lcjxNZWRpYURvY3VtZW50PiopCiAgICAg
ICAgIGVtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlKGhlaWdodEF0dHIsICIxMDAlIik7CiAgICAg
ICAgIGVtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAicGx1Z2luIik7CiAgICAg
ICAgIGVtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlKHNyY0F0dHIsIHVybCgpLnN0cmluZygpKTsK
LSAgICAgICAgZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUodHlwZUF0dHIsIGZyYW1lKCktPmxv
YWRlcigpLT53cml0ZXIoKS0+bWltZVR5cGUoKSk7CisgICAgICAgIGVtYmVkRWxlbWVudC0+c2V0
QXR0cmlidXRlKHR5cGVBdHRyLCBmcmFtZSgpLT5sb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgp
KTsKIAogICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICB2aWRlb0VsZW1lbnQtPnBh
cmVudCgpLT5yZXBsYWNlQ2hpbGQoZW1iZWRFbGVtZW50LCB2aWRlb0VsZW1lbnQsIGVjKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1BsdWdpbkRvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCA3MDI0MzMzLi4xZDJjMmI3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIv
UGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBQbHVnaW5Ub2tlbml6
ZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICAKICAgICBtX2VtYmVkRWxlbWVudC0+
c2V0QXR0cmlidXRlKG5hbWVBdHRyLCAicGx1Z2luIik7CiAgICAgbV9lbWJlZEVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShzcmNBdHRyLCBtX2RvYy0+dXJsKCkuc3RyaW5nKCkpOwotICAgIG1fZW1iZWRF
bGVtZW50LT5zZXRBdHRyaWJ1dGUodHlwZUF0dHIsIG1fZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+
d3JpdGVyKCktPm1pbWVUeXBlKCkpOworICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
dHlwZUF0dHIsIG1fZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+cmVzcG9uc2VNSU1FVHlwZSgpKTsK
ICAgICAKICAgICBib2R5LT5hcHBlbmRDaGlsZChlbWJlZEVsZW1lbnQsIGVjKTsgICAgCiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwCmluZGV4IDQzNmRj
OGIuLmNmODkwYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxk
ZXIuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIFRleHRFbmNvZGluZyBGb3JtRGF0YUJ1aWxkZXI6OmRh
dGFFbmNvZGluZyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxv
YWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2Fk
ZXIoKS0+ZW5jb2RpbmcoKTsKIAogICAgIHJldHVybiBMYXRpbjFFbmNvZGluZygpOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGY0OTZiMzIuLjNjZGU2MTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKQEAgLTI1OSwxMCArMjU5LDEwIEBAIGJvb2wgU1ZHSW1hZ2U6OmRh
dGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICBsb2FkZXItPmxvYWQoZmFr
ZVJlcXVlc3QsIGZhbHNlKTsgLy8gTWFrZSBzdXJlIHRoZSBEb2N1bWVudExvYWRlciBpcyBjcmVh
dGVkCiAgICAgICAgIGxvYWRlci0+cG9saWN5Q2hlY2tlcigpLT5jYW5jZWxDaGVjaygpOyAvLyBj
YW5jZWwgYW55IHBvbGljeSBjaGVja3MKICAgICAgICAgbG9hZGVyLT5jb21taXRQcm92aXNpb25h
bExvYWQoMCk7Ci0gICAgICAgIGxvYWRlci0+d3JpdGVyKCktPnNldE1JTUVUeXBlKCJpbWFnZS9z
dmcreG1sIik7Ci0gICAgICAgIGxvYWRlci0+d3JpdGVyKCktPmJlZ2luKEtVUkwoKSk7IC8vIGNy
ZWF0ZSB0aGUgZW1wdHkgZG9jdW1lbnQKLSAgICAgICAgbG9hZGVyLT53cml0ZXIoKS0+YWRkRGF0
YShkYXRhKCktPmRhdGEoKSwgZGF0YSgpLT5zaXplKCkpOwotICAgICAgICBsb2FkZXItPndyaXRl
cigpLT5lbmQoKTsKKyAgICAgICAgbG9hZGVyLT5zZXRSZXNwb25zZU1JTUVUeXBlKCJpbWFnZS9z
dmcreG1sIik7CisgICAgICAgIGxvYWRlci0+YmVnaW4oS1VSTCgpKTsgLy8gY3JlYXRlIHRoZSBl
bXB0eSBkb2N1bWVudAorICAgICAgICBsb2FkZXItPndyaXRlKGRhdGEoKS0+ZGF0YSgpLCBkYXRh
KCktPnNpemUoKSk7CisgICAgICAgIGxvYWRlci0+ZW5kKCk7CiAgICAgICAgIGZyYW1lLT52aWV3
KCktPnNldFRyYW5zcGFyZW50KHRydWUpOyAvLyBTVkcgSW1hZ2VzIGFyZSB0cmFuc3BhcmVudC4K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ1YWUyNmYuLjFkZDA2MmMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI3IEBACisyMDEwLTA0LTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNTc0Njgu
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzU3NDY4CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQzMworCisgICAgICAg
IEJyb2tlIHRoZSB3b3JsZC4uLiAgTXVzdCBoYXZlIGFwcGxpZWQgdGhlIHBhdGNoIHdyb25nCisg
ICAgICAgIChSZXF1ZXN0ZWQgYnkgYWJhcnRoIG9uICN3ZWJraXQpLgorCisgICAgICAgICogc3Jj
L0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51
Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMpOgorICAgICAgICAqIHNy
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudEltcGw6OmZpbmlzaGVkTG9hZGluZyk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZW5jb2RpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmNvbW1pdERvY3VtZW50RGF0YSk6CisgICAgICAgICog
c3JjL1dlYlBhZ2VTZXJpYWxpemVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VT
ZXJpYWxpemVySW1wbDo6cHJlQWN0aW9uQmVmb3JlU2VyaWFsaXplT3BlblRhZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VTZXJpYWxpemVySW1wbDo6c2VyaWFsaXplKToKKyAgICAgICAgKiBz
cmMvV2ViU2VhcmNoYWJsZUZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdldEZvcm1F
bmNvZGluZyk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnBhZ2VFbmNvZGluZyk6CisKIDIwMTAtMDQtMTEgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAppbmRleCBi
ZWU0MzEwLi43MDhkMTEzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRN
ZW51Q2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNs
aWVudEltcGwuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24g
Q29udGV4dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcygKIAog
ICAgIC8vIElmIGl0J3Mgbm90IGEgbGluaywgYW4gaW1hZ2UsIGEgbWVkaWEgZWxlbWVudCwgb3Ig
YW4gaW1hZ2UvbWVkaWEgbGluaywKICAgICAvLyBzaG93IGEgc2VsZWN0aW9uIG1lbnUgb3IgYSBt
b3JlIGdlbmVyaWMgcGFnZSBtZW51LgotICAgIGRhdGEuZnJhbWVFbmNvZGluZyA9IHNlbGVjdGVk
RnJhbWUtPmxvYWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKKyAgICBkYXRhLmZyYW1lRW5j
b2RpbmcgPSBzZWxlY3RlZEZyYW1lLT5sb2FkZXIoKS0+ZW5jb2RpbmcoKTsKIAogICAgIC8vIFNl
bmQgdGhlIGZyYW1lIGFuZCBwYWdlIFVSTHMgaW4gYW55IGNhc2UuCiAgICAgZGF0YS5wYWdlVVJM
ID0gdXJsRnJvbUZyYW1lKG1fd2ViVmlldy0+bWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCAxMzUz
OTJiLi5jZWNmYmIzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1w
bDo6ZmluaXNoZWRMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBkbCkKICAgICAgICAgLy8gSG93ZXZl
ciwgd2Ugb25seSB3YW50IHRvIGRvIHRoaXMgaWYgbWFrZVJlcHJlc2VudGF0aW9uIGhhcyBiZWVu
IGNhbGxlZCwgdG8KICAgICAgICAgLy8gbWF0Y2ggdGhlIGJlaGF2aW9yIG9uIHRoZSBNYWMuCiAg
ICAgICAgIGlmIChtX2hhc1JlcHJlc2VudGF0aW9uKQotICAgICAgICAgICAgZGwtPmZyYW1lTG9h
ZGVyKCktPndyaXRlcigpLT5zZXRFbmNvZGluZygiIiwgZmFsc2UpOworICAgICAgICAgICAgZGwt
PmZyYW1lTG9hZGVyKCktPnNldEVuY29kaW5nKCIiLCBmYWxzZSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggZWJkMDE1Yy4uMzU5NDc3ZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTIyLDcgKzUyMiw3IEBAIFdlYlVSTCBX
ZWJGcmFtZUltcGw6Om9wZW5TZWFyY2hEZXNjcmlwdGlvblVSTCgpIGNvbnN0CiAKIFdlYlN0cmlu
ZyBXZWJGcmFtZUltcGw6OmVuY29kaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS0+
bG9hZGVyKCktPndyaXRlcigpLT5lbmNvZGluZygpOworICAgIHJldHVybiBmcmFtZSgpLT5sb2Fk
ZXIoKS0+ZW5jb2RpbmcoKTsKIH0KIAogV2ViU2l6ZSBXZWJGcmFtZUltcGw6OnNjcm9sbE9mZnNl
dCgpIGNvbnN0CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y29tbWl0
RG9jdW1lbnREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuKQogICAgICAgICB1
c2VyQ2hvc2VuID0gZmFsc2U7CiAgICAgICAgIGVuY29kaW5nID0gZG9jdW1lbnRMb2FkZXItPnJl
c3BvbnNlKCkudGV4dEVuY29kaW5nTmFtZSgpOwogICAgIH0KLSAgICBtX2ZyYW1lLT5sb2FkZXIo
KS0+d3JpdGVyKCktPnNldEVuY29kaW5nKGVuY29kaW5nLCB1c2VyQ2hvc2VuKTsKKyAgICBtX2Zy
YW1lLT5sb2FkZXIoKS0+c2V0RW5jb2RpbmcoZW5jb2RpbmcsIHVzZXJDaG9zZW4pOwogCiAgICAg
Ly8gTk9URTogbWFjIG9ubHkgZG9lcyB0aGlzIGlmIHRoZXJlIGlzIGEgZG9jdW1lbnQKICAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+YWRkRGF0YShkYXRhLCBkYXRhTGVuKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGFnZVNlcmlhbGl6ZXJJbXBsLmNwcAppbmRleCBlODJiNWMwLi5kNWIyYjdm
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VTZXJpYWxpemVySW1wbC5j
cHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlU2VyaWFsaXplckltcGwuY3BwCkBA
IC0xNzAsNyArMTcwLDcgQEAgU3RyaW5nIFdlYlBhZ2VTZXJpYWxpemVySW1wbDo6cHJlQWN0aW9u
QmVmb3JlU2VyaWFsaXplT3BlblRhZygKICAgICAgICAgICAgIC8vIEdldCBlbmNvZGluZyBpbmZv
LgogICAgICAgICAgICAgU3RyaW5nIHhtbEVuY29kaW5nID0gcGFyYW0tPmRvYy0+eG1sRW5jb2Rp
bmcoKTsKICAgICAgICAgICAgIGlmICh4bWxFbmNvZGluZy5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgeG1sRW5jb2RpbmcgPSBwYXJhbS0+ZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+d3JpdGVy
KCktPmVuY29kaW5nKCk7CisgICAgICAgICAgICAgICAgeG1sRW5jb2RpbmcgPSBwYXJhbS0+ZG9j
LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZW5jb2RpbmcoKTsKICAgICAgICAgICAgIGlmICh4bWxFbmNv
ZGluZy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgeG1sRW5jb2RpbmcgPSBVVEY4RW5jb2Rp
bmcoKS5uYW1lKCk7CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCI8P3htbCB2ZXJzaW9uPVwi
Iik7CkBAIC01MTQsNyArNTE0LDcgQEAgYm9vbCBXZWJQYWdlU2VyaWFsaXplckltcGw6OnNlcmlh
bGl6ZSgpCiAgICAgICAgICAgICAvLyBBIG5ldyBkb2N1bWVudCwgd2Ugd2lsbCBzZXJpYWxpemUg
aXQuCiAgICAgICAgICAgICBkaWRTZXJpYWxpemF0aW9uID0gdHJ1ZTsKICAgICAgICAgICAgIC8v
IEdldCB0YXJnZXQgZW5jb2RpbmcgZm9yIGN1cnJlbnQgZG9jdW1lbnQuCi0gICAgICAgICAgICBT
dHJpbmcgZW5jb2RpbmcgPSBjdXJyZW50RnJhbWUtPmZyYW1lKCktPmxvYWRlcigpLT53cml0ZXIo
KS0+ZW5jb2RpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBlbmNvZGluZyA9IGN1cnJlbnRGcmFt
ZS0+ZnJhbWUoKS0+bG9hZGVyKCktPmVuY29kaW5nKCk7CiAgICAgICAgICAgICAvLyBDcmVhdGUg
dGhlIHRleHQgZW5jb2Rpbmcgb2JqZWN0IHdpdGggdGFyZ2V0IGVuY29kaW5nLgogICAgICAgICAg
ICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyhlbmNvZGluZyk7CiAgICAgICAgICAgICAvLyBD
b25zdHJ1Y3Qgc2VyaWFsaXplIHBhcmFtZXRlciBmb3IgbGF0ZSBwcm9jZXNzaW5nIGRvY3VtZW50
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWFyY2hhYmxlRm9ybURhdGEu
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWFyY2hhYmxlRm9ybURhdGEuY3BwCmluZGV4
IDhlZWY2Y2MuLmVkZGFmZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Vh
cmNoYWJsZUZvcm1EYXRhLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlYXJjaGFi
bGVGb3JtRGF0YS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBHZXRGb3JtRW5jb2RpbmcoY29u
c3QgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBUZXh0RW5jb2RpbmcqIGVuY29kaW5nKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBmb3JtLT5kb2N1
bWVudCgpLT5mcmFtZSgpOwotICAgICplbmNvZGluZyA9IGZyYW1lID8gVGV4dEVuY29kaW5nKGZy
YW1lLT5sb2FkZXIoKS0+d3JpdGVyKCktPmVuY29kaW5nKCkpIDogTGF0aW4xRW5jb2RpbmcoKTsK
KyAgICAqZW5jb2RpbmcgPSBmcmFtZSA/IFRleHRFbmNvZGluZyhmcmFtZS0+bG9hZGVyKCktPmVu
Y29kaW5nKCkpIDogTGF0aW4xRW5jb2RpbmcoKTsKIH0KIAogLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBzdWJtaXQgcmVxdWVzdCByZXN1bHRzIGluIGFuIEhUVFAgVVJMLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCAxOThhODFlLi42M2UxZTVmIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcApAQCAtMTI4Miw3ICsxMjgyLDcgQEAgV2ViU3RyaW5nIFdlYlZpZXdJbXBs
OjpwYWdlRW5jb2RpbmcoKSBjb25zdAogICAgIGlmICghbV9wYWdlLmdldCgpKQogICAgICAgICBy
ZXR1cm4gV2ViU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9h
ZGVyKCktPndyaXRlcigpLT5lbmNvZGluZygpOworICAgIHJldHVybiBtX3BhZ2UtPm1haW5GcmFt
ZSgpLT5sb2FkZXIoKS0+ZW5jb2RpbmcoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGFn
ZUVuY29kaW5nKGNvbnN0IFdlYlN0cmluZyYgZW5jb2RpbmdOYW1lKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkMDkzMTAxLi5m
NTg4OGRlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA0LTExICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNTc0NjguCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzU3
NDY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQz
MworCisgICAgICAgIEJyb2tlIHRoZSB3b3JsZC4uLiAgTXVzdCBoYXZlIGFwcGxpZWQgdGhlIHBh
dGNoIHdyb25nCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgYWJhcnRoIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y29tbWl0dGVkTG9hZCk6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcpOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfZW5j
b2RpbmcpOgorCiAyMDEwLTA0LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDI3ZmYzYzguLjg0YzQz
MjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6Y29t
bWl0dGVkTG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBjaGEKICAg
ICAgICAgICAgIGVuY29kaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLnRleHRFbmNvZGluZ05hbWUo
KTsKIAogICAgICAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBsb2FkZXItPmZyYW1lTG9h
ZGVyKCk7Ci0gICAgICAgIGZyYW1lTG9hZGVyLT53cml0ZXIoKS0+c2V0RW5jb2RpbmcoZW5jb2Rp
bmcsIHVzZXJDaG9zZW4pOworICAgICAgICBmcmFtZUxvYWRlci0+c2V0RW5jb2RpbmcoZW5jb2Rp
bmcsIHVzZXJDaG9zZW4pOwogICAgICAgICBpZiAoZGF0YSkKICAgICAgICAgICAgIGZyYW1lTG9h
ZGVyLT5hZGREYXRhKGRhdGEsIGxlbmd0aCk7CiAKQEAgLTg2OCw3ICs4NjgsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
IGRvY3VtZW50TG9hZGVyKQogewogICAgIGlmICghbV9wbHVnaW5WaWV3KSB7CiAgICAgICAgIEZy
YW1lTG9hZGVyKiBsb2FkZXIgPSBkb2N1bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKTsKLSAgICAg
ICAgbG9hZGVyLT53cml0ZXIoKS0+c2V0RW5jb2RpbmcobV9yZXNwb25zZS50ZXh0RW5jb2RpbmdO
YW1lKCksIGZhbHNlKTsKKyAgICAgICAgbG9hZGVyLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRl
eHRFbmNvZGluZ05hbWUoKSwgZmFsc2UpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fcGx1Z2lu
Vmlldy0+ZGlkRmluaXNoTG9hZGluZygpOwogICAgICAgICBtX3BsdWdpblZpZXcgPSAwOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAyMmY2ZDA0Li42ZjgxNjI1IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNDAxMSw3ICs0MDExLDcgQEAgY29uc3QgZ2No
YXIqIHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IE5VTEwpOwogCi0gICAgU3RyaW5nIGVuY29kaW5nID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1l
KCktPmxvYWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKKyAgICBTdHJpbmcgZW5jb2Rpbmcg
PSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmVuY29kaW5nKCk7CiAKICAg
ICBpZiAoIWVuY29kaW5nLmlzRW1wdHkoKSkgewogICAgICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0
ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBiZTM4ZGVkLi4yZDJhY2JlIDEwMDY0
NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNC0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU3
NDY4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC81NzQ2OAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0MzMKKworICAg
ICAgICBCcm9rZSB0aGUgd29ybGQuLi4gIE11c3QgaGF2ZSBhcHBsaWVkIHRoZSBwYXRjaCB3cm9u
ZworICAgICAgICAoUmVxdWVzdGVkIGJ5IGFiYXJ0aCBvbiAjd2Via2l0KS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRIYWlrdTo6Y29tbWl0dGVkTG9hZCk6CisKIDIwMTAtMDQt
MTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAppbmRleCA0MzAxOTRhLi4xOTQ5NDIxIDEwMDY0NAot
LS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5j
cHAKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFp
a3UuY3BwCkBAIC01MTAsNyArNTEwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEhhaWt1Ojpj
b21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnMKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gbG9hZGVyLT5mcmFt
ZUxvYWRlcigpOwotICAgIGZyYW1lTG9hZGVyLT53cml0ZXIoKS0+c2V0RW5jb2RpbmcobV9yZXNw
b25zZS50ZXh0RW5jb2RpbmdOYW1lKCksIGZhbHNlKTsKKyAgICBmcmFtZUxvYWRlci0+c2V0RW5j
b2RpbmcobV9yZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCksIGZhbHNlKTsKICAgICBmcmFtZUxv
YWRlci0+YWRkRGF0YShkYXRhLCBsZW5ndGgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQzZDZmOTMuLjdmNTg5OWIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDQtMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI1
NzQ2OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNTc0NjgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDMzCisKKyAg
ICAgICAgQnJva2UgdGhlIHdvcmxkLi4uICBNdXN0IGhhdmUgYXBwbGllZCB0aGUgcGF0Y2ggd3Jv
bmcKKyAgICAgICAgKFJlcXVlc3RlZCBieSBhYmFydGggb24gI3dlYmtpdCkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2FuUHJvdmlkZURv
Y3VtZW50U291cmNlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9yZWNlaXZlZERhdGE6dGV4dEVu
Y29kaW5nTmFtZTpdKToKKwogMjAxMC0wNC0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCmluZGV4IDRjZTk4NzYuLjUzOGMyM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2
MSw3ICs5NjEsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlcikKIC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQog
ewogICAgIEZyYW1lKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgU3RyaW5nIG1p
bWVUeXBlID0gZnJhbWUtPmxvYWRlcigpLT53cml0ZXIoKS0+bWltZVR5cGUoKTsKKyAgICBTdHJp
bmcgbWltZVR5cGUgPSBmcmFtZS0+bG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5cGUoKTsKICAgICBQ
bHVnaW5EYXRhKiBwbHVnaW5EYXRhID0gZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPnBs
dWdpbkRhdGEoKSA6IDA7CiAKICAgICBpZiAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKSB8fApAQCAtOTg2LDcgKzk4Niw3IEBAIHN0YXRpYyBpbmxp
bmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAg
IGJvb2wgdXNlckNob3NlbiA9ICFlbmNvZGluZy5pc051bGwoKTsKICAgICBpZiAoZW5jb2Rpbmcu
aXNOdWxsKCkpCiAgICAgICAgIGVuY29kaW5nID0gdGV4dEVuY29kaW5nTmFtZTsKLSAgICBfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+d3JpdGVyKCktPnNldEVuY29kaW5nKGVuY29kaW5n
LCB1c2VyQ2hvc2VuKTsKKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKS0+c2V0RW5j
b2RpbmcoZW5jb2RpbmcsIHVzZXJDaG9zZW4pOwogICAgIFtzZWxmIF9hZGREYXRhOmRhdGFdOwog
fQogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCAwZGEzMzk1Li4yZDFlYmMxIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNC0xMSAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU3NDY4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC81NzQ2OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc0MzMKKworICAgICAgICBCcm9rZSB0aGUgd29ybGQuLi4gIE11c3QgaGF2
ZSBhcHBsaWVkIHRoZSBwYXRjaCB3cm9uZworICAgICAgICAoUmVxdWVzdGVkIGJ5IGFiYXJ0aCBv
biAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZmluaXNoZWRM
b2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldE1haW5E
b2N1bWVudEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNv
bW1pdHRlZExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZGluZyk6CisKIDIwMTAtMDQtMTEgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCA1ZTZj
NTE4Li5lNDk3ZGNjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCkBAIC01MzYsNyArNTM2LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dFF0OjpmaW5pc2hlZExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICBpZiAoIW1f
cGx1Z2luVmlldykgewogICAgICAgICBpZihtX2ZpcnN0RGF0YSkgewogICAgICAgICAgICAgRnJh
bWVMb2FkZXIgKmZsID0gbG9hZGVyLT5mcmFtZUxvYWRlcigpOwotICAgICAgICAgICAgZmwtPndy
aXRlcigpLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSwgZmFsc2Up
OworICAgICAgICAgICAgZmwtPnNldEVuY29kaW5nKG1fcmVzcG9uc2UudGV4dEVuY29kaW5nTmFt
ZSgpLCBmYWxzZSk7CiAgICAgICAgICAgICBtX2ZpcnN0RGF0YSA9IGZhbHNlOyAKICAgICAgICAg
fQogICAgIH0KQEAgLTcyNyw3ICs3MjcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNl
dE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiB7CiAg
ICAgaWYgKCFtX3BsdWdpblZpZXcpIHsKICAgICAgICAgaWYgKG1fZmlyc3REYXRhKSB7Ci0gICAg
ICAgICAgICBsb2FkZXItPmZyYW1lTG9hZGVyKCktPndyaXRlcigpLT5zZXRFbmNvZGluZyhtX3Jl
c3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSwgZmFsc2UpOworICAgICAgICAgICAgbG9hZGVyLT5m
cmFtZUxvYWRlcigpLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSwg
ZmFsc2UpOwogICAgICAgICAgICAgbV9maXJzdERhdGEgPSBmYWxzZTsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CkBAIC03NDUsNyArNzQ1LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpj
b21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGMKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgRnJhbWVMb2FkZXIgKmZsID0gbG9hZGVyLT5mcmFt
ZUxvYWRlcigpOwogICAgICAgICBpZiAobV9maXJzdERhdGEpIHsKLSAgICAgICAgICAgIGZsLT53
cml0ZXIoKS0+c2V0RW5jb2RpbmcobV9yZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCksIGZhbHNl
KTsKKyAgICAgICAgICAgIGZsLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNvZGluZ05h
bWUoKSwgZmFsc2UpOwogICAgICAgICAgICAgbV9maXJzdERhdGEgPSBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICBmbC0+YWRkRGF0YShkYXRhLCBsZW5ndGgpOwpAQCAtOTMxLDcgKzkzMSw3IEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciogbG9hZGVyCiAKICAgICBpZiAobV9maXJzdERhdGEpIHsKICAgICAg
ICAgRnJhbWVMb2FkZXIgKmZsID0gbG9hZGVyLT5mcmFtZUxvYWRlcigpOwotICAgICAgICBmbC0+
d3JpdGVyKCktPnNldEVuY29kaW5nKG1fcmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpLCBmYWxz
ZSk7CisgICAgICAgIGZsLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUo
KSwgZmFsc2UpOwogICAgICAgICBtX2ZpcnN0RGF0YSA9IGZhbHNlOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ZGRiMWM2Ni4uMzhhZjZmNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNC0xMSAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjU3NDY4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC81NzQ2OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzc0MzMKKworICAgICAgICBCcm9rZSB0aGUgd29ybGQuLi4gIE11c3QgaGF2ZSBhcHBs
aWVkIHRoZSBwYXRjaCB3cm9uZworICAgICAgICAoUmVxdWVzdGVkIGJ5IGFiYXJ0aCBvbiAjd2Vi
a2l0KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWNlaXZlZERhdGEpOgorCiAyMDEw
LTA0LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGZjNzVlYTQuLjQ3NTIwNDAgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC01
MDksNyArNTA5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVjZWl2ZWREYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGNvbnN0IFN0cmkKICAgICBib29sIHVzZXJDaG9z
ZW4gPSAhZW5jb2RpbmcuaXNOdWxsKCk7CiAgICAgaWYgKGVuY29kaW5nLmlzTnVsbCgpKQogICAg
ICAgICBlbmNvZGluZyA9IHRleHRFbmNvZGluZzsKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT53
cml0ZXIoKS0+c2V0RW5jb2RpbmcoZW5jb2RpbmcsIHVzZXJDaG9zZW4pOworICAgIGNvcmVGcmFt
ZS0+bG9hZGVyKCktPnNldEVuY29kaW5nKGVuY29kaW5nLCB1c2VyQ2hvc2VuKTsKIAogICAgIGNv
cmVGcmFtZS0+bG9hZGVyKCktPmFkZERhdGEoZGF0YSwgbGVuZ3RoKTsKIH0KZGlmZiAtLWdpdCBh
L1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDgyMDI0ZWEu
LjM1Y2Q1NzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA0LTExICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNTc0NjguCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzU3
NDY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQz
MworCisgICAgICAgIEJyb2tlIHRoZSB3b3JsZC4uLiAgTXVzdCBoYXZlIGFwcGxpZWQgdGhlIHBh
dGNoIHdyb25nCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgYWJhcnRoIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmNvbW1pdHRlZExvYWQpOgorCiAyMDEwLTA0
LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFd4LmNwcCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guY3BwCmluZGV4IDAzODlmYmMuLjNkMmQwNjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCisrKyBiL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCkBAIC02MDQsNyArNjA0LDcgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFd4Ojpjb21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGMKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9wbHVn
aW5WaWV3KSB7CiAgICAgICAgIEZyYW1lTG9hZGVyKiBmbCA9IGxvYWRlci0+ZnJhbWVMb2FkZXIo
KTsKLSAgICAgICAgZmwtPndyaXRlcigpLT5zZXRFbmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNv
ZGluZ05hbWUoKSwgZmFsc2UpOworICAgICAgICBmbC0+c2V0RW5jb2RpbmcobV9yZXNwb25zZS50
ZXh0RW5jb2RpbmdOYW1lKCksIGZhbHNlKTsKICAgICAgICAgZmwtPmFkZERhdGEoZGF0YSwgbGVu
Z3RoKTsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>