<?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>95695</bug_id>
          
          <creation_ts>2012-09-03 10:09:29 -0700</creation_ts>
          <short_desc>REGRESSION(r127427): Breaks some inspector/debugger tests on JSC (Requested by vsevik on #webkit).</short_desc>
          <delta_ts>2012-09-03 10:16:10 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>95352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710703</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 10:09:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/127427 broke the build:
Breaks some inspector/debugger tests on JSC (Requested by vsevik 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>710705</commentid>
    <comment_count>1</comment_count>
      <attachid>161941</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 10:10:08 -0700</bug_when>
    <thetext>Created attachment 161941
ROLLOUT of r127427

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

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710706</commentid>
    <comment_count>2</comment_count>
      <attachid>161941</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 10:16:07 -0700</bug_when>
    <thetext>Comment on attachment 161941
ROLLOUT of r127427

Clearing flags on attachment: 161941

Committed r127429: &lt;http://trac.webkit.org/changeset/127429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710707</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 10:16:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161941</attachid>
            <date>2012-09-03 10:10:08 -0700</date>
            <delta_ts>2012-09-03 10:16:07 -0700</delta_ts>
            <desc>ROLLOUT of r127427</desc>
            <filename>bug-95695-20120903171629.patch</filename>
            <type>text/plain</type>
            <size>94109</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM0M2Y1NDhjYWQ1NDMy
N2EyMzdkYTMzZWRjYTUyZWZjM2MwNDQ2Zi4uNzhkYzY2NGZlNzhlY2FhNmViZDE5YmMyNWQzZjEz
ODdhYTVkOGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA5LTAzICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTI3NDI3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjc0MjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1Njk1CisKKyAgICAgICAgQnJlYWtzIHNvbWUgaW5zcGVjdG9yL2RlYnVnZ2Vy
IHRlc3RzIG9uIEpTQyAoUmVxdWVzdGVkIGJ5CisgICAgICAgIHZzZXZpayBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLnByb3RvdHlwZS5hZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUucHJvdG90eXBlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlVUlTb3VyY2VDb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS51aUxvY2F0aW9uVG9S
YXdMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5
cGUudWlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnBy
b3RvdHlwZS5fZmluaXNoZWRMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9zaG91bGRC
aW5kU2NyaXB0VG9Db250ZW50UHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2hhbmRsZVVJU291cmNlQ29kZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3Vp
U291cmNlQ29kZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1h
cHBpbmcucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZXBsYWNlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVtb3Zl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlw
ZS5fYmluZFNjcmlwdFRvUmF3U291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2FkZFNjcmlwdFNuaXBwZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2NyZWF0ZVVJU291
cmNlQ29kZUZvclNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzVUlTb3VyY2VD
b2RlUHJvdmlkZXIuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291
cmNlQ29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNv
ZGVQcm92aWRlci5wcm90b3R5cGUuX3BvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
dHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3Jlc291cmNlQWRkZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZS5f
cmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisKIDIwMTItMDktMDMgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ3JlYXRlIEphdmFTY3JpcHRT
b3VyY2VzIGJhc2VkIG9uIG5ldHdvcmsgcmVzb3VyY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDAw
MmFlMDhjOGMxMDViZTY4ZjZmODRjOWIxODhiMjgzNzFiYjk4ZTAuLjlmZWEyOTExODk3MTE2NjE2
ODQwNGIxMWE4Yzk5ZDA1MDBmMzlkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYzNTcsNyArNjM1
Nyw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbERlc2NyaXB0b3Iu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1JlcXVlc3QuanMn
LAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVBy
b3ZpZGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQb3BvdmVySGVscGVyLmpz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzJywKQEAgLTYzNjksNiArNjM2OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9QcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlci5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9ncmVzc0Jhci5qcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2VjdGlvbi5qcycsCisgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMnLApAQCAtNjQwNSw2ICs2NDA1LDcgQEAKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0YXR1c0JhckJ1dHRvbi5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDgxYjA0OWY4YWNiNzQ5MzI4YWExNDVjODJl
MTQzYzQzZDAxZjVlNWEuLjhhZmEzYWU0OTgwMmM1ZjZmNDJkYjNkMjg0Nzc5NDdhZjI1MDgxOTMg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03
NjMxOCwxMCArNzYzMTgsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxOZXR3b3JrVUlTb3VyY2VDb2Rl
UHJvdmlkZXIuanMiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE5ldHdvcmtSZXF1ZXN0LmpzIgogCQkJCQk+
CiAJCQkJPC9GaWxlPgpAQCAtNzYzOTgsNiArNzYzOTQsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRc
UmF3U291cmNlQ29kZS5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUmVtb3RlT2JqZWN0LmpzIgogCQkJ
CQk+CiAJCQkJPC9GaWxlPgpAQCAtNzY2MzAsNiArNzY2MzAsMTAgQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1l
bmRcU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFN0eWxl
U291cmNlLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CmluZGV4IDZiYWNhMTIwY2FkYzdiNjhmN2YxMmVhNDQw
OTI1MWViMWFkYzRkZDAuLmM3NmY1NzBhNzQ3YTllYWFiZmNjMWYzZWNhYzI4YzkxMmM2OTgxNTEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5w
eQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKQEAg
LTgyLDcgKzgyLDYgQEAgbW9kdWxlcyA9IFsKICAgICAgICAgICAgICJKYXZhU2NyaXB0U291cmNl
LmpzIiwKICAgICAgICAgICAgICJMaW5raWZpZXIuanMiLAogICAgICAgICAgICAgIk5ldHdvcmtM
b2cuanMiLAotICAgICAgICAgICAgIk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyIsCiAg
ICAgICAgICAgICAiUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2VIZWxwZXIuanMiLAogICAgICAg
ICAgICAgIlNBU1NTb3VyY2VNYXBwaW5nLmpzIiwKICAgICAgICAgICAgICJTY3JpcHQuanMiLApA
QCAtOTIsNyArOTEsOSBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIlNvdXJjZU1hcHBpbmcu
anMiLAogICAgICAgICAgICAgIlN0eWxlU291cmNlLmpzIiwKICAgICAgICAgICAgICJTdHlsZXNT
b3VyY2VNYXBwaW5nLmpzIiwKKyAgICAgICAgICAgICJTdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRl
ci5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVNYW5hZ2VyLmpzIiwKKyAgICAgICAgICAgICJS
YXdTb3VyY2VDb2RlLmpzIiwKICAgICAgICAgICAgICJSZW1vdGVPYmplY3QuanMiLAogICAgICAg
ICAgICAgIlJlc291cmNlLmpzIiwKICAgICAgICAgICAgICJSZXNvdXJjZVNjcmlwdE1hcHBpbmcu
anMiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21w
aWxlclNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwppbmRleCAwNWMwMDUxNTRkMDgyMDQwZjIyYTMzMDgy
NjdlOTMzY2IzNzA1YmI5Li44MDk2ZDU2MmFhMGZmOTA4MWI2MjRiMDE2NWI5MTRlZmViMWI3ZWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVy
U2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwpAQCAtMTIwLDggKzEyMCw3IEBAIFdlYkluc3BlY3Rv
ci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNv
bnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgc291cmNlQ29udGVudCk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIoc291cmNlVVJMKTsKLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2Uoc291cmNlVVJMLCBudWxsLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKLSAgICAgICAg
ICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOworICAgICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzb3VyY2VV
UkwsIG51bGwsIGNvbnRlbnRQcm92aWRlciwgdGhpcywgZmFsc2UpOwogICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQ7CiAgICAg
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVCeVVSTFtzb3VyY2VVUkxdID0gdWlTb3VyY2VDb2Rl
OwogICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwRm9yVUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJj
ZUNvZGUsIHNvdXJjZU1hcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKaW5kZXggYTY0MWMyZDE4NzcwNTA3YTgyNzJj
ZDEyZDk5M2QyZjU4ZWU3MjdlNy4uMmFjNDk1M2NlMzA2N2NkZjIwYjQyODQxNzQwNzBhOGJhYzAz
ZDI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZh
U2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SmF2YVNjcmlwdFNvdXJjZS5qcwpAQCAtMzQsMTAgKzM0LDExIEBACiAgKiBAcGFyYW0ge3N0cmlu
Z30gdXJsCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0gcmVzb3VyY2UKICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCisgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5Tb3VyY2VNYXBwaW5nfSBzb3VyY2VNYXBwaW5nCiAgKi8KLVdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlID0gZnVuY3Rpb24odXJsLCByZXNvdXJjZSwgY29u
dGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKQorV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Ug
PSBmdW5jdGlvbih1cmwsIHJlc291cmNlLCBjb250ZW50UHJvdmlkZXIsIHNvdXJjZU1hcHBpbmcs
IGlzRWRpdGFibGUpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5jYWxsKHRoaXMs
IHVybCwgcmVzb3VyY2UsIGNvbnRlbnRQcm92aWRlcik7CisgICAgV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZS5jYWxsKHRoaXMsIHVybCwgcmVzb3VyY2UsIGNvbnRlbnRQcm92aWRlciwgc291cmNl
TWFwcGluZyk7CiAgICAgdGhpcy5faXNFZGl0YWJsZSA9IGlzRWRpdGFibGU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNl
Q29kZVByb3ZpZGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFkNTI5ZTE1YzcyZjBiNTIxZDEyNDk4ZjkzMTEyMDVjNDI4ZDcyNzkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQotICovCi1XZWJJbnNwZWN0b3IuTmV0d29ya1VJU291
cmNlQ29kZVByb3ZpZGVyID0gZnVuY3Rpb24od29ya3NwYWNlKQotewotICAgIHRoaXMuX3dvcmtz
cGFjZSA9IHdvcmtzcGFjZTsKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5S
ZXNvdXJjZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKLSAgICB0aGlzLl93b3Jr
c3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9q
ZWN0V2lsbFJlc2V0LCB0aGlzLl9yZXNldCwgdGhpcyk7Ci0gICAgdGhpcy5fc3R5bGVzU291cmNl
TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZygpOwotCi0gICAg
dGhpcy5fdWlTb3VyY2VDb2RlRm9yUmVzb3VyY2UgPSB7fTsKLX0KLQotV2ViSW5zcGVjdG9yLk5l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUgPSB7Ci0gICAgX3BvcHVsYXRlOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lLmNoaWxkRnJh
bWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIHBvcHVsYXRlRnJhbWUuY2FsbCh0aGlz
LCBmcmFtZS5jaGlsZEZyYW1lc1tpXSk7Ci0KLSAgICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBm
cmFtZS5yZXNvdXJjZXMoKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3Vy
Y2VzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlQWRkZWQoe2Rh
dGE6cmVzb3VyY2VzW2ldfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBwb3B1bGF0ZUZyYW1lLmNh
bGwodGhpcywgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7Ci0gICAg
fSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNv
dXJjZQotICAgICAqLwotICAgIF9zdHlsZVJlc291cmNlQWRkZWQ6IGZ1bmN0aW9uKHJlc291cmNl
KQotICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5
bGVTb3VyY2UocmVzb3VyY2UpOwotICAgICAgICB0aGlzLl9zdHlsZXNTb3VyY2VNYXBwaW5nLmFk
ZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICB0aGlzLl9hZGRVSVNvdXJjZUNv
ZGUodWlTb3VyY2VDb2RlKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNlCi0gICAgICovCi0gICAgX3NjcmlwdFJlc291cmNl
QWRkZWQ6IGZ1bmN0aW9uKHJlc291cmNlKQotICAgIHsKLSAgICAgICAgaWYgKHJlc291cmNlLnJl
cXVlc3QgJiYgIXJlc291cmNlLnJlcXVlc3QuZmluaXNoZWQpIHsKLSAgICAgICAgICAgIHJlc291
cmNlLnJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3Qu
RXZlbnRzLkZpbmlzaGVkTG9hZGluZywgcmVzb3VyY2VGaW5pc2hlZCwgdGhpcyk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fYWRkSmF2YVNjcmlwdFNvdXJj
ZShyZXNvdXJjZSk7Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiByZXNvdXJjZUZpbmlzaGVk
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVzb3VyY2UucmVxdWVzdC5yZW1vdmVFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5FdmVudHMuRmluaXNoZWRMb2FkaW5n
LCByZXNvdXJjZUZpbmlzaGVkLCB0aGlzKTsKLSAgICAgICAgICAgIHRoaXMuX2FkZEphdmFTY3Jp
cHRTb3VyY2UocmVzb3VyY2UpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNvdXJjZQotICAgICAqLwotICAgIF9h
ZGRKYXZhU2NyaXB0U291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLl91aVNvdXJjZUNvZGVGb3JSZXNvdXJjZVtyZXNvdXJjZS51cmxdKQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB2YXIgaXNEb2N1bWVudCA9IHJlc291cmNlLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwotICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHJlc291cmNlLnVybCwgcmVz
b3VyY2UsIHJlc291cmNlLCAhaXNEb2N1bWVudCk7Ci0gICAgICAgIHRoaXMuX3VpU291cmNlQ29k
ZUZvclJlc291cmNlW3Jlc291cmNlLnVybF0gPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgIHRoaXMu
X2FkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAq
LwotICAgIF9hZGRVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2
ZW50fSBldmVudAotICAgICAqLwotICAgIF9yZXNvdXJjZUFkZGVkOiBmdW5jdGlvbihldmVudCkK
LSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJl
c291cmNlfSAqLyBldmVudC5kYXRhOwotICAgICAgICBzd2l0Y2ggKHJlc291cmNlLnR5cGUpIHsK
LSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0OgotICAg
ICAgICAgICAgdGhpcy5fc3R5bGVSZXNvdXJjZUFkZGVkKHJlc291cmNlKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50
OgotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdDoKLSAgICAg
ICAgICAgIHRoaXMuX3NjcmlwdFJlc291cmNlQWRkZWQocmVzb3VyY2UpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JSZXNvdXJjZSA9IHt9OwotICAgICAgICB0
aGlzLl9zdHlsZXNTb3VyY2VNYXBwaW5nLnJlc2V0KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgbm90IHBvcHVsYXRlIHVudGlsIHRoZSBQcm9qZWN0V2lsbFJlc2V0IGV2ZW50IHdhcyBo
YW5kbGVkIGJ5IGFsbCBsaXN0ZW5lcnMuIEludHJvZHVjZSBQcm9qZWN0RGlkUmVzZXQgZXZlbnQg
Zm9yIHRoYXQgbWF0dGVyLgotICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX3BvcHVsYXRlLmJpbmQo
dGhpcyksIDApOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwppbmRleCBlNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3
NzVhZDhjMmU0OGM1MzkxLi43ZTFiNDRjZGFhNWJlMDlmMzBjYTBjNWI4YWM5YzFhYTJmYjEwNDYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJj
ZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3Vy
Y2VDb2RlLmpzCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gUmF3U291cmNlQ29kZSByZXByZXNlbnRzIEph
dmFTY3JpcHQgcmVzb3VyY2Ugb3IgSFRNTCByZXNvdXJjZSB3aXRoIGlubGluZWQgc2NyaXB0cwor
Ly8gYXMgaXQgY2FtZSBmcm9tIG5ldHdvcmsuCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlJlc291cmNlfSByZXNvdXJjZQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmV0d29ya1Jl
cXVlc3R9IHJlcXVlc3QKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNvdXJjZU1hcHBpbmd9IHNv
dXJjZU1hcHBpbmcKKyAqLworV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUgPSBmdW5jdGlvbihp
ZCwgc2NyaXB0LCByZXNvdXJjZSwgcmVxdWVzdCwgc291cmNlTWFwcGluZykKK3sKKyAgICB0aGlz
LmlkID0gaWQ7CisgICAgdGhpcy51cmwgPSBzY3JpcHQuc291cmNlVVJMOworICAgIHRoaXMuaXND
b250ZW50U2NyaXB0ID0gc2NyaXB0LmlzQ29udGVudFNjcmlwdDsKKyAgICB0aGlzLl9zY3JpcHRz
ID0gW3NjcmlwdF07CisgICAgdGhpcy5fcmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICB0aGlzLl9w
ZW5kaW5nUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgdGhpcy5fc291cmNlTWFwcGluZyA9IHNvdXJj
ZU1hcHBpbmc7CisKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUgPSBudWxsOworICAgIGlmICh0aGlz
Ll9wZW5kaW5nUmVxdWVzdCkKKyAgICAgICAgdGhpcy5fcGVuZGluZ1JlcXVlc3QuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3QuRXZlbnRzLkZpbmlzaGVkTG9hZGlu
ZywgdGhpcy5fZmluaXNoZWRMb2FkaW5nLCB0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZSA9IHRoaXMuX2NyZWF0ZVVJU291cmNlQ29kZSgpOworfQorCitXZWJJbnNw
ZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMgPSB7CisgICAgVUlTb3VyY2VDb2RlQ2hhbmdlZDog
InVzLXNvdXJjZS1jb2RlLWNoYW5nZWQiCit9CisKK1dlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3Jp
cHR9IHNjcmlwdAorICAgICAqLworICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQorICAg
IHsKKyAgICAgICAgdGhpcy5fc2NyaXB0cy5wdXNoKHNjcmlwdCk7CisgICAgICAgIGlmICh0aGlz
Ll90ZW1wb3JhcnlVSVNvdXJjZUNvZGUpIHsKKyAgICAgICAgICAgIHZhciBvbGRVSVNvdXJjZUNv
ZGUgPSB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CisgICAgICAgICAgICB0aGlzLl90ZW1w
b3JhcnlVSVNvdXJjZUNvZGUgPSB0aGlzLl9jcmVhdGVVSVNvdXJjZUNvZGUoKTsKKyAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVDaGFuZ2VkLCB7IHVpU291cmNlQ29kZTogdGhpcy5fdGVt
cG9yYXJ5VUlTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGU6IG9sZFVJU291cmNlQ29kZSB9KTsK
KyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9ufSByYXdMb2NhdGlvbgorICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5VSUxvY2F0aW9ufQorICAgICAqLworICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0
aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSB0aGlzLl91aVNvdXJjZUNvZGUgfHwgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwor
ICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkgeworICAgICAgICAgICAgdGhpcy5fdGVtcG9yYXJ5
VUlTb3VyY2VDb2RlID0gdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlKCk7CisgICAgICAgICAgICB1
aVNvdXJjZUNvZGUgPSB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CisgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5F
dmVudHMuVUlTb3VyY2VDb2RlQ2hhbmdlZCwgeyB1aVNvdXJjZUNvZGU6IHVpU291cmNlQ29kZSB9
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9u
KHVpU291cmNlQ29kZSwgcmF3TG9jYXRpb24ubGluZU51bWJlciwgcmF3TG9jYXRpb24uY29sdW1u
TnVtYmVyIHx8IDApOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfQorICAgICAqLworICAgIF9jcmVhdGVVSVNvdXJjZUNvZGU6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBpc1N0YW5kYWxvbmVTY3JpcHQgPSB0aGlzLl9z
Y3JpcHRzLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5fc2NyaXB0c1swXS5pc0lubGluZVNjcmlwdCgp
OworCisgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXI7CisgICAgICAgIGlmICh0aGlzLl9yZXNv
dXJjZSkKKyAgICAgICAgICAgIGNvbnRlbnRQcm92aWRlciA9IHRoaXMuX3Jlc291cmNlOworICAg
ICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVTY3JpcHQpCisgICAgICAgICAgICBjb250ZW50UHJv
dmlkZXIgPSB0aGlzLl9zY3JpcHRzWzBdOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250
ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50
UHJvdmlkZXIodGhpcy5fc2NyaXB0cyk7CisKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5l
dyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh0aGlzLnVybCwgdGhpcy5fcmVzb3VyY2Us
IGNvbnRlbnRQcm92aWRlciwgdGhpcy5fc291cmNlTWFwcGluZywgaXNTdGFuZGFsb25lU2NyaXB0
KTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IHRoaXMuaXNDb250ZW50
U2NyaXB0OworICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQor
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtudW1iZXJ9
IGNvbHVtbk51bWJlcgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdMb2NhdGlvbn0K
KyAgICAgKi8KKyAgICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAgICAgICBpZiAodGhpcy51
cmwpCisgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY3JlYXRl
UmF3TG9jYXRpb25CeVVSTCh0aGlzLnVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNyZWF0ZVJhd0xvY2F0aW9u
KHRoaXMuX3NjcmlwdHNbMF0sIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV8bnVsbH0K
KyAgICAgKi8KKyAgICB1aVNvdXJjZUNvZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl91aVNvdXJjZUNvZGUgfHwgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwor
ICAgIH0sCisKKyAgICBfZmluaXNoZWRMb2FkaW5nOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3Jlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHRoaXMu
X3BlbmRpbmdSZXF1ZXN0LnVybCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nUmVxdWVz
dDsKKyAgICAgICAgdmFyIG9sZFVJU291cmNlQ29kZSA9IHRoaXMuX3VpU291cmNlQ29kZSB8fCB0
aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CisgICAgICAgIGRlbGV0ZSB0aGlzLl90ZW1wb3Jh
cnlVSVNvdXJjZUNvZGU7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZSA9IHRoaXMuX2NyZWF0
ZVVJU291cmNlQ29kZSgpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlQ2hhbmdlZCwgeyB1
aVNvdXJjZUNvZGU6IHRoaXMuX3VpU291cmNlQ29kZSwgb2xkVUlTb3VyY2VDb2RlOiBvbGRVSVNv
dXJjZUNvZGUgfSk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90
b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFw
cGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nLmpzCmluZGV4IDAyZWI2MmU3MmQ3ZmE4ZTc1NTYwMGE0ZGFiMTcyNzRiNGU0YTc4
OTAuLmExNjM4OWM2MGNlNzQ5ODA2ZjIxZGVjYmQ5Y2NlMWQ4ZjczNmIwM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5n
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nLmpzCkBAIC0zNiwxNSArMzYsMTYgQEAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNj
cmlwdE1hcHBpbmcgPSBmdW5jdGlvbih3b3Jrc3BhY2UpCiB7CiAgICAgdGhpcy5fd29ya3NwYWNl
ID0gd29ya3NwYWNlOworICAgIC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SYXdTb3Vy
Y2VDb2RlPn0gKi8KKyAgICB0aGlzLl9yYXdTb3VyY2VDb2RlcyA9IFtdOworICAgIC8qKiBAdHlw
ZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlPn0gKi8KKyAgICB0
aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKKyAgICAvKiogQHR5cGUge09iamVj
dC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZT59ICovCisgICAgdGhpcy5fcmF3
U291cmNlQ29kZUZvclVSTCA9IHt9OworICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdl
Ykluc3BlY3Rvci5SYXdTb3VyY2VDb2RlPn0gKi8KKyAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9y
RG9jdW1lbnRVUkwgPSB7fTsKKyAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVUlTb3VyY2VDb2Rl
ID0gbmV3IE1hcCgpOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2UuRXZlbnRzLlByb2plY3RXaWxsUmVzZXQsIHRoaXMuX3Jlc2V0LCB0
aGlzKTsKLSAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNv
dXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlLCB0aGlzKTsKLQotICAgIC8qKiBAdHlwZSB7T2JqZWN0
LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSAqLwotICAgIHRoaXMuX3VpU291
cmNlQ29kZUZvclNjcmlwdElkID0ge307Ci0gICAgdGhpcy5fc2NyaXB0SWRGb3JVSVNvdXJjZUNv
ZGUgPSBuZXcgTWFwKCk7Ci0gICAgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlcyA9IG5ldyBN
YXAoKTsKLSAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBudW1iZXI+fSAqLwotICAgIHRo
aXMuX25leHREeW5hbWljU2NyaXB0SW5kZXhGb3JVUkwgPSB7fTsKIH0KIAogV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CkBAIC01NSw5ICs1Niw4IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdMb2NhdGlvbikKICAgICB7CiAgICAgICAg
IHZhciBkZWJ1Z2dlck1vZGVsTG9jYXRpb24gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkxvY2F0aW9ufSAqLyByYXdMb2NhdGlvbjsKLSAgICAgICAgdmFyIHNjcmlwdCA9
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGRlYnVnZ2VyTW9kZWxMb2Nh
dGlvbi5zY3JpcHRJZCk7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JTY3JpcHRJZFtkZWJ1Z2dlck1vZGVsTG9jYXRpb24uc2NyaXB0SWRdOwotICAgICAg
ICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgZGVidWdn
ZXJNb2RlbExvY2F0aW9uLmxpbmVOdW1iZXIsIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbi5jb2x1bW5O
dW1iZXIgfHwgMCk7CisgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291cmNl
Q29kZUZvclNjcmlwdElkW2RlYnVnZ2VyTW9kZWxMb2NhdGlvbi5zY3JpcHRJZF07CisgICAgICAg
IHJldHVybiByYXdTb3VyY2VDb2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGRlYnVnZ2VyTW9k
ZWxMb2NhdGlvbik7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNjgsOSArNjgsOCBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1
aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0SWQgPSB0aGlzLl9zY3Jp
cHRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdmFyIHNjcmlw
dCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKHNjcmlwdElkKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNyZWF0ZVJhd0xvY2F0aW9u
KHNjcmlwdCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKKyAgICAgICAgdmFyIHJhd1NvdXJj
ZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNv
ZGUpOworICAgICAgICByZXR1cm4gcmF3U291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlv
bih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtNzgsMTQ3ICs3NywxMzcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgYWRkU2NyaXB0OiBmdW5jdGlvbihzY3Jp
cHQpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fdWlTb3VyY2VDb2RlRm9y
U2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSk7Ci0KLSAgICAgICAgdmFyIGlzRHluYW1pY1Njcmlw
dCA9IGZhbHNlOworICAgICAgICB2YXIgcmVzb3VyY2UgPSBudWxsOworICAgICAgICB2YXIgcmVx
dWVzdCA9IG51bGw7CiAgICAgICAgIGlmICghc2NyaXB0LmlzQW5vbnltb3VzU2NyaXB0KCkpIHsK
LSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VD
b2RlRm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpOwotICAgICAgICAgICAgaXNEeW5hbWljU2NyaXB0
ID0gISF1aVNvdXJjZUNvZGUgJiYgdWlTb3VyY2VDb2RlLmNvbnRlbnRUeXBlKCkgPT09IFdlYklu
c3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50ICYmICFzY3JpcHQuaXNJbmxpbmVTY3JpcHQo
KTsKLSAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUgJiYgIWlzRHluYW1pY1NjcmlwdCAmJiAh
dGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2Rlcy5nZXQodWlTb3VyY2VDb2RlKSkKLSAgICAgICAg
ICAgICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlVG9TY3JpcHRzKHVpU291cmNlQ29kZSwgW3Nj
cmlwdF0pOworICAgICAgICAgICAgLy8gRmlyc3QgbG9va3VwIHRoZSByZXNvdXJjZSB0aGF0IGhh
cyBhbHJlYWR5IGJlZW4gbG9hZGVkLgorICAgICAgICAgICAgcmVzb3VyY2UgPSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CisgICAgICAgICAgICAvLyBJZ25v
cmUgcmVzb3VyY2UgaW4gY2FzZSBpdCBoYXMgbm90IHlldCBmaW5pc2hlZCBsb2FkaW5nLgorICAg
ICAgICAgICAgaWYgKHJlc291cmNlICYmIHJlc291cmNlLnJlcXVlc3QgJiYgIXJlc291cmNlLnJl
cXVlc3QuZmluaXNoZWQpCisgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBudWxsOworICAgICAg
ICAgICAgLy8gT25seSBiaW5kIGlubGluZSBhbmQgc3RhbmRhbG9uZSBzY3JpcHRzLgorICAgICAg
ICAgICAgaWYgKHJlc291cmNlICYmICF0aGlzLl9zaG91bGRCaW5kU2NyaXB0VG9Db250ZW50UHJv
dmlkZXIoc2NyaXB0LCByZXNvdXJjZSkpCisgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBudWxs
OworICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgIC8vIFdoZW4g
dGhlcmUgaXMgbm8gcmVzb3VyY2UsIGxvb2t1cCBpbi1mbGlnaHQgcmVxdWVzdHMuCisgICAgICAg
ICAgICAgICAgcmVxdWVzdCA9IFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5pbmZsaWdodFJl
cXVlc3RGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAgLy8gT25seSBi
aW5kIGlubGluZSBhbmQgc3RhbmRhbG9uZSBzY3JpcHRzLgorICAgICAgICAgICAgICAgIGlmIChy
ZXF1ZXN0ICYmICF0aGlzLl9zaG91bGRCaW5kU2NyaXB0VG9Db250ZW50UHJvdmlkZXIoc2NyaXB0
LCByZXF1ZXN0KSkKKyAgICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBudWxsOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFyZXNvdXJjZSB8fCAhcmVx
dWVzdCk7CisKKyAgICAgICAgdmFyIGlzSW5saW5lU2NyaXB0ID0gc2NyaXB0LmlzSW5saW5lU2Ny
aXB0KCkgJiYgKHJlcXVlc3QgfHwgcmVzb3VyY2UpOworICAgICAgICAvLyBJZiBlaXRoZXIgb2Yg
dGhlc2UgZXhpc3RzLCB3ZSBiaW5kIHNjcmlwdCB0byB0aGUgcmVzb3VyY2UuCisgICAgICAgIGlm
IChpc0lubGluZVNjcmlwdCkgeworICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlz
Ll9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkxbc2NyaXB0LnNvdXJjZVVSTF07CisgICAgICAg
ICAgICBpZiAocmF3U291cmNlQ29kZSkgeworICAgICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUu
YWRkU2NyaXB0KHNjcmlwdCk7CisgICAgICAgICAgICAgICAgdGhpcy5fYmluZFNjcmlwdFRvUmF3
U291cmNlQ29kZShzY3JpcHQsIHJhd1NvdXJjZUNvZGUpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAoIXRoaXMuX3VpU291cmNl
Q29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0pCi0gICAgICAgICAgICB0aGlzLl9hZGRP
clJlcGxhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGUoc2NyaXB0LCBpc0R5bmFtaWNTY3JpcHQpOwot
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3Nj
cmlwdC5zY3JpcHRJZF0pOwotICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqIEBwYXJhbSB7QXJyYXku
PFdlYkluc3BlY3Rvci5TY3JpcHQ+fSBzY3JpcHRzCi0gICAgICovCi0gICAgX2JpbmRVSVNvdXJj
ZUNvZGVUb1NjcmlwdHM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgc2NyaXB0cykKLSAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNjcmlwdHMubGVuZ3RoKTsKKyAgICAgICAgdmFyIHJhd1Nv
dXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoc2NyaXB0LnNjcmlwdElk
LCBzY3JpcHQsIHJlc291cmNlLCByZXF1ZXN0LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fcmF3U291
cmNlQ29kZXMucHVzaChyYXdTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fYmluZFNjcmlwdFRv
UmF3U291cmNlQ29kZShzY3JpcHQsIHJhd1NvdXJjZUNvZGUpOworICAgICAgICBpZiAoaXNJbmxp
bmVTY3JpcHQpCisgICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkxb
c2NyaXB0LnNvdXJjZVVSTF0gPSByYXdTb3VyY2VDb2RlOwogCi0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdGhpcy5fdWlTb3Vy
Y2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1tpXS5zY3JpcHRJZF0gPSB1aVNvdXJjZUNvZGU7Ci0g
ICAgICAgICAgICBzY3JpcHRzW2ldLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7Ci0gICAgICAgIH0K
LSAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IHNjcmlwdHNbMF0uaXNDb250
ZW50U2NyaXB0OwotICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGluZyh0aGlzKTsK
LSAgICAgICAgdGhpcy5fc2NyaXB0SWRGb3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwg
c2NyaXB0c1swXS5zY3JpcHRJZCk7CisgICAgICAgIGlmIChyYXdTb3VyY2VDb2RlLnVpU291cmNl
Q29kZSgpKQorICAgICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlQWRkZWQocmF3U291cmNlQ29k
ZSwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGUoKSk7CisgICAgICAgIHJhd1NvdXJjZUNvZGUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3Vy
Y2VDb2RlQ2hhbmdlZCwgdGhpcy5faGFuZGxlVUlTb3VyY2VDb2RlQ2hhbmdlZCwgdGhpcyk7CiAg
ICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VVUkwKLSAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IGlzSW5saW5lU2NyaXB0Ci0gICAgICogQHJldHVybiB7QXJyYXku
PFdlYkluc3BlY3Rvci5TY3JpcHQ+fQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlw
dH0gc2NyaXB0CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfSBj
b250ZW50UHJvdmlkZXIKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICAqLwotICAgIF9z
Y3JpcHRzRm9yU291cmNlVVJMOiBmdW5jdGlvbihzb3VyY2VVUkwsIGlzSW5saW5lU2NyaXB0KQor
ICAgIF9zaG91bGRCaW5kU2NyaXB0VG9Db250ZW50UHJvdmlkZXI6IGZ1bmN0aW9uKHNjcmlwdCwg
Y29udGVudFByb3ZpZGVyKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZmlsdGVyKHNjcmlwdCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHNjcmlwdC5zb3VyY2VVUkwgPT09IHNvdXJj
ZVVSTCAmJiBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSA9PT0gaXNJbmxpbmVTY3JpcHQ7Ci0gICAg
ICAgIH0KLQotICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRzKS5maWx0ZXIoZmlsdGVyKTsKKyAgICAgICAgaWYgKHNjcmlwdC5pc0lu
bGluZVNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRQcm92aWRlci5jb250ZW50
VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDsKKyAgICAgICAg
cmV0dXJuIGNvbnRlbnRQcm92aWRlci5jb250ZW50VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUeXBlcy5TY3JpcHQ7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNjcmlwdH0gc2NyaXB0Ci0gICAgICogQHBhcmFtIHtib29sZWFufSBpc0R5bmFt
aWNTY3JpcHQKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAg
Ki8KLSAgICBfYWRkT3JSZXBsYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlOiBmdW5jdGlvbihzY3Jp
cHQsIGlzRHluYW1pY1NjcmlwdCkKKyAgICBfaGFuZGxlVUlTb3VyY2VDb2RlQ2hhbmdlZDogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0cyA9IHNjcmlwdC5pc0lubGlu
ZVNjcmlwdCgpID8gdGhpcy5fc2NyaXB0c0ZvclNvdXJjZVVSTChzY3JpcHQuc291cmNlVVJMLCB0
cnVlKSA6IFtzY3JpcHRdOwotCi0gICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGU7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
b2xkVUlTb3VyY2VDb2RlID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1tp
XS5zY3JpcHRJZF07Ci0gICAgICAgICAgICBpZiAob2xkVUlTb3VyY2VDb2RlKQotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFvbGRVSVNv
dXJjZUNvZGUgfHwgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2Rlcy5nZXQob2xkVUlTb3VyY2VD
b2RlKSk7Ci0KLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IHNjcmlwdC5pc0lubGluZVNj
cmlwdCgpID8gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3Zp
ZGVyKHNjcmlwdHMpIDogc2NyaXB0OwotICAgICAgICB2YXIgdXJsID0gc2NyaXB0LnNvdXJjZVVS
TDsKLSAgICAgICAgaWYgKGlzRHluYW1pY1NjcmlwdCkgewotICAgICAgICAgICAgdmFyIG5leHRJ
bmRleCA9IHRoaXMuX25leHREeW5hbWljU2NyaXB0SW5kZXhGb3JVUkxbc2NyaXB0LnNvdXJjZVVS
TF0gfHwgMTsKLSAgICAgICAgICAgIHVybCArPSAiICgiICsgbmV4dEluZGV4ICsgIikiOwotICAg
ICAgICAgICAgdGhpcy5fbmV4dER5bmFtaWNTY3JpcHRJbmRleEZvclVSTFtzY3JpcHQuc291cmNl
VVJMXSA9IG5leHRJbmRleCArIDE7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIG51bGwsIGNvbnRlbnRQ
cm92aWRlciwgIXNjcmlwdC5pc0lubGluZVNjcmlwdCgpKTsKLSAgICAgICAgdGhpcy5fdGVtcG9y
YXJ5VUlTb3VyY2VDb2Rlcy5wdXQodWlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpOwotICAgICAg
ICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlVG9TY3JpcHRzKHVpU291cmNlQ29kZSwgc2NyaXB0cyk7
Ci0KLSAgICAgICAgaWYgKCFzY3JpcHQuc291cmNlVVJMKQotICAgICAgICAgICAgcmV0dXJuIHVp
U291cmNlQ29kZTsKLQotICAgICAgICBpZiAob2xkVUlTb3VyY2VDb2RlKQotICAgICAgICAgICAg
dGhpcy5fdWlTb3VyY2VDb2RlUmVwbGFjZWQob2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUp
OworICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJh
d1NvdXJjZUNvZGV9ICovIGV2ZW50LnRhcmdldDsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gZXZlbnQuZGF0YS51aVNv
dXJjZUNvZGU7CisgICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9ICovIGV2ZW50LmRhdGEub2xkVUlTb3VyY2VDb2RlOworICAg
ICAgICBpZiAoIW9sZFVJU291cmNlQ29kZSkKKyAgICAgICAgICAgIHRoaXMuX3VpU291cmNlQ29k
ZUFkZGVkKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZSk7Ci0gICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7CisgICAgICAgICAgICB0aGlzLl91
aVNvdXJjZUNvZGVSZXBsYWNlZChyYXdTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGUsIHVpU291
cmNlQ29kZSk7CiAgICAgfSwKIAotICAgIF91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNlOiBm
dW5jdGlvbihldmVudCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlfSByYXdTb3VyY2VDb2RlCisgICAgICogQHBhcmFuIHtXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKi8KKyAgICBfdWlTb3VyY2VDb2RlQWRkZWQ6
IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9ICov
IGV2ZW50LmRhdGE7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zY3JpcHRJZEZvclVJ
U291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKSB8fCB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNv
ZGVzLmdldCh1aVNvdXJjZUNvZGUpKTsKLSAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUudXJsIHx8
IHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXMuZ2V0KHVpU291cmNlQ29kZSkpCisgICAgICAg
IGlmICghdWlTb3VyY2VDb2RlLnVybCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhp
cy5fYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuX3Jhd1NvdXJj
ZUNvZGVGb3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwgcmF3U291cmNlQ29kZSk7Cisg
ICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZSk7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJh
d1NvdXJjZUNvZGV9IHJhd1NvdXJjZUNvZGUKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGV9IG9sZFVJU291cmNlQ29kZQogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAgX2FkZFVJU291cmNlQ29k
ZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIF91aVNvdXJjZUNvZGVSZXBsYWNlZDogZnVu
Y3Rpb24ocmF3U291cmNlQ29kZSwgb2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpCiAgICAg
ewotICAgICAgICB2YXIgaXNJbmxpbmVTY3JpcHQ7Ci0gICAgICAgIHN3aXRjaCAodWlTb3VyY2VD
b2RlLmNvbnRlbnRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
eXBlcy5Eb2N1bWVudDoKLSAgICAgICAgICAgIGlzSW5saW5lU2NyaXB0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNj
cmlwdDoKLSAgICAgICAgICAgIGlzSW5saW5lU2NyaXB0ID0gZmFsc2U7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBzY3JpcHRzID0gdGhpcy5fc2NyaXB0c0ZvclNvdXJjZVVSTCh1aVNvdXJj
ZUNvZGUudXJsLCBpc0lubGluZVNjcmlwdCk7Ci0gICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgp
CisgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLnVybCkKICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29kZS5yZW1vdmUob2xkVUlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29kZS5wdXQo
dWlTb3VyY2VDb2RlLCByYXdTb3VyY2VDb2RlKTsKIAotICAgICAgICB2YXIgb2xkVUlTb3VyY2VD
b2RlID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1swXS5zY3JpcHRJZF07
Ci0gICAgICAgIHRoaXMuX2JpbmRVSVNvdXJjZUNvZGVUb1NjcmlwdHModWlTb3VyY2VDb2RlLCBz
Y3JpcHRzKTsKLQotICAgICAgICBpZiAob2xkVUlTb3VyY2VDb2RlKSB7Ci0gICAgICAgICAgICBj
b25zb2xlLmFzc2VydCh0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVzLmdldChvbGRVSVNvdXJj
ZUNvZGUpKTsKLSAgICAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZVJlcGxhY2VkKG9sZFVJU291
cmNlQ29kZSwgdWlTb3VyY2VDb2RlKTsKLSAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJhd1NvdXJjZUNvZGUuX3NjcmlwdHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBy
YXdTb3VyY2VDb2RlLl9zY3JpcHRzW2ldLnNldFNvdXJjZU1hcHBpbmcodGhpcyk7CisgICAgICAg
IHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkucmVwbGFjZVVJU291cmNlQ29kZShvbGRVSVNvdXJj
ZUNvZGUsIHVpU291cmNlQ29kZSk7CisgICAgfSwKIAotICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9zY3JpcHRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKSAmJiAhdGhpcy5f
dGVtcG9yYXJ5VUlTb3VyY2VDb2Rlcy5nZXQodWlTb3VyY2VDb2RlKSk7CisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZX0gcmF3U291cmNlQ29kZQorICAg
ICAqIEBwYXJhbiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAg
ICovCisgICAgX3VpU291cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVp
U291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLnVybCkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29k
ZS5yZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSBvbGRVSVNvdXJjZUNvZGUKLSAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlNjcmlwdH0gc2NyaXB0CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuUmF3U291cmNlQ29kZX0gcmF3U291cmNlQ29kZQogICAgICAqLwotICAgIF91aVNvdXJjZUNv
ZGVSZXBsYWNlZDogZnVuY3Rpb24ob2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpCisgICAg
X2JpbmRTY3JpcHRUb1Jhd1NvdXJjZUNvZGU6IGZ1bmN0aW9uKHNjcmlwdCwgcmF3U291cmNlQ29k
ZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXMucmVtb3ZlKG9s
ZFVJU291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX3NjcmlwdElkRm9yVUlTb3VyY2VDb2RlLnJl
bW92ZShvbGRVSVNvdXJjZUNvZGUpOwotICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgp
LnJlcGxhY2VVSVNvdXJjZUNvZGUob2xkVUlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpOworICAg
ICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHJh
d1NvdXJjZUNvZGU7CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JVUkxbc2NyaXB0LnNv
dXJjZVVSTF0gPSByYXdTb3VyY2VDb2RlOworICAgICAgICBzY3JpcHQuc2V0U291cmNlTWFwcGlu
Zyh0aGlzKTsKICAgICB9LAogCiAgICAgX3Jlc2V0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OwotICAgICAgICB0aGlzLl9zY3Jp
cHRJZEZvclVJU291cmNlQ29kZS5jbGVhcigpOwotICAgICAgICB0aGlzLl90ZW1wb3JhcnlVSVNv
dXJjZUNvZGVzLmNsZWFyKCk7Ci0gICAgICAgIHRoaXMuX25leHREeW5hbWljU2NyaXB0SW5kZXhG
b3JVUkwgPSB7fTsKLSAgICB9LAorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3Jh
d1NvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29k
ZSA9IHRoaXMuX3Jhd1NvdXJjZUNvZGVzW2ldOworICAgICAgICAgICAgdGhpcy5fdWlTb3VyY2VD
b2RlUmVtb3ZlZChyYXdTb3VyY2VDb2RlLCByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZSgpKTsK
KyAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUucmVtb3ZlQWxsTGlzdGVuZXJzKCk7CisgICAgICAg
IH0KKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fcmF3
U291cmNlQ29kZUZvclNjcmlwdElkID0ge307CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVG
b3JVUkwgPSB7fTsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvckRvY3VtZW50VVJMID0g
e307CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JVSVNvdXJjZUNvZGUuY2xlYXIoKTsK
KyAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdFNuaXBwZXRNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0U25pcHBldE1vZGVsLmpzCmluZGV4IDA2MDVmN2NkMTkxNzVlNzRmMDI0NmY3Mzgw
MTViNDg0OTc3NjZiOGQuLmQ5MmEyZDMxYWU0MWVlYjhjMWVmNWEyZDQ1NWVhNzI5NDI4NTY2OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0U25p
cHBldE1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0U25pcHBldE1vZGVsLmpzCkBAIC04MSw3ICs4MSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRT
bmlwcGV0TW9kZWwucHJvdG90eXBlID0gewogICAgIF9hZGRTY3JpcHRTbmlwcGV0OiBmdW5jdGlv
bihzbmlwcGV0KQogICAgIHsKICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0g
bmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZShzbmlwcGV0LmlkLCBzbmlw
cGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldENvbnRlbnRQcm92aWRlcihzbmlwcGV0
KSwgdGhpcyk7Ci0gICAgICAgIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnNldFNvdXJjZU1hcHBp
bmcodGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcpOyAKICAgICAgICAgdGhpcy5fc25pcHBldEph
dmFTY3JpcHRTb3VyY2VGb3JTbmlwcGV0SWRbc25pcHBldC5pZF0gPSBzbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZTsKICAgICAgICAgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKS5hZGRVSVNvdXJjZUNv
ZGUoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICByZXR1cm4gc25pcHBldEphdmFT
Y3JpcHRTb3VyY2U7CkBAIC0yNzksOCArMjc4LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2NyZWF0ZVVJU291cmNlQ29kZUZv
clNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNlVVJMLCBu
dWxsLCBzY3JpcHQsIGZhbHNlKTsKLSAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNvdXJjZU1hcHBp
bmcodGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcpOyAKKyAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNlVVJMLCBu
dWxsLCBzY3JpcHQsIHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nLCBmYWxzZSk7CiAgICAgICAg
IHVpU291cmNlQ29kZS5pc1NuaXBwZXRFdmFsdWF0aW9uID0gdHJ1ZTsKICAgICAgICAgdGhpcy5f
dWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHVpU291cmNlQ29kZTsK
ICAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUsIHNj
cmlwdCk7CkBAIC0zNzQsNyArMzcyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2Rl
bC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3QKICAqLwog
V2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gZnVuY3Rpb24oc25pcHBldElk
LCBzbmlwcGV0TmFtZSwgY29udGVudFByb3ZpZGVyLCBzY3JpcHRTbmlwcGV0TW9kZWwpCiB7Ci0g
ICAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UuY2FsbCh0aGlzLCBzbmlwcGV0TmFtZSwg
bnVsbCwgY29udGVudFByb3ZpZGVyLCB0cnVlKTsKKyAgICBXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFNvdXJjZS5jYWxsKHRoaXMsIHNuaXBwZXROYW1lLCBudWxsLCBjb250ZW50UHJvdmlkZXIsIHNj
cmlwdFNuaXBwZXRNb2RlbC5zY3JpcHRNYXBwaW5nLCB0cnVlKTsKICAgICB0aGlzLl9zbmlwcGV0
SWQgPSBzbmlwcGV0SWQ7CiAgICAgdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsID0gc2NyaXB0U25p
cHBldE1vZGVsOwogICAgIHRoaXMuaXNTbmlwcGV0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1VJU291cmNlQ29k
ZVByb3ZpZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNjI0YWMzNmFjMTY3YjFmNDk1MGY1YTBiN2Q1Y2Q1
YTYzNDJmMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jr
c3BhY2UKKyAqLworV2ViSW5zcGVjdG9yLlN0eWxlc1VJU291cmNlQ29kZVByb3ZpZGVyID0gZnVu
Y3Rpb24od29ya3NwYWNlKQoreworICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKKyAg
ICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCB0aGlzLl9y
ZXNvdXJjZUFkZGVkLCB0aGlzKTsKKyAgICB0aGlzLl93b3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2lsbFJlc2V0LCB0aGlzLl9y
ZXNldCwgdGhpcyk7CisgICAgdGhpcy5fc3R5bGVzU291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNw
ZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZygpOworfQorCitXZWJJbnNwZWN0b3IuU3R5bGVzVUlT
b3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0geworICAgIF9wb3B1bGF0ZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gcG9wdWxhdGVGcmFtZShmcmFtZSkKKyAgICAgICAg
eworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmcmFtZS5jaGlsZEZyYW1lcy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgICAgICBwb3B1bGF0ZUZyYW1lLmNhbGwodGhpcywgZnJhbWUu
Y2hpbGRGcmFtZXNbaV0pOworCisgICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gZnJhbWUucmVz
b3VyY2VzKCk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc291cmNlcy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZUFkZGVkKHtkYXRhOnJlc291
cmNlc1tpXX0pOworICAgICAgICB9CisKKyAgICAgICAgcG9wdWxhdGVGcmFtZS5jYWxsKHRoaXMs
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8K
KyAgICBfcmVzb3VyY2VBZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIg
cmVzb3VyY2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0gKi8gZXZlbnQuZGF0
YTsKKyAgICAgICAgaWYgKHJlc291cmNlLnR5cGUgIT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5
cGVzLlN0eWxlc2hlZXQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlKHJlc291cmNlKTsKKyAgICAgICAg
dGhpcy5fc3R5bGVzU291cmNlTWFwcGluZy5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsK
KyAgICAgICAgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKS5hZGRVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlKTsKKyAgICB9LAorCisgICAgX3Jlc2V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB0aGlzLl9zdHlsZXNTb3VyY2VNYXBwaW5nLnJlc2V0KCk7CisgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbm90IHBvcHVsYXRlIHVudGlsIHRoZSBQcm9qZWN0V2lsbFJlc2V0IGV2ZW50IHdh
cyBoYW5kbGVkIGJ5IGFsbCBsaXN0ZW5lcnMuIEludHJvZHVjZSBQcm9qZWN0RGlkUmVzZXQgZXZl
bnQgZm9yIHRoYXQgbWF0dGVyLgorICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX3BvcHVsYXRlLmJp
bmQodGhpcyksIDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggNDdjOGMzNDI1ZWM5OGRjMDI1Mzc0YzM2
ODkyOGJhMmRhNjBjZWY0NC4uMTdhYWFhMGIxOTEyN2JlYjgzZDY1M2NjMGUwZmRjZTM0NGJkN2U5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJj
ZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJj
ZUNvZGUuanMKQEAgLTM2LDEzICszNiwxNSBAQAogICogQHBhcmFtIHtzdHJpbmd9IHVybAogICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNlCiAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92aWRlcgorICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU291cmNlTWFwcGluZz19IHNvdXJjZU1hcHBpbmcKICAqLwotV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVybCwgcmVzb3VyY2UsIGNvbnRlbnRQcm92aWRlcikK
K1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUgPSBmdW5jdGlvbih1cmwsIHJlc291cmNlLCBjb250
ZW50UHJvdmlkZXIsIHNvdXJjZU1hcHBpbmcpCiB7CiAgICAgdGhpcy5fdXJsID0gdXJsOwogICAg
IHRoaXMuX3Jlc291cmNlID0gcmVzb3VyY2U7CiAgICAgdGhpcy5fcGFyc2VkVVJMID0gbmV3IFdl
Ykluc3BlY3Rvci5QYXJzZWRVUkwodXJsKTsKICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXIgPSBj
b250ZW50UHJvdmlkZXI7CisgICAgdGhpcy5fc291cmNlTWFwcGluZyA9IHNvdXJjZU1hcHBpbmc7
CiAgICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBmYWxzZTsKICAgICAvKioKICAgICAgKiBAdHlw
ZSBBcnJheS48ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0cmluZyk+CkBAIC0zODIsOCArMzg0
LDYgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgdWlMb2NhdGlvblRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc291cmNlTWFwcGluZykKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOwogICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9mb3JtYXR0ZXJN
YXBwaW5nLmZvcm1hdHRlZFRvT3JpZ2luYWwobGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24o
dGhpcywgbG9jYXRpb25bMF0sIGxvY2F0aW9uWzFdKTsKICAgICB9LApAQCAtNTM3LDE0ICs1Mzcs
NiBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlNvdXJjZU1hcHBpbmd9IHNvdXJjZU1hcHBpbmcKLSAgICAgKi8KLSAgICBzZXRTb3VyY2VNYXBw
aW5nOiBmdW5jdGlvbihzb3VyY2VNYXBwaW5nKQotICAgIHsKLSAgICAgICAgdGhpcy5fc291cmNl
TWFwcGluZyA9IHNvdXJjZU1hcHBpbmc7Ci0gICAgfSwKLQogICAgIGZvcm1hdHRlZENoYW5nZWQ6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XZWJLaXQucXJjCmluZGV4IDc1Yjg5MTQyNzU1ZDVlZjE4NjAzOTNhZTkzY2RjZTYx
OGZmNDE0OTIuLjVkZTg5YWQ0ZWM3MjViY2UyNzJmOWM1ZGIzNTk1NDk3Yzc1ZmVlNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEwOCw3
ICsxMDgsNiBAQAogICAgIDxmaWxlPk5hdmlnYXRvclZpZXcuanM8L2ZpbGU+CiAgICAgPGZpbGU+
TmV0d29ya0l0ZW1WaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPk5ldHdvcmtMb2cuanM8L2ZpbGU+
Ci0gICAgPGZpbGU+TmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzPC9maWxlPgogICAgIDxm
aWxlPk5ldHdvcmtNYW5hZ2VyLmpzPC9maWxlPgogICAgIDxmaWxlPk5ldHdvcmtQYW5lbC5qczwv
ZmlsZT4KICAgICA8ZmlsZT5OZXR3b3JrUGFuZWxEZXNjcmlwdG9yLmpzPC9maWxlPgpAQCAtMTI4
LDYgKzEyNyw3IEBACiAgICAgPGZpbGU+UHJvZ3Jlc3NCYXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+
UHJvcGVydGllc1NlY3Rpb24uanM8L2ZpbGU+CiAgICAgPGZpbGU+UHJvcGVydGllc1NpZGViYXJQ
YW5lLmpzPC9maWxlPgorICAgIDxmaWxlPlJhd1NvdXJjZUNvZGUuanM8L2ZpbGU+CiAgICAgPGZp
bGU+UmVtb3RlT2JqZWN0LmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNlLmpzPC9maWxlPgog
ICAgIDxmaWxlPlJlcXVlc3RDb29raWVzVmlldy5qczwvZmlsZT4KQEAgLTE4MSw2ICsxODEsNyBA
QAogICAgIDxmaWxlPlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLmpzPC9maWxlPgogICAgIDxmaWxl
PlN0eWxlU291cmNlLmpzPC9maWxlPgogICAgIDxmaWxlPlN0eWxlc1NvdXJjZU1hcHBpbmcuanM8
L2ZpbGU+CisgICAgPGZpbGU+U3R5bGVzVUlTb3VyY2VDb2RlUHJvdmlkZXIuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+U3R5bGVzU2lkZWJhclBhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGFiYmVkRWRp
dG9yQ29udGFpbmVyLmpzPC9maWxlPgogICAgIDxmaWxlPlRhYmJlZFBhbmUuanM8L2ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApp
bmRleCBjYjliOGU4NmIxNzk3MTgzZmFkNDQyODcwNDc3MDlhMTA5NjA3N2M4Li4xYmVlZmVkMGU4
Njc1NWI4YTc2NjM0OTU1NzcyMWFjMWUxMjQ4OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTEzOSw2ICsxMzksNyBAQCBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IldvcmtzcGFj
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
QnJlYWtwb2ludE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IkNvbnRlbnRQcm92aWRlcnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJhd1NvdXJjZUNvZGUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJlc291cmNlU2NyaXB0
TWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTQVNTU291cmNlTWFwcGluZy5qcyI+PC9zY3JpcHQ+
CkBAIC0xNjEsOCArMTYyLDggQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJTY3JpcHRTbmlwcGV0TW9kZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlByb2dyZXNzQmFyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTdHlsZXNTb3VyY2VNYXBw
aW5nLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJTdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU3R5bGVTb3VyY2UuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5ldHdvcmtVSVNvdXJjZUNvZGVQ
cm92aWRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iRWxlbWVudHNQYW5lbERlc2NyaXB0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5ldHdvcmtQYW5lbERlc2NyaXB0b3IuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNjcmlwdHNQ
YW5lbERlc2NyaXB0b3IuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA3ODI5NjRmNzI4MmVlNTY3ZTJlZDk4OGNm
YWE2MzNiZGQ3YTQ4MjA1Li4zYjk4ZWQ3N2JjYjg5N2MxYjYwYzM5NmFiMDFiMTBmMmYzOWExMzAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwpAQCAtNTIzLDcgKzUyMyw3IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFi
aWxpdGllcyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuc2NyaXB0U25pcHBldE1vZGVsID0gbmV3
IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwodGhpcy53b3Jrc3BhY2UpOwogICAgIG5l
dyBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKHRoaXMud29ya3NwYWNlKTsKLSAg
ICBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlcih0aGlzLndvcmtz
cGFjZSk7CisgICAgbmV3IFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlcih0
aGlzLndvcmtzcGFjZSk7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdz
LnNhc3MuaXNFbmFibGVkKCkpCiAgICAgICAgIG5ldyBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1h
cHBpbmcodGhpcy53b3Jrc3BhY2UpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWZkMTNjMzE0MDg4YmYxYzk1ZDQ5NDgw
MjUzNWQ3OWQ5ZmQyOWJkYi4uYTNjZTM4YWY4ZTYxNjQ3MGY1MDFmYWQ5MmJhMDllMmE2ODYwZWU0
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA5LTAzICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTI3NDI3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjc0
MjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1Njk1
CisKKyAgICAgICAgQnJlYWtzIHNvbWUgaW5zcGVjdG9yL2RlYnVnZ2VyIHRlc3RzIG9uIEpTQyAo
UmVxdWVzdGVkIGJ5CisgICAgICAgIHZzZXZpayBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRl
bnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5h
Z2VyLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRh
Zy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2Ny
aXB0LXRhZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291
cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3VyY2UtY29kZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlw
dC1tYXBwaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sOgorCiAyMDEyLTA5LTAzICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENyZWF0ZSBKYXZhU2NyaXB0U291cmNlcyBiYXNlZCBvbiBuZXR3b3JrIHJlc291cmNlcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1yZXF1ZXN0LXJldmlzaW9uLWNvbnRlbnQuaHRt
bAppbmRleCBlN2QzOWI1OTMxNjFlYzk3MDgwNDEyNmJkM2ExY2JiNjRmYzZhMWVkLi5kNjgzN2M2
YmMyMzA3ZDkzOTViNTMwYzU4NTBhM2U3OTUzNGRiM2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstcmVxdWVzdC1yZXZpc2lvbi1j
b250ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9uZXR3b3JrLXJlcXVlc3QtcmV2aXNpb24tY29udGVudC5odG1sCkBAIC0xNCw3ICsxNCw3IEBA
IGZ1bmN0aW9uIGxvYWRTdHlsZXNoZWV0KCkKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3Bl
Y3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoc3RlcDIsIHRydWUpOwotICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLnBy
b3RvdHlwZSwgIl9yZXNvdXJjZUFkZGVkIiwgdHJ1ZSk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUs
ICJfcmVzb3VyY2VBZGRlZCIsIHRydWUpOwogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImxvYWRTdHlsZXNoZWV0KCkiKTsKIAogICAgIHZhciByZXNvdXJjZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiYTczNjdjMDMwMTUzYjZlNTZlMTVjYWE5ZTIyNWM4NTI4
MmJjZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw2OCArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9Xb3Jrc3BhY2VUZXN0ID0gZnVu
Y3Rpb24oKSB7Ci0KLUluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZTsKLUluc3BlY3RvclRlc3Qu
Y3JlYXRlV29ya3NwYWNlID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3QudGVzdFdv
cmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgSW5zcGVjdG9yVGVz
dC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVs
dFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0LnRl
c3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJv
dmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0
VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwotICAgIEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92
aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJ
U291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLX0KLQotSW5zcGVjdG9yVGVzdC53YWl0
Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlUmVwbGFjZWRFdmVudCA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQotewotICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVw
bGFjZWQsIEluc3BlY3RvclRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFu
ZGxlcik7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBs
YWNlZCwgdWlTb3VyY2VDb2RlUmVwbGFjZWQpOwotCi0gICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rl
UmVwbGFjZWQoZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIu
RXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB1aVNvdXJjZUNvZGVSZXBsYWNlZCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIElu
c3BlY3RvclRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7Ci0g
ICAgICAgIGNhbGxiYWNrKGV2ZW50LmRhdGEudWlTb3VyY2VDb2RlLCBldmVudC5kYXRhLm9sZFVJ
U291cmNlQ29kZSk7Ci0gICAgfQotfQotCi1JbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VV
SVNvdXJjZUNvZGVBZGRlZEV2ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgSW5zcGVj
dG9yVGVzdC50ZXN0V29ya3NwYWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVz
dC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKLSAgICBJbnNwZWN0
b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRl
ZCk7Ci0KLSAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZChldmVudCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVp
U291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5V
SVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3Zp
ZGVyRXZlbnRIYW5kbGVyKTsKLSAgICAgICAgY2FsbGJhY2soZXZlbnQuZGF0YSk7Ci0gICAgfQot
fQotCi1JbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSA9IGZ1bmN0
aW9uKHVybCwgdHlwZSwgY29udGVudCkKLXsKLSAgICB2YXIgaXNEb2N1bWVudCA9IHR5cGUgPT09
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50OwotICAgIHZhciBtb2NrQ29udGVu
dFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIodHlwZSwg
Y29udGVudCk7Ci0gICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZSh1cmwsIG51bGwsIG1vY2tDb250ZW50UHJvdmlkZXIsICFpc0RvY3VtZW50KTsK
LSAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UucHJvamVjdCgpLmFkZFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGUpOwotfQotCi1JbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2Rl
UHJvdmlkZXJFdmVudEhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkKLXsKLSAgICB0aHJvdyBuZXcg
RXJyb3IoIlVuZXhwZWN0ZWQgVUlTb3VyY2VDb2RlUHJvdmlkZXIgZXZlbnQ6ICIgKyBldmVudC50
eXBlICsgIi4iKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlID0gZnVuY3Rp
b24odWlTb3VyY2VDb2RlLCBjYWxsYmFjaykKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiVUlTb3VyY2VDb2RlOiAiICsgdWlTb3VyY2VDb2RlLnVybCk7Ci0gICAgaWYgKHVpU291cmNl
Q29kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6ICIgKyB1
aVNvdXJjZUNvZGUuX2lzRWRpdGFibGUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiAiICsgdWlTb3VyY2VDb2RlLmlzQ29u
dGVudFNjcmlwdCk7Ci0gICAgfQotICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRS
ZXF1ZXN0Q29udGVudCk7Ci0KLSAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjb250ZW50
LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiTWltZSB0eXBlOiAiICsgbWltZVR5cGUpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlIGNvbnRlbnQ6ICIgKyBjb250ZW50KTsKLSAgICAg
ICAgY2FsbGJhY2soKTsKLSAgICB9Ci19Ci0KLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKaW5kZXggYzNkYjA5ZTI2
YzEzMjExODk5YzI4NWJlOGQ3NWNiZGM5ZmZhZmE0NC4uZmIzZDBkNzc0MDk1Nzk3NGE5OTNlYmM3
OGRmNDI5ZDQ0MjIyMTAxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbApAQCAtMTExLDggKzExMSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIFdvcmtzcGFjZU1vY2sucHJvdG90eXBlID0gewogICAgICAgICBfYWRk
VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1cmwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodXJsLCBudWxs
LCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291cmNlTWFwcGlu
ZyhkZWZhdWx0TWFwcGluZyk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVybCwgbnVsbCwgbnVsbCwgZGVmYXVsdE1hcHBp
bmcsIGZhbHNlKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZXNbdXJsXSA9IHVpU291cmNlQ29k
ZTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNl
Q29kZSk7CiAgICAgICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4
cGVjdGVkLnR4dAppbmRleCA3NjE1MzMwYzRhZGY2MWY4ZjA5MjczNGI4MmVkNmQwZWU3Zjk3MDVm
Li42OTMwYzhmMDc4MTU0MjdkN2JiMWM5YTkzN2U5YWViOWU1NzJmMDQ5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQt
dGFnLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSwxMiBAQAotVGVzdHMgdGhhdCBpbmxpbmUgc2Ny
aXB0cyBhbmQgZG9jdW1lbnQud3JpdGUgc2NyaXB0cyBnZXQgZGlmZmVyZW50IHVpU291cmNlQ29k
ZXMgd2l0aCBkaWZmZXJlbnQgVVJMcy4gQnVnIDg3MTE5CitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogMTIzCitUZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGFkZGVkIHNjcmlwdCB0YWcgZ2V0cyBpdHMg
b3duIEphdmFTY3JpcHRTb3VyY2UgYW5kIGlzIG5vdCBib3VuZCB0byB0aGUgcmVzb3VyY2UuIEJ1
ZyA4NzExOQogCiBEZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLUR1bXBpbmcgc2NyaXB0czoKLXNjcmlw
dDE6IGZpbGU6Ly8vdXNyL2xvY2FsL2dvb2dsZS9ob21lL3ZzZXZpay9jaHJvbWl1bS9zcmMvdGhp
cmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNj
cmlwdC10YWcuaHRtbAotSXMgYW5vbnltb3VzOmZhbHNlCi1JcyBpbmxpbmUgc2NyaXB0OnRydWUK
LXNjcmlwdDI6IGZpbGU6Ly8vdXNyL2xvY2FsL2dvb2dsZS9ob21lL3ZzZXZpay9jaHJvbWl1bS9z
cmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5h
bWljLXNjcmlwdC10YWcuaHRtbAotSXMgYW5vbnltb3VzOmZhbHNlCi1JcyBpbmxpbmUgc2NyaXB0
OmZhbHNlCi1zY3JpcHQzOiBmaWxlOi8vL3Vzci9sb2NhbC9nb29nbGUvaG9tZS92c2V2aWsvY2hy
b21pdW0vc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKIElzIGFub255bW91czpmYWxzZQogSXMgaW5saW5l
IHNjcmlwdDpmYWxzZQotRHVtcGluZyB1aVNvdXJjZUNvZGVzOgotVUlTb3VyY2VDb2RlOiBmaWxl
Oi8vL3Vzci9sb2NhbC9nb29nbGUvaG9tZS92c2V2aWsvY2hyb21pdW0vc3JjL3RoaXJkX3BhcnR5
L1dlYktpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFn
Lmh0bWwgKDEpCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKLVVJU291cmNlQ29kZSBp
cyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNv
dXJjZUNvZGUgY29udGVudDogZnVuY3Rpb24gYmFyKCkgeyB9Ci1VSSByZXNvdXJjZTogbnVsbAot
VUlTb3VyY2VDb2RlOiBmaWxlOi8vL3Vzci9sb2NhbC9nb29nbGUvaG9tZS92c2V2aWsvY2hyb21p
dW0vc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwgKDIpCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRy
dWUKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4
dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVudDogZnVuY3Rpb24gZm9vKCkgeyB9Citk
eW5hbWljLXNjcmlwdC10YWcuaHRtbAorVUkgbmFtZTogZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwK
IFVJIHJlc291cmNlOiBudWxsCitVSSBjb250ZW50OiBjb25zb2xlLmxvZygxMjMpCiBEZWJ1Z2dl
ciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbAppbmRleCA1Mjc5ODdiMTJkMTc5MmNlN2FiYTU5
ZWUxZjM0YzdlMzI4MzZhOWE1Li5iNDUzNjhjYjFiNWE3YTNhYjVjZWFmYmNiMjcxZmNjZTQzNjI1
ZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1z
Y3JpcHQtdGFnLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFt
aWMtc2NyaXB0LXRhZy5odG1sCkBAIC0yLDc5ICsyLDUxIEBACiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29y
a3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgorCiA8c2NyaXB0PgotZG9jdW1lbnQud3JpdGUoIjxz
Y3JpcCIgKyAidD5mdW5jdGlvbiBmb28oKSB7IH08L3NjIiArICJyaXB0PiIpOwotdmFyIHNjcmlw
dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLXNjcmlwdEVsZW1l
bnQudGV4dENvbnRlbnQgPSAiZnVuY3Rpb24gYmFyKCkgeyB9IjsKLWRvY3VtZW50LmhlYWQuYXBw
ZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7CiAKLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQorZnVuY3Rp
b24gY3JlYXRlU2NyaXB0VGFnKCkKK3sKKyAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2NyaXB0Iik7CisgICAgc2NyaXB0LmlubmVySFRNTCA9ICJjb25zb2xlLmxvZygx
MjMpIjsKKyAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEp
OwogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgdmFyIG1vZGVsID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWw7Ci0KLSAgICAgICAgdmFyIHNjcmlwdHMgPSBPYmplY3Qu
dmFsdWVzKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHMpOwotICAgICAgICBmdW5j
dGlvbiBmaWx0ZXJPdXRTdGFuZGFsb25lU2NyaXB0cyhzY3JpcHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBzY3JpcHQuc291cmNlVVJMLmluZGV4T2YoImR5bmFtaWMtc2NyaXB0LXRh
Zy5odG1sIikgIT09IC0xOwotICAgICAgICB9Ci0gICAgICAgIHNjcmlwdHMgPSBzY3JpcHRzLmZp
bHRlcihmaWx0ZXJPdXRTdGFuZGFsb25lU2NyaXB0cyk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImNyZWF0ZVNjcmlwdFRhZygpIik7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwuRXZlbnRzLlBhcnNlZFNjcmlwdFNvdXJjZSwgc3RlcDIpOworICAgIH0KIAotICAgICAgICBm
dW5jdGlvbiBjb21wYXJlU2NyaXB0RnVuY3Rpb24oc2NyaXB0MSwgc2NyaXB0MikKKyAgICBmdW5j
dGlvbiBzdGVwMihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBzY3JpcHQgPSBldmVudC5kYXRh
OworICAgICAgICBzY3JpcHQucmVxdWVzdENvbnRlbnQoY2FsbGJhY2spOworICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhjb250ZW50KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc2Ny
aXB0MS5zb3VyY2VVUkwubG9jYWxlQ29tcGFyZShzY3JpcHQyLnNvdXJjZVVSTCk7Ci0gICAgICAg
IH0KLSAgICAgICAgc2NyaXB0cy5zb3J0KGNvbXBhcmVTY3JpcHRGdW5jdGlvbik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDMsIHNjcmlwdHMubGVuZ3RoLCAiV3Jvbmcgc2Ny
aXB0cyBjb3VudC4iKTsKLQotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IFtdOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzY3JpcHRzOiIpOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZh
ciBzY3JpcHQgPSBzY3JpcHRzW2ldOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoInNjcmlwdCIgKyAoaSsxKSArICI6ICIgKyBzY3JpcHQuc291cmNlVVJMKTsKKyAgICAgICAg
ICAgIGlmIChjb250ZW50ICE9PSAiY29uc29sZS5sb2coMTIzKSIpCisgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIklzIGFub255bW91
czoiICsgc2NyaXB0LmlzQW5vbnltb3VzU2NyaXB0KCkpOwogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIklzIGlubGluZSBzY3JpcHQ6IiArIHNjcmlwdC5pc0lubGluZVNjcmlw
dCgpKTsKLSAgICAgICAgICAgIGlmICghc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkpCi0gICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlv
bigwLCAwKS51aVNvdXJjZUNvZGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY29t
cGFyZVVJU291cmNlQ29kZUZ1bmN0aW9uKHVpU291cmNlQ29kZTEsIHVpU291cmNlQ29kZTIpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGUxLnVybC5sb2NhbGVDb21w
YXJlKHVpU291cmNlQ29kZTIudXJsKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KG5ldyBXZWJJbnNwZWN0b3IuUGFyc2VkVVJMKHNjcmlwdC5zb3VyY2VVUkwpLmRpc3BsYXlO
YW1lKTsKKyAgICAgICAgICAgIC8vIEludm9rZSBwb3N0IHNvdXJjZSBtYXAgaW5zdGFsbC4KKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoc3RlcDMuYmluZCh0aGlzLCBzY3JpcHQpLCAwKTsKICAgICAg
ICAgfQotICAgICAgICB1aVNvdXJjZUNvZGVzLnNvcnQoY29tcGFyZVVJU291cmNlQ29kZUZ1bmN0
aW9uKTsKLQotICAgICAgICB2YXIgc2VlblVJU291cmNlQ29kZXMgPSBuZXcgTWFwKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDIsIHVpU291cmNlQ29kZXMubGVuZ3RoLCAi
V3JvbmcgdWlTb3VyY2VDb2RlcyBjb3VudC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkR1bXBpbmcgdWlTb3VyY2VDb2RlczoiKTsKLSAgICAgICAgCi0gICAgICAgIHZhciBp
bmRleCA9IDA7Ci0gICAgICAgIGR1bXBOZXh0VUlTb3VyY2VDb2RlKCk7Ci0gICAgICAgIGZ1bmN0
aW9uIGR1bXBOZXh0VUlTb3VyY2VDb2RlKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGlu
ZGV4ID49IHVpU291cmNlQ29kZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2Rlc0R1bXBlZCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGVzW2luZGV4XTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHVpU291
cmNlQ29kZUR1bXBlZCk7CisgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNv
ZGVEdW1wZWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJVSSByZXNvdXJjZTogIiArIHVpU291cmNlQ29kZS5yZXNvdXJjZSgpKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXNlZW5VSVNvdXJjZUNvZGVz
LmdldCh1aVNvdXJjZUNvZGUpLCAiVUlTb3VyY2VDb2RlIG1hdGNoZXMgdHdvIHNjcmlwdHM6ICIg
KyB1aVNvdXJjZUNvZGUudXJsKTsKLSAgICAgICAgICAgICAgICBzZWVuVUlTb3VyY2VDb2Rlcy5w
dXQodWlTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgICsraW5kZXg7
Ci0gICAgICAgICAgICAgICAgZHVtcE5leHRVSVNvdXJjZUNvZGUoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rlc0R1bXBl
ZCgpCisgICAgZnVuY3Rpb24gc3RlcDMoc2NyaXB0KQorICAgIHsKKyAgICAgICAgdmFyIHVpTG9j
YXRpb24gPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwgMCk7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSSBuYW1lOiAiICsgdWlMb2NhdGlvbi51aVNvdXJjZUNv
ZGUucGFyc2VkVVJMLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlVJIHJlc291cmNlOiAiICsgdWlMb2NhdGlvbi51aVNvdXJjZUNvZGUucmVzb3VyY2UoKSk7
CisgICAgICAgIHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNhbGxiYWNr
KTsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soY29udGVudCkKICAgICAgICAgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJIGNvbnRlbnQ6ICIgKyBjb250ZW50KTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTgyLDcgKzU0LDEwIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0
IGlubGluZSBzY3JpcHRzIGFuZCBkb2N1bWVudC53cml0ZSBzY3JpcHRzIGdldCBkaWZmZXJlbnQg
dWlTb3VyY2VDb2RlcyB3aXRoIGRpZmZlcmVudCBVUkxzLgorPHA+CitUZXN0cyB0aGF0IGR5bmFt
aWNhbGx5IGFkZGVkIHNjcmlwdCB0YWcgZ2V0cyBpdHMgb3duIEphdmFTY3JpcHRTb3VyY2UgYW5k
IGlzIG5vdCBib3VuZCB0byB0aGUgcmVzb3VyY2UuCiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcxMTkiPkJ1ZyA4NzExOTwvYT4KKzwvcD4KIDwvYm9k
eT4KKwogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0OTkxZjIxN2QyZWViMzZlMjdm
NTdiOTQ5ODM5OGJhMWYwZjdiNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3Vy
Y2Vjb2RlLXByb3ZpZGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAg
QEAKLVRlc3RzIE5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciBjbGFzcy4KLQotCi1SdW5uaW5n
OiB0ZXN0RG9jdW1lbnRSZXNvdXJjZVdpdGhQZW5kaW5nUmVxdWVzdAotQ3JlYXRpbmcgcmVxdWVz
dC4KLUZpbmlzaGluZyByZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBodHRwOi8vZmFrZS51cmwvMgot
VUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQg
c2NyaXB0OiBmYWxzZQotTWltZSB0eXBlOiB0ZXh0L2h0bWwKLVVJU291cmNlQ29kZSBjb250ZW50
OiA8ZG9jdW1lbnQgcmVxdWVzdCBjb250ZW50PgotCi1SdW5uaW5nOiB0ZXN0RG9jdW1lbnRSZXNv
dXJjZQotQ3JlYXRpbmcgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6IGh0dHA6Ly9mYWtlLnVybC8z
Ci1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVu
dCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IDxkb2N1bWVudCByZXNvdXJjZSBjb250ZW50PgotCi1SdW5uaW5nOiB0ZXN0U2NyaXB0UmVz
b3VyY2VXaXRoUGVuZGluZ1JlcXVlc3QKLUNyZWF0aW5nIHJlcXVlc3QuCi1GaW5pc2hpbmcgcmVx
dWVzdC4KLVVJU291cmNlQ29kZTogaHR0cDovL2Zha2UudXJsLzQKLVVJU291cmNlQ29kZSBpcyBl
ZGl0YWJsZTogdHJ1ZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWlt
ZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0IHJl
cXVlc3QgY29udGVudD4KLQotUnVubmluZzogdGVzdFNjcmlwdFJlc291cmNlCi1DcmVhdGluZyBy
ZXNvdXJjZS4KLVVJU291cmNlQ29kZTogaHR0cDovL2Zha2UudXJsLzUKLVVJU291cmNlQ29kZSBp
cyBlZGl0YWJsZTogdHJ1ZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQot
TWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0
IHJlc291cmNlIGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RTdHlsZXNoZWV0UmVzb3VyY2VXaXRo
UGVuZGluZ1JlcXVlc3QKLUNyZWF0aW5nIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGh0dHA6Ly9m
YWtlLnVybC82Ci1GaW5pc2hpbmcgcmVxdWVzdC4KLU1pbWUgdHlwZTogdGV4dC9jc3MKLVVJU291
cmNlQ29kZSBjb250ZW50OiA8c3R5bGVzaGVldCByZXF1ZXN0IGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6
IHRlc3RTdHlsZXNoZWV0UmVzb3VyY2UKLUNyZWF0aW5nIHJlc291cmNlLgotVUlTb3VyY2VDb2Rl
OiBodHRwOi8vZmFrZS51cmwvNwotTWltZSB0eXBlOiB0ZXh0L2NzcwotVUlTb3VyY2VDb2RlIGNv
bnRlbnQ6IDxzdHlsZXNoZWV0IHJlc291cmNlIGNvbnRlbnQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2Rl
LXByb3ZpZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkOTI3ZjYzNWVm
MjhlNTU4NWU2OGFlOGIyMDQ2MDJhNGU1ZDRhNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdv
cmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNzMgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBtb2NrQ29udGVudHNNYXAg
PSB7fTsKLSAgICB2YXIgbGFzdFJlc291Y2VJZCA9IDE7Ci0KLSAgICBOZXR3b3JrQWdlbnQuZ2V0
UmVzcG9uc2VCb2R5ID0gZnVuY3Rpb24ocmVxdWVzdElkLCBjYWxsYmFjaykKLSAgICB7Ci0gICAg
ICAgIGNhbGxiYWNrKHVuZGVmaW5lZCwgbW9ja0NvbnRlbnRzTWFwW3JlcXVlc3RJZF0sIGZhbHNl
KTsKLSAgICB9Ci0KLSAgICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VDb250ZW50ID0gZnVuY3Rpb24o
ZnJhbWVJZCwgdXJsLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGNhbGxiYWNrKHVuZGVmaW5l
ZCwgbW9ja0NvbnRlbnRzTWFwW3VybF0sIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBj
cmVhdGVSZXNvdXJjZU1vY2sodHlwZSwgd2l0aFBlbmRpbmdSZXF1ZXN0LCBjb250ZW50KQotICAg
IHsKLSAgICAgICAgdmFyIGRvY3VtZW50VVJMID0gImh0dHA6Ly9mYWtlLnVybCI7Ci0gICAgICAg
IHZhciByZXNvdXJjZUlkID0gKytsYXN0UmVzb3VjZUlkICsgIiI7Ci0gICAgICAgIHZhciB1cmwg
PSBkb2N1bWVudFVSTCArICIvIiArIHJlc291cmNlSWQ7Ci0gICAgICAgIHZhciBmcmFtZUlkID0g
ImZyYW1lLWlkIjsKLSAgICAgICAgdmFyIGxvYWRlcklkID0gImxvYWRlci1pZCI7Ci0gICAgICAg
IHZhciBtaW1lVHlwZTsKLSAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQ6Ci0gICAgICAgICAgICBtaW1lVHlwZSA9
ICJ0ZXh0L2h0bWwiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHlwZXMuU2NyaXB0OgotICAgICAgICAgICAgbWltZVR5cGUgPSAidGV4dC9q
YXZhc2NyaXB0IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQ6Ci0gICAgICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0
L2NzcyI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh3aXRo
UGVuZGluZ1JlcXVlc3QpIHsKLSAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUmVxdWVzdChyZXNvdXJjZUlkLCB1cmwsICJodHRwOi8vZmFrZS51cmwiLCBm
cmFtZUlkLCBsb2FkZXJJZCk7Ci0gICAgICAgICAgICByZXF1ZXN0LnR5cGUgPSB0eXBlOwotICAg
ICAgICAgICAgcmVxdWVzdC5taW1lVHlwZSA9IG1pbWVUeXBlOwotICAgICAgICAgICAgbW9ja0Nv
bnRlbnRzTWFwW3Jlc291cmNlSWRdID0gY29udGVudDsKLSAgICAgICAgfQotICAgICAgICB2YXIg
cmVzb3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlKHJlcXVlc3QsIHVybCwgZG9jdW1l
bnRVUkwsIGZyYW1lSWQsIGxvYWRlcklkLCB0eXBlLCBtaW1lVHlwZSk7Ci0gICAgICAgIG1vY2tD
b250ZW50c01hcFt1cmxdID0gY29udGVudDsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNl
VHJlZU1vZGVsLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJjZUFkZGVkLCByZXNvdXJjZSk7Ci0KLSAgICAgICAg
cmV0dXJuIHJlc291cmNlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmlzaFJlc291cmNlKHJl
c291cmNlKQotICAgIHsKLSAgICAgICAgcmVzb3VyY2UucmVxdWVzdC5maW5pc2hlZCA9IHRydWU7
Ci0gICAgICAgIHJlc291cmNlLnJlcXVlc3QuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5FdmVudHMuRmluaXNoZWRMb2FkaW5nLCByZXNvdXJjZS5y
ZXF1ZXN0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVOZXR3b3JrVUlTb3VyY2VDb2Rl
UHJvdmlkZXIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2Uo
KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsID0gbmV3IFdlYkluc3Bl
Y3Rvci5PYmplY3QoKTsKLSAgICAgICAgdmFyIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9
IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZSk7Ci0gICAgICAgIHJldHVybiBuZXR3b3JrVUlTb3VyY2VDb2RlUHJv
dmlkZXI7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAg
ICBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRSZXNvdXJjZVdpdGhQZW5kaW5nUmVxdWVzdChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyID0g
Y3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0KLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJDcmVhdGluZyByZXF1ZXN0LiIpOwotICAgICAgICAgICAgdmFy
IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2VNb2NrKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVz
LkRvY3VtZW50LCB0cnVlLCAiPGRvY3VtZW50IHJlcXVlc3QgY29udGVudD4iKTsKLQotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVu
dCh1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRmluaXNoaW5nIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICBmaW5pc2hSZXNvdXJjZShyZXNv
dXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNl
Q29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBV
SVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRSZXNvdXJjZShuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyID0gY3JlYXRl
TmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQ3JlYXRpbmcgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFk
ZGVkKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlTW9jayhXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCwgZmFsc2UsICI8ZG9jdW1lbnQgcmVzb3Vy
Y2UgY29udGVudD4iKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQo
dWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIG5leHQpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTY3JpcHRSZXNvdXJjZVdpdGhQZW5k
aW5nUmVxdWVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291
cmNlQ29kZVByb3ZpZGVyID0gY3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0K
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDcmVhdGluZyByZXF1ZXN0LiIp
OwotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2VNb2NrKFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgdHJ1ZSwgIjxzY3JpcHQgcmVxdWVzdCBjb250ZW50
PiIpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJj
ZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJGaW5pc2hpbmcgcmVxdWVzdC4iKTsKLSAgICAgICAgICAgIGZpbmlz
aFJlc291cmNlKHJlc291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rl
QWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIG5leHQpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTY3JpcHRSZXNvdXJjZShu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3Zp
ZGVyID0gY3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ3JlYXRpbmcgcmVzb3VyY2UuIik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVp
U291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IGNyZWF0ZVJlc291
cmNlTW9jayhXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIGZhbHNlLCAiPHNjcmlw
dCByZXNvdXJjZSBjb250ZW50PiIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNv
ZGVBZGRlZCh1aVNvdXJjZUNvZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFN0eWxlc2hlZXRSZXNv
dXJjZVdpdGhQZW5kaW5nUmVxdWVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIg
ZW5kVGVzdENhbGxzTGVmdCA9IDI7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29k
ZVByb3ZpZGVyID0gY3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJDcmVhdGluZyByZXF1ZXN0LiIpOwotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRl
UmVzb3VyY2VNb2NrKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQsIHRydWUs
ICI8c3R5bGVzaGVldCByZXF1ZXN0IGNvbnRlbnQ+Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiRmluaXNoaW5nIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICBmaW5pc2hS
ZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICBlbmRUZXN0KCk7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3VyY2VD
b2RlLCBlbmRUZXN0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZW5k
VGVzdCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKC0tZW5kVGVzdENhbGxz
TGVmdCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U3R5
bGVzaGVldFJlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBuZXR3b3Jr
VUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBjcmVhdGVOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIo
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDcmVhdGluZyByZXNvdXJj
ZS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNl
Q29kZUFkZGVkRXZlbnQodWlTb3VyY2VDb2RlQWRkZWQpOwotICAgICAgICAgICAgdmFyIHJlc291
cmNlID0gY3JlYXRlUmVzb3VyY2VNb2NrKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxl
c2hlZXQsIGZhbHNlLCAiPHN0eWxlc2hlZXQgcmVzb3VyY2UgY29udGVudD4iKTsKLQotICAgICAg
ICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGUsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgIF0pOwotfTsK
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMg
TmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyIGNsYXNzLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNv
ZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3Vy
Y2UtY29kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA3MTgwNmFiZWIxNTE5NjYzNjI2ODhm
NWUwYmQ2OTYwMjRhZmJhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAK
K1Rlc3RzIFJhd1NvdXJjZUNvZGUgY2xhc3MuCisKKworUnVubmluZzogdGVzdFNjcmlwdFdpdGhv
dXRSZXNvdXJjZQorVUlTb3VyY2VDb2RlOiBmb28uanMKK1VJU291cmNlQ29kZSBpcyBjb250ZW50
IHNjcmlwdDogdHJ1ZQorTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKK1NjcmlwdCBzb3VyY2U6
IDxzY3JpcHQgc291cmNlPgorCitSdW5uaW5nOiB0ZXN0SFRNTFdpdGhQZW5kaW5nUmVzb3VyY2UK
K0FkZGluZyBmaXJzdCBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4KK1VJU291cmNlQ29kZTog
aW5kZXguaHRtbAorVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQorTWltZSB0
eXBlOiB0ZXh0L2h0bWwKK1NjcmlwdCBzb3VyY2U6ICAgPHNjcmlwdD48c2NyaXB0IHNvdXJjZSAx
Pjwvc2NyaXB0PgorQWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4KK1VJ
U291cmNlQ29kZTogaW5kZXguaHRtbAorVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBm
YWxzZQorTWltZSB0eXBlOiB0ZXh0L2h0bWwKK1NjcmlwdCBzb3VyY2U6ICAgPHNjcmlwdD48c2Ny
aXB0IHNvdXJjZSAxPjwvc2NyaXB0PiA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDI+PC9zY3JpcHQ+
CitGaW5pc2hpbmcgcmVxdWVzdC4KK1VJU291cmNlQ29kZTogaW5kZXguaHRtbAorVUlTb3VyY2VD
b2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQorTWltZSB0eXBlOiB0ZXh0L2h0bWwKK1Njcmlw
dCBzb3VyY2U6IDxyZXNvdXJjZSBjb250ZW50PgorCitSdW5uaW5nOiB0ZXN0SFRNTFdpdGhGaW5p
c2hlZFJlc291cmNlCitVSVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwKK1VJU291cmNlQ29kZSBpcyBj
b250ZW50IHNjcmlwdDogZmFsc2UKK01pbWUgdHlwZTogdGV4dC9odG1sCitTY3JpcHQgc291cmNl
OiA8cmVzb3VyY2UgY29udGVudD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MzJiOGU2ZDFiNzlhODA1
NzczNTVjZTYwMTJjM2NlOTJjZjlhZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWwKQEAgLTAsMCArMSwyMjQgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgbW9ja0NvbnRlbnRzTWFwID0ge307CisgICAgdmFy
IGxhc3RSZXF1ZXN0SWQgPSAxOworCisgICAgTmV0d29ya0FnZW50LmdldFJlc3BvbnNlQm9keSA9
IGZ1bmN0aW9uKHJlcXVlc3RJZCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBjYWxsYmFjayh1
bmRlZmluZWQsIG1vY2tDb250ZW50c01hcFtyZXF1ZXN0SWRdLCBmYWxzZSk7CisgICAgfQorCisg
ICAgUGFnZUFnZW50LmdldFJlc291cmNlQ29udGVudCA9IGZ1bmN0aW9uKGZyYW1lSWQsIHVybCwg
Y2FsbGJhY2spCisgICAgeworICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQsIG1vY2tDb250ZW50
c01hcFt1cmxdLCBmYWxzZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY3JlYXRlUmVxdWVzdE1v
Y2sodHlwZSwgZmluaXNoZWQsIGNvbnRlbnQpCisgICAgeworICAgICAgICB2YXIgcmVxdWVzdElk
ID0gKytsYXN0UmVxdWVzdElkICsgIiI7CisgICAgICAgIHZhciB1cmwgPSAiaHR0cDovL2Zha2Uu
dXJsLyIgKyByZXF1ZXN0SWQ7CisgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5fYWRkRnJhbWUobmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZShXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwsIG51bGwsIHtpZDogImZyYW1lLWlkIn0pKTsKKyAgICAgICAg
dmFyIHJlcXVlc3QgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0KHJlcXVlc3RJZCwg
dXJsLCAiaHR0cDovL2Zha2UudXJsIiwgImZyYW1lLWlkIiwgImxvYWRlci1pZCIpOworICAgICAg
ICByZXF1ZXN0LnR5cGUgPSB0eXBlID09PSAiZG9jdW1lbnQiID8gV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXMuRG9jdW1lbnQgOiBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQ7Cisg
ICAgICAgIHJlcXVlc3QubWltZVR5cGUgPSB0eXBlID09PSAiZG9jdW1lbnQiID8gInRleHQvaHRt
bCIgOiAidGV4dC9qYXZhc2NyaXB0IjsKKworICAgICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01h
bmFnZXIuX2Rpc3BhdGNoZXIuX3N0YXJ0TmV0d29ya1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAg
IGlmIChmaW5pc2hlZCkKKyAgICAgICAgICAgIGZpbmlzaFJlcXVlc3QocmVxdWVzdCk7CisKKyAg
ICAgICAgbW9ja0NvbnRlbnRzTWFwW3JlcXVlc3RJZF0gPSBjb250ZW50OworICAgICAgICBtb2Nr
Q29udGVudHNNYXBbdXJsXSA9IGNvbnRlbnQ7CisgICAgICAgIHJldHVybiByZXF1ZXN0OworICAg
IH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFJlcXVlc3QocmVxdWVzdCkgeyBXZWJJbnNwZWN0b3Iu
bmV0d29ya01hbmFnZXIuX2Rpc3BhdGNoZXIuX3VwZGF0ZU5ldHdvcmtSZXF1ZXN0KHJlcXVlc3Qp
OyBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuX2Rpc3BhdGNoZXIuX2ZpbmlzaE5ldHdvcmtS
ZXF1ZXN0KHJlcXVlc3QpOyB9CisgICAgZnVuY3Rpb24gY3JlYXRlUGVuZGluZ1JlcXVlc3RNb2Nr
KHR5cGUsIGNvbnRlbnQpIHsgcmV0dXJuIGNyZWF0ZVJlcXVlc3RNb2NrKHR5cGUsIGZhbHNlLCBj
b250ZW50KTsgfQorICAgIGZ1bmN0aW9uIGNyZWF0ZUZpbmlzaGVkUmVxdWVzdE1vY2sodHlwZSwg
Y29udGVudCkgeyByZXR1cm4gY3JlYXRlUmVxdWVzdE1vY2sodHlwZSwgdHJ1ZSwgY29udGVudCk7
IH0KKworICAgIGZ1bmN0aW9uIGNyZWF0ZVNjcmlwdEZvcm1hdHRlck1vY2soKQorICAgIHsKKyAg
ICAgICAgdmFyIG1hcHBpbmcgPSB7CisgICAgICAgICAgICBvcmlnaW5hbFRvRm9ybWF0dGVkOiBm
dW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpIHsgcmV0dXJuIFtsaW5lTnVtYmVyICog
MiwgY29sdW1uTnVtYmVyICogMl07IH0sCisgICAgICAgICAgICBmb3JtYXR0ZWRUb09yaWdpbmFs
OiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpIHsgcmV0dXJuIFtNYXRoLmZsb29y
KGxpbmVOdW1iZXIgLyAyKSwgTWF0aC5mbG9vcihjb2x1bW5OdW1iZXIgLyAyKV07IH0KKyAgICAg
ICAgfTsKKyAgICAgICAgdmFyIGZvcm1hdHRlciA9IHsKKyAgICAgICAgICAgIGZvcm1hdENvbnRl
bnQ6IGZ1bmN0aW9uKG1pbWVUeXBlLCBjb250ZW50LCBjYWxsYmFjaykgeyBmb3JtYXR0ZXIuX2Nh
bGxiYWNrID0gY2FsbGJhY2suYmluZChudWxsLCAiPGZvcm1hdHRlZD4gIiArIGNvbnRlbnQsIG1h
cHBpbmcpOyB9LAorICAgICAgICAgICAgZmluaXNoOiBmdW5jdGlvbigpIHsgZm9ybWF0dGVyLl9j
YWxsYmFjaygpOyB9CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBmb3JtYXR0ZXI7CisgICAg
fTsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZVJhd1NvdXJjZUNvZGUoc2NyaXB0LCByZXF1ZXN0LCBj
b21waWxlclNvdXJjZU1hcHBpbmcpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSBudWxs
OworICAgICAgICBpZiAocmVxdWVzdCAmJiByZXF1ZXN0LmZpbmlzaGVkKSB7CisgICAgICAgICAg
ICByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChyZXF1ZXN0LnVybCkKKyAg
ICAgICAgICAgIHJlcXVlc3QgPSBudWxsOworICAgICAgICB9CisgICAgICAgIHZhciByYXdTb3Vy
Y2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKCJpZCIsIHNjcmlwdCwgcmVz
b3VyY2UsIHJlcXVlc3QsIGNvbXBpbGVyU291cmNlTWFwcGluZyk7CisgICAgICAgIHJhd1NvdXJj
ZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMu
VUlTb3VyY2VDb2RlQ2hhbmdlZCwgZGVmYXVsdFVJU291cmNlQ29kZUNoYW5nZWRIYW5kbGVyKTsK
KyAgICAgICAgcmV0dXJuIHJhd1NvdXJjZUNvZGU7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2Fp
dEZvclVJU291cmNlQ29kZUNoYW5nZWRFdmVudChyYXdTb3VyY2VDb2RlLCBjYWxsYmFjaykKKyAg
ICB7CisgICAgICAgIHJhd1NvdXJjZUNvZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlQ2hhbmdlZCwgZGVmYXVsdFVJU291
cmNlQ29kZUNoYW5nZWRIYW5kbGVyKTsKKyAgICAgICAgcmF3U291cmNlQ29kZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVDaGFu
Z2VkLCB1aVNvdXJjZUNvZGVDaGFuZ2VkKTsKKyAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2Rl
Q2hhbmdlZChldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgcmF3U291cmNlQ29kZS5yZW1v
dmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJj
ZUNvZGVDaGFuZ2VkLCB1aVNvdXJjZUNvZGVDaGFuZ2VkKTsKKyAgICAgICAgICAgIHJhd1NvdXJj
ZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMu
VUlTb3VyY2VDb2RlQ2hhbmdlZCwgZGVmYXVsdFVJU291cmNlQ29kZUNoYW5nZWRIYW5kbGVyKTsK
KyAgICAgICAgICAgIGNhbGxiYWNrKGV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1
bmN0aW9uIGRlZmF1bHRVSVNvdXJjZUNvZGVDaGFuZ2VkSGFuZGxlcigpCisgICAgeworICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgVUlTb3VyY2VDb2RlQ2hhbmdlZCBldmVudC4i
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjcmVhdGVSYXdMb2NhdGlvbihsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIpCisgICAgeworICAgICAgICByZXR1cm4geyBsaW5lTnVtYmVyOiBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OworICAgIH0KKworICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdpdGhvdXRS
ZXNvdXJjZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5fcmVzZXQoKTsKKyAgICAgICAgICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZVNjcmlwdE1vY2soImZvby5qcyIsIDAsIDAsIHRydWUsICI8c2NyaXB0IHNvdXJjZT4i
KTsKKyAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShz
Y3JpcHQsIG51bGwpOworCisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gcmF3U291cmNl
Q29kZS51aVNvdXJjZUNvZGUoKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJVSVNvdXJjZUNvZGU6ICIgKyByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZSgpLnVybCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlIGlzIGNvbnRl
bnQgc2NyaXB0OiAiICsgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDAsIDUsIHJhd1Nv
dXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMCwgNSkp
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEw
LCAwLCByYXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwg
MTAsIDApKTsKKyAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1
ZXN0Q29udGVudCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNv
bnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTWltZSB0eXBlOiAiICsgbWltZVR5cGUp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgc291cmNl
OiAiICsgY29udGVudCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RIVE1MV2l0aFBlbmRpbmdSZXNvdXJj
ZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5fcmVzZXQoKTsKKyAgICAgICAgICAgIHZhciBzY3JpcHQxID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVTY3JpcHRNb2NrKCJpbmRleC5odG1sIiwgMCwgMTAsIGZhbHNlLCAiPHNjcmlwdCBzb3VyY2Ug
MT4iKTsKKyAgICAgICAgICAgIHZhciBzY3JpcHQyID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3Jp
cHRNb2NrKCJpbmRleC5odG1sIiwgMCwgNDUsIGZhbHNlLCAiPHNjcmlwdCBzb3VyY2UgMj4iKTsK
KyAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gY3JlYXRlUGVuZGluZ1JlcXVlc3RNb2NrKCJkb2N1
bWVudCIsICI8cmVzb3VyY2UgY29udGVudD4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7Cisg
ICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNyZWF0ZVJhd1NvdXJjZUNvZGUoc2NyaXB0
MSwgcmVxdWVzdCk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghcmF3
U291cmNlQ29kZS51aVNvdXJjZUNvZGUoKSk7CisKKyAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJj
ZUNvZGVDaGFuZ2VkRXZlbnQocmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlQWRkZWQpOworICAg
ICAgICAgICAgcmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihjcmVhdGVSYXdM
b2NhdGlvbigwLCAxMCkpOworICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQo
ZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKCFldmVudC5kYXRhLm9sZFVJU291cmNlQ29kZSk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRUcnVlKCEhcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGUoKSk7Cisg
ICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJjZUNvZGUudWlTb3VyY2VD
b2RlKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNl
Q29kZTogIiArIHVpU291cmNlQ29kZS51cmwpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6ICIgKyB1aVNvdXJj
ZUNvZGUuaXNDb250ZW50U2NyaXB0KTsKKyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVx
dWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOworCisgICAgICAgICAgICAgICAgZnVuY3Rp
b24gZGlkUmVxdWVzdENvbnRlbnQoY29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIk1pbWUgdHlwZTogIiArIG1pbWVUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2U6ICIgKyBjb250ZW50KTsKKworICAg
ICAgICAgICAgICAgICAgICB3YWl0Rm9yVUlTb3VyY2VDb2RlQ2hhbmdlZEV2ZW50KHJhd1NvdXJj
ZUNvZGUsIHVpU291cmNlQ29kZUNoYW5nZWRBZnRlclNjcmlwdEFkZGVkKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzZWNvbmQgc2NyaXB0IGZv
ciBwZW5kaW5nIHJlcXVlc3QuIik7CisgICAgICAgICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUu
YWRkU2NyaXB0KHNjcmlwdDIpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVDaGFuZ2VkQWZ0ZXJTY3JpcHRBZGRl
ZChldmVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydFRydWUoZXZlbnQuZGF0YS5vbGRVSVNvdXJjZUNvZGUpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIXJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlKCkpOwor
ICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNl
Q29kZSgpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJj
ZUNvZGU6ICIgKyB1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiAiICsgdWlTb3Vy
Y2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJl
cXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKKworICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZFJlcXVlc3RDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJNaW1lIHR5cGU6ICIgKyBtaW1lVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgc291cmNlOiAiICsgY29udGVudCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgd2FpdEZvclVJU291cmNlQ29kZUNoYW5nZWRFdmVudChyYXdTb3Vy
Y2VDb2RlLCB1aVNvdXJjZUNvZGVDaGFuZ2VkQWZ0ZXJSZXF1ZXN0RmluaXNoZWQpOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmluaXNoaW5nIHJlcXVlc3Qu
Iik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFJlcXVlc3QocmVxdWVzdCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291
cmNlQ29kZUNoYW5nZWRBZnRlclJlcXVlc3RGaW5pc2hlZChldmVudCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoZXZlbnQuZGF0YS5vbGRV
SVNvdXJjZUNvZGUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSgh
IXJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlKCkpOworICAgICAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZSgpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGU6ICIgKyB1aVNvdXJjZUNvZGUu
dXJsKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VD
b2RlIGlzIGNvbnRlbnQgc2NyaXB0OiAiICsgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7
CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RD
b250ZW50KTsKKworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNv
bnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNaW1lIHR5cGU6ICIgKyBt
aW1lVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
Y3JpcHQgc291cmNlOiAiICsgY29udGVudCk7CisKKyAgICAgICAgICAgICAgICAgICAgbmV4dCgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RIVE1MV2l0aEZpbmlzaGVkUmVzb3VyY2UobmV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuX3Jlc2V0KCk7CisgICAg
ICAgICAgICB2YXIgc2NyaXB0MSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiaW5k
ZXguaHRtbCIsIDEsIDEwLCBmYWxzZSwgIjxzY3JpcHQgc291cmNlIDE+Iik7CisgICAgICAgICAg
ICB2YXIgc2NyaXB0MiA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jaygiaW5kZXguaHRt
bCIsIDUsIDQ1LCBmYWxzZSwgIjxzY3JpcHRcbnNvdXJjZVxuMj4iKTsKKyAgICAgICAgICAgIHZh
ciByZXF1ZXN0ID0gY3JlYXRlRmluaXNoZWRSZXF1ZXN0TW9jaygiZG9jdW1lbnQiLCAiPHJlc291
cmNlIGNvbnRlbnQ+Iik7CisgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNyZWF0ZVJh
d1NvdXJjZUNvZGUoc2NyaXB0MSwgcmVxdWVzdCk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0VHJ1ZSghIXJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlKCkpOworICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlKCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlOiAiICsgdWlTb3Vy
Y2VDb2RlLnVybCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3Vy
Y2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiAiICsgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlw
dCk7CisgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENv
bnRlbnQpOworCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjb250ZW50
LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1pbWUgdHlwZTogIiArIG1pbWVUeXBlKTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZTogIiAr
IGNvbnRlbnQpOworCisgICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5hZGRTY3JpcHQoc2Ny
aXB0Mik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24odWlT
b3VyY2VDb2RlLCAxLCAyMCwgcmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihj
cmVhdGVSYXdMb2NhdGlvbigxLCAyMCkpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgMSwgMCwgcmF3U291cmNlQ29kZS51aUxvY2F0aW9u
VG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEsIDApKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MiwgNiwgMCwgcmF3U291cmNlQ29kZS51
aUxvY2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDYsIDApKTsKKworICAgICAgICAg
ICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIF0pOworfTsKKwor
PC9zY3JpcHQ+CisKKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgUmF3U291cmNlQ29kZSBjbGFzcy48L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Ut
c2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhZmE5YzIxMTZmOGEzNWJmNjg3MDlhNTUxOGQ0NjQ0MGM1ZTYzNjgzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw3MSArMCwwIEBACi1UZXN0cyBSZXNvdXJjZVNjcmlwdE1hcHBpbmcgY2xhc3MuCi0K
LQotUnVubmluZzogdGVzdFNjcmlwdFdpdGhQZW5kaW5nUmVzb3VyY2UKLUFkZGluZyBzY3JpcHQg
Zm9yIHBlbmRpbmcgcmVxdWVzdC4KLVVJU291cmNlQ29kZTogZm9vLmpzCi1VSVNvdXJjZUNvZGUg
aXMgZWRpdGFibGU6IHRydWUKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogdHJ1ZQot
TWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiA8Y29udGVu
dCBzY3JpcHQgc291cmNlPgotQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3Vy
Y2UuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVl
Ci1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IHRydWUKLU1pbWUgdHlwZTogdGV4dC9q
YXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVudDogPGNvbnRlbnQgc2NyaXB0IHJlc291cmNl
IGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoRmluaXNoZWRSZXNvdXJjZQotQWRk
aW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6IGZv
by5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29u
dGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VD
b2RlIGNvbnRlbnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29udGVudD4KLUFkZGluZyBzY3JpcHQgZm9y
IGZpbmlzaGVkIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlz
IGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1N
aW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQg
cmVzb3VyY2UgY29udGVudD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoUGVuZGluZ1Jlc291cmNl
Ci1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6
IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29k
ZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJj
ZUNvZGUgY29udGVudDogICA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDE+PC9zY3JpcHQ+Ci1BZGRp
bmcgc2Vjb25kIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBpbmRl
eC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMg
Y29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2Rl
IGNvbnRlbnQ6ICAgPHNjcmlwdD48c2NyaXB0IHNvdXJjZSAxPjwvc2NyaXB0PiA8c2NyaXB0Pjxz
Y3JpcHQgc291cmNlIDI+PC9zY3JpcHQ+Ci1BZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hl
ZCByZXNvdXJjZS4KLVVJU291cmNlQ29kZTogaW5kZXguaHRtbAotVUlTb3VyY2VDb2RlIGlzIGVk
aXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWlt
ZSB0eXBlOiB0ZXh0L2h0bWwKLVVJU291cmNlQ29kZSBjb250ZW50OiA8cmVzb3VyY2UgY29udGVu
dD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoRmluaXNoZWRSZXNvdXJjZQotQWRkaW5nIHVpU291
cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwK
LVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29kZSBpcyBjb250ZW50
IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJjZUNvZGUgY29udGVu
dDogPHJlc291cmNlIGNvbnRlbnQ+Ci1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBmaW5pc2hlZCBy
ZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBpbmRleC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFi
bGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5
cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxyZXNvdXJjZSBjb250ZW50Pgot
QWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6
IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29k
ZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJj
ZUNvZGUgY29udGVudDogPHJlc291cmNlIGNvbnRlbnQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZTdkNWE5Y2UzMDBmODFlY2YwNWEzZTZj
YjNhYWRmMGFlOWMxNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBw
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHZhciB3b3Jrc3BhY2U7Ci0gICAgZnVuY3Rpb24gY3JlYXRlUmVzb3Vy
Y2VTY3JpcHRNYXBwaW5nKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29y
a3NwYWNlKCk7Ci0gICAgICAgIHZhciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Up
OwotICAgICAgICByZXR1cm4gcmVzb3VyY2VTY3JpcHRNYXBwaW5nOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdp
dGhQZW5kaW5nUmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNjcmlw
dDsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAg
ICAgICAgICAgdmFyIHJlc291cmNlU2NyaXB0TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0
TWFwcGluZygpOwotICAgICAgICAgICAgdmFyIHVybCA9ICJmb28uanMiOwotICAgICAgICAgICAg
c3RlcDEoKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29k
ZUFkZGVkRXZlbnQodWlTb3VyY2VDb2RlQWRkZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7Ci0g
ICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVy
bCwgMCwgMCwgdHJ1ZSwgIjxjb250ZW50IHNjcmlwdCBzb3VyY2U+Iik7Ci0gICAgICAgICAgICAg
ICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9j
YXRpb24odWlTb3VyY2VDb2RlLCAwLCA1LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24o
MCwgNSkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihz
Y3JpcHQsIDEwLCAwLCB1aVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDAp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuIik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlUmVw
bGFjZWRFdmVudCh1aVNvdXJjZUNvZGVSZXBsYWNlZFdpdGhSZXNvdXJjZSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVu
dChmdW5jdGlvbigpIHsgfSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2Nr
VUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
Y3JpcHQsICI8Y29udGVudCBzY3JpcHQgcmVzb3VyY2UgY29udGVudD4iKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlUmVwbGFjZWRXaXRoUmVzb3Vy
Y2UodWlTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAwLCA1
LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwgNSkpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEwLCAwLCB1aVNvdXJjZUNv
ZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2NyaXB0V2l0aEZpbmlz
aGVkUmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNjcmlwdDsKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAgICAgICAg
ICAgdmFyIG1vY2tVSVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nID0gY3JlYXRlUmVzb3VyY2VTY3JpcHRNYXBwaW5nKCk7Ci0gICAgICAgICAgICB2YXIg
dXJsID0gImZvby5qcyI7Ci0gICAgICAgICAgICBzdGVwMSgpOwotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkFkZGluZyB1aVNvdXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNl
Q29kZUFkZGVkRXZlbnQodWlTb3VyY2VDb2RlRm9yUmVzb3VyY2VBZGRlZCk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICI8c2NyaXB0IHJlc291cmNlIGNvbnRl
bnQ+Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29k
ZUZvclJlc291cmNlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIG1vY2tVSVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgc3RlcDIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzY3JpcHQg
Zm9yIGZpbmlzaGVkIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgMCwgZmFsc2UsICI8c2NyaXB0IHNvdXJj
ZT4iKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNj
cmlwdCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24obW9j
a1VJU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0
LCAxMCwgMCwgbW9ja1VJU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxMCwgMCkp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZShtb2NrVUlT
b3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0SFRNTFdpdGhQZW5kaW5nUmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdmFyIHNjcmlwdDE7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0MjsKLSAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAgICAgICAgICAgdmFy
IHJlc291cmNlU2NyaXB0TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0TWFwcGluZygpOwot
ICAgICAgICAgICAgdmFyIHVybCA9ICJpbmRleC5odG1sIjsKLSAgICAgICAgICAgIHN0ZXAxKCk7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2
ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiQWRkaW5nIGZpcnN0IHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LiIpOwotICAg
ICAgICAgICAgICAgIHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sodXJs
LCAwLCAxMCwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAgICAgICAgIHJl
c291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0MSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlv
bih1aVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwg
NSkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3Jp
cHQxLCAxMCwgMCwgdWlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNl
Q29kZSwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVw
MigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFkZGluZyBzZWNvbmQgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuIik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlUmVwbGFj
ZWRFdmVudCh1aVNvdXJjZUNvZGVSZXBsYWNlZCk7Ci0gICAgICAgICAgICAgICAgc2NyaXB0MiA9
IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDAsIDQ1LCBmYWxzZSwgIjxzY3Jp
cHQgc291cmNlIDI+Iik7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFk
ZFNjcmlwdChzY3JpcHQyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24g
dWlTb3VyY2VDb2RlUmVwbGFjZWQodWlTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24o
dWlTb3VyY2VDb2RlLCAwLCA1LCBzY3JpcHQyLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0
MSwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxMCwgMCkpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNv
ZGUsIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJjZS4iKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVSZXBsYWNl
ZEV2ZW50KHVpU291cmNlQ29kZVJlcGxhY2VkV2l0aFJlc291cmNlKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KGZ1
bmN0aW9uKCkgeyB9KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNv
dXJjZUNvZGVUb1dvcmtzcGFjZSh1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3Vt
ZW50LCAiPHJlc291cmNlIGNvbnRlbnQ+Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHVpU291cmNlQ29kZVJlcGxhY2VkV2l0aFJlc291cmNlKHVpU291cmNlQ29kZSwg
b2xkVUlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0MS5yYXdMb2Nh
dGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEwLCAwLCB1aVNvdXJjZUNvZGUudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24oMTAsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBV
SVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0SFRNTFdpdGhGaW5pc2hlZFJlc291cmNlKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQxOwotICAgICAgICAgICAgdmFyIHNj
cmlwdDI7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsK
LSAgICAgICAgICAgIHZhciBtb2NrVUlTb3VyY2VDb2RlOwotICAgICAgICAgICAgdmFyIHJlc291
cmNlU2NyaXB0TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0TWFwcGluZygpOwotICAgICAg
ICAgICAgdmFyIHVybCA9ICJpbmRleC5odG1sIjsKLSAgICAgICAgICAgIHN0ZXAxKCk7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNo
ZWQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29y
a3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVGb3JSZXNvdXJjZUFkZGVk
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dv
cmtzcGFjZSh1cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50LCAiPHJlc291
cmNlIGNvbnRlbnQ+Iik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVp
U291cmNlQ29kZUZvclJlc291cmNlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIG1vY2tVSVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgc3Rl
cDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGlu
ZyBmaXJzdCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAg
c2NyaXB0MSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDEsIDEwLCBmYWxz
ZSwgIjxzY3JpcHQgc291cmNlIDE+Iik7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nLmFkZFNjcmlwdChzY3JpcHQxKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrVUlMb2NhdGlvbihtb2NrVUlTb3VyY2VDb2RlLCAxLCAyMCwgc2NyaXB0MS5yYXdMb2Nh
dGlvblRvVUlMb2NhdGlvbigxLCAyMCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tSYXdMb2NhdGlvbihzY3JpcHQxLCAxLCAwLCBtb2NrVUlTb3VyY2VDb2RlLnVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uKDEsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgNiwgMCwgbW9ja1VJU291cmNlQ29kZS51aUxvY2F0aW9u
VG9SYXdMb2NhdGlvbig2LCAwKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
VUlTb3VyY2VDb2RlKG1vY2tVSVNvdXJjZUNvZGUsIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2Vjb25kIHNjcmlwdCBmb3IgZmlu
aXNoZWQgcmVxdWVzdC4iKTsKLSAgICAgICAgICAgICAgICBzY3JpcHQyID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgNSwgNDUsIGZhbHNlLCAiPHNjcmlwdFxuc291cmNlXG4y
PiIpOwotICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2Ny
aXB0Mik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24obW9j
a1VJU291cmNlQ29kZSwgMSwgMjAsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMSwg
MjApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2Ny
aXB0MSwgMSwgMCwgbW9ja1VJU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAw
KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlw
dDIsIDYsIDAsIG1vY2tVSVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oNiwgMCkp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZShtb2NrVUlT
b3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfTsK
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0
cyBSZXNvdXJjZVNjcmlwdE1hcHBpbmcgY2xhc3MuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5k
ZXggZTViY2MzOGQ2ZjY3YjQ2NjkwZDdmOWQ2YzkzYTk0Mjc0OWFkMjliMi4uYTJmZDU5MTQxZjlh
NzAwNjczZTgzNDgzYjgwYjk2NGU4ZmYyNDc4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIAogICAgIGZ1bmN0aW9uIGNyZWF0ZVVJU291Y2VDb2RlKHVybCkKICAg
ICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3Jp
cHRTb3VyY2UodXJsLCBudWxsLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIG51
bGwsIGNvbnRlbnRQcm92aWRlciwgbnVsbCwgZmFsc2UpOwogICAgICAgICB1aVNvdXJjZUNvZGUu
cmVxdWVzdENvbnRlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICAgICAgewogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNvdXJjZSByZXF1ZXN0ZWQgZm9yICIgKyB1cmwp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>