<?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>189807</bug_id>
          
          <creation_ts>2018-09-20 16:25:07 -0700</creation_ts>
          <short_desc>Web Inspector: remove Visual Style CSS details sidebar panel</short_desc>
          <delta_ts>2018-09-20 19:06:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>189808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1461589</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-20 16:25:07 -0700</bug_when>
    <thetext>The Visual Style CSS details sidebar panel has been hidden behind an &quot;experimental&quot; setting for almost a year.  It&apos;s time that we remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461590</commentid>
    <comment_count>1</comment_count>
      <attachid>350277</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-20 16:27:06 -0700</bug_when>
    <thetext>Created attachment 350277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461593</commentid>
    <comment_count>2</comment_count>
      <attachid>350277</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-09-20 16:35:09 -0700</bug_when>
    <thetext>Comment on attachment 350277
Patch

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

rs=me

&gt; Source/WebInspectorUI/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

This should have the line from the bugzilla bug with explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461598</commentid>
    <comment_count>3</comment_count>
      <attachid>350280</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-09-20 16:46:02 -0700</bug_when>
    <thetext>Created attachment 350280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461656</commentid>
    <comment_count>4</comment_count>
      <attachid>350280</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-20 19:05:08 -0700</bug_when>
    <thetext>Comment on attachment 350280
Patch

Clearing flags on attachment: 350280

Committed r236298: &lt;https://trac.webkit.org/changeset/236298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461657</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-20 19:05:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461658</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-20 19:06:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/44664958&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350277</attachid>
            <date>2018-09-20 16:27:06 -0700</date>
            <delta_ts>2018-09-20 16:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189807-20180920162705.patch</filename>
            <type>text/plain</type>
            <size>401992</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJjODY3YmUxY2RjMDg3ZWVlOTU0MmE0MDY0YmJm
OTAwMDlkNDFjNzYuLmQ4MmJmMmQ5NmRiNzkzMjBhZjNkNzFhNDI4ZGJhNTRhZmUyMTlhMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE4LTA5LTIwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBy
ZW1vdmUgVmlzdWFsIFN0eWxlIENTUyBkZXRhaWxzIHNpZGViYXIgcGFuZWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTgwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9T
ZXR0aW5nLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuRWxlbWVudHNUYWJDb250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9TZXR0aW5nc1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuU2V0dGluZ3NUYWJD
b250ZW50Vmlldy5wcm90b3R5cGUuX2NyZWF0ZUV4cGVyaW1lbnRhbFNldHRpbmdzVmlldyk6CisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVQYXVzZWQu
c3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FuaW1hdGlvblBs
YXlTdGF0ZVJ1bm5pbmcuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1h
Z2VzL0NsZWFyQm90aC5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFn
ZXMvQ2xlYXJMZWZ0LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdl
cy9DbGVhclJpZ2h0LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdl
cy9GbG9hdExlZnQuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0Zsb2F0UmlnaHQuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0ZvbnRTdHlsZUl0YWxpYy5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9J
bWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0ltYWdlcy9MaXN0U3R5bGVQb3NpdGlvbkluc2lkZS5zdmc6IFJlbW92ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9JbWFnZXMvTGlzdFN0eWxlUG9zaXRpb25PdXRzaWRlLnN2ZzogUmVt
b3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3Zn
OiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3Rp
Znkuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGln
bkxlZnQuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRB
bGlnblJpZ2h0LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9U
ZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbk92ZXJsaW5lLnN2ZzogUmVtb3ZlZC4KKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmc6IFJl
bW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybUNhcGl0
YWxpemUuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRU
cmFuc2Zvcm1Mb3dlcmNhc2Uuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
SW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNhc2Uuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmc6IFJlbW92ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eUxpbmtlZC5zdmc6IFJl
bW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0
eVVubGlua2VkLnN2ZzogUmVtb3ZlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFzaWNJbnB1dC5qczog
UmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQ
aWNrZXIuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVDb2xvclBpY2tlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmNzczogUmVtb3ZlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRL
ZXl3b3JkRWRpdG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanM6IFJlbW92ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanM6
IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUZvbnRG
YW1pbHlMaXN0RWRpdG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuanM6IFJlbW92ZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRD
aGVja2JveC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlS2V5d29yZEljb25MaXN0LmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVOdW1iZXJJbnB1
dEJveC5jc3M6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUNvbWJpbmVyLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3M6IFJlbW92
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRp
dG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVQcm9wZXJ0eUVkaXRvckxpbmsuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvckxpbmsuanM6IFJlbW92ZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0Lmpz
OiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxh
dGl2ZU51bWJlclNsaWRlci5jc3M6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uY3NzOiBS
ZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3Rv
clNlY3Rpb24uanM6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93
LmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VGFiYmVkUHJvcGVydGllc1Jvdy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRl
ci5jc3M6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVVuaXRTbGlkZXIuanM6IFJlbW92ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL1Zpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLmpzOiBSZW1vdmVkLgorCiAy
MDE4LTA5LTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgRGFya01vZGUuY3NzIHJ1bGVzIGludG8gYXBwcm9wcmlh
dGUgQ1NTIGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAyMmMwZDFh
NTgyMGJjODg2YTM3MjM1ZTQ0OWE3YWQ1MjgyNTQ4MWNlLi41MDU2YzVhOGViOTQyMjFmYjQ1ZmFj
OTJkMmExMmUxMWRjMDZiZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAg
LTU3LDggKzU3LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siKGFzeW5jKSJdID0gIihhc3luYykiOwog
bG9jYWxpemVkU3RyaW5nc1siKGRpc2spIl0gPSAiKGRpc2spIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IihtYW55KSJdID0gIihtYW55KSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIobWVtb3J5KSJdID0gIiht
ZW1vcnkpIjsKLWxvY2FsaXplZFN0cmluZ3NbIihtb2RpZnkgdGhlIGJveGVzIGJlbG93IHRvIGFk
ZCBhIHZhbHVlKSJdID0gIihtb2RpZnkgdGhlIGJveGVzIGJlbG93IHRvIGFkZCBhIHZhbHVlKSI7
Ci1sb2NhbGl6ZWRTdHJpbmdzWyIobXVsdGlwbGUpIl0gPSAiKG11bHRpcGxlKSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyIocHJvZ3JhbSkiXSA9ICIocHJvZ3JhbSkiOwogbG9jYWxpemVkU3RyaW5nc1si
KHNlcnZpY2Ugd29ya2VyKSJdID0gIihzZXJ2aWNlIHdvcmtlcikiOwogbG9jYWxpemVkU3RyaW5n
c1siKHVuaW5pdGlhbGl6ZWQpIl0gPSAiKHVuaW5pdGlhbGl6ZWQpIjsKQEAgLTg2LDggKzg0LDYg
QEAgbG9jYWxpemVkU3RyaW5nc1siQWRkIHByb2JlIGV4cHJlc3Npb24iXSA9ICJBZGQgcHJvYmUg
ZXhwcmVzc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQgd2F0Y2ggZXhwcmVzc2lvbiJdID0g
IkFkZCB3YXRjaCBleHByZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZGl0aW9ucyJdID0g
IkFkZGl0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGRyZXNzIl0gPSAiQWRkcmVzcyI7Ci1s
b2NhbGl6ZWRTdHJpbmdzWyJBbGlnbiJdID0gIkFsaWduIjsKLWxvY2FsaXplZFN0cmluZ3NbIkFs
aWdubWVudCJdID0gIkFsaWdubWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwiXSA9ICJBbGwi
OwogbG9jYWxpemVkU3RyaW5nc1siQWxsIENoYW5nZXMiXSA9ICJBbGwgQ2hhbmdlcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbGwgRXhjZXB0aW9ucyJdID0gIkFsbCBFeGNlcHRpb25zIjsKQEAgLTk1
LDEzICs5MSwxMSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwgTGF5ZXJzIl0gPSAiQWxsIExheWVy
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwgUmVxdWVzdHMiXSA9ICJBbGwgUmVxdWVzdHMiOwog
bG9jYWxpemVkU3RyaW5nc1siQWxsIFJlc291cmNlcyJdID0gIkFsbCBSZXNvdXJjZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siQWxsIFN0b3JhZ2UiXSA9ICJBbGwgU3RvcmFnZSI7Ci1sb2NhbGl6ZWRT
dHJpbmdzWyJBbHRlcm5hdGVzIl0gPSAiQWx0ZXJuYXRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJB
biBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAiQW4gZXJy
b3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUg4oCcJXPigJ0gdGFibGUu
Il0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIOKAnCVz4oCdIHRhYmxl
LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJd
ID0gIkFuIHVuZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBv
Y2N1cnJlZC4iOwogbG9jYWxpemVkU3RyaW5nc1siQW5nbGUiXSA9ICJBbmdsZSI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJBbmltYXRpb24iXSA9ICJBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1si
QW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNl
bGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFu
aW1hdGlvbiBGcmFtZSAlZCBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJh
bWUgJWQgUmVxdWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7CkBAIC0x
MTksNyArMTEzLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siQXNzZXJ0aW9uIEZhaWxlZDogJXMiXSA9
ICJBc3NlcnRpb24gRmFpbGVkOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBc3NlcnRpb24gRmFp
bHVyZXMiXSA9ICJBc3NlcnRpb24gRmFpbHVyZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQXNzZXJ0
aW9uIHdpdGggbWVzc2FnZTogJXMiXSA9ICJBc3NlcnRpb24gd2l0aCBtZXNzYWdlOiAlcyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBc3NlcnRpdmUiXSA9ICJBc3NlcnRpdmUiOwotbG9jYWxpemVkU3Ry
aW5nc1siQXR0YWNoIl0gPSAiQXR0YWNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkF0dHJpYnV0ZSJd
ID0gIkF0dHJpYnV0ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBdHRyaWJ1dGUgTW9kaWZpZWQiXSA9
ICJBdHRyaWJ1dGUgTW9kaWZpZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQXR0cmlidXRlcyJdID0g
IkF0dHJpYnV0ZXMiOwpAQCAtMTI5LDIzICsxMjIsMTUgQEAgbG9jYWxpemVkU3RyaW5nc1siQXV0
b21hdGljYWxseSBjb250aW51ZSBhZnRlciBldmFsdWF0aW5nIl0gPSAiQXV0b21hdGljYWxseSBj
b24KIGxvY2FsaXplZFN0cmluZ3NbIkF2YWlsYWJsZSBTdHlsZSBTaGVldHMiXSA9ICJBdmFpbGFi
bGUgU3R5bGUgU2hlZXRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkF2ZXJhZ2UgVGltZSJdID0gIkF2
ZXJhZ2UgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYWNrICglcykiXSA9ICJCYWNrICglcyki
OwotbG9jYWxpemVkU3RyaW5nc1siQmFja2dyb3VuZCJdID0gIkJhY2tncm91bmQiOwogbG9jYWxp
emVkU3RyaW5nc1siQmFja3RyYWNlIl0gPSAiQmFja3RyYWNlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkJhc2ljIl0gPSAiQmFzaWMiOwotbG9jYWxpemVkU3RyaW5nc1siQmFzaXMiXSA9ICJCYXNpcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJCZWFjb24iXSA9ICJCZWFjb24iOwogbG9jYWxpemVkU3RyaW5n
c1siQmVhY29ucyJdID0gIkJlYWNvbnMiOwotbG9jYWxpemVkU3RyaW5nc1siQmV6aWVyIl0gPSAi
QmV6aWVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJpbmFyeSBGcmFtZSJdID0gIkJpbmFyeSBGcmFt
ZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJCbGVuZCJdID0gIkJsZW5kIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkJsb2NrIFZhcmlhYmxlcyJdID0gIkJsb2NrIFZhcmlhYmxlcyI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJCbHVyIl0gPSAiQmx1ciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb2R5OiJdID0gIkJvZHk6
IjsKLWxvY2FsaXplZFN0cmluZ3NbIkJvcmRlciJdID0gIkJvcmRlciI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJCb3R0b20iXSA9ICJCb3R0b20iOwogbG9jYWxpemVkU3RyaW5nc1siQm91bmRhcnkiXSA9
ICJCb3VuZGFyeSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb3ggTW9kZWwiXSA9ICJCb3ggTW9kZWwi
OwotbG9jYWxpemVkU3RyaW5nc1siQm94IFNoYWRvdyJdID0gIkJveCBTaGFkb3ciOwogbG9jYWxp
emVkU3RyaW5nc1siQnJlYWsgb24gZXZlbnRzIHdpdGggbmFtZToiXSA9ICJCcmVhayBvbiBldmVu
dHMgd2l0aCBuYW1lOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCcmVhayBvbiByZXF1ZXN0IHdpdGgg
VVJMOiJdID0gIkJyZWFrIG9uIHJlcXVlc3Qgd2l0aCBVUkw6IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkJyZWFrIG9u4oCmIl0gPSAiQnJlYWsgb27igKYiOwpAQCAtMTc2LDE0ICsxNjEsMTAgQEAgbG9j
YWxpemVkU3RyaW5nc1siQ2FudmFzICVzIl0gPSAiQ2FudmFzICVzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkNhbnZhcyBFbGVtZW50Il0gPSAiQ2FudmFzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5n
c1siQ2FudmFzOiJdID0gIkNhbnZhczoiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzZXMiXSA9
ICJDYW52YXNlcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJDYXAiXSA9ICJDYXAiOwotbG9jYWxpemVk
U3RyaW5nc1siQ2FwcyJdID0gIkNhcHMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FwdHVyZSBTY3Jl
ZW5zaG90Il0gPSAiQ2FwdHVyZSBTY3JlZW5zaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhcHR1
cmluZyJdID0gIkNhcHR1cmluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYXRjaCBWYXJpYWJsZXMi
XSA9ICJDYXRjaCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2F0ZWdvcmllcyJdID0g
IkNhdGVnb3JpZXMiOwotbG9jYWxpemVkU3RyaW5nc1siQ2VudGVyIFgiXSA9ICJDZW50ZXIgWCI7
Ci1sb2NhbGl6ZWRTdHJpbmdzWyJDZW50ZXIgWSJdID0gIkNlbnRlciBZIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNoYXJhY3RlciBEYXRhIl0gPSAiQ2hhcmFjdGVyIERhdGEiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ2hhcmdlIOKAmCVz4oCZIHRvIENhbGxlcnMiXSA9ICJDaGFyZ2Ug4oCYJXPigJkgdG8g
Q2FsbGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDaGVja2VkIl0gPSAiQ2hlY2tlZCI7CkBAIC0x
OTIsMjMgKzE3MywxOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDaGlsZCBMYXllcnMiXSA9ICJDaGls
ZCBMYXllcnMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2hpbGQgYWRkZWQgdG8gIl0gPSAiQ2hpbGQg
YWRkZWQgdG8gIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNoaWxkcmVuIl0gPSAiQ2hpbGRyZW4iOwog
bG9jYWxpemVkU3RyaW5nc1siQ2xhc3NlcyJdID0gIkNsYXNzZXMiOwotbG9jYWxpemVkU3RyaW5n
c1siQ2xlYXIiXSA9ICJDbGVhciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBMb2ciXSA9ICJD
bGVhciBMb2ciOwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgTmV0d29yayBJdGVtcyAoJXMpIl0g
PSAiQ2xlYXIgTmV0d29yayBJdGVtcyAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsZWFyIFRp
bWVsaW5lICglcykiXSA9ICJDbGVhciBUaW1lbGluZSAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkNsZWFyIGZpbHRlcnMiXSA9ICJDbGVhciBmaWx0ZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNs
ZWFyIGZvY3VzIl0gPSAiQ2xlYXIgZm9jdXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgbG9n
ICglcyBvciAlcykiXSA9ICJDbGVhciBsb2cgKCVzIG9yICVzKSI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJDbGVhciBtb2RpZmllZCBwcm9wZXJ0aWVzIl0gPSAiQ2xlYXIgbW9kaWZpZWQgcHJvcGVydGll
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBvYmplY3Qgc3RvcmUiXSA9ICJDbGVhciBvYmpl
Y3Qgc3RvcmUiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgc2FtcGxlcyJdID0gIkNsZWFyIHNh
bXBsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJD
bGVhciB3YXRjaCBleHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGljayBMaXN0ZW5l
ciJdID0gIkNsaWNrIExpc3RlbmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsaWNrIHRvIGNsb3Nl
IHRoaXMgdGFiIl0gPSAiQ2xpY2sgdG8gY2xvc2UgdGhpcyB0YWIiOwotbG9jYWxpemVkU3RyaW5n
c1siQ2xpY2sgdG8gbGluayBwcm9wZXJ0eSB2YWx1ZXMiXSA9ICJDbGljayB0byBsaW5rIHByb3Bl
cnR5IHZhbHVlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGljayB0byBzZWxlY3QgYSBjb2xvci4g
U2hpZnQtY2xpY2sgdG8gc3dpdGNoIGNvbG9yIGZvcm1hdHMuIl0gPSAiQ2xpY2sgdG8gc2VsZWN0
IGEgY29sb3IuIFNoaWZ0LWNsaWNrIHRvIHN3aXRjaCBjb2xvciBmb3JtYXRzLiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJDbGlja2FibGUiXSA9ICJDbGlja2FibGUiOwotbG9jYWxpemVkU3RyaW5nc1si
Q2xpcCJdID0gIkNsaXAiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xvc2UiXSA9ICJDbG9zZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDbG9zZSAlcyB0aW1lbGluZSB2aWV3Il0gPSAiQ2xvc2UgJXMgdGlt
ZWxpbmUgdmlldyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbG9zZSBUYWIiXSA9ICJDbG9zZSBUYWIi
OwpAQCAtMjIwLDEwICsxOTcsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDb2RlIl0gPSAiQ29kZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb2xsYXBzZSBBbGwiXSA9ICJDb2xsYXBzZSBBbGwiOwogbG9j
YWxpemVkU3RyaW5nc1siQ29sbGFwc2UgY29sdW1ucyJdID0gIkNvbGxhcHNlIGNvbHVtbnMiOwog
bG9jYWxpemVkU3RyaW5nc1siQ29sbGVjdCBnYXJiYWdlIl0gPSAiQ29sbGVjdCBnYXJiYWdlIjsK
LWxvY2FsaXplZFN0cmluZ3NbIkNvbG9yIl0gPSAiQ29sb3IiOwogbG9jYWxpemVkU3RyaW5nc1si
Q29tbWVudCJdID0gIkNvbW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tbWVudCBBbGwgUHJv
cGVydGllcyJdID0gIkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiOwotbG9jYWxpemVkU3RyaW5nc1si
Q29tbWVudCBvdXQgcnVsZSJdID0gIkNvbW1lbnQgb3V0IHJ1bGUiOwogbG9jYWxpemVkU3RyaW5n
c1siQ29tcGFyZSBzbmFwc2hvdHMiXSA9ICJDb21wYXJlIHNuYXBzaG90cyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDb21wYXJpc29uIG9mIHRvdGFsIG1lbW9yeSBzaXplIGF0IHRoZSBlbmQgb2YgdGhl
IHNlbGVjdGVkIHRpbWUgcmFuZ2UgdG8gdGhlIG1heGltdW0gbWVtb3J5IHNpemUgaW4gdGhpcyBy
ZWNvcmRpbmciXSA9ICJDb21wYXJpc29uIG9mIHRvdGFsIG1lbW9yeSBzaXplIGF0IHRoZSBlbmQg
b2YgdGhlIHNlbGVjdGVkIHRpbWUgcmFuZ2UgdG8gdGhlIG1heGltdW0gbWVtb3J5IHNpemUgaW4g
dGhpcyByZWNvcmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcG9zaXRlIl0gPSAiQ29tcG9z
aXRlIjsKQEAgLTI2OSwxNCArMjQ0LDEyIEBAIGxvY2FsaXplZFN0cmluZ3NbIkNvdW50Il0gPSAi
Q291bnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ3JlYXRlICVzIFJ1bGUiXSA9ICJDcmVhdGUgJXMg
UnVsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDcmVhdGUgYSBuZXcgdGFiIl0gPSAiQ3JlYXRlIGEg
bmV3IHRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDdXJyZW50Il0gPSAiQ3VycmVudCI7Ci1sb2Nh
bGl6ZWRTdHJpbmdzWyJDdXJzb3IiXSA9ICJDdXJzb3IiOwogbG9jYWxpemVkU3RyaW5nc1siQ3Vz
dG9tIl0gPSAiQ3VzdG9tIjsKIGxvY2FsaXplZFN0cmluZ3NbIkROUyJdID0gIkROUyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJET00gQnJlYWtwb2ludHMiXSA9ICJET00gQnJlYWtwb2ludHMiOwogbG9j
YWxpemVkU3RyaW5nc1siRE9NIENvbnRlbnQgTG9hZGVkIFx1MjAxNCAlcyJdID0gIkRPTSBDb250
ZW50IExvYWRlZCBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siRE9NIEV2ZW50Il0gPSAi
RE9NIEV2ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRhbXBpbmciXSA9ICJEYW1waW5nIjsKLWxv
Y2FsaXplZFN0cmluZ3NbIkRhc2ggQXJyYXkiXSA9ICJEYXNoIEFycmF5IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkRhdGEiXSA9ICJEYXRhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRhdGEgcmV0dXJuZWQg
ZnJvbSB0aGUgZGF0YWJhc2UgaXMgdG9vIGxhcmdlLiJdID0gIkRhdGEgcmV0dXJuZWQgZnJvbSB0
aGUgZGF0YWJhc2UgaXMgdG9vIGxhcmdlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEYXRhYmFzZSJd
ID0gIkRhdGFiYXNlIjsKQEAgLTI5MSw5ICsyNjQsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEZWJ1
Z2dlciBkaXNhYmxlZCBkdXJpbmcgVGltZWxpbmUgcmVjb3JkaW5nIl0gPSAiRGVidWdnZXIgZGlz
YQogbG9jYWxpemVkU3RyaW5nc1siRGVidWdnZXI6Il0gPSAiRGVidWdnZXI6IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkRlYnVncyJdID0gIkRlYnVncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZWNvZGVk
Il0gPSAiRGVjb2RlZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJEZWNvcmF0aW9uIl0gPSAiRGVjb3Jh
dGlvbiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJEZWZhdWx0Il0gPSAiRGVmYXVsdCI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJEZWxheSJdID0gIkRlbGF5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSJd
ID0gIkRlbGV0ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZWxldGUgQnJlYWtwb2ludCJdID0gIkRl
bGV0ZSBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBCcmVha3BvaW50cyJd
ID0gIkRlbGV0ZSBCcmVha3BvaW50cyI7CkBAIC0zMDIsNyArMjcyLDYgQEAgbG9jYWxpemVkU3Ry
aW5nc1siRGV0YWNoZWQiXSA9ICJEZXRhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZXRhaWxz
Il0gPSAiRGV0YWlscyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaWQgeW91IG1lYW4g4oCcJXPigJ0/
XG5DbGljayB0byByZXBsYWNlLiJdID0gIkRpZCB5b3UgbWVhbiDigJwlc+KAnT9cbkNsaWNrIHRv
IHJlcGxhY2UuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpbWVuc2lvbnMiXSA9ICJEaW1lbnNpb25z
IjsKLWxvY2FsaXplZFN0cmluZ3NbIkRpcmVjdGlvbiJdID0gIkRpcmVjdGlvbiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJEaXNhYmxlIEJyZWFrcG9pbnQiOwog
bG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50cyJdID0gIkRpc2FibGUgQnJlYWtw
b2ludHMiOwogbG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBFdmVudCBMaXN0ZW5lciJdID0gIkRp
c2FibGUgRXZlbnQgTGlzdGVuZXIiOwpAQCAtMzExLDcgKzI4MCw2IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIkRpc2FibGUgYWxsIGJyZWFrcG9pbnRzICglcykiXSA9ICJEaXNhYmxlIGFsbCBicmVha3Bv
aW50cyAoJXMpCiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIHBhaW50IGZsYXNoaW5nIl0gPSAi
RGlzYWJsZSBwYWludCBmbGFzaGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlZCJdID0g
IkRpc2FibGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2sgQ2FjaGUiXSA9ICJEaXNrIENhY2hl
IjsKLWxvY2FsaXplZFN0cmluZ3NbIkRpc3BsYXkiXSA9ICJEaXNwbGF5IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkRpc3BsYXllZCBDb2x1bW5zIl0gPSAiRGlzcGxheWVkIENvbHVtbnMiOwogbG9jYWxp
emVkU3RyaW5nc1siRG8gbm90IGNsZWFyIG5ldHdvcmsgaXRlbXMgb24gbmV3IHBhZ2UgbG9hZHMi
XSA9ICJEbyBub3QgY2xlYXIgbmV0d29yayBpdGVtcyBvbiBuZXcgcGFnZSBsb2FkcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJEbyBub3QgY2xlYXIgdGhlIGNvbnNvbGUgb24gbmV3IHBhZ2UgbG9hZHMi
XSA9ICJEbyBub3QgY2xlYXIgdGhlIGNvbnNvbGUgb24gbmV3IHBhZ2UgbG9hZHMiOwpAQCAtMzQw
LDcgKzMwOCw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgY3VzdG9tIGdyYWRpZW50Il0gPSAi
RWRpdCBjdXN0b20gZ3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCDigJwlc+KAnSJd
ID0gIkVkaXQg4oCcJXPigJ0iOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCDigJxjdWJpYy1iZXpp
ZXLigJwgZnVuY3Rpb24iXSA9ICJFZGl0IOKAnGN1YmljLWJlemllcuKAnCBmdW5jdGlvbiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJFZGl0IOKAnHNwcmluZ+KAnCBmdW5jdGlvbiJdID0gIkVkaXQg4oCc
c3ByaW5n4oCcIGZ1bmN0aW9uIjsKLWxvY2FsaXplZFN0cmluZ3NbIkVmZmVjdHMiXSA9ICJFZmZl
Y3RzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQiXSA9ICJFbGVtZW50IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkVsZW1lbnQgY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiXSA9ICJFbGVt
ZW50IGNsaXBzIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVs
ZW1lbnQgaGFzIENTUyBibGVuZGluZyBhcHBsaWVkIGFuZCBjb21wb3NpdGVkIGRlc2NlbmRhbnRz
Il0gPSAiRWxlbWVudCBoYXMgQ1NTIGJsZW5kaW5nIGFwcGxpZWQgYW5kIGNvbXBvc2l0ZWQgZGVz
Y2VuZGFudHMiOwpAQCAtMzg1LDE0ICszNTIsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUg
cGFpbnQgZmxhc2hpbmciXSA9ICJFbmFibGUgcGFpbnQgZmxhc2hpbmciOwogbG9jYWxpemVkU3Ry
aW5nc1siRW5hYmxlZCJdID0gIkVuYWJsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RlZCJd
ID0gIkVuY29kZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RpbmciXSA9ICJFbmNvZGluZyI7
Ci1sb2NhbGl6ZWRTdHJpbmdzWyJFbnRlciBUYWciXSA9ICJFbnRlciBUYWciOwotbG9jYWxpemVk
U3RyaW5nc1siRW50ZXIgVmFsdWUiXSA9ICJFbnRlciBWYWx1ZSI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJFbnRlciBhIEdyYWRpZW50Il0gPSAiRW50ZXIgYSBHcmFkaWVudCI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJFbnRlciBhIFVSTCJdID0gIkVudGVyIGEgVVJMIjsKLWxvY2FsaXplZFN0cmluZ3NbIkVu
dGVyIGFuIGFycmF5IHZhbHVlIl0gPSAiRW50ZXIgYW4gYXJyYXkgdmFsdWUiOwotbG9jYWxpemVk
U3RyaW5nc1siRW50ZXIgcHJvcGVydHkgbmFtZSJdID0gIkVudGVyIHByb3BlcnR5IG5hbWUiOwot
bG9jYWxpemVkU3RyaW5nc1siRW50ZXIgdGhlIG5hbWUgb2YgYSBLZXlmcmFtZSJdID0gIkVudGVy
IHRoZSBuYW1lIG9mIGEgS2V5ZnJhbWUiOwotbG9jYWxpemVkU3RyaW5nc1siRW50ZXIgdmFsdWUi
XSA9ICJFbnRlciB2YWx1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0g
PSAiRW50aXJlIFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9y
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKQEAgLTQyMSwyMSAr
MzgwLDE0IEBAIGxvY2FsaXplZFN0cmluZ3NbIkV4dHJhIFNjcmlwdHMiXSA9ICJFeHRyYSBTY3Jp
cHRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZhZGUgdW5leGVjdXRlZCBjb2RlIl0gPSAiRmFkZSB1
bmV4ZWN1dGVkIGNvZGUiOwogbG9jYWxpemVkU3RyaW5nc1siRmFpbGVkIHRvIHVwZ3JhZGUiXSA9
ICJGYWlsZWQgdG8gdXBncmFkZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGYWlsdXJlIHN0YXR1cyBj
b2RlIl0gPSAiRmFpbHVyZSBzdGF0dXMgY29kZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJGYW1pbHki
XSA9ICJGYW1pbHkiOwotbG9jYWxpemVkU3RyaW5nc1siRmVhdHVyZXMiXSA9ICJGZWF0dXJlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJGZXRjaCJdID0gIkZldGNoIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkZldGNoZXMiXSA9ICJGZXRjaGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGUgb3IgUmVzb3Vy
Y2UiXSA9ICJGaWxlIG9yIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGVuYW1lIl0g
PSAiRmlsZW5hbWUiOwotbG9jYWxpemVkU3RyaW5nc1siRmlsbCJdID0gIkZpbGwiOwotbG9jYWxp
emVkU3RyaW5nc1siRmlsbCBNb2RlIl0gPSAiRmlsbCBNb2RlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkZpbHRlciJdID0gIkZpbHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXIgRnVsbCBVUkwi
XSA9ICJGaWx0ZXIgRnVsbCBVUkwiOwogbG9jYWxpemVkU3RyaW5nc1siRmluZCBOZXh0ICglcyki
XSA9ICJGaW5kIE5leHQgKCVzKSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaW5kIFByZXZpb3VzICgl
cykiXSA9ICJGaW5kIFByZXZpb3VzICglcykiOwotbG9jYWxpemVkU3RyaW5nc1siRmxleGJveCJd
ID0gIkZsZXhib3giOwotbG9jYWxpemVkU3RyaW5nc1siRmxvYXQiXSA9ICJGbG9hdCI7Ci1sb2Nh
bGl6ZWRTdHJpbmdzWyJGbG9hdCBhbmQgQ2xlYXIiXSA9ICJGbG9hdCBhbmQgQ2xlYXIiOwogbG9j
YWxpemVkU3RyaW5nc1siRmxvd3MiXSA9ICJGbG93cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb2N1
cyAlcyBSdWxlIl0gPSAiRm9jdXMgJXMgUnVsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb2N1cyBv
biBTdWJ0cmVlIl0gPSAiRm9jdXMgb24gU3VidHJlZSI7CkBAIC00NzYsNyArNDI4LDYgQEAgbG9j
YWxpemVkU3RyaW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91
cCBieSBFdmVudCJdID0gIkdyb3VwIGJ5IEV2ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3Vw
IGJ5IE5vZGUiXSA9ICJHcm91cCBieSBOb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwaW5n
IE1ldGhvZCJdID0gIkdyb3VwaW5nIE1ldGhvZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJHcm93Il0g
PSAiR3JvdyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJIQVIgRXhwb3J0ICglcykiXSA9ICJIQVIgRXhw
b3J0ICglcykiOwogbG9jYWxpemVkU3RyaW5nc1siSFRNTCJdID0gIkhUTUwiOwogbG9jYWxpemVk
U3RyaW5nc1siSFRNTCBBdHRyaWJ1dGVzIl0gPSAiSFRNTCBBdHRyaWJ1dGVzIjsKQEAgLTQ5OSw3
ICs0NTAsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJIaWRlIHR5cGUgaW5mb3JtYXRpb24iXSA9ICJI
aWRlIHR5cGUgaW5mb3JtYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siSGllcmFyY2h5IExldmVs
Il0gPSAiSGllcmFyY2h5IExldmVsIjsKIGxvY2FsaXplZFN0cmluZ3NbIkhpZ2giXSA9ICJIaWdo
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkhpZ2hlc3Q6ICVzIl0gPSAiSGlnaGVzdDogJXMiOwotbG9j
YWxpemVkU3RyaW5nc1siSG9yaXpvbnRhbCJdID0gIkhvcml6b250YWwiOwogbG9jYWxpemVkU3Ry
aW5nc1siSG9zdCJdID0gIkhvc3QiOwogbG9jYWxpemVkU3RyaW5nc1siSVAgQWRkcmVzcyJdID0g
IklQIEFkZHJlc3MiOwogbG9jYWxpemVkU3RyaW5nc1siSWRlbnRpdHkiXSA9ICJJZGVudGl0eSI7
CkBAIC01MTUsNyArNDY1LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydCByZWNvcmRpbmcgZnJvbSBmaWxlIl0gPSAiSW1w
b3J0IHJlY29yZGluZyBmcm9tIGZpbGUiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgUmVj
b3JkaW5ncyJdID0gIkltcG9ydGVkIFJlY29yZGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siSW5j
b21wbGV0ZSJdID0gIkluY29tcGxldGUiOwotbG9jYWxpemVkU3RyaW5nc1siSW5kZW50Il0gPSAi
SW5kZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkluZGVudCB3aWR0aDoiXSA9ICJJbmRlbnQgd2lk
dGg6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkluZGV4Il0gPSAiSW5kZXgiOwogbG9jYWxpemVkU3Ry
aW5nc1siSW5kZXggS2V5IFx1MjAxNCAlcyJdID0gIkluZGV4IEtleSBcdTIwMTQgJXMiOwpAQCAt
NTI0LDI2ICs0NzMsMjIgQEAgbG9jYWxpemVkU3RyaW5nc1siSW5mbzogIl0gPSAiSW5mbzogIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkluZm9zIl0gPSAiSW5mb3MiOwogbG9jYWxpemVkU3RyaW5nc1si
SW5oZXJpdGVkIEZyb20iXSA9ICJJbmhlcml0ZWQgRnJvbSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJ
bmhlcml0ZWQgRnJvbTogIl0gPSAiSW5oZXJpdGVkIEZyb206ICI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJJbmhlcml0ZWQgZnJvbSAlcyJdID0gIkluaGVyaXRlZCBmcm9tICVzIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkluaXRpYWwgU3RhdGUiXSA9ICJJbml0aWFsIFN0YXRlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkluaXRpYWwgVmVsb2NpdHkiXSA9ICJJbml0aWFsIFZlbG9jaXR5IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkluaXRpYXRlZCJdID0gIkluaXRpYXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbml0
aWF0b3IiXSA9ICJJbml0aWF0b3IiOwogbG9jYWxpemVkU3RyaW5nc1siSW5wdXQ6ICJdID0gIklu
cHV0OiAiOwotbG9jYWxpemVkU3RyaW5nc1siSW5zZXQiXSA9ICJJbnNldCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJJbnNwZWN0b3IgU3R5bGUgU2hlZXQiXSA9ICJJbnNwZWN0b3IgU3R5bGUgU2hlZXQi
OwogbG9jYWxpemVkU3RyaW5nc1siSW5zdGFuY2VzIl0gPSAiSW5zdGFuY2VzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkludmFsaWQiXSA9ICJJbnZhbGlkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkludmFs
aWQgY2hhcmFjdGVycyJdID0gIkludmFsaWQgY2hhcmFjdGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJJbnZlcnRlZCJdID0gIkludmVydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkludm9rZSBnZXR0
ZXIiXSA9ICJJbnZva2UgZ2V0dGVyIjsKLWxvY2FsaXplZFN0cmluZ3NbIkl0ZXJhdGlvbnMiXSA9
ICJJdGVyYXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkpTT04iXSA9ICJKU09OIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkphdmFTY3JpcHQiXSA9ICJKYXZhU2NyaXB0IjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkphdmFTY3JpcHQgJiBFdmVudHMiXSA9ICJKYXZhU2NyaXB0ICYgRXZlbnRzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkphdmFTY3JpcHQgQWxsb2NhdGlvbnMiXSA9ICJKYXZhU2NyaXB0IEFsbG9j
YXRpb25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3JpcHQgQ29udGV4dCJdID0gIkphdmFT
Y3JpcHQgQ29udGV4dCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJKb2luIl0gPSAiSm9pbiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJKdW1wIHRvIERlZmluaXRpb24iXSA9ICJKdW1wIHRvIERlZmluaXRpb24i
OwogbG9jYWxpemVkU3RyaW5nc1siS2V5Il0gPSAiS2V5IjsKIGxvY2FsaXplZFN0cmluZ3NbIktl
eSBQYXRoIl0gPSAiS2V5IFBhdGgiOwpAQCAtNTU2LDE4ICs1MDEsMTIgQEAgbG9jYWxpemVkU3Ry
aW5nc1siTGF5ZXJzOiJdID0gIkxheWVyczoiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5b3V0Il0g
PSAiTGF5b3V0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxheW91dCAmIFJlbmRlcmluZyJdID0gIkxh
eW91dCAmIFJlbmRlcmluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMYXlvdXQgSW52YWxpZGF0ZWQi
XSA9ICJMYXlvdXQgSW52YWxpZGF0ZWQiOwotbG9jYWxpemVkU3RyaW5nc1siTGVmdCJdID0gIkxl
ZnQiOwogbG9jYWxpemVkU3RyaW5nc1siTGVnYWN5IFN0eWxlIEVkaXRvciJdID0gIkxlZ2FjeSBT
dHlsZSBFZGl0b3IiOwotbG9jYWxpemVkU3RyaW5nc1siTGVnYWN5IFZpc3VhbCBTdHlsZXMgUGFu
ZWwiXSA9ICJMZWdhY3kgVmlzdWFsIFN0eWxlcyBQYW5lbCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJM
ZXR0ZXIiXSA9ICJMZXR0ZXIiOwotbG9jYWxpemVkU3RyaW5nc1siTGlnYXR1cmVzIl0gPSAiTGln
YXR1cmVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxpbmUgJWQiXSA9ICJMaW5lICVkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkxpbmUgJWQ6JWQiXSA9ICJMaW5lICVkOiVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkxpbmUgTnVtYmVyIl0gPSAiTGluZSBOdW1iZXIiOwogbG9jYWxpemVkU3RyaW5nc1siTGlu
ZSB3cmFwcGluZzoiXSA9ICJMaW5lIHdyYXBwaW5nOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMaW5l
YXIgR3JhZGllbnQiXSA9ICJMaW5lYXIgR3JhZGllbnQiOwotbG9jYWxpemVkU3RyaW5nc1siTGlu
ayBwcm9wZXJ0eSB2YWx1ZXMiXSA9ICJMaW5rIHByb3BlcnR5IHZhbHVlcyI7Ci1sb2NhbGl6ZWRT
dHJpbmdzWyJMaXN0IFN0eWxlcyJdID0gIkxpc3QgU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkxpdmUiXSA9ICJMaXZlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxpdmUgU2l6ZSJdID0gIkxpdmUg
U2l6ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMb2FkIFx1MjAxNCAlcyJdID0gIkxvYWQgXHUyMDE0
ICVzIjsKQEAgLTU5NCwxMCArNTMzLDggQEAgbG9jYWxpemVkU3RyaW5nc1siTUlNRSBUeXBlIl0g
PSAiTUlNRSBUeXBlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk1JTUUgVHlwZToiXSA9ICJNSU1FIFR5
cGU6IjsKIGxvY2FsaXplZFN0cmluZ3NbIk1haW4iXSA9ICJNYWluIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk1hbmlmZXN0IFVSTCJdID0gIk1hbmlmZXN0IFVSTCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJN
YXJnaW4iXSA9ICJNYXJnaW4iOwogbG9jYWxpemVkU3RyaW5nc1siTWFzcyJdID0gIk1hc3MiOwog
bG9jYWxpemVkU3RyaW5nc1siTWF0Y2hpbmciXSA9ICJNYXRjaGluZyI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJNYXgiXSA9ICJNYXgiOwogbG9jYWxpemVkU3RyaW5nc1siTWF4IENvbXBhcmlzb24iXSA9
ICJNYXggQ29tcGFyaXNvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNYXhpbXVtIl0gPSAiTWF4aW11
bSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNYXhpbXVtIFNpemU6ICVzIl0gPSAiTWF4aW11bSBTaXpl
OiAlcyI7CkBAIC02MTMsOSArNTUwLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siTWVtb3J5OiAlcyJd
ID0gIk1lbW9yeTogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTWVzc2FnZSJdID0gIk1lc3NhZ2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siTWV0aG9kIl0gPSAiTWV0aG9kIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk1pY3JvdGFzayBEaXNwYXRjaGVkIl0gPSAiTWljcm90YXNrIERpc3BhdGNoZWQiOwotbG9j
YWxpemVkU3RyaW5nc1siTWluIl0gPSAiTWluIjsKLWxvY2FsaXplZFN0cmluZ3NbIk1pc3Npbmcg
RGVwZW5kZW5jaWVzOiVzIl0gPSAiTWlzc2luZyBEZXBlbmRlbmNpZXM6JXMiOwotbG9jYWxpemVk
U3RyaW5nc1siTWl0ZXIiXSA9ICJNaXRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNaXhlZCJdID0g
Ik1peGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk1vZHVsZSBDb2RlIl0gPSAiTW9kdWxlIENvZGUi
OwogbG9jYWxpemVkU3RyaW5nc1siTXVsdGktRW50cnkiXSA9ICJNdWx0aS1FbnRyeSI7CkBAIC02
NjIsNDAgKzU5NiwyOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlIFJlbW92ZWQiXSA9ICJOb2Rl
IFJlbW92ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siTm9kZXMiXSA9ICJOb2RlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJOb25lIl0gPSAiTm9uZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb3QgZm91bmQi
XSA9ICJOb3QgZm91bmQiOwotbG9jYWxpemVkU3RyaW5nc1siTnVtYmVyIl0gPSAiTnVtYmVyIjsK
LWxvY2FsaXplZFN0cmluZ3NbIk51bWVyaWMiXSA9ICJOdW1lcmljIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIk9iamVjdCBHcmFwaCJdID0gIk9iamVjdCBHcmFwaCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJP
YmplY3QgU3RvcmUiXSA9ICJPYmplY3QgU3RvcmUiOwogbG9jYWxpemVkU3RyaW5nc1siT2ZmIl0g
PSAiT2ZmIjsKLWxvY2FsaXplZFN0cmluZ3NbIk9mZnNldCJdID0gIk9mZnNldCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJPbmNlIl0gPSAiT25jZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPbmxpbmUiXSA9
ICJPbmxpbmUiOwogbG9jYWxpemVkU3RyaW5nc1siT25seSBzaG93IHJlc291cmNlcyB3aXRoIGlz
c3VlcyJdID0gIk9ubHkgc2hvdyByZXNvdXJjZXMgd2l0aCBpc3N1ZXMiOwogbG9jYWxpemVkU3Ry
aW5nc1siT25seSBzaG93IHZpc3VhbCBhY3Rpb25zIl0gPSAiT25seSBzaG93IHZpc3VhbCBhY3Rp
b25zIjsKLWxvY2FsaXplZFN0cmluZ3NbIk9wYWNpdHkiXSA9ICJPcGFjaXR5IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIk9wZW4iXSA9ICJPcGVuIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9wZW4gaW4gTmV3
IFRhYiJdID0gIk9wZW4gaW4gTmV3IFRhYiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJPcHRpb24tY2xp
Y2sgdG8gc2hvdyBhbGwgdW5pdHMiXSA9ICJPcHRpb24tY2xpY2sgdG8gc2hvdyBhbGwgdW5pdHMi
OwotbG9jYWxpemVkU3RyaW5nc1siT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHZhbHVlcyJdID0g
Ik9wdGlvbi1jbGljayB0byBzaG93IGFsbCB2YWx1ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siT3B0
aW9uLWNsaWNrIHRvIHNob3cgc291cmNlIl0gPSAiT3B0aW9uLWNsaWNrIHRvIHNob3cgc291cmNl
IjsKIGxvY2FsaXplZFN0cmluZ3NbIk9wdGlvbnMiXSA9ICJPcHRpb25zIjsKLWxvY2FsaXplZFN0
cmluZ3NbIk9yZGVyIl0gPSAiT3JkZXIiOwotbG9jYWxpemVkU3RyaW5nc1siT3JpZ2luIl0gPSAi
T3JpZ2luIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9yaWdpbmFsIl0gPSAiT3JpZ2luYWwiOwogbG9j
YWxpemVkU3RyaW5nc1siT3JpZ2luYWwgZm9ybWF0dGluZyJdID0gIk9yaWdpbmFsIGZvcm1hdHRp
bmciOwogbG9jYWxpemVkU3RyaW5nc1siT3JpZ2luYWxseSAlcyJdID0gIk9yaWdpbmFsbHkgJXMi
OwogbG9jYWxpemVkU3RyaW5nc1siT3RoZXIiXSA9ICJPdGhlciI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJPdGhlciBJc3N1ZSJdID0gIk90aGVyIElzc3VlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk91dGdv
aW5nIG1lc3NhZ2UiXSA9ICJPdXRnb2luZyBtZXNzYWdlIjsKLWxvY2FsaXplZFN0cmluZ3NbIk91
dGxpbmUiXSA9ICJPdXRsaW5lIjsKIGxvY2FsaXplZFN0cmluZ3NbIk91dHB1dDogIl0gPSAiT3V0
cHV0OiAiOwotbG9jYWxpemVkU3RyaW5nc1siT3V0c2V0Il0gPSAiT3V0c2V0IjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIk92ZXIgMSBtcyJdID0gIk92ZXIgMSBtcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJP
dmVyIDE1IG1zIl0gPSAiT3ZlciAxNSBtcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJPdmVyZmxvdyJd
ID0gIk92ZXJmbG93IjsKIGxvY2FsaXplZFN0cmluZ3NbIk92ZXJ2aWV3Il0gPSAiT3ZlcnZpZXci
OwogbG9jYWxpemVkU3RyaW5nc1siT3ducyJdID0gIk93bnMiOwotbG9jYWxpemVkU3RyaW5nc1si
UGFkZGluZyJdID0gIlBhZGRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siUGFnZSJdID0gIlBhZ2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siUGFnZSBJc3N1ZSJdID0gIlBhZ2UgSXNzdWUiOwogbG9jYWxp
emVkU3RyaW5nc1siUGFnZSBuYXZpZ2F0ZWQgYXQgJXMiXSA9ICJQYWdlIG5hdmlnYXRlZCBhdCAl
cyI7CkBAIC03MTYsOSArNjM4LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUGxheSBTb3VuZCJdID0g
IlBsYXkgU291bmQiOwogbG9jYWxpemVkU3RyaW5nc1siUG9saXRlIl0gPSAiUG9saXRlIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlBvbmcgRnJhbWUiXSA9ICJQb25nIEZyYW1lIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlBvcnQiXSA9ICJQb3J0IjsKLWxvY2FsaXplZFN0cmluZ3NbIlBvc2l0aW9uIl0gPSAi
UG9zaXRpb24iOwotbG9jYWxpemVkU3RyaW5nc1siUG9zaXRpb24gWCJdID0gIlBvc2l0aW9uIFgi
OwotbG9jYWxpemVkU3RyaW5nc1siUG9zaXRpb24gWSJdID0gIlBvc2l0aW9uIFkiOwogbG9jYWxp
emVkU3RyaW5nc1siUHJlZmVyIGluZGVudCB1c2luZzoiXSA9ICJQcmVmZXIgaW5kZW50IHVzaW5n
OiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcmVzZXJ2ZSBMb2ciXSA9ICJQcmVzZXJ2ZSBMb2ciOwog
bG9jYWxpemVkU3RyaW5nc1siUHJlc3MgJXMgdG8gbG9hZCBhIHJlY29yZGluZyBmcm9tIGZpbGUu
Il0gPSAiUHJlc3MgJXMgdG8gbG9hZCBhIHJlY29yZGluZyBmcm9tIGZpbGUuIjsKQEAgLTczNSw3
ICs2NTQsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9iZXMiXSA9ICJQcm9iZXMiOwogbG9jYWxp
emVkU3RyaW5nc1siUHJvY2Vzc2luZyBJbnN0cnVjdGlvbiJdID0gIlByb2Nlc3NpbmcgSW5zdHJ1
Y3Rpb24iOwogbG9jYWxpemVkU3RyaW5nc1siUHJvZ3JhbSAlZCJdID0gIlByb2dyYW0gJWQiOwog
bG9jYWxpemVkU3RyaW5nc1siUHJvcGVydGllcyJdID0gIlByb3BlcnRpZXMiOwotbG9jYWxpemVk
U3RyaW5nc1siUHJvcGVydHkiXSA9ICJQcm9wZXJ0eSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm90
b2NvbCJdID0gIlByb3RvY29sIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBzZXVkbyBFbGVtZW50Il0g
PSAiUHNldWRvIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUXVlcnkgUGFyYW1ldGVycyJd
ID0gIlF1ZXJ5IFBhcmFtZXRlcnMiOwpAQCAtNzQ0LDkgKzY2Miw2IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIlF1ZXJ5IFN0cmluZyBQYXJhbWV0ZXJzIl0gPSAiUXVlcnkgU3RyaW5nIFBhcmFtZXRlcnMi
OwogbG9jYWxpemVkU3RyaW5nc1siUXVlcnkgcmV0dXJuZWQgbm8gcmVzdWx0cy4iXSA9ICJRdWVy
eSByZXR1cm5lZCBubyByZXN1bHRzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJRdWV1ZWQiXSA9ICJR
dWV1ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siUmFkaWFsIEdyYWRpZW50Il0gPSAiUmFkaWFsIEdy
YWRpZW50IjsKLWxvY2FsaXplZFN0cmluZ3NbIlJhZGl1cyJdID0gIlJhZGl1cyI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJSYWRpdXMgWCJdID0gIlJhZGl1cyBYIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJh
ZGl1cyBZIl0gPSAiUmFkaXVzIFkiOwogbG9jYWxpemVkU3RyaW5nc1siUmFuZ2UgSXNzdWUiXSA9
ICJSYW5nZSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWFkb25seSJdID0gIlJlYWRvbmx5
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlYXNvbnMgZm9yIGNvbXBvc2l0aW5nIl0gPSAiUmVhc29u
cyBmb3IgY29tcG9zaXRpbmciOwpAQCAtNzY3LDEzICs2ODIsMTAgQEAgbG9jYWxpemVkU3RyaW5n
c1siUmVsb2FkIFdlYiBJbnNwZWN0b3IiXSA9ICJSZWxvYWQgV2ViIEluc3BlY3RvciI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZWxvYWQgcGFnZSAoJXMpXG5SZWxvYWQgcGFnZSBpZ25vcmluZyBjYWNo
ZSAoJXMpIl0gPSAiUmVsb2FkIHBhZ2UgKCVzKVxuUmVsb2FkIHBhZ2UgaWdub3JpbmcgY2FjaGUg
KCVzKSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmFscyJdID0gIlJlbW92YWxzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9uIl0gPSAiUmVtb3ZlIFdhdGNoIEV4
cHJlc3Npb24iOwotbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIGxpbmsiXSA9ICJSZW1vdmUgbGlu
ayI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwot
bG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIHNlbGVjdGVkIGl0ZW0iXSA9ICJSZW1vdmUgc2VsZWN0
ZWQgaXRlbSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlv
biJdID0gIlJlbW92ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlbW92ZWQgZGVzY2VuZGFudCAiXSA9ICJSZW1vdmVkIGRlc2NlbmRhbnQgIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKLWxvY2Fs
aXplZFN0cmluZ3NbIlJlcGVhdCJdID0gIlJlcGVhdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXBl
YXRpbmcgTGluZWFyIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5nIExpbmVhciBHcmFkaWVudCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5n
IFJhZGlhbCBHcmFkaWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXF1ZXN0Il0gPSAiUmVxdWVz
dCI7CkBAIC03ODMsNyArNjk1LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVxdWVzdCBEYXRhIl0g
PSAiUmVxdWVzdCBEYXRhIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcXVlc3QgSGVhZGVycyJdID0g
IlJlcXVlc3QgSGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXF1ZXN0aW5nOiAlcyJdID0g
IlJlcXVlc3Rpbmc6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcXVpcmVkIl0gPSAiUmVxdWly
ZWQiOwotbG9jYWxpemVkU3RyaW5nc1siUmVzZXQiXSA9ICJSZXNldCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZXNvdXJjZSJdID0gIlJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlc291cmNl
IFNpemUiXSA9ICJSZXNvdXJjZSBTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlc291cmNlIFR5
cGUiXSA9ICJSZXNvdXJjZSBUeXBlIjsKQEAgLTgxNCw5ICs3MjUsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJSZXZlYWwgaW4gTmV0d29yayBUYWIiXSA9ICJSZXZlYWwgaW4gTmV0d29yayBUYWIiOwog
bG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE9yaWdpbmFsIFJlc291cmNlIl0gPSAiUmV2ZWFs
IGluIE9yaWdpbmFsIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBSZXNv
dXJjZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFJlc291cmNlcyBUYWIiOwogbG9jYWxpemVkU3RyaW5n
c1siUmV2ZWFsIGluIFNvdXJjZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFNvdXJjZXMgVGFiIjsKLWxv
Y2FsaXplZFN0cmluZ3NbIlJpZ2h0Il0gPSAiUmlnaHQiOwogbG9jYWxpemVkU3RyaW5nc1siUm9s
ZSJdID0gIlJvbGUiOwotbG9jYWxpemVkU3RyaW5nc1siUnVsZSJdID0gIlJ1bGUiOwogbG9jYWxp
emVkU3RyaW5nc1siU2FtZS1TaXRlIl0gPSAiU2FtZS1TaXRlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlNhbXBsZXMiXSA9ICJTYW1wbGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNhdmUgRmlsZSJdID0g
IlNhdmUgRmlsZSI7CkBAIC04MzgsNyArNzQ3LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2VhcmNo
IFJlc291cmNlIENvbnRlbnQiXSA9ICJTZWFyY2ggUmVzb3VyY2UgQ29udGVudCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJTZWN1cmUiXSA9ICJTZWN1cmUiOwogbG9jYWxpemVkU3RyaW5nc1siU2VjdXJp
dHkgSXNzdWUiXSA9ICJTZWN1cml0eSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWN1cml0
eSBPcmlnaW4iXSA9ICJTZWN1cml0eSBPcmlnaW4iOwotbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0
ICVzIFJ1bGUiXSA9ICJTZWxlY3QgJXMgUnVsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3Qg
YmFzZWxpbmUgc25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiOwogbG9jYWxp
emVkU3RyaW5nc1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxlY3QgY29tcGFy
aXNvbiBzbmFwc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0gIlNlbGVjdGVk
IjsKQEAgLTg1Miw3ICs3NjAsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBTeW1ib2wi
XSA9ICJTZWxlY3RlZCBTeW1ib2wiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgVmFsdWUi
XSA9ICJTZWxlY3RlZCBWYWx1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBXZWJTb2Nr
ZXQiXSA9ICJTZWxlY3RlZCBXZWJTb2NrZXQiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0b3Ig
UGF0aCJdID0gIlNlbGVjdG9yIFBhdGgiOwotbG9jYWxpemVkU3RyaW5nc1siU2VsZiJdID0gIlNl
bGYiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZiBTaXplIl0gPSAiU2VsZiBTaXplIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlNlbGYgVGltZSJdID0gIlNlbGYgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTZW1hbnRpYyBJc3N1ZSJdID0gIlNlbWFudGljIElzc3VlIjsKQEAgLTg2NSw3ICs3NzIsNiBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwogbG9jYWxpemVkU3RyaW5n
c1siU2V0dGluZ3MiXSA9ICJTZXR0aW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkZXIiXSA9
ICJTaGFkZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dyYW1zIl0gPSAiU2hhZGVy
IFByb2dyYW1zIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyJdID0gIlNoYWRvdyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJTaGFkb3cgQ29udGVudCJdID0gIlNoYWRvdyBDb250ZW50IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlNoYWRvdyBDb250ZW50ICglcykiXSA9ICJTaGFkb3cgQ29udGVudCAoJXMp
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNoYXJlZCBGb2N1cyJdID0gIlNoYXJlZCBGb2N1cyI7CkBA
IC04ODAsNyArNzg2LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyBQYXRoIl0gPSAiU2hvdyBQ
YXRoIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgUmVtYWluaW5nICglZCkiXSA9ICJTaG93IFJl
bWFpbmluZyAoJWQpIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgUnVsZXJzIl0gPSAiU2hvdyBS
dWxlcnMiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyBTY29wZSBDaGFpbiBvbiBwYXVzZSJdID0g
IlNob3cgU2NvcGUgQ2hhaW4gb24gcGF1c2UiOwotbG9jYWxpemVkU3RyaW5nc1siU2hvdyBTb3Vy
Y2UiXSA9ICJTaG93IFNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IGFsbCBhY3Rpb25z
Il0gPSAiU2hvdyBhbGwgYWN0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IGFsbCByZXNv
dXJjZXMiXSA9ICJTaG93IGFsbCByZXNvdXJjZXMiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyBj
b21wb3NpdGluZyBib3JkZXJzIl0gPSAiU2hvdyBjb21wb3NpdGluZyBib3JkZXJzIjsKQEAgLTg5
NywxMiArODAyLDkgQEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCJd
ID0gIlNob3cgdHJhbnNwYXJlbmN5IGdyaWQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyB0eXBl
IGluZm9ybWF0aW9uIl0gPSAiU2hvdyB0eXBlIGluZm9ybWF0aW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNob3cgd2FybmluZ3MgbG9nZ2VkIHRvIHRoZSBDb25zb2xlIl0gPSAiU2hvdyB3YXJuaW5n
cyBsb2dnZWQgdG8gdGhlIENvbnNvbGUiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdzoiXSA9ICJT
aG93OiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJTaHJpbmsiXSA9ICJTaHJpbmsiOwogbG9jYWxpemVk
U3RyaW5nc1siU2l6ZSJdID0gIlNpemUiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSBvZiBjdXJy
ZW50IG9iamVjdCBwbHVzIGFsbCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIl0gPSAiU2l6ZSBvZiBj
dXJyZW50IG9iamVjdCBwbHVzIGFsbCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlNpemVzIl0gPSAiU2l6ZXMiOwotbG9jYWxpemVkU3RyaW5nc1siU2l6aW5nIl0g
PSAiU2l6aW5nIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNsaWNlIl0gPSAiU2xpY2UiOwogbG9jYWxp
emVkU3RyaW5nc1siU25hcHNob3QgJWQiXSA9ICJTbmFwc2hvdCAlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJTbmFwc2hvdCAlZCBcdTIwMTQgJXMiXSA9ICJTbmFwc2hvdCAlZCBcdTIwMTQgJXMiOwog
bG9jYWxpemVkU3RyaW5nc1siU25hcHNob3QgQ29tcGFyaXNvbiAoJWQgYW5kICVkKSJdID0gIlNu
YXBzaG90IENvbXBhcmlzb24gKCVkIGFuZCAlZCkiOwpAQCAtOTE2LDEyICs4MTgsOSBAQCBsb2Nh
bGl6ZWRTdHJpbmdzWyJTb3VyY2VzIl0gPSAiU291cmNlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJT
b3VyY2VzOiJdID0gIlNvdXJjZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNwYWNlIl0gPSAiU3Bh
Y2UiOwogbG9jYWxpemVkU3RyaW5nc1siU3BhY2VzIl0gPSAiU3BhY2VzIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlNwYWNpbmciXSA9ICJTcGFjaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNwZWNpZmlj
aXR5OiAoJWQsICVkLCAlZCkiXSA9ICJTcGVjaWZpY2l0eTogKCVkLCAlZCwgJWQpIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlNwZWNpZmljaXR5OiBObyB2YWx1ZSBmb3Igc2VsZWN0ZWQgZWxlbWVudCJd
ID0gIlNwZWNpZmljaXR5OiBObyB2YWx1ZSBmb3Igc2VsZWN0ZWQgZWxlbWVudCI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJTcGVsbGluZyJdID0gIlNwZWxsaW5nIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNw
cmVhZCJdID0gIlNwcmVhZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJTcHJpbmciXSA9ICJTcHJpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siU3RhbGxlZCJdID0gIlN0YWxsZWQiOwogbG9jYWxpemVkU3Ry
aW5nc1siU3RhcnQgVGltZSJdID0gIlN0YXJ0IFRpbWUiOwogbG9jYWxpemVkU3RyaW5nc1siU3Rh
cnQgZWxlbWVudCBzZWxlY3Rpb24gKCVzKSJdID0gIlN0YXJ0IGVsZW1lbnQgc2VsZWN0aW9uICgl
cykiOwpAQCAtOTQxLDEwICs4NDAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTdG9wIHJlY29yZGlu
ZyJdID0gIlN0b3AgcmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0b3AgcmVjb3JkaW5n
ICglcykiXSA9ICJTdG9wIHJlY29yZGluZyAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0b3Ag
cmVjb3JkaW5nIGNhbnZhcyBhY3Rpb25zIl0gPSAiU3RvcCByZWNvcmRpbmcgY2FudmFzIGFjdGlv
bnMiOwogbG9jYWxpemVkU3RyaW5nc1siU3RvcmFnZSJdID0gIlN0b3JhZ2UiOwotbG9jYWxpemVk
U3RyaW5nc1siU3Ryb2tlIl0gPSAiU3Ryb2tlIjsKLWxvY2FsaXplZFN0cmluZ3NbIlN0eWxlIl0g
PSAiU3R5bGUiOwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGUgQXR0cmlidXRlIl0gPSAiU3R5bGUg
QXR0cmlidXRlIjsKLWxvY2FsaXplZFN0cmluZ3NbIlN0eWxlIFJ1bGVzIl0gPSAiU3R5bGUgUnVs
ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGUgcnVsZSJdID0gIlN0eWxlIHJ1bGUiOwogbG9j
YWxpemVkU3RyaW5nc1siU3R5bGVzIl0gPSAiU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0
eWxlcyBJbnZhbGlkYXRlZCJdID0gIlN0eWxlcyBJbnZhbGlkYXRlZCI7CkBAIC05NTIsNyArODQ4
LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU3R5bGVzIFJlY2FsY3VsYXRlZCJdID0gIlN0eWxlcyBS
ZWNhbGN1bGF0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGVzIFNpZGViYXI6Il0gPSAiU3R5
bGVzIFNpZGViYXI6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBcdTIwMTQgQ29tcHV0ZWQi
XSA9ICJTdHlsZXMgXHUyMDE0IENvbXB1dGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBc
dTIwMTQgUnVsZXMiXSA9ICJTdHlsZXMgXHUyMDE0IFJ1bGVzIjsKLWxvY2FsaXplZFN0cmluZ3Nb
IlN0eWxlcyBcdTIwMTQgVmlzdWFsIl0gPSAiU3R5bGVzIFx1MjAxNCBWaXN1YWwiOwogbG9jYWxp
emVkU3RyaW5nc1siU3R5bGVzaGVldCJdID0gIlN0eWxlc2hlZXQiOwogbG9jYWxpemVkU3RyaW5n
c1siU3R5bGVzaGVldHMiXSA9ICJTdHlsZXNoZWV0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdWJ0
cmVlIE1vZGlmaWVkIl0gPSAiU3VidHJlZSBNb2RpZmllZCI7CkBAIC05NjgsMTQgKzg2MywxMiBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJUZXh0IEZyYW1lIl0gPSAiVGV4dCBGcmFtZSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJUZXh0IE5vZGUiXSA9ICJUZXh0IE5vZGUiOwogbG9jYWxpemVkU3RyaW5nc1si
VGhlIHBhZ2UncyBjb250ZW50IGhhcyBjaGFuZ2VkIl0gPSAiVGhlIHBhZ2UncyBjb250ZW50IGhh
cyBjaGFuZ2VkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoZSBzZWxlY3RvciDigJwlc+KAnSBpcyBp
bnZhbGlkLlxuQ2xpY2sgdG8gcmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBzZWxlY3Rvci4iXSA9ICJU
aGUgc2VsZWN0b3Ig4oCcJXPigJ0gaXMgaW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUg
cHJldmlvdXMgc2VsZWN0b3IuIjsKLWxvY2FsaXplZFN0cmluZ3NbIlRoZSB2YWx1ZSDigJwlc+KA
nSBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LiJdID0gIlRoZSB2YWx1ZSDigJwl
c+KAnSBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJUaGUgdmFsdWUg4oCcJXPigJ0gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0
eS5cbkNsaWNrIHRvIGRlbGV0ZSBhbmQgb3BlbiBhdXRvY29tcGxldGUuIl0gPSAiVGhlIHZhbHVl
IOKAnCVz4oCdIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG5DbGljayB0byBk
ZWxldGUgYW5kIG9wZW4gYXV0b2NvbXBsZXRlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGUgdmFs
dWUg4oCcJXPigJ0gbmVlZHMgdW5pdHMuXG5DbGljayB0byBhZGQg4oCccHjigJ0gdG8gdGhlIHZh
bHVlLiJdID0gIlRoZSB2YWx1ZSDigJwlc+KAnSBuZWVkcyB1bml0cy5cbkNsaWNrIHRvIGFkZCDi
gJxweOKAnSB0byB0aGUgdmFsdWUuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoZSB2YXJpYWJsZSDi
gJwlc+KAnSBkb2VzIG5vdCBleGlzdC5cbkNsaWNrIHRvIGRlbGV0ZSBhbmQgb3BlbiBhdXRvY29t
cGxldGUuIl0gPSAiVGhlIHZhcmlhYmxlIOKAnCVz4oCdIGRvZXMgbm90IGV4aXN0LlxuQ2xpY2sg
dG8gZGVsZXRlIGFuZCBvcGVuIGF1dG9jb21wbGV0ZS4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhl
IOKAnCVz4oCdXG50YWJsZSBpcyBlbXB0eS4iXSA9ICJUaGUg4oCcJXPigJ1cbnRhYmxlIGlzIGVt
cHR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGUg4oCcd2Via2l04oCdIHByZWZpeCBpcyBuZWVk
ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG5DbGljayB0byBpbnNlcnQgYSBkdXBsaWNhdGUgd2l0aCB0
aGUgcHJlZml4LiJdID0gIlRoZSDigJx3ZWJraXTigJ0gcHJlZml4IGlzIG5lZWRlZCBmb3IgdGhp
cyBwcm9wZXJ0eS5cbkNsaWNrIHRvIGluc2VydCBhIGR1cGxpY2F0ZSB3aXRoIHRoZSBwcmVmaXgu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoZSDigJx3ZWJraXTigJ0gcHJlZml4IGlzIG5vdCBuZWNl
c3NhcnkuXG5DbGljayB0byBpbnNlcnQgYSBkdXBsaWNhdGUgd2l0aG91dCB0aGUgcHJlZml4LiJd
ID0gIlRoZSDigJx3ZWJraXTigJ0gcHJlZml4IGlzIG5vdCBuZWNlc3NhcnkuXG5DbGljayB0byBp
bnNlcnQgYSBkdXBsaWNhdGUgd2l0aG91dCB0aGUgcHJlZml4LiI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJUaGlzIEVsZW1lbnQiXSA9ICJUaGlzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siVGhp
cyBhY3Rpb24gY2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiXSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMg
bm8gdmlzdWFsIGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIG9iamVjdCBpcyBhIHJv
b3QiXSA9ICJUaGlzIG9iamVjdCBpcyBhIHJvb3QiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBv
YmplY3QgaXMgcmVmZXJlbmNlZCBieSBpbnRlcm5hbCBvYmplY3RzIl0gPSAiVGhpcyBvYmplY3Qg
aXMgcmVmZXJlbmNlZCBieSBpbnRlcm5hbCBvYmplY3RzIjsKQEAgLTk5Niw3ICs4ODksNiBAQCBs
b2NhbGl6ZWRTdHJpbmdzWyJUaW1lc3RhbXAgXHUyMDE0ICVzIl0gPSAiVGltZXN0YW1wIFx1MjAx
NCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaW1pbmciXSA9ICJUaW1pbmciOwogbG9jYWxpemVk
U3RyaW5nc1siVG9nZ2xlIENsYXNzZXMiXSA9ICJUb2dnbGUgQ2xhc3NlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJUb2dnbGUgVmlzaWJpbGl0eSJdID0gIlRvZ2dsZSBWaXNpYmlsaXR5IjsKLWxvY2Fs
aXplZFN0cmluZ3NbIlRvcCJdID0gIlRvcCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3AgRnVuY3Rp
b25zIl0gPSAiVG9wIEZ1bmN0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3RhbCBUaW1lIl0g
PSAiVG90YWwgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3RhbCBtZW1vcnkgc2l6ZSBhdCB0
aGUgZW5kIG9mIHRoZSBzZWxlY3RlZCB0aW1lIHJhbmdlIl0gPSAiVG90YWwgbWVtb3J5IHNpemUg
YXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0ZWQgdGltZSByYW5nZSI7CkBAIC0xMDA2LDggKzg5OCw2
IEBAIGxvY2FsaXplZFN0cmluZ3NbIlRyYWNlIl0gPSAiVHJhY2UiOwogbG9jYWxpemVkU3RyaW5n
c1siVHJhY2U6ICVzIl0gPSAiVHJhY2U6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRyYW5zZmVy
IFNpemUiXSA9ICJUcmFuc2ZlciBTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRyYW5zZmVycmVk
Il0gPSAiVHJhbnNmZXJyZWQiOwotbG9jYWxpemVkU3RyaW5nc1siVHJhbnNmb3JtIl0gPSAiVHJh
bnNmb3JtIjsKLWxvY2FsaXplZFN0cmluZ3NbIlRyYW5zaXRpb24iXSA9ICJUcmFuc2l0aW9uIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlRyaWdnZXJlZCBCcmVha3BvaW50Il0gPSAiVHJpZ2dlcmVkIEJy
ZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siVHJpZ2dlcmVkIFhIUiBCcmVha3BvaW50Il0g
PSAiVHJpZ2dlcmVkIFhIUiBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRydWUiXSA9
ICJUcnVlIjsKQEAgLTEwMTgsOSArOTA4LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siVVJMIl0gPSAi
VVJMIjsKIGxvY2FsaXplZFN0cmluZ3NbIlVuYWJsZSB0byBkZXRlcm1pbmUgcGF0aCB0byBwcm9w
ZXJ0eSBmcm9tIHJvb3QiXSA9ICJVbmFibGUgdG8gZGV0ZXJtaW5lIHBhdGggdG8gcHJvcGVydHkg
ZnJvbSByb290IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVuYWJsZSB0byBwYXJzZSBhcyBKU09OOiAl
cyJdID0gIlVuYWJsZSB0byBwYXJzZSBhcyBKU09OOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJV
bmNhdWdodCBFeGNlcHRpb25zIl0gPSAiVW5jYXVnaHQgRXhjZXB0aW9ucyI7Ci1sb2NhbGl6ZWRT
dHJpbmdzWyJVbmNoYW5nZWQiXSA9ICJVbmNoYW5nZWQiOwogbG9jYWxpemVkU3RyaW5nc1siVW5j
b21tZW50IEFsbCBQcm9wZXJ0aWVzIl0gPSAiVW5jb21tZW50IEFsbCBQcm9wZXJ0aWVzIjsKLWxv
Y2FsaXplZFN0cmluZ3NbIlVuY29tbWVudCBydWxlIl0gPSAiVW5jb21tZW50IHJ1bGUiOwogbG9j
YWxpemVkU3RyaW5nc1siVW5kZWZpbmVkIGN1c3RvbSBlbGVtZW50Il0gPSAiVW5kZWZpbmVkIGN1
c3RvbSBlbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVuaXF1ZSJdID0gIlVuaXF1ZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJVbmtub3duIGVycm9yIl0gPSAiVW5rbm93biBlcnJvciI7CkBAIC0x
MDM1LDIzICs5MjMsMTggQEAgbG9jYWxpemVkU3RyaW5nc1siVXNlciBBZ2VudCJdID0gIlVzZXIg
QWdlbnQiOwogbG9jYWxpemVkU3RyaW5nc1siVXNlciBBZ2VudCBTdHlsZXNoZWV0Il0gPSAiVXNl
ciBBZ2VudCBTdHlsZXNoZWV0IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVzZXIgSW50ZXJmYWNlOiJd
ID0gIlVzZXIgSW50ZXJmYWNlOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJVc2VyIFN0eWxlc2hlZXQi
XSA9ICJVc2VyIFN0eWxlc2hlZXQiOwotbG9jYWxpemVkU3RyaW5nc1siVXNpbmcgS2V5d29yZCBW
YWx1ZSJdID0gIlVzaW5nIEtleXdvcmQgVmFsdWUiOwogbG9jYWxpemVkU3RyaW5nc1siVXNpbmcg
cHJldmlvdXMgc2VsZWN0b3Ig4oCcJXPigJ0iXSA9ICJVc2luZyBwcmV2aW91cyBzZWxlY3RvciDi
gJwlc+KAnSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWYWx1ZSJdID0gIlZhbHVlIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlZhcmlhYmxlcyJdID0gIlZhcmlhYmxlcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJW
YXJpYW50cyJdID0gIlZhcmlhbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZlcmJvc2UiXSA9ICJW
ZXJib3NlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZlcnNpb24iXSA9ICJWZXJzaW9uIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlZlcnRleCJdID0gIlZlcnRleCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0
ZXggU2hhZGVyIl0gPSAiVmVydGV4IFNoYWRlciI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0aWNh
bCJdID0gIlZlcnRpY2FsIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgSW1hZ2UiXSA9ICJWaWV3
IEltYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgUmVjb3JkaW5nIl0gPSAiVmlldyBSZWNv
cmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3IFNoYWRlciI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaWV3IHZhcmlhYmxlIHZhbHVlIl0gPSAiVmlldyB2YXJpYWJs
ZSB2YWx1ZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWaXNpYmlsaXR5Il0gPSAiVmlzaWJpbGl0eSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJWaXN1YWwiXSA9ICJWaXN1YWwiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJdID0g
IldhaXRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRz
IGNyZWF0ZWQgYnkgc2NyaXB0IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4
dHMgY3JlYXRlZCBieSBzY3JpcHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5n
IGZvciBmcmFtZXPigKYiXSA9ICJXYWl0aW5nIGZvciBmcmFtZXPigKYiOwpAQCAtMTA2MywyOCAr
OTQ2LDE3IEBAIGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIgSW5zcGVj
dG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIldlYlJUQyJdID0gIldlYlJUQyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJXZWJSVEMgTG9nZ2luZzoiXSA9ICJXZWJSVEMgTG9nZ2luZzoiOwogbG9jYWxpemVk
U3RyaW5nc1siV2ViU29ja2V0IENvbm5lY3Rpb24gRXN0YWJsaXNoZWQiXSA9ICJXZWJTb2NrZXQg
Q29ubmVjdGlvbiBFc3RhYmxpc2hlZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJXZWlnaHQiXSA9ICJX
ZWlnaHQiOwotbG9jYWxpemVkU3RyaW5nc1siV2hpdGVzcGFjZSJdID0gIldoaXRlc3BhY2UiOwog
bG9jYWxpemVkU3RyaW5nc1siV2hpdGVzcGFjZSBjaGFyYWN0ZXJzIl0gPSAiV2hpdGVzcGFjZSBj
aGFyYWN0ZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIldpZHRoIl0gPSAiV2lkdGgiOwogbG9jYWxp
emVkU3RyaW5nc1siV2l0aCBPYmplY3QgUHJvcGVydGllcyJdID0gIldpdGggT2JqZWN0IFByb3Bl
cnRpZXMiOwotbG9jYWxpemVkU3RyaW5nc1siV29yZCJdID0gIldvcmQiOwogbG9jYWxpemVkU3Ry
aW5nc1siV29ya2VyIFx1MjAxNCAlcyJdID0gIldvcmtlciBcdTIwMTQgJXMiOwogbG9jYWxpemVk
U3RyaW5nc1siV29ya2luZyBDb3B5Il0gPSAiV29ya2luZyBDb3B5IjsKLWxvY2FsaXplZFN0cmlu
Z3NbIldyYXAiXSA9ICJXcmFwIjsKIGxvY2FsaXplZFN0cmluZ3NbIldyYXAgbGluZXMgdG8gZWRp
dG9yIHdpZHRoIl0gPSAiV3JhcCBsaW5lcyB0byBlZGl0b3Igd2lkdGgiOwotbG9jYWxpemVkU3Ry
aW5nc1siWCJdID0gIlgiOwotbG9jYWxpemVkU3RyaW5nc1siWDEiXSA9ICJYMSI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJYMiJdID0gIlgyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlhIUiJdID0gIlhIUiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJYSFIgQnJlYWtwb2ludHMiXSA9ICJYSFIgQnJlYWtwb2ludHMi
OwogbG9jYWxpemVkU3RyaW5nc1siWEhScyJdID0gIlhIUnMiOwogbG9jYWxpemVkU3RyaW5nc1si
WFBhdGgiXSA9ICJYUGF0aCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJZIl0gPSAiWSI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJZMSJdID0gIlkxIjsKLWxvY2FsaXplZFN0cmluZ3NbIlkyIl0gPSAiWTIiOwog
bG9jYWxpemVkU3RyaW5nc1siWWVzIl0gPSAiWWVzIjsKLWxvY2FsaXplZFN0cmluZ3NbIlotSW5k
ZXgiXSA9ICJaLUluZGV4IjsKIGxvY2FsaXplZFN0cmluZ3NbIlpvb206Il0gPSAiWm9vbToiOwog
bG9jYWxpemVkU3RyaW5nc1siY29tcHV0ZWQiXSA9ICJjb21wdXRlZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJkZWZhdWx0Il0gPSAiZGVmYXVsdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKaW5kZXggYTBhNTc5ZTQyMWIwZWM5OWUw
NzA0YmIzZDMxYWY0MzA3MzhjOTI4ZC4uOGQ4NGVmMzI0MzBiOWZhZWU4YmJhOTk2MWM2OWJlZTY0
OWY1NWVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9TZXR0aW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvU2V0dGluZy5qcwpAQCAtMTIyLDcgKzEyMiw2IEBAIFdJLnNldHRpbmdzID0gewogICAg
IGV4cGVyaW1lbnRhbEVuYWJsZUxheWVyc1RhYjogbmV3IFdJLlNldHRpbmcoImV4cGVyaW1lbnRh
bC1lbmFibGUtbGF5ZXJzLXRhYiIsIGZhbHNlKSwKICAgICBleHBlcmltZW50YWxFbmFibGVTb3Vy
Y2VzVGFiOiBuZXcgV0kuU2V0dGluZygiZXhwZXJpbWVudGFsLWVuYWJsZS1zb3VyY2VzLWJhciIs
IGZhbHNlKSwKICAgICBleHBlcmltZW50YWxMZWdhY3lTdHlsZUVkaXRvcjogbmV3IFdJLlNldHRp
bmcoImV4cGVyaW1lbnRhbC1sZWdhY3ktc3R5bGUtZWRpdG9yIiwgZmFsc2UpLAotICAgIGV4cGVy
aW1lbnRhbExlZ2FjeVZpc3VhbFNpZGViYXI6IG5ldyBXSS5TZXR0aW5nKCJleHBlcmltZW50YWwt
bGVnYWN5LXZpc3VhbC1zaWRlYmFyIiwgZmFsc2UpLAogICAgIGV4cGVyaW1lbnRhbEVuYWJsZU5l
d1RhYkJhcjogbmV3IFdJLlNldHRpbmcoImV4cGVyaW1lbnRhbC1lbmFibGUtbmV3LXRhYi1iYXIi
LCBmYWxzZSksCiAgICAgZXhwZXJpbWVudGFsRW5hYmxlQWNjZXNzaWJpbGl0eUF1ZGl0VGFiOiBu
ZXcgV0kuU2V0dGluZygiZXhwZXJpbWVudGFsLWVuYWJsZS1hY2Nlc3NpYmlsaXR5LWF1ZGl0LXRh
YiIsIGZhbHNlKSwKICAgICBleHBlcmltZW50YWxSZWNvcmRpbmdIYXNWaXN1YWxFZmZlY3Q6IG5l
dyBXSS5TZXR0aW5nKCJleHBlcmltZW50YWwtcmVjb3JkaW5nLWhhcy12aXN1YWwtZWZmZWN0Iiwg
ZmFsc2UpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9WaXN1YWxTdHlsZUNvbXBs
ZXRpb25zQ29udHJvbGxlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNlOTZi
N2VkZDcyMTE2M2U0MjJhMGUxZTI1ZWU1ZDhmZDJhMDE4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5qcworKysg
L2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVD
b21wbGV0aW9uc0NvbnRyb2xsZXIgPSBjbGFzcyBWaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJv
bGxlciBleHRlbmRzIFdJLk9iamVjdAotewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlKQotICAg
IHsKLSAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRl
IHx8IG51bGw7Ci0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldyA9IG5ldyBXSS5Db21wbGV0
aW9uU3VnZ2VzdGlvbnNWaWV3KHRoaXMpOwotICAgICAgICB0aGlzLl9jb21wbGV0aW9ucyA9IG51
bGw7Ci0gICAgICAgIHRoaXMuX2N1cnJlbnRDb21wbGV0aW9ucyA9IFtdOwotICAgICAgICB0aGlz
Ll9zZWxlY3RlZENvbXBsZXRpb25JbmRleCA9IDA7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0K
LSAgICBnZXQgdmlzaWJsZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlv
bnMgJiYgdGhpcy5fY3VycmVudENvbXBsZXRpb25zLmxlbmd0aCAmJiB0aGlzLl9zdWdnZXN0aW9u
c1ZpZXcudmlzaWJsZTsKLSAgICB9Ci0KLSAgICBnZXQgaGFzQ29tcGxldGlvbnMoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuICEhdGhpcy5fY29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgZ2V0IGN1
cnJlbnRDb21wbGV0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9u
cykKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9jdXJy
ZW50Q29tcGxldGlvbnNbdGhpcy5fc2VsZWN0ZWRDb21wbGV0aW9uSW5kZXhdIHx8IG51bGw7Ci0g
ICAgfQotCi0gICAgc2V0IGNvbXBsZXRpb25zKGNvbXBsZXRpb25zKQotICAgIHsKLSAgICAgICAg
dGhpcy5fY29tcGxldGlvbnMgPSBjb21wbGV0aW9ucyB8fCBudWxsOwotICAgIH0KLQotICAgIGNv
bXBsZXRpb25TdWdnZXN0aW9uc1ZpZXdDdXN0b21pemVDb21wbGV0aW9uRWxlbWVudChzdWdnZXN0
aW9uc1ZpZXcsIGVsZW1lbnQsIGl0ZW0pCi0gICAgewotICAgICAgICBpZiAodGhpcy5fZGVsZWdh
dGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9s
bGVyQ3VzdG9taXplQ29tcGxldGlvbkVsZW1lbnQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAg
ICB0aGlzLl9kZWxlZ2F0ZS52aXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlckN1c3RvbWl6
ZUNvbXBsZXRpb25FbGVtZW50KHN1Z2dlc3Rpb25zVmlldywgZWxlbWVudCwgaXRlbSk7Ci0gICAg
fQotCi0gICAgY29tcGxldGlvblN1Z2dlc3Rpb25zQ2xpY2tlZENvbXBsZXRpb24oc3VnZ2VzdGlv
bnNWaWV3LCB0ZXh0KQotICAgIHsKLSAgICAgICAgc3VnZ2VzdGlvbnNWaWV3LmhpZGUoKTsKLSAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVmlzdWFsU3R5bGVDb21wbGV0
aW9uc0NvbnRyb2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVkLCB7dGV4dH0pOwotICAgIH0K
LQotICAgIHByZXZpb3VzKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5z
ZWxlY3RQcmV2aW91cygpOwotICAgICAgICB0aGlzLl9zZWxlY3RlZENvbXBsZXRpb25JbmRleCA9
IHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5zZWxlY3RlZEluZGV4OwotICAgIH0KLQotICAgIG5leHQo
KQotICAgIHsKLSAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNWaWV3LnNlbGVjdE5leHQoKTsKLSAg
ICAgICAgdGhpcy5fc2VsZWN0ZWRDb21wbGV0aW9uSW5kZXggPSB0aGlzLl9zdWdnZXN0aW9uc1Zp
ZXcuc2VsZWN0ZWRJbmRleDsKLSAgICB9Ci0KLSAgICB1cGRhdGUodmFsdWUpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuaGFzQ29tcGxldGlvbnMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAgICAgdGhpcy5fY3VycmVudENvbXBsZXRpb25zID0gdGhpcy5fY29tcGxldGlvbnMu
c3RhcnRzV2l0aCh2YWx1ZSk7Ci0KLSAgICAgICAgdmFyIGN1cnJlbnRDb21wbGV0aW9uc0xlbmd0
aCA9IHRoaXMuX2N1cnJlbnRDb21wbGV0aW9ucy5sZW5ndGg7Ci0gICAgICAgIGlmIChjdXJyZW50
Q29tcGxldGlvbnNMZW5ndGgpIHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50Q29tcGxldGlvbnNM
ZW5ndGggPT09IDEgJiYgdGhpcy5fY3VycmVudENvbXBsZXRpb25zWzBdID09PSB2YWx1ZSkgewot
ICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkQ29tcGxl
dGlvbkluZGV4ID49IGN1cnJlbnRDb21wbGV0aW9uc0xlbmd0aCkKLSAgICAgICAgICAgICAgICB0
aGlzLl9zZWxlY3RlZENvbXBsZXRpb25JbmRleCA9IDA7Ci0KLSAgICAgICAgICAgIHRoaXMuX3N1
Z2dlc3Rpb25zVmlldy51cGRhdGUodGhpcy5fY3VycmVudENvbXBsZXRpb25zLCB0aGlzLl9zZWxl
Y3RlZENvbXBsZXRpb25JbmRleCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIHRoaXMuaGlkZSgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgc2hvdyhib3VuZHMsIHBhZGRpbmcpCi0gICAgewotICAgICAgICBpZiAoIWJvdW5kcykK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1ZpZXcuc2hv
dyhib3VuZHMucGFkKHBhZGRpbmcgfHwgMCkpOwotICAgIH0KLQotICAgIGhpZGUoKQotICAgIHsK
LSAgICAgICAgaWYgKHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5pc0hhbmRsaW5nQ2xpY2tFdmVudCgp
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5o
aWRlKCk7Ci0gICAgfQotfTsKLQotV0kuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIu
RXZlbnQgPSB7Ci0gICAgQ29tcGxldGlvblNlbGVjdGVkOiAidmlzdWFsLXN0eWxlLWNvbXBsZXRp
b25zLWNvbnRyb2xsZXItY29tcGxldGlvbi1zZWxlY3RlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQW5pbWF0aW9uUGxheVN0YXRl
UGF1c2VkLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9B
bmltYXRpb25QbGF5U3RhdGVQYXVzZWQuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMDI0ZWE1YjZjOTViZjNlNzliMDRlMzIzNjJhNDUzYmZkYjEwNjcwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVQYXVzZWQuc3ZnCisrKyAvZGV2
L251bGwKQEAgLTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNiBEZXZpbiBSb3Vzc28gPHdlYmtpdEBkZXZp
bnJvdXNzby5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIw
IDAgMTYgMTYiPgotICAgIDxyZWN0IGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIiB4
PSIyLjUiIHk9IjIuNSIgd2lkdGg9IjMiIGhlaWdodD0iMTAiLz4KLSAgICA8cmVjdCBmaWxsPSJj
dXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIgeD0iOS41IiB5PSIyLjUiIHdpZHRoPSIzIiBoZWln
aHQ9IjEwIi8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVSdW5uaW5nLnN2ZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVSdW5u
aW5nLnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFmMjAyMzhmOGIyMzFiNDc3
MThiYmQ1ZGQxN2ZkZjNkYWI1NGU4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
QW5pbWF0aW9uUGxheVN0YXRlUnVubmluZy5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdo
dCDCqSAyMDE2IERldmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGgg
ZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiIGQ9Ik0gNC41IDIuNSBMIDQuNSAxMi41
IEwgMTIuNSA3LjUgWiIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJCb3RoLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckJvdGguc3ZnCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjZjczMjk1NjdmYWJhMDdiNTQzMGNkNmZkYzI0NjI4OGY5YjQ4NTllLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckJvdGguc3ZnCisrKyAvZGV2L251
bGwKQEAgLTEsMTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIg
dmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0IGZpbGw9Im5vbmUi
IHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIwLjUiIHk9IjEuNSIgd2lkdGg9IjMuNSIgaGVpZ2h0
PSIxMiIvPgotICAgIDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBw
b2ludHM9IjAuNSAzLjUgMC41IDUuNSA0IDMuNSA0IDEuNSIvPgotICAgIDxwb2x5Z29uIGZpbGw9
ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjAuNSA3LjUgMC41IDkuNSA0IDcu
NSA0IDUuNSIvPgotICAgIDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43
IiBwb2ludHM9IjAuNSAxMS41IDAuNSAxMy41IDQgMTEuNSA0IDkuNSIvPgotICAgIDxyZWN0IGZp
bGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxMiIgeT0iMS41IiB3aWR0aD0iMy41
IiBoZWlnaHQ9IjEyIi8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5
PSIwLjciIHBvaW50cz0iMTIgMy41IDEyIDUuNSAxNS41IDMuNSAxNS41IDEuNSIvPgotICAgIDxw
b2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjEyIDcuNSAx
MiA5LjUgMTUuNSA3LjUgMTUuNSA1LjUiLz4KLSAgICA8cG9seWdvbiBmaWxsPSJjdXJyZW50Q29s
b3IiIG9wYWNpdHk9IjAuNyIgcG9pbnRzPSIxMiAxMS41IDEyIDEzLjUgMTUuNSAxMS41IDE1LjUg
OS41Ii8+Ci0gICAgPHJlY3QgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHg9IjUu
NSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJMZWZ0LnN2ZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckxlZnQuc3ZnCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmE4OTIwNTJiYjhjNDYyYzQ4MGYwOGY2ZTVl
YWFjY2RhNzA4YzVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckxlZnQu
c3ZnCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJl
Y3QgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHg9IjIiIHk9IjEuNSIgd2lkdGg9
IjUiIGhlaWdodD0iMTIiLz4KLSAgICA8cG9seWdvbiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNp
dHk9IjAuNyIgcG9pbnRzPSIyIDMuNSAyIDUuNSA3IDMuNSA3IDEuNSIvPgotICAgIDxwb2x5Z29u
IGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjIgNy41IDIgOS41IDcg
Ny41IDcgNS41Ii8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIw
LjciIHBvaW50cz0iMiAxMS41IDIgMTMuNSA3IDExLjUgNyA5LjUiLz4KLSAgICA8cmVjdCBmaWxs
PSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgeD0iOSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdo
dD0iNSIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM4YzRkYTZmZjkxNDY5YWIyZTlkNjM0MTYzNTlmYzJjMWUxMzM2NWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnCisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgot
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9u
PSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgZmlsbD0ibm9uZSIgc3Ryb2tl
PSJjdXJyZW50Q29sb3IiIHg9IjkiIHk9IjEuNSIgd2lkdGg9IjUiIGhlaWdodD0iMTIiLz4KLSAg
ICA8cG9seWdvbiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNyIgcG9pbnRzPSI5IDMu
NSA5IDUuNSAxNCAzLjUgMTQgMS41Ii8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9y
IiBvcGFjaXR5PSIwLjciIHBvaW50cz0iOSA3LjUgOSA5LjUgMTQgNy41IDE0IDUuNSIvPgotICAg
IDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjkgMTEu
NSA5IDEzLjUgMTQgMTEuNSAxNCA5LjUiLz4KLSAgICA8cmVjdCBmaWxsPSJub25lIiBzdHJva2U9
ImN1cnJlbnRDb2xvciIgeD0iMiIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgotPC9zdmc+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
RmxvYXRMZWZ0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9GbG9hdExlZnQuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDRiYzIzYTE5
MmEzNDI4ODI2ZDg1MTc1MmE1MjM0YmY5MjEzODY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9GbG9hdExlZnQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIw
IDAgMTYgMTYiPgotICAgIDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4
PSIwLjUiIHk9IjIuNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgotICAgIDxsaW5lIHN0cm9rZT0i
Y3VycmVudENvbG9yIiB4MT0iNy41IiB5MT0iMi41IiB4Mj0iMTYiIHkyPSIyLjUiLz4KLSAgICA8
bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjcuNSIgeTE9IjUiIHgyPSIxNiIgeTI9IjUi
Lz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjcuNSIgeTE9IjcuNSIgeDI9
IjE2IiB5Mj0iNy41Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwIiB5
MT0iMTAiIHgyPSIxNiIgeTI9IjEwIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3Ii
IHgxPSIwIiB5MT0iMTIuNSIgeDI9IjE2IiB5Mj0iMTIuNSIvPgotPC9zdmc+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRSaWdodC5z
dmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRSaWdo
dC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNDY2Y2ExMWU4ZmVjZTBmYmUy
Y2NhMGUyY2ZkYjI3ZDQ4MTRjYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zs
b2F0UmlnaHQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYi
PgotICAgIDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxMC41IiB5
PSIyLjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRD
b2xvciIgeDE9IjAiIHkxPSIyLjUiIHgyPSI4LjUiIHkyPSIyLjUiLz4KLSAgICA8bGluZSBzdHJv
a2U9ImN1cnJlbnRDb2xvciIgeDE9IjAiIHkxPSI1IiB4Mj0iOC41IiB5Mj0iNSIvPgotICAgIDxs
aW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjcuNSIgeDI9IjguNSIgeTI9Ijcu
NSIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjEwIiB4Mj0i
MTYiIHkyPSIxMCIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9
IjEyLjUiIHgyPSIxNiIgeTI9IjEyLjUiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGlj
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY3NzA1ZjEwYmFlYzRkMzQzOThk
ODU4NDBjMWFjNjE3MTVlZmZjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9u
dFN0eWxlSXRhbGljLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYg
MTYiPgotICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTSA0LjU1NzEyODkxIDguMzU0
NDkyMTkgTCA0LjE4MzU5Mzc1IDUuNTAyNDQxNDEgTCAyLjUzNTY0NDUzIDguMzU0NDkyMTkgTCA0
LjU1NzEyODkxIDguMzU0NDkyMTkgWiBNIDMuOTMzMTA1NDcgNC41NDQ0MzM1OSBMIDQuOTIxODc1
IDQuNTQ0NDMzNTkgTCA1Ljg5MzA2NjQxIDExIEwgNC45MzUwNTg1OSAxMSBMIDQuNjg4OTY0ODQg
OS4wNjY0MDYyNSBMIDIuMTM1NzQyMTkgOS4wNjY0MDYyNSBMIDEuMDI4MzIwMzEgMTEgTCAwLjEz
MTgzNTkzOCAxMSBMIDMuOTMzMTA1NDcgNC41NDQ0MzM1OSBaIE0gNy44OTY5NzI2NiA0LjUyMjQ2
MDk0IEwgOC42NjYwMTU2MiA0LjUyMjQ2MDk0IEwgOC4xNjk0MzM1OSA2Ljg2NDc0NjA5IEMgOC4z
ODkxNjEyNSA2LjYzOTE1OTAzIDguNjMxNTkwNDcgNi40NjcwNDE2MSA4Ljg5NjcyODUyIDYuMzQ4
Mzg4NjcgQyA5LjE2MTg2NjU2IDYuMjI5NzM1NzMgOS40MzUwNTcxOSA2LjE3MDQxMDE2IDkuNzE2
MzA4NTkgNi4xNzA0MTAxNiBDIDEwLjMwMjI0OSA2LjE3MDQxMDE2IDEwLjczNTEwNiA2LjM3MTgy
NDE2IDExLjAxNDg5MjYgNi43NzQ2NTgyIEMgMTEuMjk0Njc5MSA3LjE3NzQ5MjI1IDExLjM1MTA3
NTEgNy43NzE0ODA0NSAxMS4xODQwODIgOC41NTY2NDA2MiBDIDExLjAyNTg3ODEgOS4zMDA3ODQ5
NyAxMC43MTM4Njk1IDkuOTE4OTQyODUgMTAuMjQ4MDQ2OSAxMC40MTExMzI4IEMgOS43ODIyMjQy
MyAxMC45MDMzMjI4IDkuMjI5OTgzNjYgMTEuMTQ5NDE0MSA4LjU5MTMwODU5IDExLjE0OTQxNDEg
QyA4LjIzMzg4NDkzIDExLjE0OTQxNDEgNy45NTExNzI5MiAxMS4wNjI5ODkxIDcuNzQzMTY0MDYg
MTAuODkwMTM2NyBDIDcuNjE3MTg2ODcgMTAuNzg3NTk3MSA3LjQ5NTYwNjA1IDEwLjYyMzUzNjMg
Ny4zNzg0MTc5NyAxMC4zOTc5NDkyIEwgNy4yNTA5NzY1NiAxMSBMIDYuNTIxNDg0MzcgMTEgTCA3
Ljg5Njk3MjY2IDQuNTIyNDYwOTQgWiBNIDEwLjM2NjY5OTIgOC41OTYxOTE0MSBDIDEwLjQ3MjE2
ODUgOC4xMDEwNzE3NCAxMC40NTMxMjU3IDcuNjkwOTE5NTkgMTAuMzA5NTcwMyA3LjM2NTcyMjY2
IEMgMTAuMTY2MDE0OSA3LjA0MDUyNTcyIDkuODg3Njk3MzggNi44Nzc5Mjk2OSA5LjQ3NDYwOTM4
IDYuODc3OTI5NjkgQyA5LjExNDI1NjAxIDYuODc3OTI5NjkgOC43NzAwMjExNyA3LjAxMTIyOTE0
IDguNDQxODk0NTMgNy4yNzc4MzIwMyBDIDguMTEzNzY3ODkgNy41NDQ0MzQ5MyA3Ljg4NTI1NDU1
IDcuOTgzODgzNjYgNy43NTYzNDc2NiA4LjU5NjE5MTQxIEMgNy42NjI1OTcxOSA5LjAzODU3NjQz
IDcuNjQyMDg5NTggOS4zOTc0NTk1NiA3LjY5NDgyNDIyIDkuNjcyODUxNTYgQyA3Ljc5MTUwNDM5
IDEwLjE5MTQwODggOC4xMjQwMjA2IDEwLjQ1MDY4MzYgOC42OTIzODI4MSAxMC40NTA2ODM2IEMg
OS4xMjAxMTkzMyAxMC40NTA2ODM2IDkuNDc2MDcyOCAxMC4yODA3NjM0IDkuNzYwMjUzOTEgOS45
NDA5MTc5NyBDIDEwLjA0NDQzNSA5LjYwMTA3MjUyIDEwLjI0NjU4MTQgOS4xNTI4MzQ4MSAxMC4z
NjY2OTkyIDguNTk2MTkxNDEgTCAxMC4zNjY2OTkyIDguNTk2MTkxNDEgWiBNIDE1Ljk2MDkzNzUg
Ny44NzU0ODgyOCBMIDE1LjE5MTg5NDUgNy44NzU0ODgyOCBDIDE1LjIwNjU0MyA3LjU4NTQ0Nzc3
IDE1LjE1MDg3OTUgNy4zNDQ0ODMzOCAxNS4wMjQ5MDIzIDcuMTUyNTg3ODkgQyAxNC44OTg5MjUy
IDYuOTYwNjkyNCAxNC42NTEzNjkgNi44NjQ3NDYwOSAxNC4yODIyMjY2IDYuODY0NzQ2MDkgQyAx
My43NzgzMTc4IDYuODY0NzQ2MDkgMTMuMzY1MjM2IDcuMTEwODM3MzggMTMuMDQyOTY4OCA3LjYw
MzAyNzM0IEMgMTIuODM0OTU5OSA3LjkyMjM2NDg4IDEyLjY4MTE1MjggOC4zMTY0MDM5MSAxMi41
ODE1NDMgOC43ODUxNTYyNSBDIDEyLjQ3OTAwMzQgOS4yNTY4MzgzIDEyLjQ5MzY1MTcgOS42NTM4
MDY5OCAxMi42MjU0ODgzIDkuOTc2MDc0MjIgQyAxMi43NTczMjQ5IDEwLjI5ODM0MTUgMTMuMDM3
MTA3MiAxMC40NTk0NzI3IDEzLjQ2NDg0MzggMTAuNDU5NDcyNyBDIDEzLjc5Mjk3MDQgMTAuNDU5
NDcyNyAxNC4wNzQyMTc2IDEwLjM1OTEzMTkgMTQuMzA4NTkzOCAxMC4xNTg0NDczIEMgMTQuNTQy
OTY5OSA5Ljk1Nzc2MjY3IDE0LjczMzM5NzcgOS42ODMxMDcyMSAxNC44Nzk4ODI4IDkuMzM0NDcy
NjYgTCAxNS42NDg5MjU4IDkuMzM0NDcyNjYgQyAxNS40MjkxOTgxIDkuOTU4NDk5MjEgMTUuMTEy
Nzk1IDEwLjQxNDc5MzUgMTQuNjk5NzA3IDEwLjcwMzM2OTEgQyAxNC4yODY2MTkgMTAuOTkxOTQ0
OCAxMy44MDYxNTUxIDExLjEzNjIzMDUgMTMuMjU4MzAwOCAxMS4xMzYyMzA1IEMgMTIuNjQzMDYz
MyAxMS4xMzYyMzA1IDEyLjE5OTk1MjUgMTAuOTExMzc5MiAxMS45Mjg5NTUxIDEwLjQ2MTY2OTkg
QyAxMS42NTc5NTc2IDEwLjAxMTk2MDYgMTEuNTk0MjM3NiA5LjQ1MDE5ODY4IDExLjczNzc5MyA4
Ljc3NjM2NzE5IEMgMTEuOTEzNTc1MSA3Ljk1MDE5MTE4IDEyLjI1MTIxODIgNy4zMDcxMzEyMSAx
Mi43NTA3MzI0IDYuODQ3MTY3OTcgQyAxMy4yNTAyNDY2IDYuMzg3MjA0NzMgMTMuODEwNTQzOCA2
LjE1NzIyNjU2IDE0LjQzMTY0MDYgNi4xNTcyMjY1NiBDIDE0Ljk2MTkxNjcgNi4xNTcyMjY1NiAx
NS4zNjU0NzcxIDYuMjg2MTMxNTIgMTUuNjQyMzM0IDYuNTQzOTQ1MzEgQyAxNS45MTkxOTA4IDYu
ODAxNzU5MSAxNi4wMjUzOTA5IDcuMjQ1NjAyMzIgMTUuOTYwOTM3NSA3Ljg3NTQ4ODI4IEwgMTUu
OTYwOTM3NSA3Ljg3NTQ4ODI4IFoiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZU5vcm1hbC5zdmcgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdlNzZiYWNmY2I5MzE5M2RlNzlhZjM1
ZWYxYWI3MGY3MDM1Yzk4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0
eWxlTm9ybWFsLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYi
PgotICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTSAzLjk5OTAyMzQ0IDguMzU0NDky
MTkgTDMuMDE5MDQyOTcgNS41MDI0NDE0MSBMMS45Nzc1MzkwNiA4LjM1NDQ5MjE5IEwzLjk5OTAy
MzQ0IDguMzU0NDkyMTkgWiBNIDIuNTYyMDExNzIgNC41NDQ0MzM1OSBMMy41NTA3ODEyNSA0LjU0
NDQzMzU5IEw1Ljg5MzA2NjQxIDExIEw0LjkzNTA1ODU5IDExIEw0LjI4MDI3MzQ0IDkuMDY2NDA2
MjUgTDEuNzI3MDUwNzggOS4wNjY0MDYyNSBMMS4wMjgzMjAzMSAxMSBMMC4xMzE4MzU5MzggMTEg
TDIuNTYyMDExNzIgNC41NDQ0MzM1OSBaIE0gNi44NTE0ODQzOSA0LjUyMjQ2MDk0IEw3LjYyMDUy
NzM2IDQuNTIyNDYwOTQgTDcuNjIwNTI3MzYgNi44NjQ3NDYwOSBDIDcuNzkzMzc5NzggNi42Mzkx
NTkwMyA3Ljk5OTkyMDY5IDYuNDY3MDQxNjEgOC4yNDAxNTYyNiA2LjM0ODM4ODY3IEMgOC40ODAz
OTE4NCA2LjIyOTczNTczIDguNzQxMTMxNDIgNi4xNzA0MTAxNiA5LjAyMjM4MjgzIDYuMTcwNDEw
MTYgQyA5LjYwODMyMzI2IDYuMTcwNDEwMTYgMTAuMDgzNjYwMyA2LjM3MTgyNDE2IDEwLjQ0ODQw
ODIgNi43NzQ2NTgyIEMgMTAuODEzMTU2MSA3LjE3NzQ5MjI1IDEwLjk5NTUyNzQgNy43NzE0ODA0
NSAxMC45OTU1Mjc0IDguNTU2NjQwNjIgQyAxMC45OTU1Mjc0IDkuMzAwNzg0OTcgMTAuODE1MzUz
NCA5LjkxODk0Mjg1IDEwLjQ1NSAxMC40MTExMzI4IEMgMTAuMDk0NjQ2NiAxMC45MDMzMjI4IDku
NTk1MTM5OTMgMTEuMTQ5NDE0MSA4Ljk1NjQ2NDg2IDExLjE0OTQxNDEgQyA4LjU5OTA0MTE5IDEx
LjE0OTQxNDEgOC4yOTcyODY0IDExLjA2Mjk4OTEgOC4wNTExOTE0MiAxMC44OTAxMzY3IEMgNy45
MDQ3MDYzMSAxMC43ODc1OTcxIDcuNzQ3OTY5NiAxMC42MjM1MzYzIDcuNTgwOTc2NTggMTAuMzk3
OTQ5MiBMNy41ODA5NzY1OCAxMSBMNi44NTE0ODQzOSAxMSBMNi44NTE0ODQzOSA0LjUyMjQ2MDk0
IFogTSA5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgQyAxMC4wODA3MzM1IDkuNjAxMDcyNTIgMTAuMTg2
OTMzNiA5LjE1MjgzNDgxIDEwLjE4NjkzMzYgOC41OTYxOTE0MSBDIDEwLjE4NjkzMzYgOC4xMDEw
NzE3NCAxMC4wODA3MzM1IDcuNjkwOTE5NTkgOS44NjgzMzAwOSA3LjM2NTcyMjY2IEMgOS42NTU5
MjY2OSA3LjA0MDUyNTcyIDkuMzQzMTg1NjcgNi44Nzc5Mjk2OSA4LjkzMDA5NzY3IDYuODc3OTI5
NjkgQyA4LjU2OTc0NDMxIDYuODc3OTI5NjkgOC4yNTQwNzM2MyA3LjAxMTIyOTE0IDcuOTgzMDc2
MTggNy4yNzc4MzIwMyBDIDcuNzEyMDc4NzQgNy41NDQ0MzQ5MyA3LjU3NjU4MjA0IDcuOTgzODgz
NjYgNy41NzY1ODIwNCA4LjU5NjE5MTQxIEMgNy41NzY1ODIwNCA5LjAzODU3NjQzIDcuNjMyMjQ1
NTUgOS4zOTc0NTk1NiA3Ljc0MzU3NDIzIDkuNjcyODUxNTYgQyA3Ljk1MTU4MzA4IDEwLjE5MTQw
ODggOC4zMzk3NjI4IDEwLjQ1MDY4MzYgOC45MDgxMjUwMSAxMC40NTA2ODM2IEMgOS4zMzU4NjE1
MyAxMC40NTA2ODM2IDkuNjU1OTI2NjkgMTAuMjgwNzYzNCA5Ljg2ODMzMDA5IDkuOTQwOTE3OTcg
TDkuODY4MzMwMDkgOS45NDA5MTc5NyBaIE0gMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEMgMTUuNjkw
MDMxIDYuODAxNzU5MSAxNS44ODk5ODAyIDcuMjQ1NjAyMzIgMTUuOTU3MzYzMyA3Ljg3NTQ4ODI4
IEwxNS4xODgzMjAzIDcuODc1NDg4MjggQyAxNS4xNDE0NDUxIDcuNTg1NDQ3NzcgMTUuMDM0NTEy
NiA3LjM0NDQ4MzM4IDE0Ljg2NzUxOTYgNy4xNTI1ODc4OSBDIDE0LjcwMDUyNjUgNi45NjA2OTI0
IDE0LjQzMjQ2MjggNi44NjQ3NDYwOSAxNC4wNjMzMjAzIDYuODY0NzQ2MDkgQyAxMy41NTk0MTE2
IDYuODY0NzQ2MDkgMTMuMTk5MDYzNiA3LjExMDgzNzM4IDEyLjk4MjI2NTcgNy42MDMwMjczNCBD
IDEyLjg0MTYzOTkgNy45MjIzNjQ4OCAxMi43NzEzMjgyIDguMzE2NDAzOTEgMTIuNzcxMzI4MiA4
Ljc4NTE1NjI1IEMgMTIuNzcxMzI4MiA5LjI1NjgzODMgMTIuODcwOTM2NSA5LjY1MzgwNjk4IDEz
LjA3MDE1NjMgOS45NzYwNzQyMiBDIDEzLjI2OTM3NiAxMC4yOTgzNDE1IDEzLjU4Mjg0OTUgMTAu
NDU5NDcyNyAxNC4wMTA1ODYgMTAuNDU5NDcyNyBDIDE0LjMzODcxMjYgMTAuNDU5NDcyNyAxNC41
OTg3MTk4IDEwLjM1OTEzMTkgMTQuNzkwNjE1MyAxMC4xNTg0NDczIEMgMTQuOTgyNTEwOCA5Ljk1
Nzc2MjY3IDE1LjExNTA3NzggOS42ODMxMDcyMSAxNS4xODgzMjAzIDkuMzM0NDcyNjYgTDE1Ljk1
NzM2MzMgOS4zMzQ0NzI2NiBDIDE1Ljg2OTQ3MjIgOS45NTg0OTkyMSAxNS42NDk3NDc5IDEwLjQx
NDc5MzUgMTUuMjk4MTgzNiAxMC43MDMzNjkxIEMgMTQuOTQ2NjE5NCAxMC45OTE5NDQ4IDE0LjQ5
NjkxNjggMTEuMTM2MjMwNSAxMy45NDkwNjI1IDExLjEzNjIzMDUgQyAxMy4zMzM4MjUxIDExLjEz
NjIzMDUgMTIuODQzMTA3MyAxMC45MTEzNzkyIDEyLjQ3Njg5NDYgMTAuNDYxNjY5OSBDIDEyLjEx
MDY4MTggMTAuMDExOTYwNiAxMS45Mjc1NzgyIDkuNDUwMTk4NjggMTEuOTI3NTc4MiA4Ljc3NjM2
NzE5IEMgMTEuOTI3NTc4MiA3Ljk1MDE5MTE4IDEyLjEyODI1OTcgNy4zMDcxMzEyMSAxMi41Mjk2
Mjg5IDYuODQ3MTY3OTcgQyAxMi45MzA5OTgxIDYuMzg3MjA0NzMgMTMuNDQyMjIzNSA2LjE1NzIy
NjU2IDE0LjA2MzMyMDMgNi4xNTcyMjY1NiBDIDE0LjU5MzU5NjQgNi4xNTcyMjY1NiAxNS4wMjQ5
ODg2IDYuMjg2MTMxNTIgMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEwxNS4zNTc1MDk4IDYuNTQzOTQ1
MzEgWiIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvTGlzdFN0eWxlUG9zaXRpb25JbnNpZGUuc3ZnIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBvc2l0aW9uSW5zaWRlLnN2
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdkODk0MWZjMjIxZGFkYmYyNDU0YTll
MTc1MzQwMTQwOTkyYzE5Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvTGlzdFN0
eWxlUG9zaXRpb25JbnNpZGUuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAx
NSBEZXZpbiBSb3Vzc28gPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9v
dCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxjaXJjbGUgZmlsbD0i
Y3VycmVudENvbG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY3g9IjgiIGN5PSI3LjUiIHI9IjIu
NSIvPgotICAgIDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxIiB5
PSIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiLz4KLTwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9MaXN0U3R5bGVQb3NpdGlvbk91dHNpZGUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBvc2l0aW9uT3V0c2lkZS5zdmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MWE2M2VkYjU0YTIwYTQxNGM4OGVhN2JjNzM4
NmExM2E5YmU0MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBv
c2l0aW9uT3V0c2lkZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IERl
dmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2
ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPGNpcmNsZSBmaWxsPSJjdXJy
ZW50Q29sb3IiIHN0cm9rZT0iY3VycmVudENvbG9yIiBjeD0iMy41IiBjeT0iNy41IiByPSIyLjUi
Lz4KLSAgICA8cmVjdCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgeD0iOSIgeT0i
MiIgd2lkdGg9IjYiIGhlaWdodD0iMTEiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkNlbnRlci5zdmcgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVy
LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY2ZDc2YzUyN2ZjMmRlY2Q4ODBh
ZmM2Nzg5MTg4ODEwNGVhYWYxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4
dEFsaWduQ2VudGVyLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPD94bWwgdmVy
c2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYg
MTYiPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iMyIgeDI9
IjE0LjUiIHkyPSIzIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIzIiB5
MT0iNS41IiB4Mj0iMTIiIHkyPSI1LjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xv
ciIgeDE9IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIvPgotICAgIDxsaW5lIHN0cm9rZT0i
Y3VycmVudENvbG9yIiB4MT0iMyIgeTE9IjEwLjUiIHgyPSIxMiIgeTI9IjEwLjUiLz4KLSAgICA8
bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjEzIiB4Mj0iMTQuNSIgeTI9
IjEzIi8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzcyN2VmODkzNzA0YzRjYThiZDBiNGNjODg4YjVkOTJkYzg0OGJk
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduSnVzdGlmeS5zdmcK
KysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIg
aWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8bGluZSBz
dHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIvPgot
ICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iNS41IiB4Mj0iMTQu
NSIgeTI9IjUuNSIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5
MT0iOCIgeDI9IjE0LjUiIHkyPSI4Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3Ii
IHgxPSIwLjUiIHkxPSIxMC41IiB4Mj0iMTQuNSIgeTI9IjEwLjUiLz4KLSAgICA8bGluZSBzdHJv
a2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjEzIiB4Mj0iMTQuNSIgeTI9IjEzIi8+Ci08
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0QWxpZ25MZWZ0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0QWxpZ25MZWZ0LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWVhODFlZDhhMTlkYTU4MDE0OWJhMjhhNWI1YzliMzZlYTE5ZjA3Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmcKKysrIC9kZXYvbnVsbApAQCAt
MSw5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0t
IENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249
IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xv
ciIgeDE9IjAuNSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIvPgotICAgIDxsaW5lIHN0cm9rZT0i
Y3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iNS41IiB4Mj0iOS41IiB5Mj0iNS41Ii8+Ci0gICAg
PGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSI4IiB4Mj0iMTQuNSIgeTI9
IjgiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjEwLjUi
IHgyPSI5LjUiIHkyPSIxMC41Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgx
PSIwLjUiIHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQu
c3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGln
blJpZ2h0LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc5NzJkNzg0ODQwY2Nh
ZDM2ZTU0MzJhNzg5ZDMyYWFjNzAyM2E3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvVGV4dEFsaWduUmlnaHQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAg
MCAxNiAxNiI+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSIz
IiB4Mj0iMTQuNSIgeTI9IjMiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9
IjUuNSIgeTE9IjUuNSIgeDI9IjE0LjUiIHkyPSI1LjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1
cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIvPgotICAgIDxsaW5l
IHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iNS41IiB5MT0iMTAuNSIgeDI9IjE0LjUiIHkyPSIx
MC41Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSIxMyIg
eDI9IjE0LjUiIHkyPSIxMyIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaC5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRp
b25MaW5lVGhyb3VnaC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwZmU0Yjlh
MTdmM2RlYTMyYzM0OTYxNjYwNmY0ZGU2N2Q4NTlhNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uTGluZVRocm91Z2guc3ZnCisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgot
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9u
PSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGggZmlsbD0iY3VycmVudENvbG9y
IiBkPSJNIDMuOTk5MDIzNDQgOC4zNTQ0OTIxOSBMMy4wMTkwNDI5NyA1LjUwMjQ0MTQxIEwxLjk3
NzUzOTA2IDguMzU0NDkyMTkgTDMuOTk5MDIzNDQgOC4zNTQ0OTIxOSBaIE0gMi41NjIwMTE3MiA0
LjU0NDQzMzU5IEwzLjU1MDc4MTI1IDQuNTQ0NDMzNTkgTDUuODkzMDY2NDEgMTEgTDQuOTM1MDU4
NTkgMTEgTDQuMjgwMjczNDQgOS4wNjY0MDYyNSBMMS43MjcwNTA3OCA5LjA2NjQwNjI1IEwxLjAy
ODMyMDMxIDExIEwwLjEzMTgzNTkzOCAxMSBMMi41NjIwMTE3MiA0LjU0NDQzMzU5IFogTSA2Ljg1
MTQ4NDM5IDQuNTIyNDYwOTQgTDcuNjIwNTI3MzYgNC41MjI0NjA5NCBMNy42MjA1MjczNiA2Ljg2
NDc0NjA5IEMgNy43OTMzNzk3OCA2LjYzOTE1OTAzIDcuOTk5OTIwNjkgNi40NjcwNDE2MSA4LjI0
MDE1NjI2IDYuMzQ4Mzg4NjcgQyA4LjQ4MDM5MTg0IDYuMjI5NzM1NzMgOC43NDExMzE0MiA2LjE3
MDQxMDE2IDkuMDIyMzgyODMgNi4xNzA0MTAxNiBDIDkuNjA4MzIzMjYgNi4xNzA0MTAxNiAxMC4w
ODM2NjAzIDYuMzcxODI0MTYgMTAuNDQ4NDA4MiA2Ljc3NDY1ODIgQyAxMC44MTMxNTYxIDcuMTc3
NDkyMjUgMTAuOTk1NTI3NCA3Ljc3MTQ4MDQ1IDEwLjk5NTUyNzQgOC41NTY2NDA2MiBDIDEwLjk5
NTUyNzQgOS4zMDA3ODQ5NyAxMC44MTUzNTM0IDkuOTE4OTQyODUgMTAuNDU1IDEwLjQxMTEzMjgg
QyAxMC4wOTQ2NDY2IDEwLjkwMzMyMjggOS41OTUxMzk5MyAxMS4xNDk0MTQxIDguOTU2NDY0ODYg
MTEuMTQ5NDE0MSBDIDguNTk5MDQxMTkgMTEuMTQ5NDE0MSA4LjI5NzI4NjQgMTEuMDYyOTg5MSA4
LjA1MTE5MTQyIDEwLjg5MDEzNjcgQyA3LjkwNDcwNjMxIDEwLjc4NzU5NzEgNy43NDc5Njk2IDEw
LjYyMzUzNjMgNy41ODA5NzY1OCAxMC4zOTc5NDkyIEw3LjU4MDk3NjU4IDExIEw2Ljg1MTQ4NDM5
IDExIEw2Ljg1MTQ4NDM5IDQuNTIyNDYwOTQgWiBNIDkuODY4MzMwMDkgOS45NDA5MTc5NyBDIDEw
LjA4MDczMzUgOS42MDEwNzI1MiAxMC4xODY5MzM2IDkuMTUyODM0ODEgMTAuMTg2OTMzNiA4LjU5
NjE5MTQxIEMgMTAuMTg2OTMzNiA4LjEwMTA3MTc0IDEwLjA4MDczMzUgNy42OTA5MTk1OSA5Ljg2
ODMzMDA5IDcuMzY1NzIyNjYgQyA5LjY1NTkyNjY5IDcuMDQwNTI1NzIgOS4zNDMxODU2NyA2Ljg3
NzkyOTY5IDguOTMwMDk3NjcgNi44Nzc5Mjk2OSBDIDguNTY5NzQ0MzEgNi44Nzc5Mjk2OSA4LjI1
NDA3MzYzIDcuMDExMjI5MTQgNy45ODMwNzYxOCA3LjI3NzgzMjAzIEMgNy43MTIwNzg3NCA3LjU0
NDQzNDkzIDcuNTc2NTgyMDQgNy45ODM4ODM2NiA3LjU3NjU4MjA0IDguNTk2MTkxNDEgQyA3LjU3
NjU4MjA0IDkuMDM4NTc2NDMgNy42MzIyNDU1NSA5LjM5NzQ1OTU2IDcuNzQzNTc0MjMgOS42NzI4
NTE1NiBDIDcuOTUxNTgzMDggMTAuMTkxNDA4OCA4LjMzOTc2MjggMTAuNDUwNjgzNiA4LjkwODEy
NTAxIDEwLjQ1MDY4MzYgQyA5LjMzNTg2MTUzIDEwLjQ1MDY4MzYgOS42NTU5MjY2OSAxMC4yODA3
NjM0IDkuODY4MzMwMDkgOS45NDA5MTc5NyBMOS44NjgzMzAwOSA5Ljk0MDkxNzk3IFogTSAxNS4z
NTc1MDk4IDYuNTQzOTQ1MzEgQyAxNS42OTAwMzEgNi44MDE3NTkxIDE1Ljg4OTk4MDIgNy4yNDU2
MDIzMiAxNS45NTczNjMzIDcuODc1NDg4MjggTDE1LjE4ODMyMDMgNy44NzU0ODgyOCBDIDE1LjE0
MTQ0NTEgNy41ODU0NDc3NyAxNS4wMzQ1MTI2IDcuMzQ0NDgzMzggMTQuODY3NTE5NiA3LjE1MjU4
Nzg5IEMgMTQuNzAwNTI2NSA2Ljk2MDY5MjQgMTQuNDMyNDYyOCA2Ljg2NDc0NjA5IDE0LjA2MzMy
MDMgNi44NjQ3NDYwOSBDIDEzLjU1OTQxMTYgNi44NjQ3NDYwOSAxMy4xOTkwNjM2IDcuMTEwODM3
MzggMTIuOTgyMjY1NyA3LjYwMzAyNzM0IEMgMTIuODQxNjM5OSA3LjkyMjM2NDg4IDEyLjc3MTMy
ODIgOC4zMTY0MDM5MSAxMi43NzEzMjgyIDguNzg1MTU2MjUgQyAxMi43NzEzMjgyIDkuMjU2ODM4
MyAxMi44NzA5MzY1IDkuNjUzODA2OTggMTMuMDcwMTU2MyA5Ljk3NjA3NDIyIEMgMTMuMjY5Mzc2
IDEwLjI5ODM0MTUgMTMuNTgyODQ5NSAxMC40NTk0NzI3IDE0LjAxMDU4NiAxMC40NTk0NzI3IEMg
MTQuMzM4NzEyNiAxMC40NTk0NzI3IDE0LjU5ODcxOTggMTAuMzU5MTMxOSAxNC43OTA2MTUzIDEw
LjE1ODQ0NzMgQyAxNC45ODI1MTA4IDkuOTU3NzYyNjcgMTUuMTE1MDc3OCA5LjY4MzEwNzIxIDE1
LjE4ODMyMDMgOS4zMzQ0NzI2NiBMMTUuOTU3MzYzMyA5LjMzNDQ3MjY2IEMgMTUuODY5NDcyMiA5
Ljk1ODQ5OTIxIDE1LjY0OTc0NzkgMTAuNDE0NzkzNSAxNS4yOTgxODM2IDEwLjcwMzM2OTEgQyAx
NC45NDY2MTk0IDEwLjk5MTk0NDggMTQuNDk2OTE2OCAxMS4xMzYyMzA1IDEzLjk0OTA2MjUgMTEu
MTM2MjMwNSBDIDEzLjMzMzgyNTEgMTEuMTM2MjMwNSAxMi44NDMxMDczIDEwLjkxMTM3OTIgMTIu
NDc2ODk0NiAxMC40NjE2Njk5IEMgMTIuMTEwNjgxOCAxMC4wMTE5NjA2IDExLjkyNzU3ODIgOS40
NTAxOTg2OCAxMS45Mjc1NzgyIDguNzc2MzY3MTkgQyAxMS45Mjc1NzgyIDcuOTUwMTkxMTggMTIu
MTI4MjU5NyA3LjMwNzEzMTIxIDEyLjUyOTYyODkgNi44NDcxNjc5NyBDIDEyLjkzMDk5ODEgNi4z
ODcyMDQ3MyAxMy40NDIyMjM1IDYuMTU3MjI2NTYgMTQuMDYzMzIwMyA2LjE1NzIyNjU2IEMgMTQu
NTkzNTk2NCA2LjE1NzIyNjU2IDE1LjAyNDk4ODYgNi4yODYxMzE1MiAxNS4zNTc1MDk4IDYuNTQz
OTQ1MzEgTDE1LjM1NzUwOTggNi41NDM5NDUzMSBaIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJy
ZW50Q29sb3IiIHgxPSIwIiB5MT0iOC41IiB4Mj0iMTYiIHkyPSI4LjUiLz4KLTwvc3ZnPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRE
ZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4NWYwNGFhMWRiYWVhYzEyMjVhYWFhOWQxMGY2MTQyZWM3YWY4YWYwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbk92ZXJsaW5lLnN2Zwor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBp
ZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxwYXRoIGZp
bGw9ImN1cnJlbnRDb2xvciIgZD0iTSAzLjk5OTAyMzQ0IDguMzU0NDkyMTkgTDMuMDE5MDQyOTcg
NS41MDI0NDE0MSBMMS45Nzc1MzkwNiA4LjM1NDQ5MjE5IEwzLjk5OTAyMzQ0IDguMzU0NDkyMTkg
WiBNIDIuNTYyMDExNzIgNC41NDQ0MzM1OSBMMy41NTA3ODEyNSA0LjU0NDQzMzU5IEw1Ljg5MzA2
NjQxIDExIEw0LjkzNTA1ODU5IDExIEw0LjI4MDI3MzQ0IDkuMDY2NDA2MjUgTDEuNzI3MDUwNzgg
OS4wNjY0MDYyNSBMMS4wMjgzMjAzMSAxMSBMMC4xMzE4MzU5MzggMTEgTDIuNTYyMDExNzIgNC41
NDQ0MzM1OSBaIE0gNi44NTE0ODQzOSA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDQuNTIyNDYwOTQg
TDcuNjIwNTI3MzYgNi44NjQ3NDYwOSBDIDcuNzkzMzc5NzggNi42MzkxNTkwMyA3Ljk5OTkyMDY5
IDYuNDY3MDQxNjEgOC4yNDAxNTYyNiA2LjM0ODM4ODY3IEMgOC40ODAzOTE4NCA2LjIyOTczNTcz
IDguNzQxMTMxNDIgNi4xNzA0MTAxNiA5LjAyMjM4MjgzIDYuMTcwNDEwMTYgQyA5LjYwODMyMzI2
IDYuMTcwNDEwMTYgMTAuMDgzNjYwMyA2LjM3MTgyNDE2IDEwLjQ0ODQwODIgNi43NzQ2NTgyIEMg
MTAuODEzMTU2MSA3LjE3NzQ5MjI1IDEwLjk5NTUyNzQgNy43NzE0ODA0NSAxMC45OTU1Mjc0IDgu
NTU2NjQwNjIgQyAxMC45OTU1Mjc0IDkuMzAwNzg0OTcgMTAuODE1MzUzNCA5LjkxODk0Mjg1IDEw
LjQ1NSAxMC40MTExMzI4IEMgMTAuMDk0NjQ2NiAxMC45MDMzMjI4IDkuNTk1MTM5OTMgMTEuMTQ5
NDE0MSA4Ljk1NjQ2NDg2IDExLjE0OTQxNDEgQyA4LjU5OTA0MTE5IDExLjE0OTQxNDEgOC4yOTcy
ODY0IDExLjA2Mjk4OTEgOC4wNTExOTE0MiAxMC44OTAxMzY3IEMgNy45MDQ3MDYzMSAxMC43ODc1
OTcxIDcuNzQ3OTY5NiAxMC42MjM1MzYzIDcuNTgwOTc2NTggMTAuMzk3OTQ5MiBMNy41ODA5NzY1
OCAxMSBMNi44NTE0ODQzOSAxMSBMNi44NTE0ODQzOSA0LjUyMjQ2MDk0IFogTSA5Ljg2ODMzMDA5
IDkuOTQwOTE3OTcgQyAxMC4wODA3MzM1IDkuNjAxMDcyNTIgMTAuMTg2OTMzNiA5LjE1MjgzNDgx
IDEwLjE4NjkzMzYgOC41OTYxOTE0MSBDIDEwLjE4NjkzMzYgOC4xMDEwNzE3NCAxMC4wODA3MzM1
IDcuNjkwOTE5NTkgOS44NjgzMzAwOSA3LjM2NTcyMjY2IEMgOS42NTU5MjY2OSA3LjA0MDUyNTcy
IDkuMzQzMTg1NjcgNi44Nzc5Mjk2OSA4LjkzMDA5NzY3IDYuODc3OTI5NjkgQyA4LjU2OTc0NDMx
IDYuODc3OTI5NjkgOC4yNTQwNzM2MyA3LjAxMTIyOTE0IDcuOTgzMDc2MTggNy4yNzc4MzIwMyBD
IDcuNzEyMDc4NzQgNy41NDQ0MzQ5MyA3LjU3NjU4MjA0IDcuOTgzODgzNjYgNy41NzY1ODIwNCA4
LjU5NjE5MTQxIEMgNy41NzY1ODIwNCA5LjAzODU3NjQzIDcuNjMyMjQ1NTUgOS4zOTc0NTk1NiA3
Ljc0MzU3NDIzIDkuNjcyODUxNTYgQyA3Ljk1MTU4MzA4IDEwLjE5MTQwODggOC4zMzk3NjI4IDEw
LjQ1MDY4MzYgOC45MDgxMjUwMSAxMC40NTA2ODM2IEMgOS4zMzU4NjE1MyAxMC40NTA2ODM2IDku
NjU1OTI2NjkgMTAuMjgwNzYzNCA5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgTDkuODY4MzMwMDkgOS45
NDA5MTc5NyBaIE0gMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEMgMTUuNjkwMDMxIDYuODAxNzU5MSAx
NS44ODk5ODAyIDcuMjQ1NjAyMzIgMTUuOTU3MzYzMyA3Ljg3NTQ4ODI4IEwxNS4xODgzMjAzIDcu
ODc1NDg4MjggQyAxNS4xNDE0NDUxIDcuNTg1NDQ3NzcgMTUuMDM0NTEyNiA3LjM0NDQ4MzM4IDE0
Ljg2NzUxOTYgNy4xNTI1ODc4OSBDIDE0LjcwMDUyNjUgNi45NjA2OTI0IDE0LjQzMjQ2MjggNi44
NjQ3NDYwOSAxNC4wNjMzMjAzIDYuODY0NzQ2MDkgQyAxMy41NTk0MTE2IDYuODY0NzQ2MDkgMTMu
MTk5MDYzNiA3LjExMDgzNzM4IDEyLjk4MjI2NTcgNy42MDMwMjczNCBDIDEyLjg0MTYzOTkgNy45
MjIzNjQ4OCAxMi43NzEzMjgyIDguMzE2NDAzOTEgMTIuNzcxMzI4MiA4Ljc4NTE1NjI1IEMgMTIu
NzcxMzI4MiA5LjI1NjgzODMgMTIuODcwOTM2NSA5LjY1MzgwNjk4IDEzLjA3MDE1NjMgOS45NzYw
NzQyMiBDIDEzLjI2OTM3NiAxMC4yOTgzNDE1IDEzLjU4Mjg0OTUgMTAuNDU5NDcyNyAxNC4wMTA1
ODYgMTAuNDU5NDcyNyBDIDE0LjMzODcxMjYgMTAuNDU5NDcyNyAxNC41OTg3MTk4IDEwLjM1OTEz
MTkgMTQuNzkwNjE1MyAxMC4xNTg0NDczIEMgMTQuOTgyNTEwOCA5Ljk1Nzc2MjY3IDE1LjExNTA3
NzggOS42ODMxMDcyMSAxNS4xODgzMjAzIDkuMzM0NDcyNjYgTDE1Ljk1NzM2MzMgOS4zMzQ0NzI2
NiBDIDE1Ljg2OTQ3MjIgOS45NTg0OTkyMSAxNS42NDk3NDc5IDEwLjQxNDc5MzUgMTUuMjk4MTgz
NiAxMC43MDMzNjkxIEMgMTQuOTQ2NjE5NCAxMC45OTE5NDQ4IDE0LjQ5NjkxNjggMTEuMTM2MjMw
NSAxMy45NDkwNjI1IDExLjEzNjIzMDUgQyAxMy4zMzM4MjUxIDExLjEzNjIzMDUgMTIuODQzMTA3
MyAxMC45MTEzNzkyIDEyLjQ3Njg5NDYgMTAuNDYxNjY5OSBDIDEyLjExMDY4MTggMTAuMDExOTYw
NiAxMS45Mjc1NzgyIDkuNDUwMTk4NjggMTEuOTI3NTc4MiA4Ljc3NjM2NzE5IEMgMTEuOTI3NTc4
MiA3Ljk1MDE5MTE4IDEyLjEyODI1OTcgNy4zMDcxMzEyMSAxMi41Mjk2Mjg5IDYuODQ3MTY3OTcg
QyAxMi45MzA5OTgxIDYuMzg3MjA0NzMgMTMuNDQyMjIzNSA2LjE1NzIyNjU2IDE0LjA2MzMyMDMg
Ni4xNTcyMjY1NiBDIDE0LjU5MzU5NjQgNi4xNTcyMjY1NiAxNS4wMjQ5ODg2IDYuMjg2MTMxNTIg
MTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEwxNS4zNTc1MDk4IDYuNTQzOTQ1MzEgWiIvPgotICAgIDxs
aW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjMuNSIgeDI9IjE2IiB5Mj0iMy41
Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25VbmRlcmxpbmUuc3ZnCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGJkOTkwYWFhYmQ4N2Q1NTIxNzQ5M2RhNGZm
YzkzY2YzOTQxMmMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3Jh
dGlvblVuZGVybGluZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2
IDE2Ij4KLSAgICA8cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0gMy45OTkwMjM0NCA4LjM1
NDQ5MjE5IEwzLjAxOTA0Mjk3IDUuNTAyNDQxNDEgTDEuOTc3NTM5MDYgOC4zNTQ0OTIxOSBMMy45
OTkwMjM0NCA4LjM1NDQ5MjE5IFogTSAyLjU2MjAxMTcyIDQuNTQ0NDMzNTkgTDMuNTUwNzgxMjUg
NC41NDQ0MzM1OSBMNS44OTMwNjY0MSAxMSBMNC45MzUwNTg1OSAxMSBMNC4yODAyNzM0NCA5LjA2
NjQwNjI1IEwxLjcyNzA1MDc4IDkuMDY2NDA2MjUgTDEuMDI4MzIwMzEgMTEgTDAuMTMxODM1OTM4
IDExIEwyLjU2MjAxMTcyIDQuNTQ0NDMzNTkgWiBNIDYuODUxNDg0MzkgNC41MjI0NjA5NCBMNy42
MjA1MjczNiA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDYuODY0NzQ2MDkgQyA3Ljc5MzM3OTc4IDYu
NjM5MTU5MDMgNy45OTk5MjA2OSA2LjQ2NzA0MTYxIDguMjQwMTU2MjYgNi4zNDgzODg2NyBDIDgu
NDgwMzkxODQgNi4yMjk3MzU3MyA4Ljc0MTEzMTQyIDYuMTcwNDEwMTYgOS4wMjIzODI4MyA2LjE3
MDQxMDE2IEMgOS42MDgzMjMyNiA2LjE3MDQxMDE2IDEwLjA4MzY2MDMgNi4zNzE4MjQxNiAxMC40
NDg0MDgyIDYuNzc0NjU4MiBDIDEwLjgxMzE1NjEgNy4xNzc0OTIyNSAxMC45OTU1Mjc0IDcuNzcx
NDgwNDUgMTAuOTk1NTI3NCA4LjU1NjY0MDYyIEMgMTAuOTk1NTI3NCA5LjMwMDc4NDk3IDEwLjgx
NTM1MzQgOS45MTg5NDI4NSAxMC40NTUgMTAuNDExMTMyOCBDIDEwLjA5NDY0NjYgMTAuOTAzMzIy
OCA5LjU5NTEzOTkzIDExLjE0OTQxNDEgOC45NTY0NjQ4NiAxMS4xNDk0MTQxIEMgOC41OTkwNDEx
OSAxMS4xNDk0MTQxIDguMjk3Mjg2NCAxMS4wNjI5ODkxIDguMDUxMTkxNDIgMTAuODkwMTM2NyBD
IDcuOTA0NzA2MzEgMTAuNzg3NTk3MSA3Ljc0Nzk2OTYgMTAuNjIzNTM2MyA3LjU4MDk3NjU4IDEw
LjM5Nzk0OTIgTDcuNTgwOTc2NTggMTEgTDYuODUxNDg0MzkgMTEgTDYuODUxNDg0MzkgNC41MjI0
NjA5NCBaIE0gOS44NjgzMzAwOSA5Ljk0MDkxNzk3IEMgMTAuMDgwNzMzNSA5LjYwMTA3MjUyIDEw
LjE4NjkzMzYgOS4xNTI4MzQ4MSAxMC4xODY5MzM2IDguNTk2MTkxNDEgQyAxMC4xODY5MzM2IDgu
MTAxMDcxNzQgMTAuMDgwNzMzNSA3LjY5MDkxOTU5IDkuODY4MzMwMDkgNy4zNjU3MjI2NiBDIDku
NjU1OTI2NjkgNy4wNDA1MjU3MiA5LjM0MzE4NTY3IDYuODc3OTI5NjkgOC45MzAwOTc2NyA2Ljg3
NzkyOTY5IEMgOC41Njk3NDQzMSA2Ljg3NzkyOTY5IDguMjU0MDczNjMgNy4wMTEyMjkxNCA3Ljk4
MzA3NjE4IDcuMjc3ODMyMDMgQyA3LjcxMjA3ODc0IDcuNTQ0NDM0OTMgNy41NzY1ODIwNCA3Ljk4
Mzg4MzY2IDcuNTc2NTgyMDQgOC41OTYxOTE0MSBDIDcuNTc2NTgyMDQgOS4wMzg1NzY0MyA3LjYz
MjI0NTU1IDkuMzk3NDU5NTYgNy43NDM1NzQyMyA5LjY3Mjg1MTU2IEMgNy45NTE1ODMwOCAxMC4x
OTE0MDg4IDguMzM5NzYyOCAxMC40NTA2ODM2IDguOTA4MTI1MDEgMTAuNDUwNjgzNiBDIDkuMzM1
ODYxNTMgMTAuNDUwNjgzNiA5LjY1NTkyNjY5IDEwLjI4MDc2MzQgOS44NjgzMzAwOSA5Ljk0MDkx
Nzk3IEw5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgWiBNIDE1LjM1NzUwOTggNi41NDM5NDUzMSBDIDE1
LjY5MDAzMSA2LjgwMTc1OTEgMTUuODg5OTgwMiA3LjI0NTYwMjMyIDE1Ljk1NzM2MzMgNy44NzU0
ODgyOCBMMTUuMTg4MzIwMyA3Ljg3NTQ4ODI4IEMgMTUuMTQxNDQ1MSA3LjU4NTQ0Nzc3IDE1LjAz
NDUxMjYgNy4zNDQ0ODMzOCAxNC44Njc1MTk2IDcuMTUyNTg3ODkgQyAxNC43MDA1MjY1IDYuOTYw
NjkyNCAxNC40MzI0NjI4IDYuODY0NzQ2MDkgMTQuMDYzMzIwMyA2Ljg2NDc0NjA5IEMgMTMuNTU5
NDExNiA2Ljg2NDc0NjA5IDEzLjE5OTA2MzYgNy4xMTA4MzczOCAxMi45ODIyNjU3IDcuNjAzMDI3
MzQgQyAxMi44NDE2Mzk5IDcuOTIyMzY0ODggMTIuNzcxMzI4MiA4LjMxNjQwMzkxIDEyLjc3MTMy
ODIgOC43ODUxNTYyNSBDIDEyLjc3MTMyODIgOS4yNTY4MzgzIDEyLjg3MDkzNjUgOS42NTM4MDY5
OCAxMy4wNzAxNTYzIDkuOTc2MDc0MjIgQyAxMy4yNjkzNzYgMTAuMjk4MzQxNSAxMy41ODI4NDk1
IDEwLjQ1OTQ3MjcgMTQuMDEwNTg2IDEwLjQ1OTQ3MjcgQyAxNC4zMzg3MTI2IDEwLjQ1OTQ3Mjcg
MTQuNTk4NzE5OCAxMC4zNTkxMzE5IDE0Ljc5MDYxNTMgMTAuMTU4NDQ3MyBDIDE0Ljk4MjUxMDgg
OS45NTc3NjI2NyAxNS4xMTUwNzc4IDkuNjgzMTA3MjEgMTUuMTg4MzIwMyA5LjMzNDQ3MjY2IEwx
NS45NTczNjMzIDkuMzM0NDcyNjYgQyAxNS44Njk0NzIyIDkuOTU4NDk5MjEgMTUuNjQ5NzQ3OSAx
MC40MTQ3OTM1IDE1LjI5ODE4MzYgMTAuNzAzMzY5MSBDIDE0Ljk0NjYxOTQgMTAuOTkxOTQ0OCAx
NC40OTY5MTY4IDExLjEzNjIzMDUgMTMuOTQ5MDYyNSAxMS4xMzYyMzA1IEMgMTMuMzMzODI1MSAx
MS4xMzYyMzA1IDEyLjg0MzEwNzMgMTAuOTExMzc5MiAxMi40NzY4OTQ2IDEwLjQ2MTY2OTkgQyAx
Mi4xMTA2ODE4IDEwLjAxMTk2MDYgMTEuOTI3NTc4MiA5LjQ1MDE5ODY4IDExLjkyNzU3ODIgOC43
NzYzNjcxOSBDIDExLjkyNzU3ODIgNy45NTAxOTExOCAxMi4xMjgyNTk3IDcuMzA3MTMxMjEgMTIu
NTI5NjI4OSA2Ljg0NzE2Nzk3IEMgMTIuOTMwOTk4MSA2LjM4NzIwNDczIDEzLjQ0MjIyMzUgNi4x
NTcyMjY1NiAxNC4wNjMzMjAzIDYuMTU3MjI2NTYgQyAxNC41OTM1OTY0IDYuMTU3MjI2NTYgMTUu
MDI0OTg4NiA2LjI4NjEzMTUyIDE1LjM1NzUwOTggNi41NDM5NDUzMSBMMTUuMzU3NTA5OCA2LjU0
Mzk0NTMxIFoiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAiIHkxPSIx
Mi41IiB4Mj0iMTYiIHkyPSIxMi41Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5z
dmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5z
Zm9ybUNhcGl0YWxpemUuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2U3NmJh
Y2ZjYjkzMTkzZGU3OWFmMzVlZjFhYjcwZjcwMzVjOThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcKKysrIC9kZXYvbnVsbApAQCAt
MSw1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0t
IENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249
IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cGF0aCBmaWxsPSJjdXJyZW50Q29sb3Ii
IGQ9Ik0gMy45OTkwMjM0NCA4LjM1NDQ5MjE5IEwzLjAxOTA0Mjk3IDUuNTAyNDQxNDEgTDEuOTc3
NTM5MDYgOC4zNTQ0OTIxOSBMMy45OTkwMjM0NCA4LjM1NDQ5MjE5IFogTSAyLjU2MjAxMTcyIDQu
NTQ0NDMzNTkgTDMuNTUwNzgxMjUgNC41NDQ0MzM1OSBMNS44OTMwNjY0MSAxMSBMNC45MzUwNTg1
OSAxMSBMNC4yODAyNzM0NCA5LjA2NjQwNjI1IEwxLjcyNzA1MDc4IDkuMDY2NDA2MjUgTDEuMDI4
MzIwMzEgMTEgTDAuMTMxODM1OTM4IDExIEwyLjU2MjAxMTcyIDQuNTQ0NDMzNTkgWiBNIDYuODUx
NDg0MzkgNC41MjI0NjA5NCBMNy42MjA1MjczNiA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDYuODY0
NzQ2MDkgQyA3Ljc5MzM3OTc4IDYuNjM5MTU5MDMgNy45OTk5MjA2OSA2LjQ2NzA0MTYxIDguMjQw
MTU2MjYgNi4zNDgzODg2NyBDIDguNDgwMzkxODQgNi4yMjk3MzU3MyA4Ljc0MTEzMTQyIDYuMTcw
NDEwMTYgOS4wMjIzODI4MyA2LjE3MDQxMDE2IEMgOS42MDgzMjMyNiA2LjE3MDQxMDE2IDEwLjA4
MzY2MDMgNi4zNzE4MjQxNiAxMC40NDg0MDgyIDYuNzc0NjU4MiBDIDEwLjgxMzE1NjEgNy4xNzc0
OTIyNSAxMC45OTU1Mjc0IDcuNzcxNDgwNDUgMTAuOTk1NTI3NCA4LjU1NjY0MDYyIEMgMTAuOTk1
NTI3NCA5LjMwMDc4NDk3IDEwLjgxNTM1MzQgOS45MTg5NDI4NSAxMC40NTUgMTAuNDExMTMyOCBD
IDEwLjA5NDY0NjYgMTAuOTAzMzIyOCA5LjU5NTEzOTkzIDExLjE0OTQxNDEgOC45NTY0NjQ4NiAx
MS4xNDk0MTQxIEMgOC41OTkwNDExOSAxMS4xNDk0MTQxIDguMjk3Mjg2NCAxMS4wNjI5ODkxIDgu
MDUxMTkxNDIgMTAuODkwMTM2NyBDIDcuOTA0NzA2MzEgMTAuNzg3NTk3MSA3Ljc0Nzk2OTYgMTAu
NjIzNTM2MyA3LjU4MDk3NjU4IDEwLjM5Nzk0OTIgTDcuNTgwOTc2NTggMTEgTDYuODUxNDg0Mzkg
MTEgTDYuODUxNDg0MzkgNC41MjI0NjA5NCBaIE0gOS44NjgzMzAwOSA5Ljk0MDkxNzk3IEMgMTAu
MDgwNzMzNSA5LjYwMTA3MjUyIDEwLjE4NjkzMzYgOS4xNTI4MzQ4MSAxMC4xODY5MzM2IDguNTk2
MTkxNDEgQyAxMC4xODY5MzM2IDguMTAxMDcxNzQgMTAuMDgwNzMzNSA3LjY5MDkxOTU5IDkuODY4
MzMwMDkgNy4zNjU3MjI2NiBDIDkuNjU1OTI2NjkgNy4wNDA1MjU3MiA5LjM0MzE4NTY3IDYuODc3
OTI5NjkgOC45MzAwOTc2NyA2Ljg3NzkyOTY5IEMgOC41Njk3NDQzMSA2Ljg3NzkyOTY5IDguMjU0
MDczNjMgNy4wMTEyMjkxNCA3Ljk4MzA3NjE4IDcuMjc3ODMyMDMgQyA3LjcxMjA3ODc0IDcuNTQ0
NDM0OTMgNy41NzY1ODIwNCA3Ljk4Mzg4MzY2IDcuNTc2NTgyMDQgOC41OTYxOTE0MSBDIDcuNTc2
NTgyMDQgOS4wMzg1NzY0MyA3LjYzMjI0NTU1IDkuMzk3NDU5NTYgNy43NDM1NzQyMyA5LjY3Mjg1
MTU2IEMgNy45NTE1ODMwOCAxMC4xOTE0MDg4IDguMzM5NzYyOCAxMC40NTA2ODM2IDguOTA4MTI1
MDEgMTAuNDUwNjgzNiBDIDkuMzM1ODYxNTMgMTAuNDUwNjgzNiA5LjY1NTkyNjY5IDEwLjI4MDc2
MzQgOS44NjgzMzAwOSA5Ljk0MDkxNzk3IEw5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgWiBNIDE1LjM1
NzUwOTggNi41NDM5NDUzMSBDIDE1LjY5MDAzMSA2LjgwMTc1OTEgMTUuODg5OTgwMiA3LjI0NTYw
MjMyIDE1Ljk1NzM2MzMgNy44NzU0ODgyOCBMMTUuMTg4MzIwMyA3Ljg3NTQ4ODI4IEMgMTUuMTQx
NDQ1MSA3LjU4NTQ0Nzc3IDE1LjAzNDUxMjYgNy4zNDQ0ODMzOCAxNC44Njc1MTk2IDcuMTUyNTg3
ODkgQyAxNC43MDA1MjY1IDYuOTYwNjkyNCAxNC40MzI0NjI4IDYuODY0NzQ2MDkgMTQuMDYzMzIw
MyA2Ljg2NDc0NjA5IEMgMTMuNTU5NDExNiA2Ljg2NDc0NjA5IDEzLjE5OTA2MzYgNy4xMTA4Mzcz
OCAxMi45ODIyNjU3IDcuNjAzMDI3MzQgQyAxMi44NDE2Mzk5IDcuOTIyMzY0ODggMTIuNzcxMzI4
MiA4LjMxNjQwMzkxIDEyLjc3MTMyODIgOC43ODUxNTYyNSBDIDEyLjc3MTMyODIgOS4yNTY4Mzgz
IDEyLjg3MDkzNjUgOS42NTM4MDY5OCAxMy4wNzAxNTYzIDkuOTc2MDc0MjIgQyAxMy4yNjkzNzYg
MTAuMjk4MzQxNSAxMy41ODI4NDk1IDEwLjQ1OTQ3MjcgMTQuMDEwNTg2IDEwLjQ1OTQ3MjcgQyAx
NC4zMzg3MTI2IDEwLjQ1OTQ3MjcgMTQuNTk4NzE5OCAxMC4zNTkxMzE5IDE0Ljc5MDYxNTMgMTAu
MTU4NDQ3MyBDIDE0Ljk4MjUxMDggOS45NTc3NjI2NyAxNS4xMTUwNzc4IDkuNjgzMTA3MjEgMTUu
MTg4MzIwMyA5LjMzNDQ3MjY2IEwxNS45NTczNjMzIDkuMzM0NDcyNjYgQyAxNS44Njk0NzIyIDku
OTU4NDk5MjEgMTUuNjQ5NzQ3OSAxMC40MTQ3OTM1IDE1LjI5ODE4MzYgMTAuNzAzMzY5MSBDIDE0
Ljk0NjYxOTQgMTAuOTkxOTQ0OCAxNC40OTY5MTY4IDExLjEzNjIzMDUgMTMuOTQ5MDYyNSAxMS4x
MzYyMzA1IEMgMTMuMzMzODI1MSAxMS4xMzYyMzA1IDEyLjg0MzEwNzMgMTAuOTExMzc5MiAxMi40
NzY4OTQ2IDEwLjQ2MTY2OTkgQyAxMi4xMTA2ODE4IDEwLjAxMTk2MDYgMTEuOTI3NTc4MiA5LjQ1
MDE5ODY4IDExLjkyNzU3ODIgOC43NzYzNjcxOSBDIDExLjkyNzU3ODIgNy45NTAxOTExOCAxMi4x
MjgyNTk3IDcuMzA3MTMxMjEgMTIuNTI5NjI4OSA2Ljg0NzE2Nzk3IEMgMTIuOTMwOTk4MSA2LjM4
NzIwNDczIDEzLjQ0MjIyMzUgNi4xNTcyMjY1NiAxNC4wNjMzMjAzIDYuMTU3MjI2NTYgQyAxNC41
OTM1OTY0IDYuMTU3MjI2NTYgMTUuMDI0OTg4NiA2LjI4NjEzMTUyIDE1LjM1NzUwOTggNi41NDM5
NDUzMSBMMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIFoiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1Mb3dl
cmNhc2Uuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Rl
eHRUcmFuc2Zvcm1Mb3dlcmNhc2Uuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
OTFjZmQyZDYwNzBmY2M0MTUyNTAxNzBiMjY2NjIyMWNlMmZlZDQwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZworKysgL2Rldi9udWxs
CkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K
LTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAt
LT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVy
c2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRD
b2xvciIgZD0iTSAyLjEzNzQ5OTk5IDEwLjI4ODA4NTkgQyAyLjMwNDQ5MzAxIDEwLjQxOTkyMjUg
Mi41MDIyNDQ5NCAxMC40ODU4Mzk4IDIuNzMwNzYxNzEgMTAuNDg1ODM5OCBDIDMuMDA5MDgzNDEg
MTAuNDg1ODM5OCAzLjI3ODYxMTk3IDEwLjQyMTM4NzQgMy41MzkzNTU0NiAxMC4yOTI0ODA1IEMg
My45Nzg4MTA3OCAxMC4wNzg2MTIyIDQuMTk4NTM1MTQgOS43Mjg1MTgwNiA0LjE5ODUzNTE0IDku
MjQyMTg3NSBMIDQuMTk4NTM1MTQgOC42MDQ5ODA0NyBDIDQuMTAxODU0OTcgOC42NjY1MDQyMSAz
Ljk3NzM0NDUgOC43MTc3NzMyMyAzLjgyNDk5OTk5IDguNzU4Nzg5MDYgQyAzLjY3MjY1NTQ4IDgu
Nzk5ODA0ODkgMy41MjMyNDI5MSA4LjgyOTEwMTQ3IDMuMzc2NzU3OCA4Ljg0NjY3OTY5IEwgMi44
OTc3NTM4OSA4LjkwODIwMzEyIEMgMi42MTA2NDMwOCA4Ljk0NjI4OTI1IDIuMzk1MzEzMjEgOS4w
MDYzNDcyNSAyLjI1MTc1NzggOS4wODgzNzg5MSBDIDIuMDA4NTkyNTIgOS4yMjYwNzQ5MSAxLjg4
NzAxMTcxIDkuNDQ1Nzk5MjcgMS44ODcwMTE3MSA5Ljc0NzU1ODU5IEMgMS44ODcwMTE3MSA5Ljk3
NjA3NTM2IDEuOTcwNTA2OTcgMTAuMTU2MjQ5MyAyLjEzNzQ5OTk5IDEwLjI4ODA4NTkgTCAyLjEz
NzQ5OTk5IDEwLjI4ODA4NTkgWiBNIDMuODAzMDI3MzMgOC4xNDc5NDkyMiBDIDMuOTg0NjY4ODcg
OC4xMjQ1MTE2IDQuMTA2MjQ5NjggOC4wNDgzNDA0OSA0LjE2Nzc3MzQzIDcuOTE5NDMzNTkgQyA0
LjIwMjkyOTg1IDcuODQ5MTIwNzQgNC4yMjA1MDc4IDcuNzQ4MDQ3NTMgNC4yMjA1MDc4IDcuNjE2
MjEwOTQgQyA0LjIyMDUwNzggNy4zNDY2NzgzNCA0LjEyNDU2MTQ5IDcuMTUxMTIzNjUgMy45MzI2
NjYgNy4wMjk1NDEwMiBDIDMuNzQwNzcwNTEgNi45MDc5NTgzOCAzLjQ2NjExNTA2IDYuODQ3MTY3
OTcgMy4xMDg2OTEzOSA2Ljg0NzE2Nzk3IEMgMi42OTU2MDMzOSA2Ljg0NzE2Nzk3IDIuNDAyNjM3
NTcgNi45NTg0OTQ5OCAyLjIyOTc4NTE0IDcuMTgxMTUyMzQgQyAyLjEzMzEwNDk3IDcuMzA0MTk5
ODMgMi4wNzAxMTczMiA3LjQ4NzMwMzQ3IDIuMDQwODIwMyA3LjczMDQ2ODc1IEwgMS4zMDI1Mzkw
NSA3LjczMDQ2ODc1IEMgMS4zMTcxODc1NiA3LjE1MDM4NzcyIDEuNTA1NDE4MSA2Ljc0NjgyNzMx
IDEuODY3MjM2MzIgNi41MTk3NzUzOSBDIDIuMjI5MDU0NTMgNi4yOTI3MjM0NyAyLjY0ODcyODA3
IDYuMTc5MTk5MjIgMy4xMjYyNjk1MiA2LjE3OTE5OTIyIEMgMy42Nzk5ODMyMyA2LjE3OTE5OTIy
IDQuMTI5Njg1NzYgNi4yODQ2NjY5MSA0LjQ3NTM5MDYxIDYuNDk1NjA1NDcgQyA0LjgxODE2NTc2
IDYuNzA2NTQ0MDIgNC45ODk1NTA3NyA3LjAzNDY2NTc0IDQuOTg5NTUwNzcgNy40Nzk5ODA0NyBM
IDQuOTg5NTUwNzcgMTAuMTkxNDA2MiBDIDQuOTg5NTUwNzcgMTAuMjczNDM3OSA1LjAwNjM5NjMg
MTAuMzM5MzU1MiA1LjA0MDA4Nzg4IDEwLjM4OTE2MDIgQyA1LjA3Mzc3OTQ1IDEwLjQzODk2NTEg
NS4xNDQ4MjM2NiAxMC40NjM4NjcyIDUuMjUzMjIyNjQgMTAuNDYzODY3MiBDIDUuMjg4Mzc5MDcg
MTAuNDYzODY3MiA1LjMyNzkyOTQ2IDEwLjQ2MTY2OTkgNS4zNzE4NzQ5OSAxMC40NTcyNzU0IEMg
NS40MTU4MjA1MiAxMC40NTI4ODA4IDUuNDYyNjk1MDUgMTAuNDQ2Mjg5MSA1LjUxMjQ5OTk5IDEw
LjQzNzUgTCA1LjUxMjQ5OTk5IDExLjAyMTk3MjcgQyA1LjM4OTQ1MjUgMTEuMDU3MTI5MSA1LjI5
NTcwMzQ0IDExLjA3OTEwMTUgNS4yMzEyNDk5OSAxMS4wODc4OTA2IEMgNS4xNjY3OTY1NCAxMS4w
OTY2Nzk3IDUuMDc4OTA2NzkgMTEuMTAxMDc0MiA0Ljk2NzU3ODExIDExLjEwMTA3NDIgQyA0LjY5
NTExNTgxIDExLjEwMTA3NDIgNC40OTczNjM4OCAxMS4wMDQzOTU1IDQuMzc0MzE2MzkgMTAuODEx
MDM1MiBDIDQuMzA5ODYyOTUgMTAuNzA4NDk1NiA0LjI2NDQ1MzI0IDEwLjU2MzQ3NzUgNC4yMzgw
ODU5MyAxMC4zNzU5NzY2IEMgNC4wNzY5NTIzMSAxMC41ODY5MTUxIDMuODQ1NTA5MzEgMTAuNzcw
MDE4OCAzLjU0Mzc0OTk5IDEwLjkyNTI5MyBDIDMuMjQxOTkwNjcgMTEuMDgwNTY3MiAyLjkwOTQ3
NDQ2IDExLjE1ODIwMzEgMi41NDYxOTEzOSAxMS4xNTgyMDMxIEMgMi4xMDk2NjU3NyAxMS4xNTgy
MDMxIDEuNzUyOTc5ODkgMTEuMDI1NjM2MSAxLjQ3NjEyMzAzIDEwLjc2MDQ5OCBDIDEuMTk5MjY2
MTggMTAuNDk1MzYgMS4wNjA4Mzk4MyAxMC4xNjM1NzYyIDEuMDYwODM5ODMgOS43NjUxMzY3MiBD
IDEuMDYwODM5ODMgOS4zMjg2MTExIDEuMTk3MDY4OTQgOC45OTAyMzU1OCAxLjQ2OTUzMTI0IDgu
NzUgQyAxLjc0MTk5MzU0IDguNTA5NzY0NDIgMi4wOTk0MTE4NCA4LjM2MTgxNjY4IDIuNTQxNzk2
ODYgOC4zMDYxNTIzNCBMIDMuODAzMDI3MzMgOC4xNDc5NDkyMiBaIE0gNi4yMjQ0MTQwNSA0LjUy
MjQ2MDk0IEwgNi45OTM0NTcwMiA0LjUyMjQ2MDk0IEwgNi45OTM0NTcwMiA2Ljg2NDc0NjA5IEMg
Ny4xNjYzMDk0NSA2LjYzOTE1OTAzIDcuMzcyODUwMzUgNi40NjcwNDE2MSA3LjYxMzA4NTkzIDYu
MzQ4Mzg4NjcgQyA3Ljg1MzMyMTUgNi4yMjk3MzU3MyA4LjExNDA2MTA4IDYuMTcwNDEwMTYgOC4z
OTUzMTI0OSA2LjE3MDQxMDE2IEMgOC45ODEyNTI5MiA2LjE3MDQxMDE2IDkuNDU2NTg5OTYgNi4z
NzE4MjQxNiA5LjgyMTMzNzg4IDYuNzc0NjU4MiBDIDEwLjE4NjA4NTggNy4xNzc0OTIyNSAxMC4z
Njg0NTcgNy43NzE0ODA0NSAxMC4zNjg0NTcgOC41NTY2NDA2MiBDIDEwLjM2ODQ1NyA5LjMwMDc4
NDk3IDEwLjE4ODI4MyA5LjkxODk0Mjg1IDkuODI3OTI5NjggMTAuNDExMTMyOCBDIDkuNDY3NTc2
MzEgMTAuOTAzMzIyOCA4Ljk2ODA2OTU5IDExLjE0OTQxNDEgOC4zMjkzOTQ1MiAxMS4xNDk0MTQx
IEMgNy45NzE5NzA4NiAxMS4xNDk0MTQxIDcuNjcwMjE2MDYgMTEuMDYyOTg5MSA3LjQyNDEyMTA4
IDEwLjg5MDEzNjcgQyA3LjI3NzYzNTk3IDEwLjc4NzU5NzEgNy4xMjA4OTkyNiAxMC42MjM1MzYz
IDYuOTUzOTA2MjQgMTAuMzk3OTQ5MiBMIDYuOTUzOTA2MjQgMTEgTCA2LjIyNDQxNDA1IDExIEwg
Ni4yMjQ0MTQwNSA0LjUyMjQ2MDk0IFogTSA5LjI0MTI1OTc1IDkuOTQwOTE3OTcgQyA5LjQ1MzY2
MzE2IDkuNjAxMDcyNTIgOS41NTk4NjMyNyA5LjE1MjgzNDgxIDkuNTU5ODYzMjcgOC41OTYxOTE0
MSBDIDkuNTU5ODYzMjcgOC4xMDEwNzE3NCA5LjQ1MzY2MzE2IDcuNjkwOTE5NTkgOS4yNDEyNTk3
NSA3LjM2NTcyMjY2IEMgOS4wMjg4NTYzNSA3LjA0MDUyNTcyIDguNzE2MTE1MzMgNi44Nzc5Mjk2
OSA4LjMwMzAyNzMzIDYuODc3OTI5NjkgQyA3Ljk0MjY3Mzk3IDYuODc3OTI5NjkgNy42MjcwMDMz
IDcuMDExMjI5MTQgNy4zNTYwMDU4NSA3LjI3NzgzMjAzIEMgNy4wODUwMDg0IDcuNTQ0NDM0OTMg
Ni45NDk1MTE3MSA3Ljk4Mzg4MzY2IDYuOTQ5NTExNzEgOC41OTYxOTE0MSBDIDYuOTQ5NTExNzEg
OS4wMzg1NzY0MyA3LjAwNTE3NTIxIDkuMzk3NDU5NTYgNy4xMTY1MDM4OSA5LjY3Mjg1MTU2IEMg
Ny4zMjQ1MTI3NSAxMC4xOTE0MDg4IDcuNzEyNjkyNDYgMTAuNDUwNjgzNiA4LjI4MTA1NDY4IDEw
LjQ1MDY4MzYgQyA4LjcwODc5MTE5IDEwLjQ1MDY4MzYgOS4wMjg4NTYzNSAxMC4yODA3NjM0IDku
MjQxMjU5NzUgOS45NDA5MTc5NyBMIDkuMjQxMjU5NzUgOS45NDA5MTc5NyBaIE0gMTQuNDAwNDM5
NCA2LjU0Mzk0NTMxIEMgMTQuNzMyOTYwNiA2LjgwMTc1OTEgMTQuOTMyOTA5OCA3LjI0NTYwMjMy
IDE1LjAwMDI5MyA3Ljg3NTQ4ODI4IEwgMTQuMjMxMjUgNy44NzU0ODgyOCBDIDE0LjE4NDM3NDgg
Ny41ODU0NDc3NyAxNC4wNzc0NDIyIDcuMzQ0NDgzMzggMTMuOTEwNDQ5MiA3LjE1MjU4Nzg5IEMg
MTMuNzQzNDU2MiA2Ljk2MDY5MjQgMTMuNDc1MzkyNSA2Ljg2NDc0NjA5IDEzLjEwNjI1IDYuODY0
NzQ2MDkgQyAxMi42MDIzNDEyIDYuODY0NzQ2MDkgMTIuMjQxOTkzMyA3LjExMDgzNzM4IDEyLjAy
NTE5NTMgNy42MDMwMjczNCBDIDExLjg4NDU2OTYgNy45MjIzNjQ4OCAxMS44MTQyNTc4IDguMzE2
NDAzOTEgMTEuODE0MjU3OCA4Ljc4NTE1NjI1IEMgMTEuODE0MjU3OCA5LjI1NjgzODMgMTEuOTEz
ODY2MiA5LjY1MzgwNjk4IDEyLjExMzA4NTkgOS45NzYwNzQyMiBDIDEyLjMxMjMwNTcgMTAuMjk4
MzQxNSAxMi42MjU3NzkxIDEwLjQ1OTQ3MjcgMTMuMDUzNTE1NiAxMC40NTk0NzI3IEMgMTMuMzgx
NjQyMyAxMC40NTk0NzI3IDEzLjY0MTY0OTQgMTAuMzU5MTMxOSAxMy44MzM1NDQ5IDEwLjE1ODQ0
NzMgQyAxNC4wMjU0NDA0IDkuOTU3NzYyNjcgMTQuMTU4MDA3NCA5LjY4MzEwNzIxIDE0LjIzMTI1
IDkuMzM0NDcyNjYgTCAxNS4wMDAyOTMgOS4zMzQ0NzI2NiBDIDE0LjkxMjQwMTkgOS45NTg0OTky
MSAxNC42OTI2Nzc1IDEwLjQxNDc5MzUgMTQuMzQxMTEzMyAxMC43MDMzNjkxIEMgMTMuOTg5NTQ5
IDEwLjk5MTk0NDggMTMuNTM5ODQ2NSAxMS4xMzYyMzA1IDEyLjk5MTk5MjIgMTEuMTM2MjMwNSBD
IDEyLjM3Njc1NDcgMTEuMTM2MjMwNSAxMS44ODYwMzcgMTAuOTExMzc5MiAxMS41MTk4MjQyIDEw
LjQ2MTY2OTkgQyAxMS4xNTM2MTE0IDEwLjAxMTk2MDYgMTAuOTcwNTA3OCA5LjQ1MDE5ODY4IDEw
Ljk3MDUwNzggOC43NzYzNjcxOSBDIDEwLjk3MDUwNzggNy45NTAxOTExOCAxMS4xNzExODk0IDcu
MzA3MTMxMjEgMTEuNTcyNTU4NiA2Ljg0NzE2Nzk3IEMgMTEuOTczOTI3OCA2LjM4NzIwNDczIDEy
LjQ4NTE1MzEgNi4xNTcyMjY1NiAxMy4xMDYyNSA2LjE1NzIyNjU2IEMgMTMuNjM2NTI2MSA2LjE1
NzIyNjU2IDE0LjA2NzkxODIgNi4yODYxMzE1MiAxNC40MDA0Mzk0IDYuNTQzOTQ1MzEgTCAxNC40
MDA0Mzk0IDYuNTQzOTQ1MzEgWiIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybVVwcGVyY2FzZS5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9y
bVVwcGVyY2FzZS5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwYzVlY2FkYTBl
NDU2MmQ2MDRiNTU1MTk0ODlkMGY5ZDlmMDUyNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNhc2Uuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNSAr
MCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5
cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEi
IHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJN
IDMuNzc2ODU1NDcgOC4zMDE0NjQ4NCBMIDIuODUxMzE4MzYgNS42MDc4NjEzMyBMIDEuODY3Njc1
NzggOC4zMDE0NjQ4NCBMIDMuNzc2ODU1NDcgOC4zMDE0NjQ4NCBaIE0gMi40MTk2Nzc3MyA0Ljcw
MzA3NjE3IEwgMy4zNTM1MTU2MiA0LjcwMzA3NjE3IEwgNS41NjU2NzM4MyAxMC44IEwgNC42NjA4
ODg2NyAxMC44IEwgNC4wNDI0ODA0NyA4Ljk3MzgyODEzIEwgMS42MzExMDM1MiA4Ljk3MzgyODEz
IEwgMC45NzExOTE0MDYgMTAuOCBMIDAuMTI0NTExNzE5IDEwLjggTCAyLjQxOTY3NzczIDQuNzAz
MDc2MTcgWiBNIDguMDU3OTEwMTYgNy4yODA0Njg3NSBDIDguNDA2NTQ0NzEgNy4yODA0Njg3NSA4
LjY3NzcwMDg1IDcuMjMyMDQ4MDEgOC44NzEzODY3MiA3LjEzNTIwNTA4IEMgOS4xNzU3NTAyMiA2
Ljk4MzAyMzMzIDkuMzI3OTI5NjkgNi43MDkxMDAyOSA5LjMyNzkyOTY5IDYuMzEzNDI3NzMgQyA5
LjMyNzkyOTY5IDUuOTE0OTg4MjQgOS4xNjYwNjYwNyA1LjY0NjU5OSA4Ljg0MjMzMzk4IDUuNTA4
MjUxOTUgQyA4LjY1OTcxNTg4IDUuNDMwNzc3NjEgOC4zODg1NTk3NCA1LjM5MjA0MTAyIDguMDI4
ODU3NDIgNS4zOTIwNDEwMiBMIDYuNTU1NDY4NzUgNS4zOTIwNDEwMiBMIDYuNTU1NDY4NzUgNy4y
ODA0Njg3NSBMIDguMDU3OTEwMTYgNy4yODA0Njg3NSBaIE0gOC4zMzU5ODYzMyAxMC4wOTQ0MzM2
IEMgOC44NDIzMzY1MiAxMC4wOTQ0MzM2IDkuMjAzNDE2ODkgOS45NDc3ODc5MiA5LjQxOTIzODI4
IDkuNjU0NDkyMTkgQyA5LjU1NDgxODM5IDkuNDY5MTA3MTUgOS42MjI2MDc0MiA5LjI0NDk4ODI5
IDkuNjIyNjA3NDIgOC45ODIxMjg5MSBDIDkuNjIyNjA3NDIgOC41Mzk0MTgzNiA5LjQyNDc3NDEx
IDguMjM3ODI2MzIgOS4wMjkxMDE1NiA4LjA3NzM0Mzc1IEMgOC44MTg4MTQwNSA3Ljk5MTU2ODU4
IDguNTQwNzQwNjYgNy45NDg2ODE2NCA4LjE5NDg3MzA1IDcuOTQ4NjgxNjQgTCA2LjU1NTQ2ODc1
IDcuOTQ4NjgxNjQgTCA2LjU1NTQ2ODc1IDEwLjA5NDQzMzYgTCA4LjMzNTk4NjMzIDEwLjA5NDQz
MzYgWiBNIDUuNzQ2MTQyNTggNC43MDMwNzYxNyBMIDguMzY1MDM5MDYgNC43MDMwNzYxNyBDIDku
MDc4OTA5ODIgNC43MDMwNzYxNyA5LjU4NjYzNTg2IDQuOTE2MTI3NDMgOS44ODgyMzI0MiA1LjM0
MjIzNjMzIEMgMTAuMDY1MzE2NiA1LjU5NDAyNzk1IDEwLjE1Mzg1NzQgNS44ODQ1NTIzOSAxMC4x
NTM4NTc0IDYuMjEzODE4MzYgQyAxMC4xNTM4NTc0IDYuNTk4NDIzMTUgMTAuMDQ0NTY0OSA2Ljkx
Mzg0OTY4IDkuODI1OTc2NTYgNy4xNjAxMDc0MiBDIDkuNzEyNTMxOTggNy4yOTAxNTM2NSA5LjU0
OTI4NDkyIDcuNDA5MTMwMzIgOS4zMzYyMzA0NyA3LjUxNzA0MTAyIEMgOS42NDg4OTQ3OSA3LjYz
NjAxOTQ4IDkuODgyNjk3NzkgNy43NzAyMTQxIDEwLjAzNzY0NjUgNy45MTk2Mjg5MSBDIDEwLjMx
MTU3MzYgOC4xODUyNTUyMyAxMC40NDg1MzUyIDguNTUxODY5NDEgMTAuNDQ4NTM1MiA5LjAxOTQ4
MjQyIEMgMTAuNDQ4NTM1MiA5LjQxMjM4ODAzIDEwLjMyNTQwODEgOS43Njc5MzQ2MSAxMC4wNzkx
NTA0IDEwLjA4NjEzMjggQyA5LjcxMTE0NzI1IDEwLjU2MjA0NjcgOS4xMjU5NDgwMiAxMC44IDgu
MzIzNTM1MTYgMTAuOCBMIDUuNzQ2MTQyNTggMTAuOCBMIDUuNzQ2MTQyNTggNC43MDMwNzYxNyBa
IE0gMTUuMjUyNTM5MSA1LjE0NzE2Nzk3IEMgMTUuNjc4NjQ4IDUuNTUzOTA4MjggMTUuOTE1MjE3
OSA2LjAxNTk4MDQ5IDE1Ljk2MjI1NTkgNi41MzMzOTg0NCBMIDE1LjE1NzA4MDEgNi41MzMzOTg0
NCBDIDE1LjA2NTc3MSA2LjE0MDQ5MjgzIDE0Ljg4Mzg0NzQgNS44MjkyMTY2NCAxNC42MTEzMDM3
IDUuNTk5NTYwNTUgQyAxNC4zMzg3NiA1LjM2OTkwNDQ1IDEzLjk1NjIzNjIgNS4yNTUwNzgxMyAx
My40NjM3MjA3IDUuMjU1MDc4MTMgQyAxMi44NjMyOTQ1IDUuMjU1MDc4MTMgMTIuMzc4Mzk1NCA1
LjQ2NjA1NDIxIDEyLjAwOTAwODggNS44ODgwMTI3IEMgMTEuNjM5NjIyMiA2LjMwOTk3MTE5IDEx
LjQ1NDkzMTYgNi45NTY3MzM5MiAxMS40NTQ5MzE2IDcuODI4MzIwMzEgQyAxMS40NTQ5MzE2IDgu
NTQyMTkxMDcgMTEuNjIxNjM3MyA5LjEyMTE2NDc3IDExLjk1NTA1MzcgOS41NjUyNTg3OSBDIDEy
LjI4ODQ3MDEgMTAuMDA5MzUyOCAxMi43ODU4MjAzIDEwLjIzMTM5NjUgMTMuNDQ3MTE5MSAxMC4y
MzEzOTY1IEMgMTQuMDU1ODQ2MSAxMC4yMzEzOTY1IDE0LjUxOTMwMTggOS45OTc1OTM0OCAxNC44
Mzc1IDkuNTI5OTgwNDcgQyAxNS4wMDYyODM0IDkuMjgzNzIyNzMgMTUuMTMyMTc3MyA4Ljk1OTk5
NTUgMTUuMjE1MTg1NSA4LjU1ODc4OTA2IEwgMTYuMDIwMzYxMyA4LjU1ODc4OTA2IEMgMTUuOTQ4
NDIwOSA5LjIwMDcxOTM2IDE1LjcxMDQ2NzUgOS43Mzg4ODEyOSAxNS4zMDY0OTQxIDEwLjE3MzI5
MSBDIDE0LjgyMjI3OTUgMTAuNjk2MjQyOCAxNC4xNjkyOTEyIDEwLjk1NzcxNDggMTMuMzQ3NTA5
OCAxMC45NTc3MTQ4IEMgMTIuNjM5MTcyOSAxMC45NTc3MTQ4IDEyLjA0NDI4OTUgMTAuNzQzMjgw
MSAxMS41NjI4NDE4IDEwLjMxNDQwNDMgQyAxMC45MjkyMTIzIDkuNzQ3MTgxNDEgMTAuNjEyNDAy
MyA4Ljg3MTQ1Nzc0IDEwLjYxMjQwMjMgNy42ODcyMDcwMyBDIDEwLjYxMjQwMjMgNi43ODc5NTEy
MyAxMC44NTAzNTU3IDYuMDUwNTcyNTQgMTEuMzI2MjY5NSA1LjQ3NTA0ODgzIEMgMTEuODQwOTIw
NSA0Ljg0OTcyMDE4IDEyLjU1MDYzMDIgNC41MzcwNjA1NSAxMy40NTU0MTk5IDQuNTM3MDYwNTUg
QyAxNC4yMjczOTY0IDQuNTM3MDYwNTUgMTQuODI2NDMwMiA0Ljc0MDQyNzY1IDE1LjI1MjUzOTEg
NS4xNDcxNjc5NyBMIDE1LjI1MjUzOTEgNS4xNDcxNjc5NyBaIi8+Ci08L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHls
ZU5vbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zp
c3VhbFN0eWxlTm9uZS5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNjU0YjI5
ODFiZGZkOTgwNWQwOGYyNmEyMDM3ZTM0M2FiZjczYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdo
dCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmll
d0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAi
IHkxPSI4IiB4Mj0iMTQiIHkyPSI4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZVByb3BlcnR5TGlua2Vk
LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxT
dHlsZVByb3BlcnR5TGlua2VkLnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk2
ZGFhMTg1ODgwMDg0ZDc5YzM3ZWI3ZTZlYzIzOTlkNTMxNmNlNy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eUxpbmtlZC5zdmcKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZl
cnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8Y2lyY2xlIGZpbGw9ImN1cnJl
bnRDb2xvciIgY3g9IjgiIGN5PSI4IiByPSI0Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZVByb3BlcnR5
VW5saW5rZWQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1Zpc3VhbFN0eWxlUHJvcGVydHlVbmxpbmtlZC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ3ZGQ2MTE0ZjA4YTNhN2MwNmE2ZGVmMTExYWVkMzVkN2Q2ZDBiYjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlUHJvcGVydHlVbmxpbmtlZC5zdmcK
KysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIg
aWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cGF0aCBm
aWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0gNi41IDQgQyAwIDQgMCAxMiA2LjUgMTIiLz4KLSAgICA8
cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0gOS41IDQgQyAxNiA0IDE2IDEyIDkuNSAxMiIv
PgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0
bWwKaW5kZXggNjZiNzZiMGYxNzUxODY4ZWQ0MDQxMDZiZmJiZGFjMDg4OTU5YjdkOC4uODg0ZWM3
NjQyZjg2MzAxNDk0NGNhMjJiNmFlOWQzOGYxZDQ3ZTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMjE3LDIxICsyMTcsNiBAQAogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVHlwZVRyZWVFbGVtZW50LmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9UeXBlVHJlZVZpZXcuY3Nz
Ij4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1ZhcmlhYmxlcy5jc3Mi
PgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVCYWNr
Z3JvdW5kUGlja2VyLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5jc3Mi
PgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWwuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zp
c3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5jc3MiPgotICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveC5j
c3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVQ
cm9wZXJ0eUVkaXRvci5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvckxpbmsuY3NzIj4KLSAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3Nz
Ij4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlU2Vs
ZWN0b3JTZWN0aW9uLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5jc3MiPgot
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdF
ZGl0b3IuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3Vh
bFN0eWxlVW5pdFNsaWRlci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvV2ViU29ja2V0Q29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL1hIUkJyZWFrcG9pbnRQb3BvdmVyLmNzcyI+CiAKQEAgLTUyNiw3ICs1
MTEsNiBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJh
clBhbmVsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUnVsZXNTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9D
b21wdXRlZFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4K
IAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3Jp
cHQ+CkBAIC03OTUsMjkgKzc3OSw2IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1hIUkJyZWFr
cG9pbnRQb3BvdmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvWEhSQnJl
YWtwb2ludFRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUJhc2ljSW5wdXQuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtl
eXdvcmRFZGl0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxT
dHlsZUZvbnRGYW1pbHlMaXN0RWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0Lmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlj
a2VyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVOdW1i
ZXJJbnB1dEJveC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0
eWxlUHJvcGVydHlDb21iaW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdz
L1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yU2Vj
dGlvbi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlU2Vs
ZWN0b3JUcmVlSXRlbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3Vh
bFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5qcyI+PC9zY3JpcHQ+Ci0KICAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3Nj
cmlwdD4KIApAQCAtODY1LDcgKzgyNiw2IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L1RhcmdldE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9UaW1lbGluZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9UeXBlVG9rZW5Bbm5vdGF0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1dvcmtlck1hbmFnZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9YSFJCcmVha3BvaW50VHJlZUNvbnRyb2xs
ZXIuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qcwpp
bmRleCAxZTJkNmMxZmZhYjQ2NjI3MDZiYzRkYjIwZjg2YWY5MWVjNGJjYTgyLi41Mzk2MjliOGU2
YmZhYjFkMmU4NmM1NDBmNjA4NjI3OTIzNTM2ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0VsZW1lbnRzVGFi
Q29udGVudFZpZXcuanMKQEAgLTMzLDkgKzMzLDYgQEAgV0kuRWxlbWVudHNUYWJDb250ZW50Vmll
dyA9IGNsYXNzIEVsZW1lbnRzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3MK
ICAgICAgICAgaWYgKHdpbmRvdy5MYXllclRyZWVBZ2VudCAmJiAhV0kuc2V0dGluZ3MuZXhwZXJp
bWVudGFsRW5hYmxlTGF5ZXJzVGFiLnZhbHVlKQogICAgICAgICAgICAgZGV0YWlsc1NpZGViYXJQ
YW5lbENvbnN0cnVjdG9ycy5wdXNoKFdJLkxheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwpOwog
Ci0gICAgICAgIGlmIChXSS5zZXR0aW5ncy5leHBlcmltZW50YWxMZWdhY3lWaXN1YWxTaWRlYmFy
LnZhbHVlKQotICAgICAgICAgICAgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycy5wdXNo
KFdJLlZpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCk7Ci0KICAgICAgICAgc3VwZXIoaWRl
bnRpZmllciB8fCAiZWxlbWVudHMiLCAiZWxlbWVudHMiLCB0YWJCYXJJdGVtLCBudWxsLCBkZXRh
aWxzU2lkZWJhclBhbmVsQ29uc3RydWN0b3JzLCB0cnVlKTsKIAogICAgICAgICBXSS5mcmFtZVJl
c291cmNlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2
ZW50Lk1haW5GcmFtZURpZENoYW5nZSwgdGhpcy5fbWFpbkZyYW1lRGlkQ2hhbmdlLCB0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nl
dHRpbmdzVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TZXR0aW5nc1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IGQyZGNlZmZhMzgyMDYx
ZmU0YjA4MGIyNjNiZmI4MWJhMTJmNDQ3ZmYuLmM0ZGY2NGVhMTAzNjBiNzk0NzQ2NTg0OTkyMWZi
MWE5OTVkMzI5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NldHRpbmdzVGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2V0dGluZ3NUYWJDb250ZW50Vmlldy5qcwpAQCAt
MjQyLDcgKzI0Miw2IEBAIFdJLlNldHRpbmdzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBTZXR0aW5n
c1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuVGFiQ29udGVudFZpCiAgICAgICAgIGlmICh3aW5k
b3cuQ1NTQWdlbnQpIHsKICAgICAgICAgICAgIGxldCBzdHlsZXNHcm91cCA9IGV4cGVyaW1lbnRh
bFNldHRpbmdzVmlldy5hZGRHcm91cChXSS5VSVN0cmluZygiU3R5bGVzIFNpZGViYXI6IikpOwog
ICAgICAgICAgICAgc3R5bGVzR3JvdXAuYWRkU2V0dGluZyhXSS5zZXR0aW5ncy5leHBlcmltZW50
YWxMZWdhY3lTdHlsZUVkaXRvciwgV0kuVUlTdHJpbmcoIkxlZ2FjeSBTdHlsZSBFZGl0b3IiKSk7
Ci0gICAgICAgICAgICBzdHlsZXNHcm91cC5hZGRTZXR0aW5nKFdJLnNldHRpbmdzLmV4cGVyaW1l
bnRhbExlZ2FjeVZpc3VhbFNpZGViYXIsIFdJLlVJU3RyaW5nKCJMZWdhY3kgVmlzdWFsIFN0eWxl
cyBQYW5lbCIpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh3aW5kb3cuTGF5ZXJUcmVlQWdl
bnQpIHsKQEAgLTI3Nyw3ICsyNzYsNiBAQCBXSS5TZXR0aW5nc1RhYkNvbnRlbnRWaWV3ID0gY2xh
c3MgU2V0dGluZ3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLlRhYkNvbnRlbnRWaQogICAgICAg
ICB9CiAKICAgICAgICAgbGlzdGVuRm9yQ2hhbmdlKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbExl
Z2FjeVN0eWxlRWRpdG9yKTsKLSAgICAgICAgbGlzdGVuRm9yQ2hhbmdlKFdJLnNldHRpbmdzLmV4
cGVyaW1lbnRhbExlZ2FjeVZpc3VhbFNpZGViYXIpOwogICAgICAgICBsaXN0ZW5Gb3JDaGFuZ2Uo
V0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsRW5hYmxlTGF5ZXJzVGFiKTsKICAgICAgICAgbGlzdGVu
Rm9yQ2hhbmdlKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbEVuYWJsZVNvdXJjZXNUYWIpOwogICAg
ICAgICBsaXN0ZW5Gb3JDaGFuZ2UoV0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsRW5hYmxlTmV3VGFi
QmFyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuY3NzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjc4ZmQ1Y2M0MjY2NjVhNmI0OTkzOGY2NmIy
NTM0OWM4NGViZTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
QmFja2dyb3VuZFBpY2tlci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IERldmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNv
bT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVy
dHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5ncmFkaWVudCB7Ci0gICAgd2lk
dGg6IDM4cHg7Ci0gICAgaGVpZ2h0OiAxOHB4OwotICAgIG1hcmdpbjogMXB4IDAgMDsKLSAgICBi
b3JkZXI6IDFweCBzb2xpZCBoc2xhKDAsIDAlLCAyNSUsIDAuNCk7Ci0gICAgYm9yZGVyLXJhZGl1
czogNHB4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5k
LXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguZ3Jh
ZGllbnQtdmFsdWUpID4gLmlubGluZS1zd2F0Y2guZ3JhZGllbnQgewotICAgIGRpc3BsYXk6IG5v
bmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlj
a2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3
YXRjaC5ncmFkaWVudDpob3ZlciB7Ci0gICAgYm9yZGVyLWNvbG9yOiBoc2xhKDAsIDAlLCAyNSUs
IDAuOCk7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQt
cGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5l
LXN3YXRjaC5ncmFkaWVudDphY3RpdmUgewotICAgIGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAy
NSUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5kLXBp
Y2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmlubGluZS1z
d2F0Y2guZ3JhZGllbnQgPiBzcGFuIHsKLSAgICBib3JkZXI6IG5vbmU7Ci19Ci0KLS52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIuZ3JhZGllbnQtdmFsdWUgPiAuaW5saW5lLXN3YXRj
aC5ncmFkaWVudCArIC52YWx1ZS1pbnB1dCB7Ci0gICAgbWFyZ2luLWxlZnQ6IC0zcHg7Ci0gICAg
cGFkZGluZy1sZWZ0OiA1cHg7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKLSAgICBi
b3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwotICAgIGJvcmRlci1sZWZ0OiBub25lOwotfQot
Ci0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5kLXBpY2tlciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZhbHVlLWlucHV0IHsKLSAg
ICBtYXJnaW46IDFweCA0cHggM3B4IDA7Ci0gICAgcGFkZGluZzogMCAzcHg7Ci0gICAgYm9yZGVy
LXJhZGl1czogNHB4OwotICAgIGJvcmRlcjogc29saWQgMXB4IGhzbCgwLCAwJSwgODMlKTsKLSAg
ICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtc2l6ZTogMTBweDsKLX0KLQotLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIuYmFja2dyb3VuZC1waWNrZXIgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52YWx1ZS1pbnB1dFtkaXNhYmxlZF0gewotICAg
IG9wYWNpdHk6IDAuNzsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLX0KLQotLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIuYmFja2dyb3VuZC1waWNrZXIgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52YWx1ZS10eXBlLXBpY2tlci1zZWxlY3Qgewot
ICAgIG1heC13aWR0aDogMTcwcHg7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tn
cm91bmRQaWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMGYzZTFlMGMy
NjNkMjVjZTAwZDc3M2Y0ODM2MTQ1ZWE1NTRiYjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MjI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgRGV2aW4gUm91c3NvIDx3ZWJr
aXRAZGV2aW5yb3Vzc28uY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0ku
VmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyID0gY2xhc3MgVmlzdWFsU3R5bGVCYWNrZ3JvdW5k
UGlja2VyIGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAgIGNvbnN0
cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBsYXlvdXRSZXZlcnNl
ZCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFs
dWVzLCBudWxsLCAiYmFja2dyb3VuZC1waWNrZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAg
ICAgdGhpcy5fZ3JhZGllbnRTd2F0Y2ggPSBuZXcgV0kuSW5saW5lU3dhdGNoKFdJLklubGluZVN3
YXRjaC5UeXBlLkdyYWRpZW50KTsKLSAgICAgICAgdGhpcy5fZ3JhZGllbnRTd2F0Y2guYWRkRXZl
bnRMaXN0ZW5lcihXSS5JbmxpbmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl9ncmFk
aWVudFN3YXRjaENvbG9yQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fZ3JhZGllbnRTd2F0Y2guZWxlbWVudCk7Ci0KLSAgICAgICAg
dGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIp
OwotICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2YWx1ZS1p
bnB1dCIpOwotICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC50eXBlID0gInVybCI7Ci0g
ICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gV0kuVUlTdHJpbmco
IkVudGVyIGEgVVJMIik7Ci0gICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImlucHV0IiwgdGhpcy5kZWJvdW5jZSgyNTApLl92YWx1ZUlucHV0VmFsdWVDaGFu
Z2VkKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl92YWx1
ZUlucHV0RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwotICAgICAgICB0aGlzLl92YWx1ZVR5
cGVQaWNrZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoInZhbHVlLXR5cGUtcGlja2VyLXNlbGVjdCIp
OwotICAgICAgICBpZiAodGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpCi0gICAgICAgICAg
ICB0aGlzLl92YWx1ZVR5cGVQaWNrZXJFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIk9wdGlv
bi1jbGljayB0byBzaG93IGFsbCB2YWx1ZXMiKTsKLQotICAgICAgICBsZXQgaW1hZ2VPcHRpb24g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgaW1hZ2VPcHRpb24u
dmFsdWUgPSAidXJsIjsKLSAgICAgICAgaW1hZ2VPcHRpb24udGV4dCA9IFdJLlVJU3RyaW5nKCJJ
bWFnZSIpOwotICAgICAgICB0aGlzLl92YWx1ZVR5cGVQaWNrZXJFbGVtZW50LmFwcGVuZENoaWxk
KGltYWdlT3B0aW9uKTsKLQotICAgICAgICBsZXQgbGluZWFyR3JhZGllbnRPcHRpb24gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgbGluZWFyR3JhZGllbnRPcHRp
b24udmFsdWUgPSAibGluZWFyLWdyYWRpZW50IjsKLSAgICAgICAgbGluZWFyR3JhZGllbnRPcHRp
b24udGV4dCA9IFdJLlVJU3RyaW5nKCJMaW5lYXIgR3JhZGllbnQiKTsKLSAgICAgICAgdGhpcy5f
dmFsdWVUeXBlUGlja2VyRWxlbWVudC5hcHBlbmRDaGlsZChsaW5lYXJHcmFkaWVudE9wdGlvbik7
Ci0KLSAgICAgICAgbGV0IHJhZGlhbEdyYWRpZW50T3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgib3B0aW9uIik7Ci0gICAgICAgIHJhZGlhbEdyYWRpZW50T3B0aW9uLnZhbHVlID0gInJh
ZGlhbC1ncmFkaWVudCI7Ci0gICAgICAgIHJhZGlhbEdyYWRpZW50T3B0aW9uLnRleHQgPSBXSS5V
SVN0cmluZygiUmFkaWFsIEdyYWRpZW50Iik7Ci0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tl
ckVsZW1lbnQuYXBwZW5kQ2hpbGQocmFkaWFsR3JhZGllbnRPcHRpb24pOwotCi0gICAgICAgIGxl
dCByZXBlYXRpbmdMaW5lYXJHcmFkaWVudE9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im9wdGlvbiIpOwotICAgICAgICByZXBlYXRpbmdMaW5lYXJHcmFkaWVudE9wdGlvbi52YWx1ZSA9
ICJyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50IjsKLSAgICAgICAgcmVwZWF0aW5nTGluZWFyR3Jh
ZGllbnRPcHRpb24udGV4dCA9IFdJLlVJU3RyaW5nKCJSZXBlYXRpbmcgTGluZWFyIEdyYWRpZW50
Iik7Ci0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQocmVw
ZWF0aW5nTGluZWFyR3JhZGllbnRPcHRpb24pOwotCi0gICAgICAgIGxldCByZXBlYXRpbmdSYWRp
YWxHcmFkaWVudE9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAg
ICAgICByZXBlYXRpbmdSYWRpYWxHcmFkaWVudE9wdGlvbi52YWx1ZSA9ICJyZXBlYXRpbmctcmFk
aWFsLWdyYWRpZW50IjsKLSAgICAgICAgcmVwZWF0aW5nUmFkaWFsR3JhZGllbnRPcHRpb24udGV4
dCA9IFdJLlVJU3RyaW5nKCJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50Iik7Ci0gICAgICAgIHRo
aXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQocmVwZWF0aW5nUmFkaWFsR3Jh
ZGllbnRPcHRpb24pOwotCi0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7Ci0KLSAgICAgICAgdGhpcy5f
Y3JlYXRlVmFsdWVPcHRpb25zKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljKTsKLSAgICAgICAg
dGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVtZW50cyA9IG51bGw7Ci0KLSAgICAgICAgdGhpcy5fdmFs
dWVUeXBlUGlja2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9r
ZXl3b3JkU2VsZWN0TW91c2VEb3duLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl92YWx1ZVR5
cGVQaWNrZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMuX2hhbmRsZUtl
eXdvcmRDaGFuZ2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMu
X2N1cnJlbnRUeXBlID0gInVybCI7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQg
dmFsdWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnZh
bHVlOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICgh
dmFsdWUgfHwgIXZhbHVlLmxlbmd0aCB8fCB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBjb25zdCBpc0tleXdvcmQgPSB0aGlzLnZhbHVlSXNTdXBw
b3J0ZWRLZXl3b3JkKHZhbHVlKTsKLSAgICAgICAgdGhpcy5fY3VycmVudFR5cGUgPSBpc0tleXdv
cmQgPyB2YWx1ZSA6IHZhbHVlLnN1YnN0cmluZygwLCB2YWx1ZS5pbmRleE9mKCIoIikpOwotICAg
ICAgICB0aGlzLl91cGRhdGVWYWx1ZUlucHV0KCk7Ci0gICAgICAgIGlmICghaXNLZXl3b3JkKQot
ICAgICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZS5zdWJzdHJp
bmcodmFsdWUuaW5kZXhPZigiKCIpICsgMSwgdmFsdWUubGVuZ3RoIC0gMSk7Ci0KLSAgICAgICAg
dGhpcy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudC52YWx1ZSA9IHRoaXMuX2N1cnJlbnRUeXBlOwot
Ci0gICAgICAgIGlmICghdGhpcy5fY3VycmVudFR5cGUuaW5jbHVkZXMoImdyYWRpZW50IikpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlR3JhZGllbnQoKTsKLSAg
ICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICBpZiAodGhp
cy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh0aGlzLl9jdXJyZW50VHlwZSkpCi0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fY3VycmVudFR5cGU7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJl
bnRUeXBlICsgIigiICsgdGhpcy52YWx1ZSArICIpIjsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0
ZWQKLQotICAgIHBhcnNlVmFsdWUodGV4dCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHZhbGlkUHJl
Zml4ZXMgPSBbInVybCIsICJsaW5lYXItZ3JhZGllbnQiLCAicmFkaWFsLWdyYWRpZW50IiwgInJl
cGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCAicmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCJdOwot
ICAgICAgICByZXR1cm4gdmFsaWRQcmVmaXhlcy5zb21lKChpdGVtKSA9PiB0ZXh0LnN0YXJ0c1dp
dGgoaXRlbSkpID8gW3RleHQsIHRleHRdIDogbnVsbDsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRl
Ci0KLSAgICBfdXBkYXRlVmFsdWVJbnB1dCgpCi0gICAgewotICAgICAgICBjb25zdCBzdXBwb3J0
ZWRLZXl3b3JkID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh0aGlzLl9jdXJyZW50VHlw
ZSk7Ci0gICAgICAgIGNvbnN0IGdyYWRpZW50VmFsdWUgPSB0aGlzLl9jdXJyZW50VHlwZS5pbmNs
dWRlcygiZ3JhZGllbnQiKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJncmFkaWVudC12YWx1ZSIsICFzdXBwb3J0ZWRLZXl3b3JkICYmIGdyYWRpZW50VmFs
dWUpOwotICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5kaXNhYmxlZCA9IHN1cHBvcnRl
ZEtleXdvcmQ7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWRLZXl3b3JkKSB7Ci0gICAgICAgICAgICB0
aGlzLl92YWx1ZUlucHV0RWxlbWVudC52YWx1ZSA9ICIiOwotICAgICAgICAgICAgdGhpcy5fdmFs
dWVJbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBXSS5VSVN0cmluZygiVXNpbmcgS2V5d29yZCBW
YWx1ZSIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRU
eXBlID09PSAiaW1hZ2UiKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1l
bnQudHlwZSA9ICJ1cmwiOwotICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50
LnBsYWNlaG9sZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgICAgICB9
IGVsc2UgaWYgKGdyYWRpZW50VmFsdWUpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZUlu
cHV0RWxlbWVudC50eXBlID0gInRleHQiOwotICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSW5w
dXRFbGVtZW50LnBsYWNlaG9sZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIGEgR3JhZGllbnQiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIF91cGRhdGVHcmFkaWVudCgp
Ci0gICAgewotICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc3ludGhlc2l6ZWRWYWx1ZTsKLSAg
ICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fY3VycmVudFR5cGUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fZ3JhZGllbnRTd2F0Y2gudmFsdWUgPSBXSS5H
cmFkaWVudC5mcm9tU3RyaW5nKHZhbHVlKTsKLSAgICB9Ci0KLSAgICBfZ3JhZGllbnRTd2F0Y2hD
b2xvckNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuZGF0
YS52YWx1ZS50b1N0cmluZygpOwotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAg
IH0KLQotICAgIF92YWx1ZUlucHV0VmFsdWVDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAg
dGhpcy5fdXBkYXRlR3JhZGllbnQoKTsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsK
LSAgICB9Ci0KLSAgICBfa2V5d29yZFNlbGVjdE1vdXNlRG93bihldmVudCkKLSAgICB7Ci0gICAg
ICAgIGlmIChldmVudC5hbHRLZXkpCi0gICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFZhbHVl
cygpOwotICAgICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc1N1cHBvcnRlZEFkdmFuY2VkS2V5
d29yZCh0aGlzLnZhbHVlKSkKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFkdmFuY2VkVmFsdWVz
KCk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAg
ICAgICAgdGhpcy5fY3VycmVudFR5cGUgPSB0aGlzLl92YWx1ZVR5cGVQaWNrZXJFbGVtZW50LnZh
bHVlOwotICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZUlucHV0KCk7Ci0gICAgICAgIHRoaXMuX3Vw
ZGF0ZUdyYWRpZW50KCk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7Ci0gICAgfQot
Ci0gICAgX2NyZWF0ZVZhbHVlT3B0aW9ucyh2YWx1ZXMpCi0gICAgewotICAgICAgICBsZXQgYWRk
ZWRFbGVtZW50cyA9IFtdOwotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7Ci0gICAg
ICAgICAgICBsZXQgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7Ci0g
ICAgICAgICAgICBvcHRpb24udmFsdWUgPSBrZXk7Ci0gICAgICAgICAgICBvcHRpb24udGV4dCA9
IHZhbHVlc1trZXldOwotICAgICAgICAgICAgdGhpcy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudC5h
cHBlbmRDaGlsZChvcHRpb24pOwotICAgICAgICAgICAgYWRkZWRFbGVtZW50cy5wdXNoKG9wdGlv
bik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0g
ICAgX2FkZEFkdmFuY2VkVmFsdWVzKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9hZHZhbmNl
ZFZhbHVlc0VsZW1lbnRzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3Zh
bHVlVHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aHIiKSk7Ci0gICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMgPSB0aGlzLl9jcmVh
dGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpOwotICAgIH0KLQot
ICAgIF9yZW1vdmVBZHZhbmNlZFZhbHVlcygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Fk
dmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhp
cy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9hZHZhbmNlZFZhbHVl
c0VsZW1lbnRzWzBdLnByZXZpb3VzU2libGluZyk7Ci0gICAgICAgIGZvciAobGV0IGVsZW1lbnQg
b2YgdGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVtZW50cykKLSAgICAgICAgICAgIHRoaXMuX3ZhbHVl
VHlwZVBpY2tlckVsZW1lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5f
YWR2YW5jZWRWYWx1ZXNFbGVtZW50cyA9IG51bGw7Ci0gICAgfQotCi0gICAgX3RvZ2dsZVRhYmJp
bmdPZlNlbGVjdGFibGVFbGVtZW50cyhkaXNhYmxlZCkKLSAgICB7Ci0gICAgICAgIGxldCB0YWJJ
bmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7Ci0gICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRF
bGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXg7Ci0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tl
ckVsZW1lbnQudGFiSW5kZXggPSB0YWJJbmRleDsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYXNpY0lu
cHV0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVCYXNpY0lucHV0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGJmNmNh
NGNmOTBlZjAzNGNiMWZhMGExOWZiYzVkZGMzMzI2OWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFzaWNJbnB1dC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDx3ZWJraXRA
ZGV2aW5yb3Vzc28uY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlz
dWFsU3R5bGVCYXNpY0lucHV0ID0gY2xhc3MgVmlzdWFsU3R5bGVCYXNpY0lucHV0IGV4dGVuZHMg
V0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5
TmFtZXMsIHRleHQsIHBsYWNlaG9sZGVyLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGwsICJiYXNpYy1pbnB1dCIsIGxh
eW91dFJldmVyc2VkKTsKLQotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSB0aGlzLmNvbnRl
bnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOwotICAgICAgICB0aGlzLl9pbnB1dEVsZW1l
bnQuc3BlbGxjaGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0
cmlidXRlKCJwbGFjZWhvbGRlciIsIHBsYWNlaG9sZGVyIHx8ICIiKTsKLSAgICAgICAgdGhpcy5f
aW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5kZWJvdW5jZSgyNTAp
Ll9oYW5kbGVJbnB1dEVsZW1lbnRJbnB1dCk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAg
ICBnZXQgdmFsdWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudC52
YWx1ZSB8fCBudWxsOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAg
ICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZSB8fCAiIjsKLSAg
ICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy52YWx1ZTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfaGFuZGxlSW5wdXRF
bGVtZW50SW5wdXQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVl
OwotICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCkgewotICAgICAgICAg
ICAgbGV0IHZhbGlkSXRlbXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdmFs
dWUuc3BsaXQoLyhbXlwiXCdcc10rfFwiW15cIl0qXCJ8XCdbXlwnXSpcJykvKSkgewotICAgICAg
ICAgICAgICAgIGlmICghaXRlbS5sZW5ndGggfHwgKCFpdGVtLmhhc01hdGNoaW5nRXNjYXBlZFF1
b3RlcygpICYmICEvXltcd1xzXC1cLlwoXCldKyQvLnRlc3QoaXRlbSkpKQotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgICAgIHZhbGlkSXRlbXMucHVzaChpdGVt
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbGlkSXRlbXMu
ZmlsdGVyKGl0ZW0gPT4gaXRlbS50cmltKCkubGVuZ3RoKS5qb2luKCIgIik7Ci0gICAgICAgIH0K
LQotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNv
bG9yUGlja2VyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1MDUwNzk2M2YxNDhhYTM4MDNkMzhmYTQzNDI5NjZhNGIwNDU3ZDM2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotfQotCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtc3BlY2lhbC1wcm9wZXJ0eS1wbGFj
ZWhvbGRlciB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5jb2xvciB7Ci0gICAgd2lkdGg6IDIycHg7
Ci0gICAgaGVpZ2h0OiAxOHB4OwotICAgIG1hcmdpbi10b3A6IDFweDsKLSAgICBtYXJnaW4tcmln
aHQ6IDA7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgaHNsYSgwLCAwJSwgMjUlLCAwLjQpOwotICAg
IGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZh
bHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoLmNvbG9yOmhvdmVyIHsKLSAgICBib3JkZXIt
Y29sb3I6IGhzbGEoMCwgMCUsIDI1JSwgMC44KTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5jb2xvcjphY3RpdmUgewotICAgIGJvcmRl
ci1jb2xvcjogaHNsKDAsIDAlLCAyNSUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoLmNvbG9yID4gc3BhbiB7Ci0gICAgYm9yZGVyOiBu
b25lOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1w
aWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IGlucHV0IHsK
LSAgICBtYXJnaW46IDFweCAwIDNweCAtM3B4OwotICAgIHBhZGRpbmc6IDAgM3B4IDAgNXB4Owot
ICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Ci0gICAgYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXM6IDRweDsKLSAgICBib3JkZXI6IHNvbGlkIDFweCBoc2woMCwgMCUsIDgzJSk7Ci0g
ICAgYm9yZGVyLWxlZnQ6IG5vbmU7Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsKLSAgICBmb250LXNp
emU6IDEwcHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNv
bG9yLXBpY2tlci5tdWx0aXBsZSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLnZpc3VhbC1zdHlsZS1tdWx0aXBsZS1wcm9wZXJ0eS1wbGFjZWhvbGRlciB7Ci0gICAg
d2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwotICAgIGxlZnQ6IDE4cHg7Ci0gICAgcGFkZGluZy1y
aWdodDogM3B4OwotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2Vy
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVDb2xvclBpY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwMGUxMTRl
YTg4NTM3YmI0OGMwZDUyZGQyMjdkMTA2NzNhNjhiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUNvbG9yUGlja2VyID0gY2xhc3Mg
VmlzdWFsU3R5bGVDb2xvclBpY2tlciBleHRlbmRzIFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0
b3IKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBsYXlvdXRSZXZlcnNl
ZCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGws
ICJpbnB1dC1jb2xvci1waWNrZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5f
Y29sb3JTd2F0Y2ggPSBuZXcgV0kuSW5saW5lU3dhdGNoKFdJLklubGluZVN3YXRjaC5UeXBlLkNv
bG9yKTsKLSAgICAgICAgdGhpcy5fY29sb3JTd2F0Y2guYWRkRXZlbnRMaXN0ZW5lcihXSS5Jbmxp
bmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl9jb2xvclN3YXRjaENvbG9yQ2hhbmdl
ZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
Y29sb3JTd2F0Y2guZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX3RleHRJbnB1
dEVsZW1lbnQuc3BlbGxjaGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl90ZXh0SW5wdXRLZXlEb3duLmJp
bmQodGhpcykpOwotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImtleXVwIiwgdGhpcy5kZWJvdW5jZSgyNTApLl90ZXh0SW5wdXRLZXlVcCk7Ci0gICAgICAg
IHRoaXMuX3RleHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2hp
ZGVDb21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl90ZXh0SW5wdXRFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9jb21w
bGV0aW9uQ29udHJvbGxlciA9IG5ldyBXSS5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxl
cih0aGlzKTsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5FdmVudC5Db21wbGV0aW9u
U2VsZWN0ZWQsIHRoaXMuX2NvbXBsZXRpb25DbGlja2VkLCB0aGlzKTsKLQotICAgICAgICB0aGlz
Ll9mb3JtYXRDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yU3dhdGNo
KCk7Ci0gICAgICAgIHRoaXMuX2NvbG9yUHJvcGVydHkgPSB0cnVlOwotICAgIH0KLQotICAgIC8v
IFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90
ZXh0SW5wdXRFbGVtZW50LnZhbHVlOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LnZhbHVlID0gdGhp
cy5faGFzTXVsdGlwbGVDb25mbGljdGluZ1ZhbHVlcygpID8gbnVsbCA6IHZhbHVlOwotICAgICAg
ICB0aGlzLl91cGRhdGVDb2xvclN3YXRjaCgpOwotICAgIH0KLQotICAgIGdldCBwbGFjZWhvbGRl
cigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dElucHV0RWxlbWVudC5nZXRBdHRy
aWJ1dGUoInBsYWNlaG9sZGVyIik7Ci0gICAgfQotCi0gICAgc2V0IHBsYWNlaG9sZGVyKHRleHQp
Ci0gICAgewotICAgICAgICBpZiAodGV4dCAmJiB0ZXh0ID09PSB0aGlzLnBsYWNlaG9sZGVyKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl9oYXNNdWx0aXBsZUNvbmZs
aWN0aW5nVmFsdWVzKCkpCi0gICAgICAgICAgICB0ZXh0ID0gdGhpcy5zcGVjaWFsUHJvcGVydHlQ
bGFjZWhvbGRlckVsZW1lbnQudGV4dENvbnRlbnQ7Ci0KLSAgICAgICAgdGhpcy5fdGV4dElucHV0
RWxlbWVudC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgdGV4dCB8fCAidHJhbnNwYXJlbnQi
KTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsOwotICAgIH0KLQotICAgIGdldCBoYXNDb21wbGV0aW9u
cygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuaGFz
Q29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgc2V0IGNvbXBsZXRpb25zKGNvbXBsZXRpb25zKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuY29tcGxldGlvbnMgPSBj
b21wbGV0aW9uczsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfY29sb3JTd2F0Y2hD
b2xvckNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgY29sb3JTdHJpbmcgPSBldmVu
dCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEudmFsdWUgJiYgZXZlbnQuZGF0YS52YWx1ZS50
b1N0cmluZygpOwotICAgICAgICBpZiAoIWNvbG9yU3RyaW5nKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIHRoaXMudmFsdWUgPSBjb2xvclN0cmluZzsKLSAgICAgICAgdGhpcy5fdmFs
dWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlQ29sb3JTd2F0Y2goKQotICAgIHsK
LSAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5fdGV4dElucHV0RWxlbWVudC52YWx1ZTsKLSAgICAg
ICAgdGhpcy5fY29sb3JTd2F0Y2gudmFsdWUgPSBXSS5Db2xvci5mcm9tU3RyaW5nKHZhbHVlKTsK
LSAgICB9Ci0KLSAgICBfY29tcGxldGlvbkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0
aGlzLnZhbHVlID0gZXZlbnQuZGF0YS50ZXh0OwotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5n
ZSgpOwotICAgIH0KLQotICAgIF90ZXh0SW5wdXRLZXlEb3duKGV2ZW50KQotICAgIHsKLSAgICAg
ICAgaWYgKCF0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci52aXNpYmxlKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIGxldCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTsKLSAgICAgICAg
bGV0IGVudGVyS2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LkVudGVyLmtleUNvZGU7
Ci0gICAgICAgIGxldCB0YWJLZXlDb2RlID0gV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuVGFiLmtl
eUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktleUNvZGUgfHwga2V5Q29kZSA9
PT0gdGFiS2V5Q29kZSkgewotICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2NvbXBsZXRp
b25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9uOwotICAgICAgICAgICAgdGhpcy5faGlkZUNv
bXBsZXRpb25zKCk7Ci0gICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGVzY2FwZUtleUNvZGUgPSBX
SS5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUua2V5Q29kZTsKLSAgICAgICAgaWYgKGtleUNv
ZGUgPT09IGVzY2FwZUtleUNvZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX2hpZGVDb21wbGV0aW9u
cygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGtleSA9
IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgICAgIGlmIChrZXkgPT09ICJVcCIpIHsKLSAgICAg
ICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnByZXZpb3VzKCk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5ID09PSAiRG93biIpIHsKLSAg
ICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLm5leHQoKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF90ZXh0SW5wdXRLZXlVcCgpCi0gICAg
ewotICAgICAgICB0aGlzLl9zaG93Q29tcGxldGlvbnNJZkFibGUoKTsKLSAgICAgICAgdGhpcy5f
dXBkYXRlQ29sb3JTd2F0Y2goKTsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAg
ICB9Ci0KLSAgICBfc2hvd0NvbXBsZXRpb25zSWZBYmxlKCkKLSAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5oYXNDb21wbGV0aW9ucykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQg
cmVzdWx0ID0gdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX2NvbXBsZXRpb25Db250cm9s
bGVyLnVwZGF0ZSh0aGlzLnZhbHVlKSkgewotICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdJLlJl
Y3QucmVjdEZyb21DbGllbnRSZWN0KHRoaXMuX3RleHRJbnB1dEVsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkpOwotICAgICAgICAgICAgaWYgKCFib3VuZHMpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5zaG93KGJv
dW5kcywgMik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfaGlkZUNvbXBsZXRpb25zKCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhpZGUoKTsKLSAgICB9Ci0K
LSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsK
LSAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0x
IiA6IG51bGw7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9y
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGM5OGM1ZDgxMDM5MzkxMDg4ZTIzNzZmNzNhNzdkODA2NDQ4MjJlZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29y
ZEVkaXRvci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3Jk
LWVkaXRvciB7Ci0gICAgbWFyZ2luLWJvdHRvbTogNXB4OwotfQotCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQg
aHNsKDAsIDAlLCA4MyUpOwotICAgIG92ZXJmbG93OiBhdXRvOwotfQotCi0udmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEt
c2VwYXJhdGVkLWtleXdvcmQtbGlzdCB7Ci0gICAgbWluLWhlaWdodDogNTFweDsKLSAgICBtYXgt
aGVpZ2h0OiA5NHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdv
cmQtZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlz
dWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNv
bW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0gewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAg
ICBoZWlnaHQ6IDE3cHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNv
bW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1saXN0
ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVtOm50aC1jaGlsZChv
ZGQpIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNl
cGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3
b3JkLWl0ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdGVk
LWJhY2tncm91bmQtY29sb3IpICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6IHZhcigtLXNlbGVjdGVk
LWZvcmVncm91bmQtY29sb3IpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQt
bGlzdCA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbSA+IDptYXRj
aGVzKGJ1dHRvbiwgaW1nKSB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1h
LXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1r
ZXl3b3JkLWl0ZW0udmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5LWxpc3QtaXRlbS5zZWxlY3RlZDpu
b3QoLmVkaXRvci1oaWRkZW4pID4gLnRpdGxlcyA+ICogewotICAgIGNvbG9yOiB0cmFuc3BhcmVu
dDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVk
LWtleXdvcmQtZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIg
PiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0
eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0udmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5
LWxpc3QtaXRlbSA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbS1l
ZGl0b3IgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgcmlnaHQ6
IDA7Ci0gICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDVweDsKLSAgICBwYWRkaW5nOiAwOwotICAg
IGxpbmUtaGVpZ2h0OiAxN3B4OwotICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwotICAgIGZvbnQt
c2l6ZTogaW5oZXJpdDsKLSAgICBjb2xvcjogd2hpdGU7Ci0gICAgYm9yZGVyOiBub25lOwotICAg
IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotICAgIHotaW5kZXg6IDE7Ci19Ci0KLS52
aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVk
aXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1z
dHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1z
ZXBhcmF0ZWQta2V5d29yZC1pdGVtLnZpc3VhbC1zdHlsZS1mb250LWZhbWlseS1saXN0LWl0ZW0u
ZWRpdG9yLWhpZGRlbiA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRl
bS1lZGl0b3IgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVy
dHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0
ZWQta2V5d29yZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1p
dGVtID4gLnRpdGxlcyB7Ci0gICAgdG9wOiAxcHg7Ci0gICAgbGluZS1oZWlnaHQ6IDE1cHg7Ci19
Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyIC52aXN1YWwtc3R5bGUtY29tbWEt
c2VwYXJhdGVkLWtleXdvcmQtaXRlbS1lZGl0b3I6OnBsYWNlaG9sZGVyLAotLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1h
LXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1r
ZXl3b3JkLWl0ZW0gPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKLSAgICBmb250LXNpemU6IDEwcHg7
Ci0gICAgY29sb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNyk7Ci19Ci0KLS52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1z
ZXBhcmF0ZWQta2V5d29yZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5
d29yZC1pdGVtID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTo6YmVmb3JlIHsKLSAgICBjb250ZW50OiBu
b25lOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0
ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtbGlzdCA+IC52aXN1YWwt
c3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbTpub3QoLm5vLXZhbHVlKSA+IC50aXRs
ZXMgPiAuc3VidGl0bGUgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1z
ZXBhcmF0ZWQta2V5d29yZC1jb250cm9scyB7Ci0gICAgZGlzcGxheTogZmxleDsKLSAgICBib3Jk
ZXItdG9wOiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOwotfQotCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2Vw
YXJhdGVkLWtleXdvcmQtY29udHJvbHMgPiBkaXYgewotICAgIHdpZHRoOiAyMHB4OwotICAgIGhl
aWdodDogMTlweDsKLSAgICBwYWRkaW5nOiAzcHg7Ci0gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29s
aWQgaHNsKDAsIDAlLCA4MyUpOwotICAgIG9wYWNpdHk6IDAuNzsKLX0KLQotLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1h
LXNlcGFyYXRlZC1rZXl3b3JkLWNvbnRyb2xzID4gLnZpc3VhbC1zdHlsZS1yZW1vdmUtY29tbWEt
c2VwYXJhdGVkLWtleXdvcmQgewotICAgIG9yZGVyOiAyOwotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZlNDM3MmIyYmIwNTZmYzhlZTc5ZWUyMWQ4Njk1YjFm
MTZiOGJmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1h
U2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3Ig
PSBjbGFzcyBWaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvciBleHRlbmRzIFdJ
LlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5h
bWVzLCB0ZXh0LCBsb25naGFuZFByb3BlcnRpZXMsIGluc2VydE5ld0l0ZW1zQmVmb3JlU2VsZWN0
ZWQsIGxheW91dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywg
dGV4dCwgbnVsbCwgbnVsbCwgImNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciIsIGxheW91
dFJldmVyc2VkKTsKLQotICAgICAgICB0aGlzLl9pbnNlcnROZXdJdGVtc0JlZm9yZVNlbGVjdGVk
ID0gaW5zZXJ0TmV3SXRlbXNCZWZvcmVTZWxlY3RlZCB8fCBmYWxzZTsKLSAgICAgICAgdGhpcy5f
bG9uZ2hhbmRQcm9wZXJ0aWVzID0gbG9uZ2hhbmRQcm9wZXJ0aWVzIHx8IHt9OwotCi0gICAgICAg
IGxldCBsaXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7Ci0gICAgICAg
IGxpc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQt
a2V5d29yZC1saXN0Iik7Ci0gICAgICAgIGxpc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtl
eWRvd24iLCB0aGlzLl9saXN0RWxlbWVudEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRo
aXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGlzdEVsZW1lbnQpOwotCi0gICAgICAgIHRo
aXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMgPSBuZXcgV0kuVHJlZU91dGxpbmUobGlzdEVsZW1l
bnQpOwotICAgICAgICB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdvcmRzLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2Vs
ZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKLQotICAgICAgICBsZXQgY29udHJvbENvbnRhaW5lciA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBjb250cm9sQ29udGFpbmVy
LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1jb250
cm9scyIpOwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbnRyb2xD
b250YWluZXIpOwotCi0gICAgICAgIGxldCBhZGRHbHlwaEVsZW1lbnQgPSBXSS5JbWFnZVV0aWxp
dGllcy51c2VTVkdTeW1ib2woIkltYWdlcy9QbHVzMTMuc3ZnIiwgInZpc3VhbC1zdHlsZS1hZGQt
Y29tbWEtc2VwYXJhdGVkLWtleXdvcmQiKTsKLSAgICAgICAgYWRkR2x5cGhFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fYWRkRW1wdHlDb21tYVNlcGFyYXRlZEtleXdvcmQu
YmluZCh0aGlzKSk7Ci0gICAgICAgIGNvbnRyb2xDb250YWluZXIuYXBwZW5kQ2hpbGQoYWRkR2x5
cGhFbGVtZW50KTsKLQotICAgICAgICBsZXQgcmVtb3ZlR2x5cGhFbGVtZW50ID0gV0kuSW1hZ2VV
dGlsaXRpZXMudXNlU1ZHU3ltYm9sKCJJbWFnZXMvTWludXMuc3ZnIiwgInZpc3VhbC1zdHlsZS1y
ZW1vdmUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQiLCBXSS5VSVN0cmluZygiUmVtb3ZlIHNlbGVj
dGVkIGl0ZW0iKSk7Ci0gICAgICAgIHJlbW92ZUdseXBoRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX3JlbW92ZVNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRLZXl3b3JkLmJpbmQo
dGhpcykpOwotICAgICAgICBjb250cm9sQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbW92ZUdseXBo
RWxlbWVudCk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQgc2VsZWN0ZWRUcmVl
RWxlbWVudFZhbHVlKHRleHQpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRUcmVlRWxlbWVu
dCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAg
ICAgICAgaWYgKCFzZWxlY3RlZFRyZWVFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIHNlbGVjdGVkVHJlZUVsZW1lbnQuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJuby12
YWx1ZSIsICF0ZXh0IHx8ICF0ZXh0Lmxlbmd0aCk7Ci0gICAgICAgIHNlbGVjdGVkVHJlZUVsZW1l
bnQubWFpblRpdGxlID0gdGV4dDsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAg
ICB9Ci0KLSAgICBnZXQgdmFsdWUoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jb21tYVNl
cGFyYXRlZEtleXdvcmRzLmhhc0NoaWxkcmVuKQotICAgICAgICAgICAgcmV0dXJuICIiOwotCi0g
ICAgICAgIGxldCB2YWx1ZSA9ICIiOwotICAgICAgICBmb3IgKGxldCB0cmVlSXRlbSBvZiB0aGlz
Ll9jb21tYVNlcGFyYXRlZEtleXdvcmRzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAodGhp
cy5fdHJlZUVsZW1lbnRJc0VtcHR5KHRyZWVJdGVtKSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB2YWx1
ZSArPSAiLCAiOwotCi0gICAgICAgICAgICBsZXQgdGV4dCA9IHRyZWVJdGVtLm1haW5UaXRsZTsK
LSAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbW9kaWZ5Q29tbWFTZXBhcmF0ZWRLZXl3b3Jk
ID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLl9tb2RpZnlDb21t
YVNlcGFyYXRlZEtleXdvcmQodGV4dCk7Ci0KLSAgICAgICAgICAgIHZhbHVlICs9IHRleHQ7Ci0g
ICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgc2V0IHZhbHVl
KGNvbW1hU2VwYXJhdGVkVmFsdWUpCi0gICAgewotICAgICAgICBpZiAoY29tbWFTZXBhcmF0ZWRW
YWx1ZSAmJiBjb21tYVNlcGFyYXRlZFZhbHVlID09PSB0aGlzLnZhbHVlKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMucmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICAgICAgaWYgKCFjb21tYVNlcGFyYXRlZFZhbHVlIHx8ICFjb21tYVNlcGFy
YXRlZFZhbHVlLmxlbmd0aCkgewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuTm9S
ZW1haW5pbmdUcmVlSXRlbXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gSXQgaXMgbmVjZXNzYXJ5IHRvIGFkZCB0aGUgYmVnaW5uaW5nIFwpIHRvIGVuc3Vy
ZSBpbm5lciBwYXJlbnRoZXNpcyBhcmUgbm90IG1hdGNoZWQuCi0gICAgICAgIGxldCB2YWx1ZXMg
PSBjb21tYVNlcGFyYXRlZFZhbHVlLnNwbGl0KC9cKVxzKixccyooPyFbXlwoXCldKlwpKS8pOwot
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgaWYgKCF2YWx1ZXNbaV0uaW5jbHVkZXMoIiwiKSkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLQotICAgICAgICAgICAgbGV0IG9wZW5QYXJlbnRoZXNlcyA9IHZhbHVlc1tpXS5nZXRN
YXRjaGluZ0luZGV4ZXMoIigiKS5sZW5ndGg7Ci0gICAgICAgICAgICBsZXQgY2xvc2VkUGFyZW50
aGVzaXMgPSB2YWx1ZXNbaV0uZ2V0TWF0Y2hpbmdJbmRleGVzKCIpIikubGVuZ3RoOwotICAgICAg
ICAgICAgdmFsdWVzW2ldICs9IChvcGVuUGFyZW50aGVzZXMgLSBjbG9zZWRQYXJlbnRoZXNpcyA9
PT0gMSkgPyAiKSIgOiAiIjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEFsbG93IHNwbGl0dGlu
ZyB3aXRoIHBhcmVudGhlc2lzIGlmIHRoZSBwYXJlbnRoZXNpcyBkb2VzIG5vdCBoYXZlIGFueSBj
b21tYXMuCi0gICAgICAgIGxldCBoYXNQYXJlbnRoZXNpcyA9IHZhbHVlc1swXSAmJiAodmFsdWVz
WzBdLmluY2x1ZGVzKCIoIikgfHwgdmFsdWVzWzBdLmluY2x1ZGVzKCIpIikpOwotICAgICAgICBp
ZiAodmFsdWVzLmxlbmd0aCA9PT0gMSAmJiAoIWhhc1BhcmVudGhlc2lzIHx8ICEvXChbXlwpXSos
W15cKV0qXCkvLnRlc3QodmFsdWVzWzBdKSkpCi0gICAgICAgICAgICB2YWx1ZXMgPSB2YWx1ZXNb
MF0uc3BsaXQoL1xzKixccyovKTsKLQotICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMp
Ci0gICAgICAgICAgICB0aGlzLl9hZGRDb21tYVNlcGFyYXRlZEtleXdvcmQodmFsdWUpOwotCi0g
ICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuY2hpbGRyZW5bMF0uc2VsZWN0KHRy
dWUpOwotICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnZhbHVlIHx8IG51bGw7Ci0gICAgfQotCi0gICAgcmVjYWxjdWxhdGVXaWR0
aCh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRsZUVsZW1lbnQpIHsKLSAgICAg
ICAgICAgIC8vIDU1cHggd2lkdGggYW5kIDRweCBtYXJnaW4gb24gbGVmdCBhbmQgcmlnaHQgZm9y
IHRpdGxlIGVsZW1lbnQsCi0gICAgICAgICAgICAvLyBwbHVzIHRoZSAxMXB4IG1hcmdpbiByaWdo
dCBvbiB0aGUgY29udGVudCBlbGVtZW50Ci0gICAgICAgICAgICB2YWx1ZSAtPSA3NDsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIDExcHggbWFyZ2luIG9uIGxlZnQgYW5kIHJpZ2h0
IG9mIHRoZSBjb250ZW50IGVsZW1lbnQKLSAgICAgICAgICAgIHZhbHVlIC09IDIyOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5zdHlsZS53aWR0aCA9IE1hdGgubWF4
KHZhbHVlLCAwKSArICJweCI7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2dlbmVy
YXRlVGV4dEZyb21Mb25naGFuZFByb3BlcnRpZXMoKQotICAgIHsKLSAgICAgICAgbGV0IHRleHQg
PSAiIjsKLSAgICAgICAgaWYgKCF0aGlzLl9zdHlsZSkKLSAgICAgICAgICAgIHJldHVybiB0ZXh0
OwotCi0gICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5VmFsdWUoZXhpc3RpbmdQcm9wZXJ0eSwgcHJv
cGVydHlOYW1lKSB7Ci0gICAgICAgICAgICBpZiAoZXhpc3RpbmdQcm9wZXJ0eSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZXhpc3RpbmdQcm9wZXJ0eS52YWx1ZTsKLQotICAgICAgICAgICAgaWYg
KHByb3BlcnR5TmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9uZ2hhbmRQcm9w
ZXJ0aWVzW3Byb3BlcnR5TmFtZV07Ci0KLSAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAg
fQotCi0gICAgICAgIGxldCBvbmVQcm9wZXJ0eUV4aXN0cyA9IGZhbHNlOwotICAgICAgICBsZXQg
dmFsdWVMaXN0cyA9IFtdOwotICAgICAgICBsZXQgdmFsdWVzQ291bnQgPSAwOwotICAgICAgICBm
b3IgKGxldCBwcm9wZXJ0eU5hbWUgaW4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzKSB7Ci0gICAg
ICAgICAgICBsZXQgZXhpc3RpbmdQcm9wZXJ0eSA9IHRoaXMuX3N0eWxlLnByb3BlcnR5Rm9yTmFt
ZShwcm9wZXJ0eU5hbWUsIHRydWUpOwotICAgICAgICAgICAgaWYgKGV4aXN0aW5nUHJvcGVydHkp
Ci0gICAgICAgICAgICAgICAgb25lUHJvcGVydHlFeGlzdHMgPSB0cnVlOwotCi0gICAgICAgICAg
ICBsZXQgbWF0Y2hlcyA9IHByb3BlcnR5VmFsdWUuY2FsbCh0aGlzLCBleGlzdGluZ1Byb3BlcnR5
LCBwcm9wZXJ0eU5hbWUpLnNwbGl0KC9ccyosXHMqKD8hW15cKF0qXCkpLyk7Ci0gICAgICAgICAg
ICB2YWx1ZXNDb3VudCA9IE1hdGgubWF4KHZhbHVlc0NvdW50LCBtYXRjaGVzLmxlbmd0aCk7Ci0g
ICAgICAgICAgICB2YWx1ZUxpc3RzLnB1c2gobWF0Y2hlcyk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoIW9uZVByb3BlcnR5RXhpc3RzKQotICAgICAgICAgICAgcmV0dXJuIHRleHQ7Ci0KLSAg
ICAgICAgbGV0IGNvdW50ID0gMDsKLSAgICAgICAgd2hpbGUgKGNvdW50IDwgdmFsdWVzQ291bnQp
IHsKLSAgICAgICAgICAgIGlmIChjb3VudCA+IDApCi0gICAgICAgICAgICAgICAgdGV4dCArPSAi
LCAiOwotCi0gICAgICAgICAgICBmb3IgKGxldCB2YWx1ZUxpc3Qgb2YgdmFsdWVMaXN0cykKLSAg
ICAgICAgICAgICAgICB0ZXh0ICs9IHZhbHVlTGlzdFtjb3VudCA+IHZhbHVlTGlzdC5sZW5ndGgg
LSAxID8gdmFsdWVMaXN0Lmxlbmd0aCAtIDEgOiBjb3VudF0gKyAiICI7Ci0KLSAgICAgICAgICAg
ICsrY291bnQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRleHQ7Ci0gICAgfQotCi0gICAg
bW9kaWZ5UHJvcGVydHlUZXh0KHRleHQsIHZhbHVlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQg
cHJvcGVydHkgaW4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBsZXQg
cmVwbGFjZW1lbnRSZWdFeHAgPSBuZXcgUmVnRXhwKHByb3BlcnR5ICsgIlxzKjpccypbXjtdKig7
fCQpIik7Ci0gICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlcGxhY2VtZW50UmVnRXhw
LCAiIik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN1cGVyLm1vZGlmeVByb3BlcnR5VGV4
dCh0ZXh0LCB2YWx1ZSk7Ci0gICAgfQotCi0gICAgX2xpc3RFbGVtZW50S2V5RG93bihldmVudCkK
LSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhpcy5fY29tbWFTZXBh
cmF0ZWRLZXl3b3Jkcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVk
VHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHNlbGVjdGVk
VHJlZUVsZW1lbnQuY3VycmVudGx5RWRpdGluZykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBsZXQga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7Ci0gICAgICAgIGxldCBiYWNrc3BhY2VL
ZXlDb2RlID0gV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuQmFja3NwYWNlLmtleUNvZGU7Ci0gICAg
ICAgIGxldCBkZWxldGVLZXlDb2RlID0gV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRGVsZXRlLmtl
eUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSBiYWNrc3BhY2VLZXlDb2RlIHx8IGtleUNv
ZGUgPT09IGRlbGV0ZUtleUNvZGUpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVTZWxlY3RlZENv
bW1hU2VwYXJhdGVkS2V5d29yZCgpOwotICAgIH0KLQotICAgIF90cmVlU2VsZWN0aW9uRGlkQ2hh
bmdlKGV2ZW50KQotICAgIHsKLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5z
ZWxlY3RlZEVsZW1lbnQ7Ci0gICAgICAgIGlmICghdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fcmVtb3ZlRW1wdHlDb21tYVNlcGFyYXRlZEtleXdvcmRz
KCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxl
Q29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLkV2ZW50LlRyZWVJdGVtU2VsZWN0ZWQsIHt0ZXh0
OiB0cmVlRWxlbWVudC5tYWluVGl0bGV9KTsKLSAgICB9Ci0KLSAgICBfdHJlZUVsZW1lbnRJc0Vt
cHR5KGl0ZW0pCi0gICAgewotICAgICAgICByZXR1cm4gIWl0ZW0uX21haW5UaXRsZSB8fCAhaXRl
bS5fbWFpblRpdGxlLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBfYWRkRW1wdHlDb21tYVNlcGFyYXRl
ZEtleXdvcmQoKQotICAgIHsKLSAgICAgICAgbGV0IG5ld1RyZWVFbGVtZW50ID0gdGhpcy5fYWRk
Q29tbWFTZXBhcmF0ZWRLZXl3b3JkKG51bGwsIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMu
c2VsZWN0ZWRUcmVlRWxlbWVudEluZGV4KTsKLSAgICAgICAgbmV3VHJlZUVsZW1lbnQuc3VidGl0
bGUgPSBXSS5VSVN0cmluZygiKG1vZGlmeSB0aGUgYm94ZXMgYmVsb3cgdG8gYWRkIGEgdmFsdWUp
Iik7Ci0gICAgICAgIG5ld1RyZWVFbGVtZW50LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdmFs
dWUiKTsKLSAgICAgICAgbmV3VHJlZUVsZW1lbnQuc2VsZWN0KHRydWUsIHRydWUpOwotICAgICAg
ICByZXR1cm4gbmV3VHJlZUVsZW1lbnQ7Ci0gICAgfQotCi0gICAgX3JlbW92ZVNlbGVjdGVkQ29t
bWFTZXBhcmF0ZWRLZXl3b3JkKCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZFRyZWVFbGVt
ZW50ID0gdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5zZWxlY3RlZFRyZWVFbGVtZW50Owot
ICAgICAgICB0aGlzLl9yZW1vdmVDb21tYVNlcGFyYXRlZEtleXdvcmQoc2VsZWN0ZWRUcmVlRWxl
bWVudCk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUVtcHR5Q29tbWFTZXBhcmF0ZWRLZXl3b3Jkcygp
Ci0gICAgewotICAgICAgICBmb3IgKGxldCB0cmVlRWxlbWVudCBvZiB0aGlzLl9jb21tYVNlcGFy
YXRlZEtleXdvcmRzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX3RyZWVFbGVt
ZW50SXNFbXB0eSh0cmVlRWxlbWVudCkgfHwgdHJlZUVsZW1lbnQuc2VsZWN0ZWQpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KCk7
Ci0gICAgICAgICAgICB0aGlzLl9yZW1vdmVDb21tYVNlcGFyYXRlZEtleXdvcmQodHJlZUVsZW1l
bnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgX2FkZENvbW1hU2VwYXJhdGVkS2V5d29yZCh2
YWx1ZSwgaW5kZXgpCi0gICAgewotICAgICAgICBsZXQgdmFsdWVFbGVtZW50ID0gdGhpcy5fY3Jl
YXRlTmV3VHJlZUVsZW1lbnQodmFsdWUpOwotICAgICAgICBpZiAoIWlzTmFOKGluZGV4KSkKLSAg
ICAgICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuaW5zZXJ0Q2hpbGQodmFsdWVF
bGVtZW50LCBpbmRleCArICF0aGlzLl9pbnNlcnROZXdJdGVtc0JlZm9yZVNlbGVjdGVkKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5hcHBl
bmRDaGlsZCh2YWx1ZUVsZW1lbnQpOwotCi0gICAgICAgIHJldHVybiB2YWx1ZUVsZW1lbnQ7Ci0g
ICAgfQotCi0gICAgX3JlbW92ZUNvbW1hU2VwYXJhdGVkS2V5d29yZCh0cmVlRWxlbWVudCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5yZW1vdmVDaGlsZCh0cmVlRWxlbWVu
dCk7Ci0gICAgICAgIGlmICghdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5jaGlsZHJlbi5s
ZW5ndGgpCi0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1
YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5FdmVudC5Ob1JlbWFpbmluZ1RyZWVJ
dGVtcyk7Ci0KLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBf
Y3JlYXRlTmV3VHJlZUVsZW1lbnQodmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFdJ
LkdlbmVyYWxUcmVlRWxlbWVudChXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVk
aXRvci5MaXN0SXRlbUNsYXNzTmFtZSwgdmFsdWUpOwotICAgIH0KLX07Ci0KLVdJLlZpc3VhbFN0
eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLkxpc3RJdGVtQ2xhc3NOYW1lID0gInZpc3Vh
bC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVtIjsKLQotV0kuVmlzdWFsU3R5bGVD
b21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQgPSB7Ci0gICAgVHJlZUl0ZW1TZWxlY3Rl
ZDogInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3ItdHJlZS1pdGVt
LXNlbGVjdGVkIiwKLSAgICBOb1JlbWFpbmluZ1RyZWVJdGVtczogInZpc3VhbC1zdHlsZS1jb21t
YS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3Itbm8tcmVtYWluaW5nLXRyZWUtaXRlbXMiCi19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVEZXRhaWxzUGFuZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkOTcwZDEwMjIyYmNmM2JiNTFiOWFjNWVjMDY4YjE5NjJiY2UyMzZmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmNz
cworKysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLnNpZGViYXIg
PiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24gOm1h
dGNoZXMoLmRldGFpbHMtc2VjdGlvbiwgLmdyb3VwKS5pbmFjdGl2ZSB7Ci0gICAgYm9yZGVyLWJv
dHRvbTogbm9uZTsKLX0KLQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZp
c3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24gOm1hdGNoZXMoLmRldGFpbHMtc2VjdGlvbiwgLmdyb3Vw
KS5pbmFjdGl2ZSA+ICogewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS5zaWRlYmFyID4gLnBh
bmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxz
LXNlY3Rpb24gPiAuaGVhZGVyIHsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotfQotCi0uc2lk
ZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlv
biAuZGV0YWlscy1zZWN0aW9uID4gLmhlYWRlciA+IC5vcHRpb25zIHsKLSAgICB3aWR0aDogMTVw
eDsKLSAgICBoZWlnaHQ6IDE1cHg7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL0ltYWdl
cy9OYXZpZ2F0aW9uSXRlbVRyYXNoLnN2Zyk7Ci0gICAgYmFja2dyb3VuZC1zaXplOiAxNXB4IDE1
cHg7Ci0gICAgb3BhY2l0eTogMC43OwotfQotCi0uc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNz
cy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWlscy1zZWN0aW9uID4gLmhl
YWRlciA+IHNwYW4gewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVs
LmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNl
Y3Rpb24uaGFzLXNldC1wcm9wZXJ0eSA+IC5oZWFkZXIgPiBzcGFuOjphZnRlciB7Ci0gICAgd2lk
dGg6IDdweDsKLSAgICBoZWlnaHQ6IDdweDsKLSAgICBtYXJnaW46IDRweCA2cHg7Ci0gICAgYm9y
ZGVyLXJhZGl1czogNTAlOwotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdGVkLWJh
Y2tncm91bmQtY29sb3IpOwotICAgIG9wYWNpdHk6IDAuNTsKLSAgICBjb250ZW50OiAiIjsKLX0K
LQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxz
LXNlY3Rpb24gLmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IHsKLSAgICBtYXJnaW4tdG9wOiA1
cHg7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAu
ZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAucm93
IHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIGZsZXgtd3JhcDogd3JhcDsKLX0KLQotLnNpZGVi
YXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24g
LmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IC5ncm91cCA+IC5tZXRyaWMtc2VjdGlvbi1yb3cg
ewotICAgIGZsZXgtd3JhcDogbm93cmFwOwotfQotCi0uc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxz
LmNzcy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWlscy1zZWN0aW9uID4g
LmNvbnRlbnQgPiAuZ3JvdXAgKyAuZ3JvdXAgPiAucm93OmZpcnN0LWNoaWxkIHsKLSAgICBwYWRk
aW5nLXRvcDogN3B4OwotICAgIGJvcmRlci10b3A6IG5vbmU7Ci19Ci0KLS5zaWRlYmFyID4gLnBh
bmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxz
LXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAucm93Omxhc3QtY2hpbGQgewotICAgIHBhZGRp
bmctYm90dG9tOiAzcHg7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxl
IC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAu
Z3JvdXAgPiAucm93LnZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93IHsKLSAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOwotICAgIG1hcmdpbi1ib3R0b206IDVweDsK
LSAgICBwYWRkaW5nLWJvdHRvbTogMnB4OwotfQotCi1AbWVkaWEgKC13ZWJraXQtbWluLWRldmlj
ZS1waXhlbC1yYXRpbzogMikgewotICAgIC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0
eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVu
dCAuZ3JvdXAgPiAucm93LnZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93IHsKLSAgICAgICAgYm9y
ZGVyLWJvdHRvbS13aWR0aDogMC41cHggIWltcG9ydGFudDsKLSAgICB9Ci19Ci0KLS5zaWRlYmFy
ID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5k
ZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAucm93ID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXRpdGxlIHsKLSAgICB3
aWR0aDogNTVweDsKLX0KLQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZp
c3VhbC5kaXNhYmxlZCA+IC5kZXRhaWxzLXNlY3Rpb246bm90KC52aXN1YWwtc3R5bGUtc2VsZWN0
b3Itc2VjdGlvbikgewotICAgIG9wYWNpdHk6IDAuNTsKLSAgICBwb2ludGVyLWV2ZW50czogbm9u
ZTsKLX0KLQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbC5kaXNh
YmxlZCA+IC5kZXRhaWxzLXNlY3Rpb246bm90KC52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlv
bikgaW5wdXQgewotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwotfQotCi0uc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWls
cy1zZWN0aW9uID4gLmNvbnRlbnQgLmdyb3VwID4gLnJvdyArIC5yb3cudmlzdWFsLXN0eWxlLXRh
YmJlZC1wcm9wZXJ0aWVzLXJvdywKLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxl
IC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uLmJhY2tncm91bmQgLmRldGFpbHMtc2VjdGlvbi5i
YWNrZ3JvdW5kLXN0eWxlIC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNl
cGFyYXRlZC1rZXl3b3JkLWVkaXRvci5iYWNrZ3JvdW5kIHsKLSAgICBtYXJnaW4tdG9wOiAzcHg7
Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0
YWlscy1zZWN0aW9uLmJhY2tncm91bmQgLmRldGFpbHMtc2VjdGlvbi5ib3JkZXIgLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1jaGVja2JveC5ib3JkZXItaW1hZ2Utc2xp
Y2UgewotICAgIGZsZXg6IDE7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDBmMmMwMmRmMzkzMjE3NmIyOWM2
MjQxMjIwYmE1ODBhY2NjN2JjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlRGV0YWlsc1BhbmVsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYxMCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHls
ZURldGFpbHNQYW5lbCBleHRlbmRzIFdJLlN0eWxlRGV0YWlsc1BhbmVsCi17Ci0gICAgY29uc3Ry
dWN0b3IoZGVsZWdhdGUpCi0gICAgewotICAgICAgICBzdXBlcihkZWxlZ2F0ZSwgInZpc3VhbCIs
ICJ2aXN1YWwiLCBXSS5VSVN0cmluZygiU3R5bGVzIFx1MjAxNCBWaXN1YWwiKSk7Ci0KLSAgICAg
ICAgdGhpcy5fY3VycmVudFN0eWxlID0gbnVsbDsKLQotICAgICAgICB0aGlzLl9zZWN0aW9ucyA9
IHt9OwotICAgICAgICB0aGlzLl9ncm91cHMgPSB7fTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMg
PSB7fTsKLSAgICAgICAgdGhpcy5fdW5pdHMgPSB7fTsKLQotICAgICAgICAvLyBUaGVzZSBrZXl3
b3JkcywgYXMgd2VsbCBhcyB0aGUgdmFsdWVzIGJlbG93LCBhcmUgbm90IGxvY2FsaXplZCBhcyB0
aGV5IG11c3QgbWF0Y2ggdGhlIENTUyBzcGVjLgotICAgICAgICB0aGlzLl9rZXl3b3Jkcy5kZWZh
dWx0cyA9IFsiSW5oZXJpdCIsICJJbml0aWFsIiwgIlVuc2V0IiwgIlJldmVydCJdOwotICAgICAg
ICB0aGlzLl9rZXl3b3Jkcy5ub3JtYWwgPSB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQo
WyJOb3JtYWwiXSk7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsID0gdGhpcy5fa2V5
d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiQXV0byJdKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMu
Ym9yZGVyU3R5bGUgPSB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29yZHMuZGVmYXVs
dHMuY29uY2F0KFsiTm9uZSIsICJIaWRkZW4iLCAiU29saWQiXSksCi0gICAgICAgICAgICBhZHZh
bmNlZDogWyJEYXNoZWQiLCAiRG90dGVkIiwgIkRvdWJsZSIsICJHcm9vdmUiLCAiSW5zZXQiLCAi
T3V0c2V0IiwgIlJpZGdlIl0KLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMuYm9y
ZGVyV2lkdGggPSB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJNZWRpdW0iLCAiVGhp
Y2siLCAiVGhpbiJdKTsKLQotICAgICAgICB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50
ID0gewotICAgICAgICAgICAgYmFzaWM6IFsicHgiLCAiZW0iXSwKLSAgICAgICAgICAgIGFkdmFu
Y2VkOiBbImNoIiwgImNtIiwgImV4IiwgImluIiwgIm1tIiwgInBjIiwgInB0IiwgInJlbSIsICJ2
aCIsICJ2dyIsICJ2bWF4IiwgInZtaW4iXQotICAgICAgICB9OwotICAgICAgICB0aGlzLl91bml0
cy5kZWZhdWx0cyA9IHsKLSAgICAgICAgICAgIGJhc2ljOiBbIiUiXS5jb25jYXQodGhpcy5fdW5p
dHMuZGVmYXVsdHNTYW5zUGVyY2VudC5iYXNpYyksCi0gICAgICAgICAgICBhZHZhbmNlZDogdGhp
cy5fdW5pdHMuZGVmYXVsdHNTYW5zUGVyY2VudC5hZHZhbmNlZAotICAgICAgICB9OwotICAgIH0K
LQotICAgIC8vIFB1YmxpYwotCi0gICAgcmVmcmVzaChzaWduaWZpY2FudENoYW5nZSkKLSAgICB7
Ci0gICAgICAgIGlmIChzaWduaWZpY2FudENoYW5nZSkKLSAgICAgICAgICAgIHRoaXMuX3NlbGVj
dG9yU2VjdGlvbi51cGRhdGUodGhpcy5fbm9kZVN0eWxlcyk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNlY3Rpb25zKCk7Ci0KLSAgICAgICAgc3VwZXIucmVmcmVzaCgp
OwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAgaW5pdGlhbExheW91dCgpCi0gICAg
ewotICAgICAgICAvLyBTZWxlY3RvciBTZWN0aW9uCi0gICAgICAgIHRoaXMuX3NlbGVjdG9yU2Vj
dGlvbiA9IG5ldyBXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbjsKLSAgICAgICAgdGhpcy5f
c2VsZWN0b3JTZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVTZWxlY3RvclNl
Y3Rpb24uRXZlbnQuU2VsZWN0b3JDaGFuZ2VkLCB0aGlzLl91cGRhdGVTZWN0aW9ucywgdGhpcyk7
Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWxlY3RvclNlY3Rpb24u
ZWxlbWVudCk7Ci0KLSAgICAgICAgLy8gTGF5b3V0IFNlY3Rpb24KLSAgICAgICAgdGhpcy5fZ2Vu
ZXJhdGVTZWN0aW9uKCJkaXNwbGF5IiwgV0kuVUlTdHJpbmcoIkRpc3BsYXkiKSk7Ci0gICAgICAg
IHRoaXMuX2dlbmVyYXRlU2VjdGlvbigicG9zaXRpb24iLCBXSS5VSVN0cmluZygiUG9zaXRpb24i
KSk7Ci0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZmxvYXQiLCBXSS5VSVN0cmluZygi
RmxvYXQgYW5kIENsZWFyIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oImRpbWVu
c2lvbnMiLCBXSS5VSVN0cmluZygiRGltZW5zaW9ucyIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJh
dGVTZWN0aW9uKCJtYXJnaW4iLCBXSS5VSVN0cmluZygiTWFyZ2luIikpOwotICAgICAgICB0aGlz
Ll9nZW5lcmF0ZVNlY3Rpb24oInBhZGRpbmciLCBXSS5VSVN0cmluZygiUGFkZGluZyIpKTsKLSAg
ICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJmbGV4Ym94IiwgV0kuVUlTdHJpbmcoIkZsZXhi
b3giKSk7Ci0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYWxpZ25tZW50IiwgV0kuVUlT
dHJpbmcoIkFsaWdubWVudCIpKTsKLQotICAgICAgICB0aGlzLl9zZWN0aW9ucy5sYXlvdXQgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb24oImxheW91dCIsIFdJLlVJU3RyaW5nKCJMYXlvdXQiKSwgW3Ro
aXMuX2dyb3Vwcy5kaXNwbGF5LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5zZWN0aW9u
LCB0aGlzLl9ncm91cHMuZmxvYXQuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMuc2Vj
dGlvbiwgdGhpcy5fZ3JvdXBzLm1hcmdpbi5zZWN0aW9uLCB0aGlzLl9ncm91cHMucGFkZGluZy5z
ZWN0aW9uLCB0aGlzLl9ncm91cHMuZmxleGJveC5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYWxpZ25t
ZW50LnNlY3Rpb25dKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Nl
Y3Rpb25zLmxheW91dC5lbGVtZW50KTsKLQotICAgICAgICAvLyBUZXh0IFNlY3Rpb24KLSAgICAg
ICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJjb250ZW50IiwgV0kuVUlTdHJpbmcoIkNvbnRlbnQi
KSk7Ci0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigidGV4dC1zdHlsZSIsIFdJLlVJU3Ry
aW5nKCJTdHlsZSIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJmb250IiwgV0ku
VUlTdHJpbmcoIkZvbnQiKSk7Ci0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZm9udC12
YXJpYW50cyIsIFdJLlVJU3RyaW5nKCJWYXJpYW50cyIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJh
dGVTZWN0aW9uKCJ0ZXh0LXNwYWNpbmciLCBXSS5VSVN0cmluZygiU3BhY2luZyIpKTsKLSAgICAg
ICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJTaGFk
b3ciKSk7Ci0KLSAgICAgICAgdGhpcy5fc2VjdGlvbnMudGV4dCA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbigidGV4dCIsIFdJLlVJU3RyaW5nKCJUZXh0IiksIFt0aGlzLl9ncm91cHMuY29udGVudC5z
ZWN0aW9uLCB0aGlzLl9ncm91cHMudGV4dFN0eWxlLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5mb250
LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5mb250VmFyaWFudHMuc2VjdGlvbiwgdGhpcy5fZ3JvdXBz
LnRleHRTcGFjaW5nLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy50ZXh0U2hhZG93LnNlY3Rpb25dKTsK
LSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLnRleHQuZWxl
bWVudCk7Ci0KLSAgICAgICAgLy8gQmFja2dyb3VuZCBTZWN0aW9uCi0gICAgICAgIHRoaXMuX2dl
bmVyYXRlU2VjdGlvbigiZmlsbCIsIFdJLlVJU3RyaW5nKCJGaWxsIikpOwotICAgICAgICB0aGlz
Ll9nZW5lcmF0ZVNlY3Rpb24oInN0cm9rZSIsIFdJLlVJU3RyaW5nKCJTdHJva2UiKSk7Ci0gICAg
ICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYmFja2dyb3VuZC1zdHlsZSIsIFdJLlVJU3RyaW5n
KCJTdHlsZSIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3JkZXIiLCBXSS5V
SVN0cmluZygiQm9yZGVyIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oIm91dGxp
bmUiLCBXSS5VSVN0cmluZygiT3V0bGluZSIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0
aW9uKCJib3gtc2hhZG93IiwgV0kuVUlTdHJpbmcoIkJveCBTaGFkb3ciKSk7Ci0gICAgICAgIHRo
aXMuX2dlbmVyYXRlU2VjdGlvbigibGlzdC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJMaXN0IFN0eWxl
cyIpKTsKLQotICAgICAgICB0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uKCJiYWNrZ3JvdW5kIiwgV0kuVUlTdHJpbmcoIkJhY2tncm91bmQiKSwgW3RoaXMu
X2dyb3Vwcy5maWxsLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5zdHJva2Uuc2VjdGlvbiwgdGhpcy5f
Z3JvdXBzLmJhY2tncm91bmRTdHlsZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rp
b24sIHRoaXMuX2dyb3Vwcy5vdXRsaW5lLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cu
c2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmxpc3RTdHlsZS5zZWN0aW9uXSk7Ci0gICAgICAgIHRoaXMu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kLmVsZW1lbnQpOwot
Ci0gICAgICAgIC8vIEVmZmVjdHMgU2VjdGlvbgotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rp
b24oInRyYW5zaXRpb24iLCBXSS5VSVN0cmluZygiVHJhbnNpdGlvbiIpKTsKLSAgICAgICAgdGhp
cy5fZ2VuZXJhdGVTZWN0aW9uKCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikp
OwotCi0gICAgICAgIHRoaXMuX3NlY3Rpb25zLmVmZmVjdHMgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b24oImVmZmVjdHMiLCBXSS5VSVN0cmluZygiRWZmZWN0cyIpLCBbdGhpcy5fZ3JvdXBzLnRyYW5z
aXRpb24uc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmFuaW1hdGlvbi5zZWN0aW9uXSk7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWN0aW9ucy5lZmZlY3RzLmVsZW1lbnQp
OwotICAgIH0KLQotICAgIHNpemVEaWRDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2l6
ZURpZENoYW5nZSgpOwotCi0gICAgICAgIGxldCBzaWRlYmFyV2lkdGggPSB0aGlzLmVsZW1lbnQu
cmVhbE9mZnNldFdpZHRoOwotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZ3JvdXBzKSB7
Ci0gICAgICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHNba2V5XTsKLSAgICAgICAgICAg
IGlmICghZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotCi0gICAgICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2YgZ3JvdXAuc3BlY2lmaWVk
V2lkdGhQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIGVkaXRvci5yZWNhbGN1bGF0ZVdpZHRo
KHNpZGViYXJXaWR0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfZ2VuZXJhdGVTZWN0aW9uKGlkLCBkaXNwbGF5TmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICgh
aWQgfHwgIWRpc3BsYXlOYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBj
YW1lbENhc2VJZCA9IGlkLnRvQ2FtZWxDYXNlKCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gY3JlYXRl
T3B0aW9uc0VsZW1lbnQoKSB7Ci0gICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICBjb250YWluZXIudGl0bGUgPSBXSS5V
SVN0cmluZygiQ2xlYXIgbW9kaWZpZWQgcHJvcGVydGllcyIpOwotICAgICAgICAgICAgY29udGFp
bmVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY2xlYXJNb2RpZmllZFNlY3Rpb24u
YmluZCh0aGlzLCBjYW1lbENhc2VJZCkpOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjsK
LSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX2dyb3Vwc1tjYW1lbENhc2VJZF0gPSB7Ci0gICAg
ICAgICAgICBzZWN0aW9uOiBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oaWQsIGRpc3BsYXlOYW1lLCBb
XSwgY3JlYXRlT3B0aW9uc0VsZW1lbnQuY2FsbCh0aGlzKSksCi0gICAgICAgICAgICBwcm9wZXJ0
aWVzOiB7fQotICAgICAgICB9OwotCi0gICAgICAgIGxldCBwb3B1bGF0ZUZ1bmN0aW9uID0gdGhp
c1siX3BvcHVsYXRlIiArIGNhbWVsQ2FzZUlkLmNhcGl0YWxpemUoKSArICJTZWN0aW9uIl07Ci0g
ICAgICAgIHBvcHVsYXRlRnVuY3Rpb24uY2FsbCh0aGlzKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRl
U2VjdGlvbnMoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9jdXJyZW50U3R5bGUgPSB0aGlz
Ll9zZWxlY3RvclNlY3Rpb24uY3VycmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghdGhpcy5fY3Vy
cmVudFN0eWxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBkaXNhYmxlZCA9
IHRoaXMuX2N1cnJlbnRTdHlsZVtXSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5TdHlsZURpc2Fi
bGVkU3ltYm9sXTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImRpc2Fi
bGVkIiwgISFkaXNhYmxlZCk7Ci0gICAgICAgIGlmIChkaXNhYmxlZCkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZ3JvdXBzKQotICAgICAgICAg
ICAgdGhpcy5fdXBkYXRlUHJvcGVydGllcyh0aGlzLl9ncm91cHNba2V5XSwgISFldmVudCk7Ci0K
LSAgICAgICAgaWYgKGV2ZW50KSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5f
c2VjdGlvbnMpIHsKLSAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25z
W2tleV07Ci0gICAgICAgICAgICAgICAgbGV0IG9uZVNlY3Rpb25FeHBhbmRlZCA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgIGZvciAobGV0IGdyb3VwIG9mIHNlY3Rpb24uZ3JvdXBzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGxldCBjYW1lbENhc2VJZCA9IGdyb3VwLmlkZW50aWZpZXIudG9DYW1l
bENhc2UoKTsKLSAgICAgICAgICAgICAgICAgICAgZ3JvdXAuY29sbGFwc2VkID0gIWdyb3VwLmV4
cGFuZGVkQnlVc2VyICYmICF0aGlzLl9ncm91cEhhc1NldFByb3BlcnR5KHRoaXMuX2dyb3Vwc1tj
YW1lbENhc2VJZF0pOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwLmNvbGxhcHNlZCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIG9uZVNlY3Rpb25FeHBhbmRlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChvbmVTZWN0aW9uRXhwYW5kZWQpCi0g
ICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uY29sbGFwc2VkID0gZmFsc2U7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgaGFzTWF0Y2hlZEVsZW1lbnRQc2V1ZG9TZWxl
Y3RvciA9IHRoaXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUgJiYgdGhpcy5fY3VycmVudFN0eWxl
Lm93bmVyUnVsZS5oYXNNYXRjaGVkUHNldWRvRWxlbWVudFNlbGVjdG9yKCk7Ci0gICAgICAgIHRo
aXMuX2dyb3Vwcy5jb250ZW50LnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsICFoYXNNYXRjaGVkRWxlbWVudFBzZXVkb1NlbGVjdG9yKTsKLSAgICAgICAgdGhpcy5f
Z3JvdXBzLmxpc3RTdHlsZS5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCBoYXNNYXRjaGVkRWxlbWVudFBzZXVkb1NlbGVjdG9yKTsKLQotICAgICAgICBsZXQgbm9k
ZSA9IHRoaXMuX25vZGVTdHlsZXMubm9kZTsKLSAgICAgICAgbGV0IGlzU1ZHRWxlbWVudCA9IG5v
ZGUuaXNTVkdFbGVtZW50KCk7Ci0KLSAgICAgICAgdGhpcy5fZ3JvdXBzLmZsb2F0LnNlY3Rpb24u
ZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7Ci0gICAg
ICAgIHRoaXMuX2dyb3Vwcy5ib3JkZXIuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
ImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKLSAgICAgICAgdGhpcy5fZ3JvdXBzLmJveFNoYWRv
dy5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1l
bnQpOwotICAgICAgICB0aGlzLl9ncm91cHMubGlzdFN0eWxlLnNlY3Rpb24uZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5f
Z3JvdXBzLmZpbGwuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwg
IWlzU1ZHRWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX2dyb3Vwcy5zdHJva2Uuc2VjdGlvbi5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHRWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IGlzU1ZHQ2lyY2xlID0gbm9kZS5ub2RlTmFtZSgpID09PSAiY2lyY2xlIjsKLSAgICAg
ICAgbGV0IGlzU1ZHRWxsaXBzZSA9IG5vZGUubm9kZU5hbWUoKSA9PT0gImVsbGlwc2UiOwotICAg
ICAgICBsZXQgaXNTVkdSYWRpYWxHcmFkaWVudCA9IG5vZGUubm9kZU5hbWUoKSA9PT0gInJhZGlh
bEdyYWRpZW50IjsKLSAgICAgICAgbGV0IGlzU1ZHUmVjdCA9IG5vZGUubm9kZU5hbWUoKSA9PT0g
InJlY3QiOwotICAgICAgICBsZXQgaXNTVkdMaW5lID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGlu
ZSI7Ci0gICAgICAgIGxldCBpc1NWR0xpbmVhckdyYWRpZW50ID0gbm9kZS5ub2RlTmFtZSgpID09
PSAibGluZWFyR3JhZGllbnQiOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgZGltZW5zaW9u
cyBzZWN0aW9uIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIFNWRyBlbGVtZW50IG9y
IGlzIDxlbGxpcHNlPiwgPHJlY3Q+LCA8Y2lyY2xlPiwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KLSAg
ICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50
b2dnbGUoImluYWN0aXZlIiwgISghaXNTVkdFbGVtZW50IHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NW
R1JlY3QgfHwgaXNTVkdDaXJjbGUgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwotCi0gICAgICAg
IC8vIE9ubHkgc2hvdyB0aGUgbm9uLVNWRyBkaW1lbnNpb25zIGdyb3VwIGlmIHRoZSBjdXJyZW50
IGVsZW1lbnQgaXMgbm90IGFuIFNWRyBlbGVtZW50IG9yIGlzIDxyZWN0Pi4KLSAgICAgICAgdGhp
cy5fZ3JvdXBzLmRpbWVuc2lvbnMuZGVmYXVsdEdyb3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2ds
ZSgiaW5hY3RpdmUiLCAhKCFpc1NWR0VsZW1lbnQgfHwgaXNTVkdSZWN0KSk7Ci0KLSAgICAgICAg
Ly8gT25seSBzaG93IHRoZSBTVkcgZGltZW5zaW9ucyBncm91cCBpZiB0aGUgY3VycmVudCBlbGVt
ZW50IGlzIGFuIFNWRyBlbGVtZW50LCA8cmVjdD4sIDxjaXJjbGU+LCBvciA8cmFkaWFsR3JhZGll
bnQ+LgotICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5zdmdHcm91cC5lbGVtZW50LmNs
YXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0IHx8
IGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFkaWFsR3JhZGllbnQpKTsKLQotICAgICAgICAvLyBPbmx5
IHNob3cgZWRpdG9yIGZvciAiciIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8Y2lyY2xlPiBv
ciA8cmFkaWFsR3JhZGllbnQ+LgotICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5wcm9w
ZXJ0aWVzLnIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdDaXJj
bGUgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyBlZGl0
b3JzIGZvciAicngiIGFuZCAicnkiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPGVsbGlwc2U+
IG9yIDxyZWN0Pi4KLSAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5y
eC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0VsbGlwc2UgfHwg
aXNTVkdSZWN0KSk7Ci0gICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLnByb3BlcnRpZXMu
cnkuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdFbGxpcHNlIHx8
IGlzU1ZHUmVjdCkpOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgU1ZHIHBvc2l0aW9uIGdy
b3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPHJlY3Q+LCA8Y2lyY2xlPiwgPGVsbGlwc2U+
LCA8bGluZT4sIDxyYWRpYWxHcmFkaWVudD4sIG9yIDxsaW5lYXJHcmFkaWVudD4uCi0gICAgICAg
IHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5zdmdHcm91cC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
ImluYWN0aXZlIiwgIShpc1NWR1JlY3QgfHwgaXNTVkdDaXJjbGUgfHwgaXNTVkdFbGxpcHNlIHx8
IGlzU1ZHTGluZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50IHx8IGlzU1ZHTGluZWFyR3JhZGllbnQp
KTsKLQotICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgIngiIGFuZCAieSIgaWYgdGhl
IGN1cnJlbnQgZWxlbWVudCBpcyA8cmVjdD4uCi0gICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlv
bi5wcm9wZXJ0aWVzLnguZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NW
R1JlY3QpOwotICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy55LmVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdSZWN0KTsKLQotICAgICAgICAv
LyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgIngxIiwgInkxIiwgIngyIiwgYW5kICJ5MiIgaWYgdGhl
IGN1cnJlbnQgZWxlbWVudCBpcyA8bGluZT4gb3IgPGxpbmVhckdyYWRpZW50Pi4KLSAgICAgICAg
dGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueDEuZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKLSAg
ICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueTEuZWxlbWVudC5jbGFzc0xp
c3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQp
KTsKLSAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueDIuZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3Jh
ZGllbnQpKTsKLSAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueTIuZWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGlu
ZWFyR3JhZGllbnQpKTsKLQotICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgImN4IiBh
bmQgImN5IiBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIDxjaXJjbGU+LCA8ZWxsaXBzZT4sIG9y
IDxyYWRpYWxHcmFkaWVudD4uCi0gICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0
aWVzLmN4LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xl
IHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50KSk7Ci0gICAgICAgIHRoaXMu
X2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLmN5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
aW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JhZGlhbEdy
YWRpZW50KSk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVByb3BlcnRpZXMoZ3JvdXAsIGZvcmNlU3R5
bGVVcGRhdGUpCi0gICAgewotICAgICAgICBpZiAoIWdyb3VwLnNlY3Rpb24pCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGZvcmNlU3R5bGVVcGRhdGUgJiYgZ3JvdXAubGlua3Mp
IHsKLSAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiBncm91cC5saW5rcykKLSAgICAgICAgICAg
ICAgICBncm91cC5saW5rc1trZXldLmxpbmtlZCA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgbGV0IGluaXRpYWxUZXh0TGlzdCA9IHRoaXMuX2luaXRpYWxUZXh0TGlzdDsKLSAgICAgICAg
aWYgKCFpbml0aWFsVGV4dExpc3QpCi0gICAgICAgICAgICB0aGlzLl9jdXJyZW50U3R5bGVbV0ku
VmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuSW5pdGlhbFByb3BlcnR5U2VjdGlvblRleHRMaXN0U3lt
Ym9sXSA9IGluaXRpYWxUZXh0TGlzdCA9IG5ldyBXZWFrTWFwOwotCi0gICAgICAgIGxldCBpbml0
aWFsUHJvcGVydHlUZXh0ID0ge307Ci0gICAgICAgIGxldCBpbml0aWFsUHJvcGVydHlUZXh0TWlz
c2luZyA9ICFpbml0aWFsVGV4dExpc3QuaGFzKGdyb3VwKTsKLSAgICAgICAgZm9yIChsZXQga2V5
IGluIGdyb3VwLnByb3BlcnRpZXMpIHsKLSAgICAgICAgICAgIGxldCBwcm9wZXJ0eUVkaXRvciA9
IGdyb3VwLnByb3BlcnRpZXNba2V5XTsKLSAgICAgICAgICAgIHByb3BlcnR5RWRpdG9yLnVwZGF0
ZSghcHJvcGVydHlFZGl0b3Iuc3R5bGUgfHwgZm9yY2VTdHlsZVVwZGF0ZSA/IHRoaXMuX2N1cnJl
bnRTdHlsZSA6IG51bGwpOwotCi0gICAgICAgICAgICBsZXQgdmFsdWUgPSBwcm9wZXJ0eUVkaXRv
ci5zeW50aGVzaXplZFZhbHVlOwotICAgICAgICAgICAgaWYgKHZhbHVlICYmICFwcm9wZXJ0eUVk
aXRvci5wcm9wZXJ0eU1pc3NpbmcgJiYgaW5pdGlhbFByb3BlcnR5VGV4dE1pc3NpbmcpCi0gICAg
ICAgICAgICAgICAgaW5pdGlhbFByb3BlcnR5VGV4dFtrZXldID0gdmFsdWU7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoaW5pdGlhbFByb3BlcnR5VGV4dE1pc3NpbmcpCi0gICAgICAgICAgICBp
bml0aWFsVGV4dExpc3Quc2V0KGdyb3VwLCBpbml0aWFsUHJvcGVydHlUZXh0KTsKLQotICAgICAg
ICB0aGlzLl9zZWN0aW9uTW9kaWZpZWQoZ3JvdXApOwotCi0gICAgICAgIGlmIChncm91cC5hdXRv
Y29tcGxldGVDb21wYXRpYmxlUHJvcGVydGllcykgewotICAgICAgICAgICAgZm9yIChsZXQgZWRp
dG9yIG9mIGdyb3VwLmF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0aWVzKQotICAgICAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZUF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0eUVkaXRvcihl
ZGl0b3IsIGZvcmNlU3R5bGVVcGRhdGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdyb3Vw
LnNwZWNpZmllZFdpZHRoUHJvcGVydGllcykgewotICAgICAgICAgICAgbGV0IHNpZGViYXJXaWR0
aCA9IHRoaXMuZWxlbWVudC5yZWFsT2Zmc2V0V2lkdGg7Ci0gICAgICAgICAgICBmb3IgKGxldCBl
ZGl0b3Igb2YgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAg
IGVkaXRvci5yZWNhbGN1bGF0ZVdpZHRoKHNpZGViYXJXaWR0aCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBfdXBkYXRlQXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnR5RWRpdG9yKGVkaXRv
ciwgZm9yY2UpCi0gICAgewotICAgICAgICBpZiAoIWVkaXRvciB8fCAoZWRpdG9yLmhhc0NvbXBs
ZXRpb25zICYmICFmb3JjZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZWRpdG9y
LmNvbXBsZXRpb25zID0gV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmZvclByb3BlcnR5KGVkaXRv
ci5wcm9wZXJ0eVJlZmVyZW5jZU5hbWUpOwotICAgIH0KLQotICAgIF9zZWN0aW9uTW9kaWZpZWQo
Z3JvdXApCi0gICAgewotICAgICAgICBncm91cC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRv
Z2dsZSgibW9kaWZpZWQiLCB0aGlzLl9pbml0aWFsUHJvcGVydHlUZXh0TW9kaWZpZWQoZ3JvdXAp
KTsKLSAgICAgICAgZ3JvdXAuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhhcy1z
ZXQtcHJvcGVydHkiLCB0aGlzLl9ncm91cEhhc1NldFByb3BlcnR5KGdyb3VwKSk7Ci0gICAgfQot
Ci0gICAgX2NsZWFyTW9kaWZpZWRTZWN0aW9uKGdyb3VwSWQpCi0gICAgewotICAgICAgICBsZXQg
Z3JvdXAgPSB0aGlzLl9ncm91cHNbZ3JvdXBJZF07Ci0gICAgICAgIGdyb3VwLnNlY3Rpb24uZWxl
bWVudC5jbGFzc0xpc3QucmVtb3ZlKCJtb2RpZmllZCIpOwotICAgICAgICBsZXQgaW5pdGlhbFBy
b3BlcnR5VGV4dExpc3QgPSB0aGlzLl9jdXJyZW50U3R5bGVbV0kuVmlzdWFsU3R5bGVEZXRhaWxz
UGFuZWwuSW5pdGlhbFByb3BlcnR5U2VjdGlvblRleHRMaXN0U3ltYm9sXS5nZXQoZ3JvdXApOwot
ICAgICAgICBpZiAoIWluaXRpYWxQcm9wZXJ0eVRleHRMaXN0KQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGxldCBuZXdTdHlsZVRleHQgPSB0aGlzLl9jdXJyZW50U3R5bGUudGV4dDsK
LSAgICAgICAgZm9yIChsZXQga2V5IGluIGdyb3VwLnByb3BlcnRpZXMpIHsKLSAgICAgICAgICAg
IGxldCBwcm9wZXJ0eUVkaXRvciA9IGdyb3VwLnByb3BlcnRpZXNba2V5XTsKLSAgICAgICAgICAg
IGxldCBpbml0aWFsVmFsdWUgPSBpbml0aWFsUHJvcGVydHlUZXh0TGlzdFtrZXldIHx8IG51bGw7
Ci0gICAgICAgICAgICBuZXdTdHlsZVRleHQgPSBwcm9wZXJ0eUVkaXRvci5tb2RpZnlQcm9wZXJ0
eVRleHQobmV3U3R5bGVUZXh0LCBpbml0aWFsVmFsdWUpOwotICAgICAgICAgICAgcHJvcGVydHlF
ZGl0b3IucmVzZXRFZGl0b3JWYWx1ZXMoaW5pdGlhbFZhbHVlKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuX2N1cnJlbnRTdHlsZS50ZXh0ID0gbmV3U3R5bGVUZXh0OwotICAgICAgICBncm91
cC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXNldC1wcm9wZXJ0eSIsIHRo
aXMuX2dyb3VwSGFzU2V0UHJvcGVydHkoZ3JvdXApKTsKLSAgICB9Ci0KLSAgICBnZXQgX2luaXRp
YWxUZXh0TGlzdCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFN0eWxlW1dJ
LlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLkluaXRpYWxQcm9wZXJ0eVNlY3Rpb25UZXh0TGlzdFN5
bWJvbF07Ci0gICAgfQotCi0gICAgX2luaXRpYWxQcm9wZXJ0eVRleHRNb2RpZmllZChncm91cCkK
LSAgICB7Ci0gICAgICAgIGlmICghZ3JvdXAucHJvcGVydGllcykKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgICAgICBsZXQgaW5pdGlhbFByb3BlcnR5VGV4dExpc3QgPSB0aGlzLl9p
bml0aWFsVGV4dExpc3QuZ2V0KGdyb3VwKTsKLSAgICAgICAgaWYgKCFpbml0aWFsUHJvcGVydHlU
ZXh0TGlzdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBmb3IgKGxldCBr
ZXkgaW4gZ3JvdXAucHJvcGVydGllcykgewotICAgICAgICAgICAgbGV0IHByb3BlcnR5RWRpdG9y
ID0gZ3JvdXAucHJvcGVydGllc1trZXldOwotICAgICAgICAgICAgaWYgKHByb3BlcnR5RWRpdG9y
LnByb3BlcnR5TWlzc2luZykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAg
ICAgbGV0IHZhbHVlID0gcHJvcGVydHlFZGl0b3Iuc3ludGhlc2l6ZWRWYWx1ZTsKLSAgICAgICAg
ICAgIGlmICh2YWx1ZSAmJiBpbml0aWFsUHJvcGVydHlUZXh0TGlzdFtrZXldICE9PSB2YWx1ZSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICBfZ3JvdXBIYXNTZXRQcm9wZXJ0eShncm91cCkKLSAgICB7
Ci0gICAgICAgIGZvciAobGV0IGtleSBpbiBncm91cC5wcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAg
ICBsZXQgcHJvcGVydHlFZGl0b3IgPSBncm91cC5wcm9wZXJ0aWVzW2tleV07Ci0gICAgICAgICAg
ICBsZXQgdmFsdWUgPSBwcm9wZXJ0eUVkaXRvci5zeW50aGVzaXplZFZhbHVlOwotICAgICAgICAg
ICAgaWYgKHZhbHVlICYmICFwcm9wZXJ0eUVkaXRvci5wcm9wZXJ0eU1pc3NpbmcpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIF9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIGdyb3VwcykKLSAgICB7Ci0gICAg
ICAgIGlmICghZ3JvdXAgfHwgIWdyb3VwcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBncm91cC5zZWN0aW9uLmdyb3VwcyA9IGdyb3VwczsKLSAgICAgICAgZm9yIChsZXQga2V5IGlu
IGdyb3VwLnByb3BlcnRpZXMpCi0gICAgICAgICAgICBncm91cC5wcm9wZXJ0aWVzW2tleV0uYWRk
RXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLkV2ZW50LlZhbHVlRGlk
Q2hhbmdlLCB0aGlzLl9zZWN0aW9uTW9kaWZpZWQuYmluZCh0aGlzLCBncm91cCkpOwotICAgIH0K
LQotICAgIF9wb3B1bGF0ZURpc3BsYXlTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91
cCA9IHRoaXMuX2dyb3Vwcy5kaXNwbGF5OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3Vw
LnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGRpc3BsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5kaXNwbGF5ID0gbmV3IFdJLlZpc3VhbFN0
eWxlS2V5d29yZFBpY2tlcigiZGlzcGxheSIsIFdJLlVJU3RyaW5nKCJUeXBlIiksIHsKLSAgICAg
ICAgICAgIGJhc2ljOiBbIk5vbmUiLCAiQmxvY2siLCAiRmxleCIsICJJbmxpbmUiLCAiSW5saW5l
IEJsb2NrIl0sCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJDb21wYWN0IiwgIklubGluZSBGbGV4
IiwgIklubGluZSBUYWJsZSIsICJMaXN0IEl0ZW0iLCAiVGFibGUiLCAiVGFibGUgQ2FwdGlvbiIs
ICJUYWJsZSBDZWxsIiwgIlRhYmxlIENvbHVtbiIsICJUYWJsZSBDb2x1bW4gR3JvdXAiLCAiVGFi
bGUgRm9vdGVyIEdyb3VwIiwgIlRhYmxlIEhlYWRlciBHcm91cCIsICJUYWJsZSBSb3ciLCAiVGFi
bGUgUm93IEdyb3VwIiwgIiBXQVAgTWFycXVlZSIsICIgV2ViS2l0IEJveCIsICIgV2ViS2l0IEdy
aWQiLCAiIFdlYktpdCBJbmxpbmUgQm94IiwgIiBXZWJLaXQgSW5saW5lIEdyaWQiXQotICAgICAg
ICB9KTsKLSAgICAgICAgcHJvcGVydGllcy52aXNpYmlsaXR5ID0gbmV3IFdJLlZpc3VhbFN0eWxl
S2V5d29yZFBpY2tlcigidmlzaWJpbGl0eSIsIFdJLlVJU3RyaW5nKCJWaXNpYmlsaXR5IiksIHsK
LSAgICAgICAgICAgIGJhc2ljOiBbIkhpZGRlbiIsICJWaXNpYmxlIl0sCi0gICAgICAgICAgICBh
ZHZhbmNlZDogWyJDb2xsYXBzZSJdCi0gICAgICAgIH0pOwotCi0gICAgICAgIGRpc3BsYXlSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmRpc3BsYXkuZWxlbWVudCk7Ci0gICAgICAg
IGRpc3BsYXlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnZpc2liaWxpdHkuZWxl
bWVudCk7Ci0KLSAgICAgICAgbGV0IHNpemluZ1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJveFNpemluZyA9IG5ldyBXSS5WaXN1YWxTdHlsZUtl
eXdvcmRQaWNrZXIoImJveC1zaXppbmciLCBXSS5VSVN0cmluZygiU2l6aW5nIiksIHRoaXMuX2tl
eXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIkJvcmRlciBCb3giLCAiQ29udGVudCBCb3giXSkpOwot
ICAgICAgICBwcm9wZXJ0aWVzLmN1cnNvciA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNr
ZXIoImN1cnNvciIsIFdJLlVJU3RyaW5nKCJDdXJzb3IiKSwgewotICAgICAgICAgICAgYmFzaWM6
IFsiQXV0byIsICJEZWZhdWx0IiwgIk5vbmUiLCAiUG9pbnRlciIsICJDcm9zc2hhaXIiLCAiVGV4
dCJdLAotICAgICAgICAgICAgYWR2YW5jZWQ6IFsiQ29udGV4dCBNZW51IiwgIkhlbHAiLCAiUHJv
Z3Jlc3MiLCAiV2FpdCIsICJDZWxsIiwgIlZlcnRpY2FsIFRleHQiLCAiQWxpYXMiLCAiQ29weSIs
ICJNb3ZlIiwgIk5vIERyb3AiLCAiTm90IEFsbG93ZWQiLCAiQWxsIFNjcm9sbCIsICJDb2wgUmVz
aXplIiwgIlJvdyBSZXNpemUiLCAiTiBSZXNpemUiLCAiRSBSZXNpemUiLCAiUyBSZXNpemUiLCAi
VyBSZXNpemUiLCAiTlMgUmVzaXplIiwgIkVXIFJlc2l6ZSIsICJORSBSZXNpemUiLCAiTlcgUmVz
aXplIiwgIlNFIFJlc2l6ZSIsICJzVyBSZXNpemUiLCAiTkVTVyBSZXNpemUiLCAiTldTRSBSZXNp
emUiXQotICAgICAgICB9KTsKLQotICAgICAgICBzaXppbmdSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLmJveFNpemluZy5lbGVtZW50KTsKLSAgICAgICAgc2l6aW5nUm93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5jdXJzb3IuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0
IG92ZXJmbG93Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3Bl
cnRpZXMub3BhY2l0eSA9IG5ldyBXSS5WaXN1YWxTdHlsZVVuaXRTbGlkZXIoIm9wYWNpdHkiLCBX
SS5VSVN0cmluZygiT3BhY2l0eSIpKTsKLSAgICAgICAgcHJvcGVydGllcy5vdmVyZmxvdyA9IG5l
dyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoWyJvdmVyZmxvdy14IiwgIm92ZXJmbG93LXki
XSwgV0kuVUlTdHJpbmcoIk92ZXJmbG93IiksIHsKLSAgICAgICAgICAgIGJhc2ljOiBbIkluaXRp
YWwiLCAiVW5zZXQiLCAiUmV2ZXJ0IiwgIkF1dG8iLCAiSGlkZGVuIiwgIlNjcm9sbCIsICJWaXNp
YmxlIl0sCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJNYXJxdWVlIiwgIk92ZXJsYXkiLCAiIFdl
YktpdCBQYWdlZCBYIiwgIiBXZWJLaXQgUGFnZWQgWSJdCi0gICAgICAgIH0pOwotCi0gICAgICAg
IG92ZXJmbG93Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5vcGFjaXR5LmVsZW1l
bnQpOwotICAgICAgICBvdmVyZmxvd1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
b3ZlcmZsb3cuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0
aWVzID0gW3Byb3BlcnRpZXMub3BhY2l0eV07Ci0KLSAgICAgICAgbGV0IGRpc3BsYXlHcm91cCA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtkaXNwbGF5Um93LCBzaXppbmdSb3csIG92ZXJm
bG93Um93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2Rpc3BsYXlH
cm91cF0pOwotICAgIH0KLQotICAgIF9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZWRpdG9yLCBt
b2RlKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZWRpdG9yTW91c2VvdmVyKCkgewotICAgICAg
ICAgICAgaWYgKCF0aGlzLl9jdXJyZW50U3R5bGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUpIHsKLSAgICAg
ICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKHRoaXMuX2N1cnJl
bnRTdHlsZS5ub2RlLmlkLCBtb2RlKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmhpZ2hsaWdodFNlbGVjdG9y
KHRoaXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0LCB0aGlzLl9jdXJyZW50
U3R5bGUubm9kZS5vd25lckRvY3VtZW50LmZyYW1lSWRlbnRpZmllciwgbW9kZSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBmdW5jdGlvbiBlZGl0b3JNb3VzZW91dCgpIHsKLSAgICAgICAgICAgIFdJ
LmRvbVRyZWVNYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBlZGl0b3IuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBlZGl0b3JN
b3VzZW92ZXIuYmluZCh0aGlzKSk7Ci0gICAgICAgIGVkaXRvci5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNlb3V0IiwgZWRpdG9yTW91c2VvdXQpOwotICAgIH0KLQotICAgIF9nZW5lcmF0
ZU1ldHJpY1NlY3Rpb25Sb3dzKGdyb3VwLCBwcmVmaXgsIGFsbG93TmVnYXRpdmVzLCBoaWdobGln
aHRPbkhvdmVyKQotICAgIHsKLSAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0
aWVzOwotICAgICAgICBsZXQgbGlua3MgPSBncm91cC5saW5rcyA9IHt9OwotCi0gICAgICAgIGxl
dCBoYXNQcmVmaXggPSBwcmVmaXggJiYgcHJlZml4Lmxlbmd0aDsKLSAgICAgICAgbGV0IHByb3Bl
cnR5TmFtZVByZWZpeCA9IGhhc1ByZWZpeCA/IHByZWZpeCArICItIiA6ICIiOwotCi0gICAgICAg
IGxldCB0b3AgPSBoYXNQcmVmaXggPyBwcmVmaXggKyAiVG9wIiA6ICJ0b3AiOwotICAgICAgICBs
ZXQgYm90dG9tID0gaGFzUHJlZml4ID8gcHJlZml4ICsgIkJvdHRvbSIgOiAiYm90dG9tIjsKLSAg
ICAgICAgbGV0IGxlZnQgPSBoYXNQcmVmaXggPyBwcmVmaXggKyAiTGVmdCIgOiAibGVmdCI7Ci0g
ICAgICAgIGxldCByaWdodCA9IGhhc1ByZWZpeCA/IHByZWZpeCArICJSaWdodCIgOiAicmlnaHQi
OwotCi0gICAgICAgIGxldCB2ZXJ0aWNhbCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQot
ICAgICAgICBwcm9wZXJ0aWVzW3RvcF0gPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJv
eChwcm9wZXJ0eU5hbWVQcmVmaXggKyAidG9wIiwgV0kuVUlTdHJpbmcoIlRvcCIpLCB0aGlzLl9r
ZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIGFsbG93TmVnYXRpdmVzKTsK
LSAgICAgICAgcHJvcGVydGllc1tib3R0b21dID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5w
dXRCb3gocHJvcGVydHlOYW1lUHJlZml4ICsgImJvdHRvbSIsIFdJLlVJU3RyaW5nKCJCb3R0b20i
KSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCBhbGxvd05l
Z2F0aXZlcywgdHJ1ZSk7Ci0gICAgICAgIGxpbmtzWyJ2ZXJ0aWNhbCJdID0gbmV3IFdJLlZpc3Vh
bFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rKFtwcm9wZXJ0aWVzW3RvcF0sIHByb3BlcnRpZXNbYm90
dG9tXV0sICJsaW5rLXZlcnRpY2FsIik7Ci0KLSAgICAgICAgdmVydGljYWwuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzW3RvcF0uZWxlbWVudCk7Ci0gICAgICAgIHZlcnRpY2FsLmVsZW1l
bnQuYXBwZW5kQ2hpbGQobGlua3NbInZlcnRpY2FsIl0uZWxlbWVudCk7Ci0gICAgICAgIHZlcnRp
Y2FsLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllc1tib3R0b21dLmVsZW1lbnQpOwotCi0g
ICAgICAgIGxldCBob3Jpem9udGFsID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAg
ICAgIHByb3BlcnRpZXNbbGVmdF0gPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChw
cm9wZXJ0eU5hbWVQcmVmaXggKyAibGVmdCIsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIHRoaXMuX2tl
eXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgYWxsb3dOZWdhdGl2ZXMpOwot
ICAgICAgICBwcm9wZXJ0aWVzW3JpZ2h0XSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0
Qm94KHByb3BlcnR5TmFtZVByZWZpeCArICJyaWdodCIsIFdJLlVJU3RyaW5nKCJSaWdodCIpLCB0
aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIGFsbG93TmVnYXRp
dmVzLCB0cnVlKTsKLSAgICAgICAgbGlua3NbImhvcml6b250YWwiXSA9IG5ldyBXSS5WaXN1YWxT
dHlsZVByb3BlcnR5RWRpdG9yTGluayhbcHJvcGVydGllc1tsZWZ0XSwgcHJvcGVydGllc1tyaWdo
dF1dLCAibGluay1ob3Jpem9udGFsIik7Ci0KLSAgICAgICAgaG9yaXpvbnRhbC5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXNbbGVmdF0uZWxlbWVudCk7Ci0gICAgICAgIGhvcml6b250YWwu
ZWxlbWVudC5hcHBlbmRDaGlsZChsaW5rc1siaG9yaXpvbnRhbCJdLmVsZW1lbnQpOwotICAgICAg
ICBob3Jpem9udGFsLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllc1tyaWdodF0uZWxlbWVu
dCk7Ci0KLSAgICAgICAgbGV0IGFsbExpbmtSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0gICAgICAgIGxpbmtzWyJhbGwiXSA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9y
TGluayhbcHJvcGVydGllc1t0b3BdLCBwcm9wZXJ0aWVzW2JvdHRvbV0sIHByb3BlcnRpZXNbbGVm
dF0sIHByb3BlcnRpZXNbcmlnaHRdXSwgImxpbmstYWxsIiwgW2xpbmtzWyJ2ZXJ0aWNhbCJdLCBs
aW5rc1siaG9yaXpvbnRhbCJdXSk7Ci0gICAgICAgIGFsbExpbmtSb3cuZWxlbWVudC5hcHBlbmRD
aGlsZChsaW5rc1siYWxsIl0uZWxlbWVudCk7Ci0KLSAgICAgICAgaWYgKGhpZ2hsaWdodE9uSG92
ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhwcm9wZXJ0
aWVzW3RvcF0sIHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0
ZW5lcnMobGlua3NbInZlcnRpY2FsIl0sIHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRN
ZXRyaWNzTW91c2VMaXN0ZW5lcnMocHJvcGVydGllc1tib3R0b21dLCBwcmVmaXgpOwotICAgICAg
ICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGxpbmtzWyJhbGwiXSwgcHJlZml4
KTsKLSAgICAgICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhwcm9wZXJ0aWVz
W2xlZnRdLCBwcmVmaXgpOwotICAgICAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVu
ZXJzKGxpbmtzWyJob3Jpem9udGFsIl0sIHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRN
ZXRyaWNzTW91c2VMaXN0ZW5lcnMocHJvcGVydGllc1tyaWdodF0sIHByZWZpeCk7Ci0gICAgICAg
IH0KLQotICAgICAgICB2ZXJ0aWNhbC5lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1ldHJpYy1zZWN0
aW9uLXJvdyIpOwotICAgICAgICBob3Jpem9udGFsLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWV0
cmljLXNlY3Rpb24tcm93Iik7Ci0gICAgICAgIGFsbExpbmtSb3cuZWxlbWVudC5jbGFzc0xpc3Qu
YWRkKCJtZXRyaWMtc2VjdGlvbi1yb3ciKTsKLQotICAgICAgICByZXR1cm4gW3ZlcnRpY2FsLCBh
bGxMaW5rUm93LCBob3Jpem9udGFsXTsKLSAgICB9Ci0KLSAgICBfcG9wdWxhdGVQb3NpdGlvblNl
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLnBvc2l0aW9u
OwotICAgICAgICBsZXQgcm93cyA9IHRoaXMuX2dlbmVyYXRlTWV0cmljU2VjdGlvblJvd3MoZ3Jv
dXAsIG51bGwsIHRydWUpOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRp
ZXM7Ci0KLSAgICAgICAgbGV0IHBvc2l0aW9uVHlwZSA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnBvc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5
d29yZFBpY2tlcigicG9zaXRpb24iLCBXSS5VSVN0cmluZygiVHlwZSIpLCB7Ci0gICAgICAgICAg
ICBiYXNpYzogWyJTdGF0aWMiLCAiUmVsYXRpdmUiLCAiQWJzb2x1dGUiLCAiRml4ZWQiXSwKLSAg
ICAgICAgICAgIGFkdmFuY2VkOiBbIiBXZWJLaXQgU3RpY2t5Il0KLSAgICAgICAgfSk7Ci0gICAg
ICAgIHByb3BlcnRpZXMuekluZGV4ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3go
InotaW5kZXgiLCBXSS5VSVN0cmluZygiWi1JbmRleCIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2Rl
bCwgbnVsbCwgdHJ1ZSk7Ci0KLSAgICAgICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5wb3NpdGlvbi5lbGVtZW50KTsKLSAgICAgICAgcG9zaXRpb25UeXBlLmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy56SW5kZXguZWxlbWVudCk7Ci0gICAgICAgIHBv
c2l0aW9uVHlwZS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQt
cm93Iik7Ci0KLSAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0aW9uVHlwZSk7Ci0KLSAgICAgICAg
Z3JvdXAuZGVmYXVsdEdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyk7Ci0K
LSAgICAgICAgbGV0IHh5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAg
IHByb3BlcnRpZXMueCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4IiwgV0ku
VUlTdHJpbmcoIlgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1
bHRzLCB0cnVlKTsKLSAgICAgICAgcHJvcGVydGllcy55ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVt
YmVySW5wdXRCb3goInkiLCBXSS5VSVN0cmluZygiWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2Rl
bCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIHh5Um93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy54LmVsZW1lbnQpOwotICAgICAgICB4eVJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgeDF5MVJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLngxID0g
bmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIngxIiwgV0kuVUlTdHJpbmcoIlgxIiks
IHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7Ci0g
ICAgICAgIHByb3BlcnRpZXMueTEgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgi
eTEiLCBXSS5VSVN0cmluZygiWTEiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3Vu
aXRzLmRlZmF1bHRzLCB0cnVlKTsKLQotICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy54MS5lbGVtZW50KTsKLSAgICAgICAgeDF5MVJvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMueTEuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHgyeTJSb3cgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy54MiA9IG5ldyBX
SS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4MiIsIFdJLlVJU3RyaW5nKCJYMiIpLCB0aGlz
Ll9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwotICAgICAg
ICBwcm9wZXJ0aWVzLnkyID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkyIiwg
V0kuVUlTdHJpbmcoIlkyIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5k
ZWZhdWx0cywgdHJ1ZSk7Ci0KLSAgICAgICAgeDJ5MlJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMueDIuZWxlbWVudCk7Ci0gICAgICAgIHgyeTJSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLnkyLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBjeGN5Um93ID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuY3ggPSBuZXcgV0kuVmlz
dWFsU3R5bGVOdW1iZXJJbnB1dEJveCgiY3giLCBXSS5VSVN0cmluZygiQ2VudGVyIFgiKSwgdGhp
cy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKLSAgICAg
ICAgcHJvcGVydGllcy5jeSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJjeSIs
IFdJLlVJU3RyaW5nKCJDZW50ZXIgWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5f
dW5pdHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIGN4Y3lSb3cuZWxlbWVudC5hcHBlbmRD
aGlsZChwcm9wZXJ0aWVzLmN4LmVsZW1lbnQpOwotICAgICAgICBjeGN5Um93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy5jeS5lbGVtZW50KTsKLQotICAgICAgICBncm91cC5zdmdHcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt4eVJvdywgeDF5MVJvdywgeDJ5MlJvdywg
Y3hjeVJvd10pOwotCi0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2dyb3Vw
LmRlZmF1bHRHcm91cCwgZ3JvdXAuc3ZnR3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZFBv
c2l0aW9uVmFsdWVzID0gWyJyZWxhdGl2ZSIsICJhYnNvbHV0ZSIsICJmaXhlZCIsICItd2Via2l0
LXN0aWNreSJdOwotICAgICAgICBwcm9wZXJ0aWVzLnpJbmRleC5hZGREZXBlbmRlbmN5KCJwb3Np
dGlvbiIsIGFsbG93ZWRQb3NpdGlvblZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMudG9wLmFk
ZERlcGVuZGVuY3koInBvc2l0aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICAgICAg
cHJvcGVydGllcy5yaWdodC5hZGREZXBlbmRlbmN5KCJwb3NpdGlvbiIsIGFsbG93ZWRQb3NpdGlv
blZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm90dG9tLmFkZERlcGVuZGVuY3koInBvc2l0
aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5sZWZ0LmFk
ZERlcGVuZGVuY3koInBvc2l0aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICB9Ci0K
LSAgICBfcG9wdWxhdGVGbG9hdFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0g
dGhpcy5fZ3JvdXBzLmZsb2F0OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3Bl
cnRpZXM7Ci0KLSAgICAgICAgbGV0IGZsb2F0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93
OwotCi0gICAgICAgIHByb3BlcnRpZXMuZmxvYXQgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3Jk
SWNvbkxpc3QoImZsb2F0IiwgV0kuVUlTdHJpbmcoIkZsb2F0IiksIFsiTGVmdCIsICJSaWdodCIs
ICJOb25lIl0pOwotICAgICAgICBmbG9hdFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMuZmxvYXQuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGNsZWFyUm93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuY2xlYXIgPSBuZXcgV0kuVmlzdWFs
U3R5bGVLZXl3b3JkSWNvbkxpc3QoImNsZWFyIiwgV0kuVUlTdHJpbmcoIkNsZWFyIiksIFsiTGVm
dCIsICJSaWdodCIsICJCb3RoIiwgIk5vbmUiXSk7Ci0gICAgICAgIGNsZWFyUm93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy5jbGVhci5lbGVtZW50KTsKLQotICAgICAgICBsZXQgZmxv
YXRHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtmbG9hdFJvdywgY2xlYXJSb3dd
KTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmxvYXRHcm91cF0pOwot
ICAgIH0KLQotICAgIF9wb3B1bGF0ZURpbWVuc2lvbnNTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zOwotICAgICAgICBsZXQgcHJvcGVy
dGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNXaWR0aCA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLndpZHRoID0g
bmV3IFdJLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoIndpZHRoIiwgV0kuVUlTdHJp
bmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0
cyk7Ci0KLSAgICAgICAgZGltZW5zaW9uc1dpZHRoLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy53aWR0aC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgZGltZW5zaW9uc0hlaWdodCA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmhlaWdodCA9IG5l
dyBXSS5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJoZWlnaHQiLCBXSS5VSVN0cmlu
ZygiSGVpZ2h0IiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0
cywgdHJ1ZSk7Ci0KLSAgICAgICAgZGltZW5zaW9uc0hlaWdodC5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXMuaGVpZ2h0LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zUHJv
cGVydGllcyA9IFtwcm9wZXJ0aWVzLndpZHRoLCBwcm9wZXJ0aWVzLmhlaWdodF07Ci0gICAgICAg
IGxldCBkaW1lbnNpb25zUmVndWxhckdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAo
W2RpbWVuc2lvbnNXaWR0aCwgZGltZW5zaW9uc0hlaWdodF0pOwotCi0gICAgICAgIGxldCBkaW1l
bnNpb25zTWluV2lkdGggPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJv
cGVydGllcy5taW5XaWR0aCA9IG5ldyBXSS5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVy
KCJtaW4td2lkdGgiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9k
ZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBkaW1lbnNpb25zTWluV2lkdGgu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLm1pbldpZHRoLmVsZW1lbnQpOwotCi0gICAg
ICAgIGxldCBkaW1lbnNpb25zTWluSGVpZ2h0ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93Owot
Ci0gICAgICAgIHByb3BlcnRpZXMubWluSGVpZ2h0ID0gbmV3IFdJLlZpc3VhbFN0eWxlUmVsYXRp
dmVOdW1iZXJTbGlkZXIoIm1pbi1oZWlnaHQiLCBXSS5VSVN0cmluZygiSGVpZ2h0IiksIHRoaXMu
X2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgZGlt
ZW5zaW9uc01pbkhlaWdodC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubWluSGVpZ2h0
LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zTWluUHJvcGVydGllcyA9IFtwcm9w
ZXJ0aWVzLm1pbldpZHRoLCBwcm9wZXJ0aWVzLm1pbkhlaWdodF07Ci0gICAgICAgIGxldCBkaW1l
bnNpb25zTWluR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGltZW5zaW9uc01p
bldpZHRoLCBkaW1lbnNpb25zTWluSGVpZ2h0XSk7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNN
YXhLZXl3b3JkcyA9IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdCgiTm9uZSIpOwotICAg
ICAgICBsZXQgZGltZW5zaW9uc01heFdpZHRoID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93Owot
Ci0gICAgICAgIHByb3BlcnRpZXMubWF4V2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2
ZU51bWJlclNsaWRlcigibWF4LXdpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIGRpbWVuc2lv
bnNNYXhLZXl3b3JkcywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIGRpbWVuc2lv
bnNNYXhXaWR0aC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubWF4V2lkdGguZWxlbWVu
dCk7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNNYXhIZWlnaHQgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5tYXhIZWlnaHQgPSBuZXcgV0kuVmlzdWFs
U3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigibWF4LWhlaWdodCIsIFdJLlVJU3RyaW5nKCJIZWln
aHQiKSwgZGltZW5zaW9uc01heEtleXdvcmRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAg
ICAgICAgZGltZW5zaW9uc01heEhlaWdodC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
bWF4SGVpZ2h0LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zTWF4UHJvcGVydGll
cyA9IFtwcm9wZXJ0aWVzLm1heFdpZHRoLCBwcm9wZXJ0aWVzLm1heEhlaWdodF07Ci0gICAgICAg
IGxldCBkaW1lbnNpb25zTWF4R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGlt
ZW5zaW9uc01heFdpZHRoLCBkaW1lbnNpb25zTWF4SGVpZ2h0XSk7Ci0KLSAgICAgICAgbGV0IGRp
bWVuc2lvbnNUYWJDb250cm9sbGVyID0gbmV3IFdJLlZpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGll
c1Jvdyh7Ci0gICAgICAgICAgICAiZGVmYXVsdCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIkRlZmF1
bHQiKSwgZWxlbWVudDogZGltZW5zaW9uc1JlZ3VsYXJHcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVz
OiBkaW1lbnNpb25zUHJvcGVydGllc30sCi0gICAgICAgICAgICAibWluIjoge3RpdGxlOiBXSS5V
SVN0cmluZygiTWluIiksIGVsZW1lbnQ6IGRpbWVuc2lvbnNNaW5Hcm91cC5lbGVtZW50LCBwcm9w
ZXJ0aWVzOiBkaW1lbnNpb25zTWluUHJvcGVydGllc30sCi0gICAgICAgICAgICAibWF4Ijoge3Rp
dGxlOiBXSS5VSVN0cmluZygiTWF4IiksIGVsZW1lbnQ6IGRpbWVuc2lvbnNNYXhHcm91cC5lbGVt
ZW50LCBwcm9wZXJ0aWVzOiBkaW1lbnNpb25zTWF4UHJvcGVydGllc30KLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgbGV0IGhpZ2hsaWdodE1vZGUgPSAiY29udGVudCI7Ci0gICAgICAgIHRoaXMuX2Fk
ZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLndpZHRoLCBoaWdobGlnaHRN
b2RlKTsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3Bl
cnRpZXMuaGVpZ2h0LCBoaWdobGlnaHRNb2RlKTsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01v
dXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMubWluV2lkdGgsIGhpZ2hsaWdodE1vZGUpOwot
ICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5t
aW5IZWlnaHQsIGhpZ2hsaWdodE1vZGUpOwotICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VM
aXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5tYXhXaWR0aCwgaGlnaGxpZ2h0TW9kZSk7Ci0gICAg
ICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLm1heEhl
aWdodCwgaGlnaGxpZ2h0TW9kZSk7Ci0KLSAgICAgICAgZ3JvdXAuZGVmYXVsdEdyb3VwID0gbmV3
IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2RpbWVuc2lvbnNUYWJDb250cm9sbGVyLCBkaW1lbnNp
b25zUmVndWxhckdyb3VwLCBkaW1lbnNpb25zTWluR3JvdXAsIGRpbWVuc2lvbnNNYXhHcm91cF0p
OwotCi0gICAgICAgIGxldCByUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAg
ICAgIHByb3BlcnRpZXMuciA9IG5ldyBXSS5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVy
KCJyIiwgV0kuVUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhp
cy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIHJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzLnIuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHJ4Um93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMucnggPSBuZXcgV0kuVmlzdWFsU3R5
bGVSZWxhdGl2ZU51bWJlclNsaWRlcigicngiLCBXSS5VSVN0cmluZygiUmFkaXVzIFgiKSwgdGhp
cy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBy
eFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMucnguZWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IHJ5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3Bl
cnRpZXMucnkgPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigicnkiLCBX
SS5VSVN0cmluZygiUmFkaXVzIFkiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3Vu
aXRzLmRlZmF1bHRzKTsKLQotICAgICAgICByeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3Bl
cnRpZXMucnkuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Hcm91cChbclJvdywgcnhSb3csIHJ5Um93XSk7Ci0KLSAgICAgICAgdGhpcy5f
cG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZ3JvdXAuZGVmYXVsdEdyb3VwLCBncm91cC5zdmdHcm91
cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZU1hcmdpblNlY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLm1hcmdpbjsKLSAgICAgICAgbGV0IHJvd3MgPSB0
aGlzLl9nZW5lcmF0ZU1ldHJpY1NlY3Rpb25Sb3dzKGdyb3VwLCAibWFyZ2luIiwgdHJ1ZSwgdHJ1
ZSk7Ci0gICAgICAgIGxldCBtYXJnaW5Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3Vw
KHJvd3MpOwotICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFttYXJnaW5Hcm91
cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVBhZGRpbmdTZWN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5wYWRkaW5nOwotICAgICAgICBsZXQgcm93cyA9
IHRoaXMuX2dlbmVyYXRlTWV0cmljU2VjdGlvblJvd3MoZ3JvdXAsICJwYWRkaW5nIiwgZmFsc2Us
IHRydWUpOwotICAgICAgICBsZXQgcGFkZGluZ0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
R3JvdXAocm93cyk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3BhZGRp
bmdHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZUZsZXhib3hTZWN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5mbGV4Ym94OwotICAgICAgICBsZXQg
cHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGZsZXhPcmRlclJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLm9yZGVy
ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm9yZGVyIiwgV0kuVUlTdHJpbmco
Ik9yZGVyIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy5m
bGV4QmFzaXMgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgiZmxleC1iYXNpcyIs
IFdJLlVJU3RyaW5nKCJCYXNpcyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5p
dHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIGZsZXhPcmRlclJvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMub3JkZXIuZWxlbWVudCk7Ci0gICAgICAgIGZsZXhPcmRlclJvdy5l
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmxleEJhc2lzLmVsZW1lbnQpOwotCi0gICAg
ICAgIGxldCBmbGV4U2l6ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAg
ICBwcm9wZXJ0aWVzLmZsZXhHcm93ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3go
ImZsZXgtZ3JvdyIsIFdJLlVJU3RyaW5nKCJHcm93IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRz
KTsKLSAgICAgICAgcHJvcGVydGllcy5mbGV4U2hyaW5rID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVt
YmVySW5wdXRCb3goImZsZXgtc2hyaW5rIiwgV0kuVUlTdHJpbmcoIlNocmluayIpLCB0aGlzLl9r
ZXl3b3Jkcy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgZmxleFNpemVSb3cuZWxlbWVudC5hcHBlbmRD
aGlsZChwcm9wZXJ0aWVzLmZsZXhHcm93LmVsZW1lbnQpOwotICAgICAgICBmbGV4U2l6ZVJvdy5l
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmxleFNocmluay5lbGVtZW50KTsKLQotICAg
ICAgICBsZXQgZmxleEZsb3dSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAg
ICAgcHJvcGVydGllcy5mbGV4RGlyZWN0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBp
Y2tlcigiZmxleC1kaXJlY3Rpb24iLCBXSS5VSVN0cmluZygiRGlyZWN0aW9uIiksIHRoaXMuX2tl
eXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIlJvdyIsICJSb3cgUmV2ZXJzZSIsICJDb2x1bW4iLCAi
Q29sdW1uIFJldmVyc2UiXSkpOwotICAgICAgICBwcm9wZXJ0aWVzLmZsZXhXcmFwID0gbmV3IFdJ
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiZmxleC13cmFwIiwgV0kuVUlTdHJpbmcoIldyYXAi
KSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiV3JhcCIsICJXcmFwIFJldmVyc2Ui
LCAiTm93cmFwIl0pKTsKLQotICAgICAgICBmbGV4Rmxvd1Jvdy5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXMuZmxleERpcmVjdGlvbi5lbGVtZW50KTsKLSAgICAgICAgZmxleEZsb3dSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZsZXhXcmFwLmVsZW1lbnQpOwotCi0gICAg
ICAgIGxldCBmbGV4Ym94R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmxleE9y
ZGVyUm93LCBmbGV4U2l6ZVJvdywgZmxleEZsb3dSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxh
dGVTZWN0aW9uKGdyb3VwLCBbZmxleGJveEdyb3VwXSk7Ci0KLSAgICAgICAgbGV0IGFsbG93ZWRE
aXNwbGF5VmFsdWVzID0gWyJmbGV4IiwgImlubGluZS1mbGV4IiwgIi13ZWJraXQtYm94IiwgIi13
ZWJraXQtaW5saW5lLWJveCJdOwotICAgICAgICBwcm9wZXJ0aWVzLm9yZGVyLmFkZERlcGVuZGVu
Y3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMu
ZmxleEJhc2lzLmFkZERlcGVuZGVuY3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7
Ci0gICAgICAgIHByb3BlcnRpZXMuZmxleEdyb3cuYWRkRGVwZW5kZW5jeSgiZGlzcGxheSIsIGFs
bG93ZWREaXNwbGF5VmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5mbGV4U2hyaW5rLmFkZERl
cGVuZGVuY3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3Bl
cnRpZXMuZmxleERpcmVjdGlvbi5hZGREZXBlbmRlbmN5KCJkaXNwbGF5IiwgYWxsb3dlZERpc3Bs
YXlWYWx1ZXMpOwotICAgICAgICBwcm9wZXJ0aWVzLmZsZXhXcmFwLmFkZERlcGVuZGVuY3koImRp
c3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlQWxp
Z25tZW50U2VjdGlvbigpCi0gICAgewotICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMu
YWxpZ25tZW50OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0g
ICAgICAgIGxldCBhbGlnbm1lbnRLZXl3b3JkcyA9IFsiSW5pdGlhbCIsICJVbnNldCIsICJSZXZl
cnQiLCAiQXV0byIsICJGbGV4IFN0YXJ0IiwgIkZsZXggRW5kIiwgIkNlbnRlciIsICJTdHJldGNo
Il07Ci0gICAgICAgIGxldCBhZHZhbmNlZEFsaWdubWVudEtleXdvcmRzID0gWyJTdGFydCIsICJF
bmQiLCAiTGVmdCIsICJSaWdodCIsICJCYXNlbGluZSIsICJMYXN0IEJhc2VsaW5lIl07Ci0KLSAg
ICAgICAgbGV0IGNvbnRlbnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0gICAgICAg
IGxldCBjb250ZW50S2V5d29yZHMgPSB7Ci0gICAgICAgICAgICBiYXNpYzogYWxpZ25tZW50S2V5
d29yZHMuY29uY2F0KFsiU3BhY2UgQmV0d2VlbiIsICJTcGFjZSBBcm91bmQiXSksCi0gICAgICAg
ICAgICBhZHZhbmNlZDogYWR2YW5jZWRBbGlnbm1lbnRLZXl3b3Jkcy5jb25jYXQoWyJTcGFjZSBF
dmVubHkiXSkKLSAgICAgICAgfTsKLQotICAgICAgICBwcm9wZXJ0aWVzLmp1c3RpZnlDb250ZW50
ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigianVzdGlmeS1jb250ZW50IiwgV0ku
VUlTdHJpbmcoIkhvcml6b250YWwiKSwgY29udGVudEtleXdvcmRzKTsKLSAgICAgICAgcHJvcGVy
dGllcy5hbGlnbkNvbnRlbnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbGln
bi1jb250ZW50IiwgV0kuVUlTdHJpbmcoIlZlcnRpY2FsIiksIGNvbnRlbnRLZXl3b3Jkcyk7Ci0K
LSAgICAgICAgY29udGVudFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuanVzdGlm
eUNvbnRlbnQuZWxlbWVudCk7Ci0gICAgICAgIGNvbnRlbnRSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLmFsaWduQ29udGVudC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgaXRlbXNS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0gICAgICAgIGxldCBpdGVtS2V5d29yZHMg
PSB7Ci0gICAgICAgICAgICBiYXNpYzogYWxpZ25tZW50S2V5d29yZHMsCi0gICAgICAgICAgICBh
ZHZhbmNlZDogWyJTZWxmIFN0YXJ0IiwgIlNlbGYgRW5kIl0uY29uY2F0KGFkdmFuY2VkQWxpZ25t
ZW50S2V5d29yZHMpCi0gICAgICAgIH07Ci0KLSAgICAgICAgcHJvcGVydGllcy5hbGlnbkl0ZW1z
ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiYWxpZ24taXRlbXMiLCBXSS5VSVN0
cmluZygiQ2hpbGRyZW4iKSwgaXRlbUtleXdvcmRzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbGln
blNlbGYgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbGlnbi1zZWxmIiwgV0ku
VUlTdHJpbmcoIlNlbGYiKSwgaXRlbUtleXdvcmRzKTsKLQotICAgICAgICBpdGVtc1Jvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYWxpZ25JdGVtcy5lbGVtZW50KTsKLSAgICAgICAg
aXRlbXNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmFsaWduU2VsZi5lbGVtZW50
KTsKLQotICAgICAgICBsZXQgYWxpZ25tZW50R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25H
cm91cChbY29udGVudFJvdywgaXRlbXNSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0
aW9uKGdyb3VwLCBbYWxpZ25tZW50R3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZERpc3Bs
YXlWYWx1ZXMgPSBbImZsZXgiLCAiaW5saW5lLWZsZXgiLCAiLXdlYmtpdC1ib3giLCAiLXdlYmtp
dC1pbmxpbmUtYm94Il07Ci0gICAgICAgIHByb3BlcnRpZXMuanVzdGlmeUNvbnRlbnQuYWRkRGVw
ZW5kZW5jeSgiZGlzcGxheSIsIGFsbG93ZWREaXNwbGF5VmFsdWVzKTsKLSAgICAgICAgcHJvcGVy
dGllcy5hbGlnbkNvbnRlbnQuYWRkRGVwZW5kZW5jeSgiZGlzcGxheSIsIGFsbG93ZWREaXNwbGF5
VmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbGlnbkl0ZW1zLmFkZERlcGVuZGVuY3koImRp
c3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYWxpZ25T
ZWxmLmFkZERlcGVuZGVuY3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAg
fQotCi0gICAgX3BvcHVsYXRlQ29udGVudFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdy
b3VwID0gdGhpcy5fZ3JvdXBzLmNvbnRlbnQ7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3Jv
dXAucHJvcGVydGllczsKLQotICAgICAgICBsZXQgY29udGVudFJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmNvbnRlbnQgPSBuZXcgV0kuVmlzdWFs
U3R5bGVCYXNpY0lucHV0KCJjb250ZW50IiwgbnVsbCwgV0kuVUlTdHJpbmcoIkVudGVyIHZhbHVl
IikpOwotCi0gICAgICAgIGNvbnRlbnRSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LmNvbnRlbnQuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGNvbnRlbnRHcm91cCA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwKFtjb250ZW50Um93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRl
U2VjdGlvbihncm91cCwgW2NvbnRlbnRHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRl
eHRTdHlsZVNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBz
LnRleHRTdHlsZTsKLSAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwot
Ci0gICAgICAgIGxldCB0ZXh0QXBwZWFyYW5jZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmNvbG9yID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29sb3JQ
aWNrZXIoImNvbG9yIiwgV0kuVUlTdHJpbmcoIkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVz
LnRleHREaXJlY3Rpb24gPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJkaXJlY3Rp
b24iLCBXSS5VSVN0cmluZygiRGlyZWN0aW9uIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNv
bmNhdChbIkxUUiIsICJSVEwiXSkpOwotCi0gICAgICAgIHRleHRBcHBlYXJhbmNlUm93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5jb2xvci5lbGVtZW50KTsKLSAgICAgICAgdGV4dEFw
cGVhcmFuY2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnRleHREaXJlY3Rpb24u
ZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHRleHRBbGlnblJvdyA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnRleHRBbGlnbiA9IG5ldyBXSS5WaXN1YWxT
dHlsZUtleXdvcmRJY29uTGlzdCgidGV4dC1hbGlnbiIsIFdJLlVJU3RyaW5nKCJBbGlnbiIpLCBb
IkxlZnQiLCAiQ2VudGVyIiwgIlJpZ2h0IiwgIkp1c3RpZnkiXSk7Ci0KLSAgICAgICAgdGV4dEFs
aWduUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy50ZXh0QWxpZ24uZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IHRleHRUcmFuc2Zvcm1Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25S
b3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy50ZXh0VHJhbnNmb3JtID0gbmV3IFdJLlZpc3VhbFN0
eWxlS2V5d29yZEljb25MaXN0KCJ0ZXh0LXRyYW5zZm9ybSIsIFdJLlVJU3RyaW5nKCJUcmFuc2Zv
cm0iKSwgWyJDYXBpdGFsaXplIiwgIlVwcGVyY2FzZSIsICJMb3dlcmNhc2UiLCAiTm9uZSJdKTsK
LQotICAgICAgICB0ZXh0VHJhbnNmb3JtUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGll
cy50ZXh0VHJhbnNmb3JtLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCB0ZXh0RGVjb3JhdGlvblJv
dyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnRleHRE
ZWNvcmF0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0KCJ0ZXh0LWRlY29y
YXRpb24iLCBXSS5VSVN0cmluZygiRGVjb3JhdGlvbiIpLCBbIlVuZGVybGluZSIsICJMaW5lIFRo
cm91Z2giLCAiT3ZlcmxpbmUiLCAiTm9uZSJdKTsKLQotICAgICAgICB0ZXh0RGVjb3JhdGlvblJv
dy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMudGV4dERlY29yYXRpb24uZWxlbWVudCk7
Ci0KLSAgICAgICAgZ3JvdXAuYXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnRpZXMgPSBbcHJv
cGVydGllcy5jb2xvcl07Ci0KLSAgICAgICAgbGV0IHRleHRTdHlsZUdyb3VwID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uR3JvdXAoW3RleHRBcHBlYXJhbmNlUm93LCB0ZXh0QWxpZ25Sb3csIHRleHRU
cmFuc2Zvcm1Sb3csIHRleHREZWNvcmF0aW9uUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRl
U2VjdGlvbihncm91cCwgW3RleHRTdHlsZUdyb3VwXSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRl
Rm9udFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZv
bnQ7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAgICAg
ICBsZXQgZm9udEZhbWlseVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAg
ICBwcm9wZXJ0aWVzLmZvbnRGYW1pbHkgPSBuZXcgV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5TGlz
dEVkaXRvcigiZm9udC1mYW1pbHkiLCBXSS5VSVN0cmluZygiRmFtaWx5IikpOwotCi0gICAgICAg
IGZvbnRGYW1pbHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRGYW1pbHku
ZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGZvbnRTaXplUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuZm9udFNpemUgPSBuZXcgV0kuVmlzdWFsU3R5
bGVOdW1iZXJJbnB1dEJveCgiZm9udC1zaXplIiwgV0kuVUlTdHJpbmcoIlNpemUiKSwgdGhpcy5f
a2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTGFyZ2VyIiwgIlhYIExhcmdlIiwgIlggTGFyZ2Ui
LCAiTGFyZ2UiLCAiTWVkaXVtIiwgIlNtYWxsIiwgIlggU21hbGwiLCAiWFggU21hbGwiLCAiU21h
bGxlciJdKSwgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIHByb3BlcnRpZXMuZm9u
dFdlaWdodCA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImZvbnQtd2VpZ2h0Iiwg
V0kuVUlTdHJpbmcoIldlaWdodCIpLCB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29y
ZHMuZGVmYXVsdHMuY29uY2F0KFsiQm9sZGVyIiwgIkJvbGQiLCAiTm9ybWFsIiwgIkxpZ2h0ZXIi
XSksCi0gICAgICAgICAgICBhZHZhbmNlZDogWyIxMDAiLCAiMjAwIiwgIjMwMCIsICI0MDAiLCAi
NTAwIiwgIjYwMCIsICI3MDAiLCAiODAwIiwgIjkwMCJdCi0gICAgICAgIH0pOwotCi0gICAgICAg
IGZvbnRTaXplUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5mb250U2l6ZS5lbGVt
ZW50KTsKLSAgICAgICAgZm9udFNpemVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LmZvbnRXZWlnaHQuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGZvbnRTdHlsZVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmZvbnRTdHlsZSA9IG5l
dyBXSS5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCgiZm9udC1zdHlsZSIsIFdJLlVJU3RyaW5n
KCJTdHlsZSIpLCBbIkl0YWxpYyIsICJOb3JtYWwiXSk7Ci0gICAgICAgIHByb3BlcnRpZXMuZm9u
dEZlYXR1cmVTZXR0aW5ncyA9IG5ldyBXSS5WaXN1YWxTdHlsZUJhc2ljSW5wdXQoImZvbnQtZmVh
dHVyZS1zZXR0aW5ncyIsIFdJLlVJU3RyaW5nKCJGZWF0dXJlcyIpLCBXSS5VSVN0cmluZygiRW50
ZXIgVGFnIikpOwotCi0gICAgICAgIGZvbnRTdHlsZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMuZm9udFN0eWxlLmVsZW1lbnQpOwotICAgICAgICBmb250U3R5bGVSb3cuZWxlbWVu
dC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRGZWF0dXJlU2V0dGluZ3MuZWxlbWVudCk7Ci0K
LSAgICAgICAgZ3JvdXAuYXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnRpZXMgPSBbcHJvcGVy
dGllcy5mb250RmFtaWx5XTsKLSAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVz
ID0gW3Byb3BlcnRpZXMuZm9udEZhbWlseV07Ci0KLSAgICAgICAgbGV0IGZvbnRHcm91cCA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtmb250RmFtaWx5Um93LCBmb250U2l6ZVJvdywgZm9u
dFN0eWxlUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2ZvbnRH
cm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZUZvbnRWYXJpYW50c1NlY3Rpb24oKQotICAg
IHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZvbnRWYXJpYW50czsKLSAgICAg
ICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBhbHRl
cm5hdGVzUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRp
ZXMuZm9udFZhcmlhbnRBbHRlcm5hdGVzID0gbmV3IFdJLlZpc3VhbFN0eWxlQmFzaWNJbnB1dCgi
Zm9udC12YXJpYW50LWFsdGVybmF0ZXMiLCBXSS5VSVN0cmluZygiQWx0ZXJuYXRlcyIpLCBXSS5V
SVN0cmluZygiRW50ZXIgVmFsdWUiKSk7Ci0KLSAgICAgICAgYWx0ZXJuYXRlc1Jvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZm9udFZhcmlhbnRBbHRlcm5hdGVzLmVsZW1lbnQpOwot
Ci0gICAgICAgIGxldCBwb3NpdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQot
ICAgICAgICBwcm9wZXJ0aWVzLmZvbnRWYXJpYW50UG9zaXRpb24gPSBuZXcgV0kuVmlzdWFsU3R5
bGVLZXl3b3JkUGlja2VyKCJmb250LXZhcmlhbnQtcG9zaXRpb24iLCBXSS5VSVN0cmluZygiUG9z
aXRpb24iKSwgdGhpcy5fa2V5d29yZHMubm9ybWFsLmNvbmNhdChbIlN1YiIsICJTdXBlciJdKSk7
Ci0KLSAgICAgICAgcG9zaXRpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZv
bnRWYXJpYW50UG9zaXRpb24uZWxlbWVudCk7Ci0KLSAgICAgICAgcHJvcGVydGllcy5mb250VmFy
aWFudENhcHMgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJmb250LXZhcmlhbnQt
Y2FwcyIsIFdJLlVJU3RyaW5nKCJDYXBzIiksIHRoaXMuX2tleXdvcmRzLm5vcm1hbC5jb25jYXQo
WyJOb25lIiwgIlNtYWxsIENhcHMiLCAiQWxsIFNtYWxsIENhcHMiLCAiUGV0aXRlIENhcHMiLCAi
QWxsIFBldGl0ZSBDYXBzIiwgIlVuaWNhc2UiLCAiVGl0bGluZyBDYXBzIl0pKTsKLQotICAgICAg
ICBwb3NpdGlvblJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZm9udFZhcmlhbnRD
YXBzLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBsaWdhdHVyZXNSb3cgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgLy8gRklYTUUgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTUz
NjQ1PiBBZGQgdG9rZW4gYmFzZWQgZWRpdG9yIGZvciBWaXN1YWwgU2lkZWJhcgotICAgICAgICBw
cm9wZXJ0aWVzLmZvbnRWYXJpYW50TGlnYXR1cmVzID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlcigiZm9udC12YXJpYW50LWxpZ2F0dXJlcyIsIFdJLlVJU3RyaW5nKCJMaWdhdHVyZXMi
KSwgdGhpcy5fa2V5d29yZHMubm9ybWFsLmNvbmNhdChbIk5vbmUiLCAiQ29tbW9uIExpZ2F0dXJl
cyIsICJObyBDb21tb24gTGlnYXR1cmVzIiwgIkRpc2NyZXRpb25hcnkgTGlnYXR1cmVzIiwgIk5v
IERpc2NyZXRpb25hcnkgTGlnYXR1cmVzIiwgIkhpc3RvcmljYWwgTGlnYXR1cmVzIiwgIk5vIEhp
c3RvcmljYWwgTGlnYXR1cmVzIiwgIkNvbnRleHR1YWwiLCAiTm8gQ29udGV4dHVhbCJdKSk7Ci0K
LSAgICAgICAgbGlnYXR1cmVzUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5mb250
VmFyaWFudExpZ2F0dXJlcy5lbGVtZW50KTsKLQotICAgICAgICBwcm9wZXJ0aWVzLmZvbnRWYXJp
YW50TnVtZXJpYyA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImZvbnQtdmFyaWFu
dC1udW1lcmljIiwgV0kuVUlTdHJpbmcoIk51bWVyaWMiKSwgdGhpcy5fa2V5d29yZHMubm9ybWFs
LmNvbmNhdChbIk5vbmUiLCAiT3JkaW5hbCIsICJTbGFzaGVkIFplcm8iLCAiTGluaW5nIE51bXMi
LCAiT2xkc3R5bGUgTnVtcyIsICJQcm9wb3J0aW9uYWwgTnVtcyIsICJUYWJ1bGFyIE51bXMiLCAi
RGlhZ29uYWwgRnJhY3Rpb25zIiwgIlN0YWNrZWQgRnJhY3Rpb25zIl0pKTsKLQotICAgICAgICBs
aWdhdHVyZXNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRWYXJpYW50TnVt
ZXJpYy5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdmFyaWFudHNHcm91cCA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvbkdyb3VwKFthbHRlcm5hdGVzUm93LCBwb3NpdGlvblJvdywgbGlnYXR1cmVzUm93
XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3ZhcmlhbnRzR3JvdXBd
KTsKLSAgICB9Ci0KLSAgICBfcG9wdWxhdGVUZXh0U3BhY2luZ1NlY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLnRleHRTcGFjaW5nOwotICAgICAgICBsZXQg
cHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IHRleHRMYXlvdXRS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5saW5l
SGVpZ2h0ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImxpbmUtaGVpZ2h0Iiwg
V0kuVUlTdHJpbmcoIkhlaWdodCIpLCB0aGlzLl9rZXl3b3Jkcy5ub3JtYWwsIHRoaXMuX3VuaXRz
LmRlZmF1bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy52ZXJ0aWNhbEFsaWduID0gbmV3IFdJLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInZlcnRpY2FsLWFsaWduIiwgV0kuVUlTdHJpbmcoIkFs
aWduIiksIFsiQmFzZWxpbmUiLCAiQm90dG9tIl0uY29uY2F0KHRoaXMuX2tleXdvcmRzLmRlZmF1
bHRzLCBbIk1pZGRsZSIsICJTdWIiLCAiU3VwZXIiLCAiVGV4dCBCb3R0b20iLCAiVGV4dCBUb3Ai
LCAiVG9wIl0pLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgdGV4dExheW91dFJv
dy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubGluZUhlaWdodC5lbGVtZW50KTsKLSAg
ICAgICAgdGV4dExheW91dFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMudmVydGlj
YWxBbGlnbi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNwYWNpbmdSb3cgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5sZXR0ZXJTcGFjaW5nID0g
bmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImxldHRlci1zcGFjaW5nIiwgV0kuVUlT
dHJpbmcoIkxldHRlciIpLCB0aGlzLl9rZXl3b3Jkcy5ub3JtYWwsIHRoaXMuX3VuaXRzLmRlZmF1
bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy53b3JkU3BhY2luZyA9IG5ldyBXSS5WaXN1YWxTdHls
ZU51bWJlcklucHV0Qm94KCJ3b3JkLXNwYWNpbmciLCBXSS5VSVN0cmluZygiV29yZCIpLCB0aGlz
Ll9rZXl3b3Jkcy5ub3JtYWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICB0ZXh0
U3BhY2luZ1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubGV0dGVyU3BhY2luZy5l
bGVtZW50KTsKLSAgICAgICAgdGV4dFNwYWNpbmdSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLndvcmRTcGFjaW5nLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCB0ZXh0V2hpdGVzcGFj
ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnRl
eHRJbmRlbnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgidGV4dC1pbmRlbnQi
LCBXSS5VSVN0cmluZygiSW5kZW50IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCB0aGlzLl91
bml0cy5kZWZhdWx0cyk7Ci0gICAgICAgIHByb3BlcnRpZXMud2hpdGVTcGFjZSA9IG5ldyBXSS5W
aXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoIndoaXRlLXNwYWNlIiwgV0kuVUlTdHJpbmcoIldoaXRl
c3BhY2UiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9ybWFsIiwgIk5vd3Jh
cCIsICJQcmUiLCAiUHJlIExpbmUiLCAiUHJlIFdyYXAiXSkpOwotCi0gICAgICAgIHRleHRXaGl0
ZXNwYWNlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy50ZXh0SW5kZW50LmVsZW1l
bnQpOwotICAgICAgICB0ZXh0V2hpdGVzcGFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3Bl
cnRpZXMud2hpdGVTcGFjZS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNwYWNpbmdHcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0ZXh0TGF5b3V0Um93LCB0ZXh0U3BhY2lu
Z1JvdywgdGV4dFdoaXRlc3BhY2VSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9u
KGdyb3VwLCBbdGV4dFNwYWNpbmdHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRleHRT
aGFkb3dTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy50
ZXh0U2hhZG93OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0K
LSAgICAgICAgbGV0IHRleHRTaGFkb3dTaXppbmcgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0KLSAgICAgICAgbGV0IHRleHRTaGFkb3dIID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5w
dXRCb3goInRleHQtc2hhZG93IiwgV0kuVUlTdHJpbmcoIkhvcml6b250YWwiKSwgbnVsbCwgdGhp
cy5fdW5pdHMuZGVmYXVsdHNTYW5zUGVyY2VudCk7Ci0gICAgICAgIGxldCB0ZXh0U2hhZG93ViA9
IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3Ry
aW5nKCJWZXJ0aWNhbCIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50KTsK
LQotICAgICAgICB0ZXh0U2hhZG93U2l6aW5nLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGV4dFNoYWRv
d0guZWxlbWVudCk7Ci0gICAgICAgIHRleHRTaGFkb3dTaXppbmcuZWxlbWVudC5hcHBlbmRDaGls
ZCh0ZXh0U2hhZG93Vi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNoYWRvd1N0eWxlID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCB0ZXh0U2hhZG93Q29sb3Ig
PSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigidGV4dC1zaGFkb3ciLCBXSS5VSVN0cmlu
ZygiQ29sb3IiKSk7Ci0gICAgICAgIGxldCB0ZXh0U2hhZG93Qmx1ciA9IG5ldyBXSS5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJCbHVyIiksIG51
bGwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzU2Fuc1BlcmNlbnQpOwotICAgICAgICB0ZXh0U2hhZG93
Qmx1ci5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLQotICAgICAgICB0ZXh0U2hhZG93U3R5bGUu
ZWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0U2hhZG93Q29sb3IuZWxlbWVudCk7Ci0gICAgICAgIHRl
eHRTaGFkb3dTdHlsZS5lbGVtZW50LmFwcGVuZENoaWxkKHRleHRTaGFkb3dCbHVyLmVsZW1lbnQp
OwotCi0gICAgICAgIHByb3BlcnRpZXMudGV4dFNoYWRvdyA9IG5ldyBXSS5WaXN1YWxTdHlsZVBy
b3BlcnR5Q29tYmluZXIoInRleHQtc2hhZG93IiwgW3RleHRTaGFkb3dILCB0ZXh0U2hhZG93Viwg
dGV4dFNoYWRvd0JsdXIsIHRleHRTaGFkb3dDb2xvcl0pOwotCi0gICAgICAgIGdyb3VwLmF1dG9j
b21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0aWVzID0gW3RleHRTaGFkb3dDb2xvcl07Ci0KLSAgICAg
ICAgbGV0IHRleHRTaGFkb3dHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0ZXh0
U2hhZG93U2l6aW5nLCB0ZXh0U2hhZG93U3R5bGVdKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVT
ZWN0aW9uKGdyb3VwLCBbdGV4dFNoYWRvd0dyb3VwXSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRl
RmlsbFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZp
bGw7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAgICAg
ICBsZXQgZmlsbFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9w
ZXJ0aWVzLmZpbGwgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiZmlsbCIsIFdJLlVJ
U3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgcHJvcGVydGllcy5maWxsUnVsZSA9IG5ldyBXSS5W
aXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImZpbGwtcnVsZSIsIFdJLlVJU3RyaW5nKCJSdWxlIiks
IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk5vbnplcm8iLCAiRXZlbm9kZCJdKSk7
Ci0KLSAgICAgICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmlsbC5l
bGVtZW50KTsKLSAgICAgICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
ZmlsbFJ1bGUuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGZpbGxPcGFjaXR5Um93ID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuZmlsbE9wYWNpdHkgPSBu
ZXcgV0kuVmlzdWFsU3R5bGVVbml0U2xpZGVyKCJmaWxsLW9wYWNpdHkiLCBXSS5VSVN0cmluZygi
T3BhY2l0eSIpKTsKLQotICAgICAgICBmaWxsT3BhY2l0eVJvdy5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXMuZmlsbE9wYWNpdHkuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3BlY2lm
aWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuZmlsbE9wYWNpdHldOwotCi0gICAgICAg
IGxldCBmaWxsR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmlsbFJvdywgZmls
bE9wYWNpdHlSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmls
bEdyb3VwXSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlU3Ryb2tlU2VjdGlvbigpCi0gICAgewot
ICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMuc3Ryb2tlOwotICAgICAgICBsZXQgcHJv
cGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IHN0cm9rZVJvdyA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZSA9IG5l
dyBXSS5WaXN1YWxTdHlsZUNvbG9yUGlja2VyKCJzdHJva2UiLCBXSS5VSVN0cmluZygiQ29sb3Ii
KSk7Ci0gICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlV2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVO
dW1iZXJJbnB1dEJveCgic3Ryb2tlLXdpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMu
X2tleXdvcmRzLmRlZmF1bHRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgc3Ry
b2tlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2UuZWxlbWVudCk7Ci0g
ICAgICAgIHN0cm9rZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlV2lk
dGguZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHN0cm9rZU9wYWNpdHkgPSBuZXcgV0kuRGV0YWls
c1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5zdHJva2VPcGFjaXR5ID0gbmV3IFdJ
LlZpc3VhbFN0eWxlVW5pdFNsaWRlcigic3Ryb2tlLW9wYWNpdHkiLCBXSS5VSVN0cmluZygiT3Bh
Y2l0eSIpKTsKLQotICAgICAgICBzdHJva2VPcGFjaXR5LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJv
cGVydGllcy5zdHJva2VPcGFjaXR5LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBzdHJva2VEYXNo
YXJyYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGll
cy5zdHJva2VEYXNoYXJyYXkgPSBuZXcgV0kuVmlzdWFsU3R5bGVCYXNpY0lucHV0KCJzdHJva2Ut
ZGFzaGFycmF5IiwgV0kuVUlTdHJpbmcoIkRhc2ggQXJyYXkiKSwgV0kuVUlTdHJpbmcoIkVudGVy
IGFuIGFycmF5IHZhbHVlIikpOwotCi0gICAgICAgIHN0cm9rZURhc2hhcnJheVJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFycmF5LmVsZW1lbnQpOwotCi0gICAg
ICAgIGxldCBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93OwotCi0gICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlRGFzaG9mZnNldCA9IG5ldyBXSS5WaXN1
YWxTdHlsZU51bWJlcklucHV0Qm94KCJzdHJva2UtZGFzaG9mZnNldCIsIFdJLlVJU3RyaW5nKCJP
ZmZzZXQiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsK
LSAgICAgICAgcHJvcGVydGllcy5zdHJva2VNaXRlcmxpbWl0ID0gbmV3IFdJLlZpc3VhbFN0eWxl
TnVtYmVySW5wdXRCb3goInN0cm9rZS1taXRlcmxpbWl0IiwgV0kuVUlTdHJpbmcoIk1pdGVyIiks
IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzKTsKLQotICAgICAgICBzdHJva2VEYXNoYXJyYXlPcHRp
b25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VEYXNob2Zmc2V0LmVs
ZW1lbnQpOwotICAgICAgICBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5zdHJva2VNaXRlcmxpbWl0LmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBzdHJva2VMaW5lT3B0aW9uc1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBwcm9wZXJ0aWVzLnN0cm9rZUxpbmVjYXAgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3Jk
UGlja2VyKCJzdHJva2UtbGluZWNhcCIsIFdJLlVJU3RyaW5nKCJDYXAiKSwgdGhpcy5fa2V5d29y
ZHMuZGVmYXVsdHMuY29uY2F0KFsiQnV0dCIsICJSb3VuZCIsICJTcXVhcmUiXSkpOwotICAgICAg
ICBwcm9wZXJ0aWVzLnN0cm9rZUxpbmVqb2luID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBp
Y2tlcigic3Ryb2tlLWxpbmVqb2luIiwgV0kuVUlTdHJpbmcoIkpvaW4iKSwgdGhpcy5fa2V5d29y
ZHMuZGVmYXVsdHMuY29uY2F0KFsiTWl0ZXIiLCAiUm91bmQiLCAiQmV2ZWwiXSkpOwotCi0gICAg
ICAgIHN0cm9rZUxpbmVPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5z
dHJva2VMaW5lY2FwLmVsZW1lbnQpOwotICAgICAgICBzdHJva2VMaW5lT3B0aW9uc1Jvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlTGluZWpvaW4uZWxlbWVudCk7Ci0KLSAg
ICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuc3Ryb2tl
T3BhY2l0eV07Ci0KLSAgICAgICAgbGV0IHN0cm9rZUdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uR3JvdXAoW3N0cm9rZVJvdywgc3Ryb2tlT3BhY2l0eSwgc3Ryb2tlRGFzaGFycmF5Um93LCBz
dHJva2VEYXNoYXJyYXlPcHRpb25zUm93LCBzdHJva2VMaW5lT3B0aW9uc1Jvd10pOwotICAgICAg
ICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtzdHJva2VHcm91cF0pOwotICAgIH0KLQot
ICAgIF9wb3B1bGF0ZUJhY2tncm91bmRTdHlsZVNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0
IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmJhY2tncm91bmRTdHlsZTsKLSAgICAgICAgbGV0IHByb3Bl
cnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU3R5bGVS
b3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5iYWNr
Z3JvdW5kQ29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYmFja2dyb3VuZC1j
b2xvciIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3Jv
dW5kQmxlbmRNb2RlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiYmFja2dyb3Vu
ZC1ibGVuZC1tb2RlIiwgV0kuVUlTdHJpbmcoIkJsZW5kIiksIFsiTm9ybWFsIiwgIk11bHRpcGx5
IiwgIlNjcmVlbiIsICJPdmVybGF5IiwgIkRhcmtlbiIsICJMaWdodGVuIiwgIkNvbG9yIiwgIkNv
bG9yIERvZGdlIiwgIlNhdHVyYXRpb24iLCAiTHVtaW5vc2l0eSJdKTsKLQotICAgICAgICBiYWNr
Z3JvdW5kU3R5bGVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJhY2tncm91bmRD
b2xvci5lbGVtZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFN0eWxlUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5iYWNrZ3JvdW5kQmxlbmRNb2RlLmVsZW1lbnQpOwotCi0gICAgICAg
IGxldCBiYWNrZ3JvdW5kQ2xpcFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBsZXQgYmFja2dyb3VuZENsaXBLZXl3b3JkcyA9IFsiSW5pdGlhbCIsICJCb3JkZXIgQm94
IiwgIlBhZGRpbmcgQm94IiwgIkNvbnRlbnQgQm94Il07Ci0gICAgICAgIHByb3BlcnRpZXMuYmFj
a2dyb3VuZENsaXAgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJiYWNrZ3JvdW5k
LWNsaXAiLCBXSS5VSVN0cmluZygiQ2xpcCIpLCBiYWNrZ3JvdW5kQ2xpcEtleXdvcmRzKTsKLSAg
ICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kT3JpZ2luID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5
d29yZFBpY2tlcigiYmFja2dyb3VuZC1vcmlnaW4iLCBXSS5VSVN0cmluZygiT3JpZ2luIiksIGJh
Y2tncm91bmRDbGlwS2V5d29yZHMpOwotCi0gICAgICAgIGJhY2tncm91bmRDbGlwUm93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5iYWNrZ3JvdW5kQ2xpcC5lbGVtZW50KTsKLSAgICAg
ICAgYmFja2dyb3VuZENsaXBSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJhY2tn
cm91bmRPcmlnaW4uZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGJhY2tncm91bmRTaXplUm93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU2l6ZUtl
eXdvcmRzID0gdGhpcy5fa2V5d29yZHMuYm94TW9kZWwuY29uY2F0KFsiQ29udGFpbiIsICJDb3Zl
ciJdKTsKLSAgICAgICAgbGV0IGJhY2tncm91bmRTaXplWCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51
bWJlcklucHV0Qm94KCJiYWNrZ3JvdW5kLXNpemUiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgYmFj
a2dyb3VuZFNpemVLZXl3b3JkcywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotICAgICAgICBiYWNr
Z3JvdW5kU2l6ZVgubWFzdGVyUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYmFja2dyb3Vu
ZFNpemVZID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImJhY2tncm91bmQtc2l6
ZSIsIFdJLlVJU3RyaW5nKCJIZWlnaHQiKSwgYmFja2dyb3VuZFNpemVLZXl3b3JkcywgdGhpcy5f
dW5pdHMuZGVmYXVsdHMpOwotICAgICAgICBiYWNrZ3JvdW5kU2l6ZVkubWFzdGVyUHJvcGVydHkg
PSB0cnVlOwotCi0gICAgICAgIHByb3BlcnRpZXMuYmFja2dyb3VuZFNpemUgPSBuZXcgV0kuVmlz
dWFsU3R5bGVQcm9wZXJ0eUNvbWJpbmVyKCJiYWNrZ3JvdW5kLXNpemUiLCBbYmFja2dyb3VuZFNp
emVYLCBiYWNrZ3JvdW5kU2l6ZVldKTsKLQotICAgICAgICBiYWNrZ3JvdW5kU2l6ZVJvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKGJhY2tncm91bmRTaXplWC5lbGVtZW50KTsKLSAgICAgICAgYmFja2dy
b3VuZFNpemVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChiYWNrZ3JvdW5kU2l6ZVkuZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IGJhY2tncm91bmRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0KLSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29t
bWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yKCJiYWNrZ3JvdW5kIiwgbnVsbCwgewotICAgICAgICAg
ICAgImJhY2tncm91bmQtaW1hZ2UiOiAibm9uZSIsCi0gICAgICAgICAgICAiYmFja2dyb3VuZC1w
b3NpdGlvbiI6ICIwJSAwJSIsCi0gICAgICAgICAgICAiYmFja2dyb3VuZC1yZXBlYXQiOiAicmVw
ZWF0IiwKLSAgICAgICAgICAgICJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiAic2Nyb2xsIiwKLSAg
ICAgICAgfSk7Ci0KLSAgICAgICAgYmFja2dyb3VuZFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMuYmFja2dyb3VuZC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYmFja2dyb3VuZElt
YWdlUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBiYWNrZ3Jv
dW5kSW1hZ2UgPSBuZXcgV0kuVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyKCJiYWNrZ3JvdW5k
LWltYWdlIiwgV0kuVUlTdHJpbmcoIlR5cGUiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29u
Y2F0KFsiTm9uZSJdKSk7Ci0KLSAgICAgICAgYmFja2dyb3VuZEltYWdlUm93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoYmFja2dyb3VuZEltYWdlLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBiYWNrZ3Jv
dW5kUG9zaXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0
IGJhY2tncm91bmRQb3NpdGlvblggPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgi
YmFja2dyb3VuZC1wb3NpdGlvbiIsIFdJLlVJU3RyaW5nKCJQb3NpdGlvbiBYIiksIFsiQ2VudGVy
IiwgIkxlZnQiLCAiUmlnaHQiXSwgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotICAgICAgICBiYWNr
Z3JvdW5kUG9zaXRpb25YLm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYmFj
a2dyb3VuZFBvc2l0aW9uWSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJiYWNr
Z3JvdW5kLXBvc2l0aW9uIiwgV0kuVUlTdHJpbmcoIlBvc2l0aW9uIFkiKSwgWyJCb3R0b20iLCAi
Q2VudGVyIiwgIlRvcCJdLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0gICAgICAgIGJhY2tncm91
bmRQb3NpdGlvblkub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYmFja2dyb3Vu
ZFBvc2l0aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2dyb3VuZFBvc2l0aW9uWC5lbGVt
ZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
YmFja2dyb3VuZFBvc2l0aW9uWS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYmFja2dyb3VuZFJl
cGVhdFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQgYmFja2dy
b3VuZFJlcGVhdCA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJhY2tncm91bmQt
cmVwZWF0IiwgV0kuVUlTdHJpbmcoIlJlcGVhdCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5j
b25jYXQoWyJObyBSZXBlYXQiLCAiUmVwZWF0IiwgIlJlcGVhdCBYIiwgIlJlcGVhdCBZIl0pKTsK
LSAgICAgICAgYmFja2dyb3VuZFJlcGVhdC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLSAgICAg
ICAgbGV0IGJhY2tncm91bmRBdHRhY2htZW50ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBp
Y2tlcigiYmFja2dyb3VuZC1hdHRhY2htZW50IiwgV0kuVUlTdHJpbmcoIkF0dGFjaCIpLCB0aGlz
Ll9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJGaXhlZCIsICJMb2NhbCIsICJTY3JvbGwiXSkp
OwotICAgICAgICBiYWNrZ3JvdW5kQXR0YWNobWVudC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsK
LQotICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2dy
b3VuZFJlcGVhdC5lbGVtZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFJlcGVhdFJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKGJhY2tncm91bmRBdHRhY2htZW50LmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBiYWNrZ3JvdW5kUHJvcGVydGllcyA9IFtiYWNrZ3JvdW5kSW1hZ2UsIGJhY2tncm91bmRQb3Np
dGlvblgsIGJhY2tncm91bmRQb3NpdGlvblksIGJhY2tncm91bmRSZXBlYXQsIGJhY2tncm91bmRB
dHRhY2htZW50XTsKLSAgICAgICAgbGV0IGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyID0gbmV3
IFdJLlZpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lcigiYmFja2dyb3VuZCIsIGJhY2tncm91bmRQ
cm9wZXJ0aWVzKTsKLQotICAgICAgICBsZXQgbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRv
ckl0ZW1zID0gdGhpcy5fbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zLmJpbmQo
dGhpcywgYmFja2dyb3VuZFByb3BlcnR5Q29tYmluZXIsIGJhY2tncm91bmRQcm9wZXJ0aWVzKTsK
LSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFs
U3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuTm9SZW1haW5pbmdUcmVlSXRl
bXMsIG5vUmVtYWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcywgdGhpcyk7Ci0KLSAgICAg
ICAgbGV0IHNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkID0gdGhp
cy5fc2VsZWN0ZWRDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQuYmluZCh0aGlz
LCBwcm9wZXJ0aWVzLmJhY2tncm91bmQsIGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyKTsKLSAg
ICAgICAgYmFja2dyb3VuZFByb3BlcnR5Q29tYmluZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1
YWxTdHlsZVByb3BlcnR5RWRpdG9yLkV2ZW50LlZhbHVlRGlkQ2hhbmdlLCBzZWxlY3RlZENvbW1h
U2VwYXJhdGVkRWRpdG9ySXRlbVZhbHVlQ2hhbmdlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNv
bW1hU2VwYXJhdGVkRWRpdG9yVHJlZUl0ZW1TZWxlY3RlZCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVk
RWRpdG9yVHJlZUl0ZW1TZWxlY3RlZC5iaW5kKGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyKTsK
LSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFs
U3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwg
Y29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVlSXRlbVNlbGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBn
cm91cC5hdXRvY29tcGxldGVDb21wYXRpYmxlUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJhY2tn
cm91bmRDb2xvcl07Ci0gICAgICAgIGdyb3VwLnNwZWNpZmllZFdpZHRoUHJvcGVydGllcyA9IFtw
cm9wZXJ0aWVzLmJhY2tncm91bmRdOwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU3R5bGVHcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtiYWNrZ3JvdW5kU3R5bGVSb3csIGJhY2tn
cm91bmRDbGlwUm93LCBiYWNrZ3JvdW5kU2l6ZVJvdywgYmFja2dyb3VuZFJvdywgYmFja2dyb3Vu
ZEltYWdlUm93LCBiYWNrZ3JvdW5kUG9zaXRpb25Sb3csIGJhY2tncm91bmRSZXBlYXRSb3ddKTsK
LSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbYmFja2dyb3VuZFN0eWxlR3Jv
dXBdKTsKLSAgICB9Ci0KLSAgICBfcG9wdWxhdGVCb3JkZXJTZWN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5ib3JkZXI7Ci0gICAgICAgIGxldCBwcm9wZXJ0
aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAgICAgICBsZXQgYm9yZGVyQWxsU2l6ZSA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclN0eWxl
ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcihbImJvcmRlci10b3Atc3R5bGUiLCAi
Ym9yZGVyLXJpZ2h0LXN0eWxlIiwgImJvcmRlci1ib3R0b20tc3R5bGUiLCAiYm9yZGVyLWxlZnQt
c3R5bGUiXSwgV0kuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxl
KTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJTdHlsZS5wcm9wZXJ0eVJlZmVyZW5jZU5hbWUg
PSAiYm9yZGVyLXN0eWxlIjsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aCA9IG5ldyBX
SS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KFsiYm9yZGVyLXRvcC13aWR0aCIsICJib3JkZXIt
cmlnaHQtd2lkdGgiLCAiYm9yZGVyLWJvdHRvbS13aWR0aCIsICJib3JkZXItbGVmdC13aWR0aCJd
LCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aC5wcm9wZXJ0
eVJlZmVyZW5jZU5hbWUgPSAiYm9yZGVyLXdpZHRoIjsKLQotICAgICAgICBib3JkZXJBbGxTaXpl
LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJTdHlsZS5lbGVtZW50KTsKLSAg
ICAgICAgYm9yZGVyQWxsU2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVy
V2lkdGguZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckFsbFN0eWxlID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyQ29sb3IgPSBuZXcg
V0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcihbImJvcmRlci10b3AtY29sb3IiLCAiYm9yZGVyLXJp
Z2h0LWNvbG9yIiwgImJvcmRlci1ib3R0b20tY29sb3IiLCAiYm9yZGVyLWxlZnQtY29sb3IiXSwg
V0kuVUlTdHJpbmcoIkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckNvbG9yLnBy
b3BlcnR5UmVmZXJlbmNlTmFtZSA9ICJib3JkZXItY29sb3IiOwotICAgICAgICBwcm9wZXJ0aWVz
LmJvcmRlclJhZGl1cyA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KFsiYm9yZGVy
LXRvcC1sZWZ0LXJhZGl1cyIsICJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsICJib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzIiwgImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIl0sIFdJLlVJU3Ry
aW5nKCJSYWRpdXMiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1
bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJSYWRpdXMucHJvcGVydHlSZWZlcmVuY2VO
YW1lID0gImJvcmRlci1yYWRpdXMiOwotCi0gICAgICAgIGJvcmRlckFsbFN0eWxlLmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJDb2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9y
ZGVyQWxsU3R5bGUuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlclJhZGl1cy5l
bGVtZW50KTsKLQotICAgICAgICBsZXQgYm9yZGVyQWxsUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVz
LmJvcmRlclN0eWxlLCBwcm9wZXJ0aWVzLmJvcmRlcldpZHRoLCBwcm9wZXJ0aWVzLmJvcmRlckNv
bG9yLCBwcm9wZXJ0aWVzLmJvcmRlclJhZGl1c107Ci0gICAgICAgIGxldCBib3JkZXJBbGxHcm91
cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtib3JkZXJBbGxTaXplLCBib3JkZXJBbGxT
dHlsZV0pOwotCi0gICAgICAgIGxldCBib3JkZXJUb3BTaXplID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyVG9wU3R5bGUgPSBuZXcgV0kuVmlz
dWFsU3R5bGVLZXl3b3JkUGlja2VyKCJib3JkZXItdG9wLXN0eWxlIiwgV0kuVUlTdHJpbmcoIlN0
eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxlKTsKLSAgICAgICAgcHJvcGVydGllcy5i
b3JkZXJUb3BXaWR0aCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJib3JkZXIt
dG9wLXdpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlcldp
ZHRoLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgYm9yZGVyVG9wU2l6ZS5lbGVt
ZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyVG9wU3R5bGUuZWxlbWVudCk7Ci0gICAg
ICAgIGJvcmRlclRvcFNpemUuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlclRv
cFdpZHRoLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJUb3BTdHlsZSA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclRvcENvbG9yID0g
bmV3IFdJLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIoImJvcmRlci10b3AtY29sb3IiLCBXSS5VSVN0
cmluZygiQ29sb3IiKSk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyVG9wUmFkaXVzID0gbmV3
IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwg
ImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIl0sIFdJLlVJU3RyaW5nKCJSYWRpdXMiKSwgdGhpcy5f
a2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBib3Jk
ZXJUb3BTdHlsZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyVG9wQ29sb3Iu
ZWxlbWVudCk7Ci0gICAgICAgIGJvcmRlclRvcFN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJv
cGVydGllcy5ib3JkZXJUb3BSYWRpdXMuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGJvcmRlclRv
cFByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5ib3JkZXJUb3BTdHlsZSwgcHJvcGVydGllcy5ib3Jk
ZXJUb3BXaWR0aCwgcHJvcGVydGllcy5ib3JkZXJUb3BDb2xvciwgcHJvcGVydGllcy5ib3JkZXJU
b3BSYWRpdXNdOwotICAgICAgICBsZXQgYm9yZGVyVG9wR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Hcm91cChbYm9yZGVyVG9wU2l6ZSwgYm9yZGVyVG9wU3R5bGVdKTsKLQotICAgICAgICBs
ZXQgYm9yZGVyUmlnaHRTaXplID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAg
IHByb3BlcnRpZXMuYm9yZGVyUmlnaHRTdHlsZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQ
aWNrZXIoImJvcmRlci1yaWdodC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIpLCB0aGlzLl9r
ZXl3b3Jkcy5ib3JkZXJTdHlsZSk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0
aCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJib3JkZXItcmlnaHQtd2lkdGgi
LCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBib3JkZXJSaWdodFNpemUuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0U3R5bGUuZWxlbWVudCk7Ci0gICAgICAgIGJv
cmRlclJpZ2h0U2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyUmlnaHRX
aWR0aC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYm9yZGVyUmlnaHRTdHlsZSA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0Q29sb3Ig
PSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYm9yZGVyLXJpZ2h0LWNvbG9yIiwgV0ku
VUlTdHJpbmcoIkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0UmFkaXVz
ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goWyJib3JkZXItdG9wLXJpZ2h0LXJh
ZGl1cyIsICJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyJdLCBXSS5VSVN0cmluZygiUmFkaXVz
IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAg
ICAgICAgYm9yZGVyUmlnaHRTdHlsZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9y
ZGVyUmlnaHRDb2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyUmlnaHRTdHlsZS5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyUmlnaHRSYWRpdXMuZWxlbWVudCk7Ci0KLSAg
ICAgICAgbGV0IGJvcmRlclJpZ2h0UHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0
U3R5bGUsIHByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aCwgcHJvcGVydGllcy5ib3JkZXJSaWdo
dENvbG9yLCBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0UmFkaXVzXTsKLSAgICAgICAgbGV0IGJvcmRl
clJpZ2h0R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYm9yZGVyUmlnaHRTaXpl
LCBib3JkZXJSaWdodFN0eWxlXSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckJvdHRvbVNpemUgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJCb3R0
b21TdHlsZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJvcmRlci1ib3R0b20t
c3R5bGUiLCBXSS5VSVN0cmluZygiU3R5bGUiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyU3R5bGUp
OwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoID0gbmV3IFdJLlZpc3VhbFN0
eWxlTnVtYmVySW5wdXRCb3goImJvcmRlci1ib3R0b20td2lkdGgiLCBXSS5VSVN0cmluZygiV2lk
dGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsK
LQotICAgICAgICBib3JkZXJCb3R0b21TaXplLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGll
cy5ib3JkZXJCb3R0b21TdHlsZS5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyQm90dG9tU2l6ZS5l
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyQm90dG9tV2lkdGguZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IGJvcmRlckJvdHRvbVN0eWxlID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93OwotCi0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyQm90dG9tQ29sb3IgPSBuZXcgV0kuVmlz
dWFsU3R5bGVDb2xvclBpY2tlcigiYm9yZGVyLWJvdHRvbS1jb2xvciIsIFdJLlVJU3RyaW5nKCJD
b2xvciIpKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJCb3R0b21SYWRpdXMgPSBuZXcgV0ku
VmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCAi
Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXSwgV0kuVUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlz
Ll9rZXl3b3Jkcy5kZWZhdWx0cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIGJv
cmRlckJvdHRvbVN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJCb3R0
b21Db2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyQm90dG9tU3R5bGUuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVJhZGl1cy5lbGVtZW50KTsKLQotICAgICAg
ICBsZXQgYm9yZGVyQm90dG9tUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVN0
eWxlLCBwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoLCBwcm9wZXJ0aWVzLmJvcmRlckJvdHRv
bUNvbG9yLCBwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVJhZGl1c107Ci0gICAgICAgIGxldCBib3Jk
ZXJCb3R0b21Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtib3JkZXJCb3R0b21T
aXplLCBib3JkZXJCb3R0b21TdHlsZV0pOwotCi0gICAgICAgIGxldCBib3JkZXJMZWZ0U2l6ZSA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckxl
ZnRTdHlsZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJvcmRlci1sZWZ0LXN0
eWxlIiwgV0kuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxlKTsK
LSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJMZWZ0V2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVO
dW1iZXJJbnB1dEJveCgiYm9yZGVyLWxlZnQtd2lkdGgiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwg
dGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAg
ICAgICBib3JkZXJMZWZ0U2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVy
TGVmdFN0eWxlLmVsZW1lbnQpOwotICAgICAgICBib3JkZXJMZWZ0U2l6ZS5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyTGVmdFdpZHRoLmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBib3JkZXJMZWZ0U3R5bGUgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
cHJvcGVydGllcy5ib3JkZXJMZWZ0Q29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tl
cigiYm9yZGVyLWxlZnQtY29sb3IiLCBXSS5VSVN0cmluZygiQ29sb3IiKSk7Ci0gICAgICAgIHBy
b3BlcnRpZXMuYm9yZGVyTGVmdFJhZGl1cyA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0
Qm94KFsiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVz
Il0sIFdJLlVJU3RyaW5nKCJSYWRpdXMiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBib3JkZXJMZWZ0U3R5bGUuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlckxlZnRDb2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9y
ZGVyTGVmdFN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJMZWZ0UmFk
aXVzLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJMZWZ0UHJvcGVydGllcyA9IFtwcm9w
ZXJ0aWVzLmJvcmRlckxlZnRTdHlsZSwgcHJvcGVydGllcy5ib3JkZXJMZWZ0V2lkdGgsIHByb3Bl
cnRpZXMuYm9yZGVyTGVmdENvbG9yLCBwcm9wZXJ0aWVzLmJvcmRlckxlZnRSYWRpdXNdOwotICAg
ICAgICBsZXQgYm9yZGVyTGVmdEdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2Jv
cmRlckxlZnRTaXplLCBib3JkZXJMZWZ0U3R5bGVdKTsKLQotICAgICAgICBsZXQgYm9yZGVyVGFi
Q29udHJvbGxlciA9IG5ldyBXSS5WaXN1YWxTdHlsZVRhYmJlZFByb3BlcnRpZXNSb3coewotICAg
ICAgICAgICAgImFsbCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIkFsbCIpLCBlbGVtZW50OiBib3Jk
ZXJBbGxHcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBib3JkZXJBbGxQcm9wZXJ0aWVzfSwKLSAg
ICAgICAgICAgICJ0b3AiOiB7dGl0bGU6IFdJLlVJU3RyaW5nKCJUb3AiKSwgZWxlbWVudDogYm9y
ZGVyVG9wR3JvdXAuZWxlbWVudCwgcHJvcGVydGllczogYm9yZGVyVG9wUHJvcGVydGllc30sCi0g
ICAgICAgICAgICAicmlnaHQiOiB7dGl0bGU6IFdJLlVJU3RyaW5nKCJSaWdodCIpLCBlbGVtZW50
OiBib3JkZXJSaWdodEdyb3VwLmVsZW1lbnQsIHByb3BlcnRpZXM6IGJvcmRlclJpZ2h0UHJvcGVy
dGllc30sCi0gICAgICAgICAgICAiYm90dG9tIjoge3RpdGxlOiBXSS5VSVN0cmluZygiQm90dG9t
IiksIGVsZW1lbnQ6IGJvcmRlckJvdHRvbUdyb3VwLmVsZW1lbnQsIHByb3BlcnRpZXM6IGJvcmRl
ckJvdHRvbVByb3BlcnRpZXN9LAotICAgICAgICAgICAgImxlZnQiOiB7dGl0bGU6IFdJLlVJU3Ry
aW5nKCJMZWZ0IiksIGVsZW1lbnQ6IGJvcmRlckxlZnRHcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVz
OiBib3JkZXJMZWZ0UHJvcGVydGllc30KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbGV0IGhpZ2hs
aWdodE1vZGUgPSAiYm9yZGVyIjsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVu
ZXJzKGdyb3VwLnByb3BlcnRpZXMuYm9yZGVyV2lkdGgsIGhpZ2hsaWdodE1vZGUpOwotICAgICAg
ICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5ib3JkZXJU
b3BXaWR0aCwgaGlnaGxpZ2h0TW9kZSk7Ci0gICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxp
c3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoLCBoaWdobGlnaHRNb2Rl
KTsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRp
ZXMuYm9yZGVyTGVmdFdpZHRoLCBoaWdobGlnaHRNb2RlKTsKLSAgICAgICAgdGhpcy5fYWRkTWV0
cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aCwgaGln
aGxpZ2h0TW9kZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckdyb3VwID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uR3JvdXAoW2JvcmRlclRhYkNvbnRyb2xsZXIsIGJvcmRlckFsbEdyb3VwLCBib3JkZXJU
b3BHcm91cCwgYm9yZGVyUmlnaHRHcm91cCwgYm9yZGVyQm90dG9tR3JvdXAsIGJvcmRlckxlZnRH
cm91cF0pOwotCi0gICAgICAgIGxldCBib3JkZXJJbWFnZVNvdXJjZVJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckltYWdlU291cmNlID0g
bmV3IFdJLlZpc3VhbFN0eWxlVVJMSW5wdXQoImJvcmRlci1pbWFnZS1zb3VyY2UiLCBXSS5VSVN0
cmluZygiSW1hZ2UiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9uZSJdKSk7
Ci0KLSAgICAgICAgYm9yZGVySW1hZ2VTb3VyY2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLmJvcmRlckltYWdlU291cmNlLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJJ
bWFnZVJlcGVhdFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQg
Ym9yZGVySW1hZ2VTbGljZUZpbGwgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3go
ImJvcmRlci1pbWFnZS1zbGljZSIsIFdJLlVJU3RyaW5nKCJGaWxsIiksICJGaWxsIik7Ci0gICAg
ICAgIGJvcmRlckltYWdlU2xpY2VGaWxsLm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAg
ICBwcm9wZXJ0aWVzLmJvcmRlckltYWdlUmVwZWF0ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlcigiYm9yZGVyLWltYWdlLXJlcGVhdCIsIFdJLlVJU3RyaW5nKCJSZXBlYXQiKSwgdGhp
cy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiU3RyZXRjaCIsICJSZXBlYXQiLCAiUm91bmQi
LCAiU3BhY2UiXSkpOwotCi0gICAgICAgIGJvcmRlckltYWdlUmVwZWF0Um93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQoYm9yZGVySW1hZ2VTbGljZUZpbGwuZWxlbWVudCk7Ci0gICAgICAgIGJvcmRlcklt
YWdlUmVwZWF0Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJJbWFnZVJl
cGVhdC5lbGVtZW50KTsKLQotICAgICAgICBmdW5jdGlvbiBnZW5lcmF0ZUJvcmRlckltYWdlUHJv
cGVydHlFZGl0b3JzKHByb3BlcnR5TmFtZSwga2V5d29yZHMsIHVuaXRzKSB7Ci0gICAgICAgICAg
ICBsZXQgdmVydGljYWwgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgICAg
IGxldCB0b3AgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChwcm9wZXJ0eU5hbWUs
IFdJLlVJU3RyaW5nKCJUb3AiKSwga2V5d29yZHMsIHVuaXRzKTsKLSAgICAgICAgICAgIHRvcC5t
YXN0ZXJQcm9wZXJ0eSA9IHRydWU7Ci0gICAgICAgICAgICBsZXQgYm90dG9tID0gbmV3IFdJLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3gocHJvcGVydHlOYW1lLCBXSS5VSVN0cmluZygiQm90dG9t
IiksIGtleXdvcmRzLCB1bml0cyk7Ci0gICAgICAgICAgICBib3R0b20ubWFzdGVyUHJvcGVydHkg
PSB0cnVlOwotCi0gICAgICAgICAgICB2ZXJ0aWNhbC5lbGVtZW50LmFwcGVuZENoaWxkKHRvcC5l
bGVtZW50KTsKLSAgICAgICAgICAgIHZlcnRpY2FsLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYm90dG9t
LmVsZW1lbnQpOwotCi0gICAgICAgICAgICBsZXQgaG9yaXpvbnRhbCA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKLQotICAgICAgICAgICAgbGV0IGxlZnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVO
dW1iZXJJbnB1dEJveChwcm9wZXJ0eU5hbWUsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIGtleXdvcmRz
LCB1bml0cyk7Ci0gICAgICAgICAgICBsZWZ0Lm1hc3RlclByb3BlcnR5ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGxldCByaWdodCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KHByb3Bl
cnR5TmFtZSwgV0kuVUlTdHJpbmcoIlJpZ2h0IiksIGtleXdvcmRzLCB1bml0cyk7Ci0gICAgICAg
ICAgICByaWdodC5tYXN0ZXJQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgICAgIGhvcml6b250
YWwuZWxlbWVudC5hcHBlbmRDaGlsZChsZWZ0LmVsZW1lbnQpOwotICAgICAgICAgICAgaG9yaXpv
bnRhbC5lbGVtZW50LmFwcGVuZENoaWxkKHJpZ2h0LmVsZW1lbnQpOwotCi0gICAgICAgICAgICBy
ZXR1cm4ge2dyb3VwOiBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdmVydGljYWwsIGhvcml6
b250YWxdKSwgcHJvcGVydGllczogW3RvcCwgYm90dG9tLCBsZWZ0LCByaWdodF19OwotICAgICAg
ICB9Ci0KLSAgICAgICAgbGV0IG5vbktleXdvcmRVbml0cyA9IFtXSS5VSVN0cmluZygiTnVtYmVy
IildOwotCi0gICAgICAgIGxldCBib3JkZXJJbWFnZVVuaXRzID0gT2JqZWN0LnNoYWxsb3dDb3B5
KHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLSAgICAgICAgYm9yZGVySW1hZ2VVbml0cy5iYXNpYyA9
IG5vbktleXdvcmRVbml0cy5jb25jYXQoYm9yZGVySW1hZ2VVbml0cy5iYXNpYyk7Ci0gICAgICAg
IGxldCBib3JkZXJJbWFnZVdpZHRoID0gZ2VuZXJhdGVCb3JkZXJJbWFnZVByb3BlcnR5RWRpdG9y
cygiYm9yZGVyLWltYWdlLXdpZHRoIiwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIGJvcmRlcklt
YWdlVW5pdHMpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckltYWdlV2lkdGggPSBuZXcgV0ku
VmlzdWFsU3R5bGVQcm9wZXJ0eUNvbWJpbmVyKCJib3JkZXItaW1hZ2Utd2lkdGgiLCBib3JkZXJJ
bWFnZVdpZHRoLnByb3BlcnRpZXMsIHRydWUpOwotCi0gICAgICAgIGxldCBib3JkZXJPdXRzZXRV
bml0cyA9IE9iamVjdC5zaGFsbG93Q29weSh0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50
KTsKLSAgICAgICAgYm9yZGVyT3V0c2V0VW5pdHMuYmFzaWMgPSBub25LZXl3b3JkVW5pdHMuY29u
Y2F0KGJvcmRlck91dHNldFVuaXRzLmJhc2ljKTsKLSAgICAgICAgbGV0IGJvcmRlckltYWdlT3V0
c2V0ID0gZ2VuZXJhdGVCb3JkZXJJbWFnZVByb3BlcnR5RWRpdG9ycygiYm9yZGVyLWltYWdlLW91
dHNldCIsIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCBib3JkZXJPdXRzZXRVbml0cyk7Ci0gICAg
ICAgIHByb3BlcnRpZXMuYm9yZGVySW1hZ2VPdXRzZXQgPSBuZXcgV0kuVmlzdWFsU3R5bGVQcm9w
ZXJ0eUNvbWJpbmVyKCJib3JkZXItaW1hZ2Utb3V0c2V0IiwgYm9yZGVySW1hZ2VPdXRzZXQucHJv
cGVydGllcywgdHJ1ZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlU2xpY2UgPSBnZW5lcmF0
ZUJvcmRlckltYWdlUHJvcGVydHlFZGl0b3JzKCJib3JkZXItaW1hZ2Utc2xpY2UiLCB0aGlzLl9r
ZXl3b3Jkcy5kZWZhdWx0cywgWyIlIl0uY29uY2F0KG5vbktleXdvcmRVbml0cykpOwotICAgICAg
ICBib3JkZXJJbWFnZVNsaWNlLnByb3BlcnRpZXMucHVzaChib3JkZXJJbWFnZVNsaWNlRmlsbCk7
Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVySW1hZ2VTbGljZSA9IG5ldyBXSS5WaXN1YWxTdHls
ZVByb3BlcnR5Q29tYmluZXIoImJvcmRlci1pbWFnZS1zbGljZSIsIGJvcmRlckltYWdlU2xpY2Uu
cHJvcGVydGllcywgdHJ1ZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlUHJvcGVydGllc1Rh
YkNvbnRyb2xsZXIgPSBuZXcgV0kuVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93KHsKLSAg
ICAgICAgICAgICJ3aWR0aCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIldpZHRoIiksIGVsZW1lbnQ6
IGJvcmRlckltYWdlV2lkdGguZ3JvdXAuZWxlbWVudCwgcHJvcGVydGllczogW3Byb3BlcnRpZXMu
Ym9yZGVySW1hZ2VXaWR0aF19LAotICAgICAgICAgICAgIm91dHNldCI6IHt0aXRsZTogV0kuVUlT
dHJpbmcoIk91dHNldCIpLCBlbGVtZW50OiBib3JkZXJJbWFnZU91dHNldC5ncm91cC5lbGVtZW50
LCBwcm9wZXJ0aWVzOiBbcHJvcGVydGllcy5ib3JkZXJJbWFnZU91dHNldF19LAotICAgICAgICAg
ICAgInNsaWNlIjoge3RpdGxlOiBXSS5VSVN0cmluZygiU2xpY2UiKSwgZWxlbWVudDogYm9yZGVy
SW1hZ2VTbGljZS5ncm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBbcHJvcGVydGllcy5ib3JkZXJJ
bWFnZVNsaWNlXX0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlR3JvdXAg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYm9yZGVySW1hZ2VTb3VyY2VSb3csIGJvcmRl
ckltYWdlUmVwZWF0Um93LCBib3JkZXJJbWFnZVByb3BlcnRpZXNUYWJDb250cm9sbGVyLCBib3Jk
ZXJJbWFnZVdpZHRoLmdyb3VwLCBib3JkZXJJbWFnZU91dHNldC5ncm91cCwgYm9yZGVySW1hZ2VT
bGljZS5ncm91cF0pOwotCi0gICAgICAgIGdyb3VwLmF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9w
ZXJ0aWVzID0gW3Byb3BlcnRpZXMuYm9yZGVyQ29sb3IsIHByb3BlcnRpZXMuYm9yZGVyVG9wQ29s
b3IsIHByb3BlcnRpZXMuYm9yZGVyQm90dG9tQ29sb3IsIHByb3BlcnRpZXMuYm9yZGVyTGVmdENv
bG9yLCBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0Q29sb3JdOwotCi0gICAgICAgIHRoaXMuX3BvcHVs
YXRlU2VjdGlvbihncm91cCwgW2JvcmRlckdyb3VwLCBib3JkZXJJbWFnZUdyb3VwXSk7Ci0KLSAg
ICAgICAgbGV0IGFsbG93ZWRCb3JkZXJWYWx1ZXMgPSBbInNvbGlkIiwgImRhc2hlZCIsICJkb3R0
ZWQiLCAiZG91YmxlIiwgImdyb292ZSIsICJpbnNldCIsICJvdXRzZXQiLCAicmlkZ2UiXTsKLSAg
ICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aC5hZGREZXBlbmRlbmN5KFsiYm9yZGVyLXRvcC1z
dHlsZSIsICJib3JkZXItcmlnaHQtc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1zdHlsZSIsICJib3Jk
ZXItbGVmdC1zdHlsZSJdLCBhbGxvd2VkQm9yZGVyVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGll
cy5ib3JkZXJDb2xvci5hZGREZXBlbmRlbmN5KFsiYm9yZGVyLXRvcC1zdHlsZSIsICJib3JkZXIt
cmlnaHQtc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1zdHlsZSIsICJib3JkZXItbGVmdC1zdHlsZSJd
LCBhbGxvd2VkQm9yZGVyVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJUb3BXaWR0
aC5hZGREZXBlbmRlbmN5KCJib3JkZXItdG9wLXN0eWxlIiwgYWxsb3dlZEJvcmRlclZhbHVlcyk7
Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyVG9wQ29sb3IuYWRkRGVwZW5kZW5jeSgiYm9yZGVy
LXRvcC1zdHlsZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgICAgICBwcm9wZXJ0aWVzLmJv
cmRlclJpZ2h0V2lkdGguYWRkRGVwZW5kZW5jeSgiYm9yZGVyLXJpZ2h0LXN0eWxlIiwgYWxsb3dl
ZEJvcmRlclZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyUmlnaHRDb2xvci5hZGRE
ZXBlbmRlbmN5KCJib3JkZXItcmlnaHQtc3R5bGUiLCBhbGxvd2VkQm9yZGVyVmFsdWVzKTsKLSAg
ICAgICAgcHJvcGVydGllcy5ib3JkZXJCb3R0b21XaWR0aC5hZGREZXBlbmRlbmN5KCJib3JkZXIt
Ym90dG9tLXN0eWxlIiwgYWxsb3dlZEJvcmRlclZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMu
Ym9yZGVyQm90dG9tQ29sb3IuYWRkRGVwZW5kZW5jeSgiYm9yZGVyLWJvdHRvbS1zdHlsZSIsIGFs
bG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckxlZnRXaWR0aC5h
ZGREZXBlbmRlbmN5KCJib3JkZXItbGVmdC1zdHlsZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwot
ICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckxlZnRDb2xvci5hZGREZXBlbmRlbmN5KCJib3JkZXIt
bGVmdC1zdHlsZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgIH0KLQotICAgIF9wb3B1bGF0
ZU91dGxpbmVTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vw
cy5vdXRsaW5lOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0K
LSAgICAgICAgbGV0IG91dGxpbmVTaXplUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93Owot
Ci0gICAgICAgIHByb3BlcnRpZXMub3V0bGluZVN0eWxlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5
d29yZFBpY2tlcigib3V0bGluZS1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIpLCB0aGlzLl9r
ZXl3b3Jkcy5ib3JkZXJTdHlsZSk7Ci0gICAgICAgIHByb3BlcnRpZXMub3V0bGluZVdpZHRoID0g
bmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm91dGxpbmUtd2lkdGgiLCBXSS5VSVN0
cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRl
ZmF1bHRzKTsKLQotICAgICAgICBvdXRsaW5lU2l6ZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMub3V0bGluZVN0eWxlLmVsZW1lbnQpOwotICAgICAgICBvdXRsaW5lU2l6ZVJvdy5l
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMub3V0bGluZVdpZHRoLmVsZW1lbnQpOwotCi0g
ICAgICAgIGxldCBvdXRsaW5lU3R5bGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0K
LSAgICAgICAgcHJvcGVydGllcy5vdXRsaW5lQ29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xv
clBpY2tlcigib3V0bGluZS1jb2xvciIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAg
cHJvcGVydGllcy5vdXRsaW5lT2Zmc2V0ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRC
b3goIm91dGxpbmUtb2Zmc2V0IiwgV0kuVUlTdHJpbmcoIk9mZnNldCIpLCB0aGlzLl9rZXl3b3Jk
cy5kZWZhdWx0cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIG91dGxp
bmVTdHlsZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMub3V0bGluZUNvbG9yLmVs
ZW1lbnQpOwotICAgICAgICBvdXRsaW5lU3R5bGVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLm91dGxpbmVPZmZzZXQuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuYXV0b2NvbXBs
ZXRlQ29tcGF0aWJsZVByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5vdXRsaW5lQ29sb3JdOwotCi0g
ICAgICAgIGxldCBvdXRsaW5lR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbb3V0
bGluZVNpemVSb3csIG91dGxpbmVTdHlsZVJvd10pOwotICAgICAgICB0aGlzLl9wb3B1bGF0ZVNl
Y3Rpb24oZ3JvdXAsIFtvdXRsaW5lR3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZE91dGxp
bmVWYWx1ZXMgPSBbInNvbGlkIiwgImRhc2hlZCIsICJkb3R0ZWQiLCAiZG91YmxlIiwgImdyb292
ZSIsICJpbnNldCIsICJvdXRzZXQiLCAicmlkZ2UiXTsKLSAgICAgICAgcHJvcGVydGllcy5vdXRs
aW5lV2lkdGguYWRkRGVwZW5kZW5jeSgib3V0bGluZS1zdHlsZSIsIGFsbG93ZWRPdXRsaW5lVmFs
dWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5vdXRsaW5lQ29sb3IuYWRkRGVwZW5kZW5jeSgib3V0
bGluZS1zdHlsZSIsIGFsbG93ZWRPdXRsaW5lVmFsdWVzKTsKLSAgICB9Ci0KLSAgICBfcG9wdWxh
dGVCb3hTaGFkb3dTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dy
b3Vwcy5ib3hTaGFkb3c7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGll
czsKLQotICAgICAgICBsZXQgYm94U2hhZG93Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93
OwotCi0gICAgICAgIHByb3BlcnRpZXMuYm94U2hhZG93ID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29t
bWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yKCJib3gtc2hhZG93Iik7Ci0KLSAgICAgICAgYm94U2hh
ZG93Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3hTaGFkb3cuZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IGJveFNoYWRvd0hSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0KLSAgICAgICAgbGV0IGJveFNoYWRvd0ggPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2ZU51
bWJlclNsaWRlcigiYm94LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIG51bGwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzU2Fuc1BlcmNlbnQsIHRydWUpOwotCi0gICAgICAgIGJveFNoYWRvd0hS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChib3hTaGFkb3dILmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBib3hTaGFkb3dWUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxl
dCBib3hTaGFkb3dWID0gbmV3IFdJLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoImJv
eC1zaGFkb3ciLCBXSS5VSVN0cmluZygiVG9wIiksIG51bGwsIHRoaXMuX3VuaXRzLmRlZmF1bHRz
U2Fuc1BlcmNlbnQsIHRydWUpOwotCi0gICAgICAgIGJveFNoYWRvd1ZSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChib3hTaGFkb3dWLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3hTaGFkb3dCbHVy
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBib3hTaGFkb3dC
bHVyID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImJveC1zaGFkb3ciLCBXSS5V
SVN0cmluZygiQmx1ciIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50KTsK
LSAgICAgICAgYm94U2hhZG93Qmx1ci5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAg
bGV0IGJveFNoYWRvd1NwcmVhZCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJi
b3gtc2hhZG93IiwgV0kuVUlTdHJpbmcoIlNwcmVhZCIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZh
dWx0c1NhbnNQZXJjZW50LCB0cnVlKTsKLSAgICAgICAgYm94U2hhZG93U3ByZWFkLm9wdGlvbmFs
UHJvcGVydHkgPSB0cnVlOwotCi0gICAgICAgIGJveFNoYWRvd0JsdXJSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChib3hTaGFkb3dCbHVyLmVsZW1lbnQpOwotICAgICAgICBib3hTaGFkb3dCbHVyUm93
LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYm94U2hhZG93U3ByZWFkLmVsZW1lbnQpOwotCi0gICAgICAg
IGxldCBib3hTaGFkb3dDb2xvclJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBsZXQgYm94U2hhZG93Q29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigi
Ym94LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgbGV0IGJveFNoYWRv
d0luc2V0ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94KCJib3gtc2hhZG93Iiwg
V0kuVUlTdHJpbmcoIkluc2V0IiksICJJbnNldCIpOwotICAgICAgICBib3hTaGFkb3dJbnNldC5v
cHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLQotICAgICAgICBib3hTaGFkb3dDb2xvclJvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKGJveFNoYWRvd0NvbG9yLmVsZW1lbnQpOwotICAgICAgICBib3hTaGFk
b3dDb2xvclJvdy5lbGVtZW50LmFwcGVuZENoaWxkKGJveFNoYWRvd0luc2V0LmVsZW1lbnQpOwot
Ci0gICAgICAgIGxldCBib3hTaGFkb3dQcm9wZXJ0aWVzID0gW2JveFNoYWRvd0gsIGJveFNoYWRv
d1YsIGJveFNoYWRvd0JsdXIsIGJveFNoYWRvd1NwcmVhZCwgYm94U2hhZG93Q29sb3IsIGJveFNo
YWRvd0luc2V0XTsKLSAgICAgICAgbGV0IGJveFNoYWRvd1Byb3BlcnR5Q29tYmluZXIgPSBuZXcg
V0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUNvbWJpbmVyKCJib3gtc2hhZG93IiwgYm94U2hhZG93UHJv
cGVydGllcyk7Ci0KLSAgICAgICAgbGV0IG5vUmVtYWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJ
dGVtcyA9IHRoaXMuX25vUmVtYWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcy5iaW5kKHRo
aXMsIGJveFNoYWRvd1Byb3BlcnR5Q29tYmluZXIsIGJveFNoYWRvd1Byb3BlcnRpZXMpOwotICAg
ICAgICBwcm9wZXJ0aWVzLmJveFNoYWRvdy5hZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxl
Q29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLkV2ZW50Lk5vUmVtYWluaW5nVHJlZUl0ZW1zLCBu
b1JlbWFpbmluZ0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMsIHRoaXMpOwotCi0gICAgICAgIGxl
dCBzZWxlY3RlZENvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbVZhbHVlQ2hhbmdlZCA9IHRoaXMuX3Nl
bGVjdGVkQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkLmJpbmQodGhpcywgcHJv
cGVydGllcy5ib3hTaGFkb3csIGJveFNoYWRvd1Byb3BlcnR5Q29tYmluZXIpOwotICAgICAgICBi
b3hTaGFkb3dQcm9wZXJ0eUNvbWJpbmVyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQ
cm9wZXJ0eUVkaXRvci5FdmVudC5WYWx1ZURpZENoYW5nZSwgc2VsZWN0ZWRDb21tYVNlcGFyYXRl
ZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjb21tYVNlcGFy
YXRlZEVkaXRvclRyZWVJdGVtU2VsZWN0ZWQgPSB0aGlzLl9jb21tYVNlcGFyYXRlZEVkaXRvclRy
ZWVJdGVtU2VsZWN0ZWQuYmluZChib3hTaGFkb3dQcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAg
cHJvcGVydGllcy5ib3hTaGFkb3cuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUNvbW1h
U2VwYXJhdGVkS2V5d29yZEVkaXRvci5FdmVudC5UcmVlSXRlbVNlbGVjdGVkLCBjb21tYVNlcGFy
YXRlZEVkaXRvclRyZWVJdGVtU2VsZWN0ZWQsIHRoaXMpOwotCi0gICAgICAgIGdyb3VwLmF1dG9j
b21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0aWVzID0gW2JveFNoYWRvd0NvbG9yXTsKLSAgICAgICAg
Z3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuYm94U2hhZG93XTsK
LQotICAgICAgICBsZXQgYm94U2hhZG93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2Jv
eFNoYWRvd1JvdywgYm94U2hhZG93SFJvdywgYm94U2hhZG93VlJvdywgYm94U2hhZG93Qmx1clJv
dywgYm94U2hhZG93Q29sb3JSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdy
b3VwLCBbYm94U2hhZG93XSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlTGlzdFN0eWxlU2VjdGlv
bigpCi0gICAgewotICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMubGlzdFN0eWxlOwot
ICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0
IGxpc3RTdHlsZVR5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
cHJvcGVydGllcy5saXN0U3R5bGVUeXBlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
cigibGlzdC1zdHlsZS10eXBlIiwgV0kuVUlTdHJpbmcoIlR5cGUiKSwgewotICAgICAgICAgICAg
YmFzaWM6IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk5vbmUiLCAiQ2lyY2xlIiwg
IkRpc2MiLCAiU3F1YXJlIiwgIkRlY2ltYWwiLCAiTG93ZXIgQWxwaGEiLCAiVXBwZXIgQWxwaGEi
LCAiTG93ZXIgUm9tYW4iLCAiVXBwZXIgUm9tYW4iXSksCi0gICAgICAgICAgICBhZHZhbmNlZDog
WyJEZWNpbWFsIExlYWRpbmcgWmVybyIsICJBc3Rlcmlza3MiLCAiRm9vdG5vdGVzIiwgIkJpbmFy
eSIsICJPY3RhbCIsICJMb3dlciBIZXhhZGVjaW1hbCIsICJVcHBlciBIZXhhZGVjaW1hbCIsICJM
b3dlciBMYXRpbiIsICJVcHBlciBMYXRpbiIsICJMb3dlciBHcmVlayIsICJVcHBlciBHcmVlayIs
ICJBcmFiaWMgSW5kaWMiLCAiSGVicmV3IiwgIkhpcmFnYW5hIiwgIkthdGFrYW5hIiwgIkhpcmFn
YW5hIElyb2hhIiwgIkthdGFrYW5hIElyb2hhIiwgIkNKSyBFYXJ0aGx5IEJyYW5jaCIsICJDSksg
SGVhdmVubHkgU3RlbSIsICJDSksgSWRlb2dyYXBoaWMiLCAiQmVuZ2FsaSIsICJDYW1ib2RpYW4i
LCAiS2htZXIiLCAiRGV2YW5hZ2FyaSIsICJHdWphcmF0aSIsICJHdXJtdWtoaSIsICJLYW5uYWRh
IiwgIkxhbyIsICJNYWxheWFsYW0iLCAiTW9uZ29saWFuIiwgIk15YW5tYXIiLCAiT3JpeWEiLCAi
UGVyc2lhbiIsICJVcmR1IiwgIlRlbHVndSIsICJBcm1lbmlhbiIsICJMb3dlciBBcm1lbmlhbiIs
ICJVcHBlciBBcm1lbmlhbiIsICJHZW9yZ2lhbiIsICJUaWJldGFuIiwgIlRoYWkiLCAiQWZhciIs
ICJIYW5ndWwgQ29uc29uYW50IiwgIkhhbmd1bCIsICJMb3dlciBOb3J3ZWdpYW4iLCAiVXBwZXIg
Tm9yd2VnaWFuIiwgIkV0aGlvcGljIiwgIkV0aGlvcGljIEhhbGVoYW1lIEdleiIsICJFdGhpb3Bp
YyBIYWxlaGFtZSBBYSBFdCIsICJFdGhpb3BpYyBIYWxlaGFtZSBBYSBFciIsICJPcm9tbyIsICJF
dGhpb3BpYyBIYWxlaGFtZSBPbSBFdCIsICJTaWRhbWEiLCAiRXRoaW9waWMgSGFsZWhhbWUgU2lk
IEV0IiwgIlNvbWFsaSIsICJFdGhpb3BpYyBIYWxlaGFtZSBTbyBFdCIsICJBbWhhcmljIiwgIkV0
aGlvcGljIEhhbGVoYW1lIEFtIEV0IiwgIlRpZ3JlIiwgIkV0aGlvcGljIEhhbGVoYW1lIFRpZyIs
ICJUaWdyaW55YSBFciIsICJFdGhpb3BpYyBIYWxlaGFtZSBUaSBFciIsICJUaWdyaW55YSBFdCIs
ICJFdGhpb3BpYyBIYWxlaGFtZSBUaSBFdCIsICJFdGhpb3BpYyBBYmVnZWRlIiwgIkV0aGlvcGlj
IEFiZWdlZGUgR2V6IiwgIkFtaGFyaWMgQWJlZ2VkZSIsICJFdGhpb3BpYyBBYmVnZWRlIEFtIEV0
IiwgIlRpZ3JpbnlhIEVyIEFiZWdlZGUiLCAiRXRoaW9waWMgQWJlZ2VkZSBUaSBFciIsICJUaWdy
aW55YSBFdCBBYmVnZWRlIiwgIkV0aGlvcGljIEFiZWdlZGUgVGkgRXQiXQotICAgICAgICB9KTsK
LQotICAgICAgICBwcm9wZXJ0aWVzLmxpc3RTdHlsZVBvc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0
eWxlS2V5d29yZEljb25MaXN0KCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwgV0kuVUlTdHJpbmcoIlBv
c2l0aW9uIiksIFsiT3V0c2lkZSIsICJJbnNpZGUiLCAiSW5pdGlhbCJdKTsKLQotICAgICAgICBs
aXN0U3R5bGVUeXBlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5saXN0U3R5bGVU
eXBlLmVsZW1lbnQpOwotICAgICAgICBsaXN0U3R5bGVUeXBlUm93LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5saXN0U3R5bGVQb3NpdGlvbi5lbGVtZW50KTsKLQotICAgICAgICBsZXQg
bGlzdFN0eWxlSW1hZ2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
cHJvcGVydGllcy5saXN0U3R5bGVJbWFnZSA9IG5ldyBXSS5WaXN1YWxTdHlsZVVSTElucHV0KCJs
aXN0LXN0eWxlLWltYWdlIiwgV0kuVUlTdHJpbmcoIkltYWdlIiksIHRoaXMuX2tleXdvcmRzLmRl
ZmF1bHRzLmNvbmNhdChbIk5vbmUiXSkpOwotCi0gICAgICAgIGxpc3RTdHlsZUltYWdlUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5saXN0U3R5bGVJbWFnZS5lbGVtZW50KTsKLQot
ICAgICAgICBsZXQgbGlzdFN0eWxlID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2xpc3RT
dHlsZVR5cGVSb3csIGxpc3RTdHlsZUltYWdlUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRl
U2VjdGlvbihncm91cCwgW2xpc3RTdHlsZV0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRyYW5z
aXRpb25TZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy50
cmFuc2l0aW9uOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0K
LSAgICAgICAgbGV0IHRyYW5zaXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0K
LSAgICAgICAgcHJvcGVydGllcy50cmFuc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tbWFT
ZXBhcmF0ZWRLZXl3b3JkRWRpdG9yKCJ0cmFuc2l0aW9uIiwgbnVsbCwgewotICAgICAgICAgICAg
InRyYW5zaXRpb24tcHJvcGVydHkiOiAiYWxsIiwKLSAgICAgICAgICAgICJ0cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbiI6ICJlYXNlIiwKLSAgICAgICAgICAgICJ0cmFuc2l0aW9uLWR1cmF0aW9u
IjogIjAiLAotICAgICAgICAgICAgInRyYW5zaXRpb24tZGVsYXkiOiAiMCIKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgdHJhbnNpdGlvblJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
dHJhbnNpdGlvbi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdHJhbnNpdGlvblByb3BlcnR5Um93
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCB0cmFuc2l0aW9uUHJv
cGVydHkgPSBuZXcgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dCgidHJhbnNpdGlvbi1w
cm9wZXJ0eSIsIFdJLlVJU3RyaW5nKCJQcm9wZXJ0eSIpKTsKLSAgICAgICAgdHJhbnNpdGlvblBy
b3BlcnR5Lm1hc3RlclByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgbGV0IHRyYW5zaXRpb25UaW1p
bmcgPSBuZXcgV0kuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IoInRyYW5zaXRpb24tdGltaW5nLWZ1
bmN0aW9uIiwgV0kuVUlTdHJpbmcoIlRpbWluZyIpLCBbIkxpbmVhciIsICJFYXNlIiwgIkVhc2Ug
SW4iLCAiRWFzZSBPdXQiLCAiRWFzZSBJbiBPdXQiXSk7Ci0gICAgICAgIHRyYW5zaXRpb25UaW1p
bmcub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQodHJhbnNpdGlvblByb3BlcnR5LmVsZW1lbnQpOwotICAg
ICAgICB0cmFuc2l0aW9uUHJvcGVydHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZCh0cmFuc2l0aW9u
VGltaW5nLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCB0cmFuc2l0aW9uRHVyYXRpb25Sb3cgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0IHRyYW5zaXRpb25UaW1lS2V5
d29yZHMgPSBbInMiLCAibXMiXTsKLSAgICAgICAgbGV0IHRyYW5zaXRpb25EdXJhdGlvbiA9IG5l
dyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwgV0ku
VUlTdHJpbmcoIkR1cmF0aW9uIiksIG51bGwsIHRyYW5zaXRpb25UaW1lS2V5d29yZHMpOwotICAg
ICAgICB0cmFuc2l0aW9uRHVyYXRpb24ub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0gICAgICAg
IGxldCB0cmFuc2l0aW9uRGVsYXkgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgi
dHJhbnNpdGlvbi1kZWxheSIsIFdJLlVJU3RyaW5nKCJEZWxheSIpLCBudWxsLCB0cmFuc2l0aW9u
VGltZUtleXdvcmRzKTsKLSAgICAgICAgdHJhbnNpdGlvbkRlbGF5Lm9wdGlvbmFsUHJvcGVydHkg
PSB0cnVlOwotCi0gICAgICAgIHRyYW5zaXRpb25EdXJhdGlvblJvdy5lbGVtZW50LmFwcGVuZENo
aWxkKHRyYW5zaXRpb25EdXJhdGlvbi5lbGVtZW50KTsKLSAgICAgICAgdHJhbnNpdGlvbkR1cmF0
aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQodHJhbnNpdGlvbkRlbGF5LmVsZW1lbnQpOwotCi0g
ICAgICAgIGxldCB0cmFuc2l0aW9uUHJvcGVydGllcyA9IFt0cmFuc2l0aW9uUHJvcGVydHksIHRy
YW5zaXRpb25EdXJhdGlvbiwgdHJhbnNpdGlvblRpbWluZywgdHJhbnNpdGlvbkRlbGF5XTsKLSAg
ICAgICAgbGV0IHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyID0gbmV3IFdJLlZpc3VhbFN0eWxl
UHJvcGVydHlDb21iaW5lcigidHJhbnNpdGlvbiIsIHRyYW5zaXRpb25Qcm9wZXJ0aWVzKTsKLQot
ICAgICAgICBsZXQgbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zID0gdGhpcy5f
bm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zLmJpbmQodGhpcywgdHJhbnNpdGlv
blByb3BlcnR5Q29tYmluZXIsIHRyYW5zaXRpb25Qcm9wZXJ0aWVzKTsKLSAgICAgICAgcHJvcGVy
dGllcy50cmFuc2l0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuTm9SZW1haW5pbmdUcmVlSXRlbXMsIG5vUmVtYWluaW5n
Q29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcywgdGhpcyk7Ci0KLSAgICAgICAgbGV0IHNlbGVjdGVk
Q29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkID0gdGhpcy5fc2VsZWN0ZWRDb21t
YVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQuYmluZCh0aGlzLCBwcm9wZXJ0aWVzLnRy
YW5zaXRpb24sIHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgdHJhbnNpdGlv
blByb3BlcnR5Q29tYmluZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yLkV2ZW50LlZhbHVlRGlkQ2hhbmdlLCBzZWxlY3RlZENvbW1hU2VwYXJhdGVkRWRpdG9y
SXRlbVZhbHVlQ2hhbmdlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNvbW1hU2VwYXJhdGVkRWRp
dG9yVHJlZUl0ZW1TZWxlY3RlZCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkRWRpdG9yVHJlZUl0ZW1T
ZWxlY3RlZC5iaW5kKHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgcHJvcGVy
dGllcy50cmFuc2l0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwgY29tbWFTZXBhcmF0ZWRF
ZGl0b3JUcmVlSXRlbVNlbGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBncm91cC5hdXRvY29tcGxl
dGVDb21wYXRpYmxlUHJvcGVydGllcyA9IFt0cmFuc2l0aW9uUHJvcGVydHldOwotICAgICAgICBn
cm91cC5zcGVjaWZpZWRXaWR0aFByb3BlcnRpZXMgPSBbcHJvcGVydGllcy50cmFuc2l0aW9uXTsK
LQotICAgICAgICBsZXQgdHJhbnNpdGlvbkdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3Jv
dXAoW3RyYW5zaXRpb25Sb3csIHRyYW5zaXRpb25Qcm9wZXJ0eVJvdywgdHJhbnNpdGlvbkR1cmF0
aW9uUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3RyYW5zaXRp
b25Hcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZUFuaW1hdGlvblNlY3Rpb24oKQotICAg
IHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmFuaW1hdGlvbjsKLSAgICAgICAg
bGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBhbmltYXRp
b25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5h
bmltYXRpb24gPSBuZXcgV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3Io
ImFuaW1hdGlvbiIsIG51bGwsIHsKLSAgICAgICAgICAgICJhbmltYXRpb24tbmFtZSI6ICJub25l
IiwKLSAgICAgICAgICAgICJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIjogImVhc2UiLAotICAg
ICAgICAgICAgImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOiAiMSIsCi0gICAgICAgICAgICAi
YW5pbWF0aW9uLWR1cmF0aW9uIjogIjAiLAotICAgICAgICAgICAgImFuaW1hdGlvbi1kZWxheSI6
ICIwIiwKLSAgICAgICAgICAgICJhbmltYXRpb24tZGlyZWN0aW9uIjogIm5vcm1hbCIsCi0gICAg
ICAgICAgICAiYW5pbWF0aW9uLWZpbGwtbW9kZSI6ICJub25lIiwKLSAgICAgICAgICAgICJhbmlt
YXRpb24tcGxheS1zdGF0ZSI6ICJydW5uaW5nIgotICAgICAgICB9KTsKLQotICAgICAgICBhbmlt
YXRpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmFuaW1hdGlvbi5lbGVtZW50
KTsKLQotICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
blJvdzsKLQotICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUJh
c2ljSW5wdXQoImFuaW1hdGlvbi1uYW1lIiwgV0kuVUlTdHJpbmcoIk5hbWUiKSwgV0kuVUlTdHJp
bmcoIkVudGVyIHRoZSBuYW1lIG9mIGEgS2V5ZnJhbWUiKSk7Ci0gICAgICAgIGFuaW1hdGlvbk5h
bWUubWFzdGVyUHJvcGVydHkgPSB0cnVlOwotCi0gICAgICAgIGFuaW1hdGlvbk5hbWVSb3cuZWxl
bWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25OYW1lLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBh
bmltYXRpb25UaW1pbmdSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
bGV0IGFuaW1hdGlvblRpbWluZyA9IG5ldyBXSS5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvcigiYW5p
bWF0aW9uLXRpbWluZy1mdW5jdGlvbiIsIFdJLlVJU3RyaW5nKCJUaW1pbmciKSwgWyJMaW5lYXIi
LCAiRWFzZSIsICJFYXNlIEluIiwgIkVhc2UgT3V0IiwgIkVhc2UgSW4gT3V0Il0pOwotICAgICAg
ICBhbmltYXRpb25UaW1pbmcub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0gICAgICAgIGxldCBh
bmltYXRpb25JdGVyYXRpb25Db3VudCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94
KCJhbmltYXRpb24taXRlcmF0aW9uLWNvdW50IiwgV0kuVUlTdHJpbmcoIkl0ZXJhdGlvbnMiKSwg
dGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiSW5maW5pdGUiXSksIG51bGwpOwotICAg
ICAgICBhbmltYXRpb25JdGVyYXRpb25Db3VudC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLQot
ICAgICAgICBhbmltYXRpb25UaW1pbmdSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25U
aW1pbmcuZWxlbWVudCk7Ci0gICAgICAgIGFuaW1hdGlvblRpbWluZ1Jvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBh
bmltYXRpb25EdXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAg
ICBsZXQgYW5pbWF0aW9uVGltZUtleXdvcmRzID0gWyJzIiwgIm1zIl07Ci0gICAgICAgIGxldCBh
bmltYXRpb25EdXJhdGlvbiA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJhbmlt
YXRpb24tZHVyYXRpb24iLCBXSS5VSVN0cmluZygiRHVyYXRpb24iKSwgbnVsbCwgYW5pbWF0aW9u
VGltZUtleXdvcmRzKTsKLSAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24ub3B0aW9uYWxQcm9wZXJ0
eSA9IHRydWU7Ci0gICAgICAgIGxldCBhbmltYXRpb25EZWxheSA9IG5ldyBXSS5WaXN1YWxTdHls
ZU51bWJlcklucHV0Qm94KCJhbmltYXRpb24tZGVsYXkiLCBXSS5VSVN0cmluZygiRGVsYXkiKSwg
bnVsbCwgYW5pbWF0aW9uVGltZUtleXdvcmRzKTsKLSAgICAgICAgYW5pbWF0aW9uRGVsYXkub3B0
aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYW5pbWF0aW9uRHVyYXRpb25Sb3cuZWxl
bWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25EdXJhdGlvbi5lbGVtZW50KTsKLSAgICAgICAgYW5p
bWF0aW9uRHVyYXRpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25EZWxheS5lbGVt
ZW50KTsKLQotICAgICAgICBsZXQgYW5pbWF0aW9uRGlyZWN0aW9uUm93ID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBhbmltYXRpb25EaXJlY3Rpb24gPSBuZXcgV0ku
VmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbmltYXRpb24tZGlyZWN0aW9uIiwgV0kuVUlTdHJp
bmcoIkRpcmVjdGlvbiIpLCB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29yZHMubm9y
bWFsLmNvbmNhdChbIlJldmVyc2UiXSksCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJBbHRlcm5h
dGUiLCAiQWx0ZXJuYXRlIFJldmVyc2UiXQotICAgICAgICB9KTsKLSAgICAgICAgYW5pbWF0aW9u
RGlyZWN0aW9uLm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYW5pbWF0aW9u
RmlsbE1vZGUgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbmltYXRpb24tZmls
bC1tb2RlIiwgV0kuVUlTdHJpbmcoIkZpbGwgTW9kZSIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0
cy5jb25jYXQoWyJOb25lIiwgIkZvcndhcmRzIiwgIkJhY2t3YXJkcyIsICJCb3RoIl0pKTsKLSAg
ICAgICAgYW5pbWF0aW9uRmlsbE1vZGUub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAg
ICAgYW5pbWF0aW9uRGlyZWN0aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYW5pbWF0aW9uRGly
ZWN0aW9uLmVsZW1lbnQpOwotICAgICAgICBhbmltYXRpb25EaXJlY3Rpb25Sb3cuZWxlbWVudC5h
cHBlbmRDaGlsZChhbmltYXRpb25GaWxsTW9kZS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYW5p
bWF0aW9uU3RhdGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0
IGFuaW1hdGlvblBsYXlTdGF0ZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCgi
YW5pbWF0aW9uLXBsYXktc3RhdGUiLCBXSS5VSVN0cmluZygiU3RhdGUiKSwgWyJSdW5uaW5nIiwg
IlBhdXNlZCIsICJJbml0aWFsIl0pOwotICAgICAgICBhbmltYXRpb25QbGF5U3RhdGUub3B0aW9u
YWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYW5pbWF0aW9uU3RhdGVSb3cuZWxlbWVudC5h
cHBlbmRDaGlsZChhbmltYXRpb25QbGF5U3RhdGUuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGFu
aW1hdGlvblByb3BlcnRpZXMgPSBbYW5pbWF0aW9uTmFtZSwgYW5pbWF0aW9uRHVyYXRpb24sIGFu
aW1hdGlvblRpbWluZywgYW5pbWF0aW9uRGVsYXksIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50LCBh
bmltYXRpb25EaXJlY3Rpb24sIGFuaW1hdGlvbkZpbGxNb2RlLCBhbmltYXRpb25QbGF5U3RhdGVd
OwotICAgICAgICBsZXQgYW5pbWF0aW9uUHJvcGVydHlDb21iaW5lciA9IG5ldyBXSS5WaXN1YWxT
dHlsZVByb3BlcnR5Q29tYmluZXIoImFuaW1hdGlvbiIsIGFuaW1hdGlvblByb3BlcnRpZXMpOwot
Ci0gICAgICAgIGxldCBub1JlbWFpbmluZ0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMgPSB0aGlz
Ll9ub1JlbWFpbmluZ0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMuYmluZCh0aGlzLCBhbmltYXRp
b25Qcm9wZXJ0eUNvbWJpbmVyLCBhbmltYXRpb25Qcm9wZXJ0aWVzKTsKLSAgICAgICAgcHJvcGVy
dGllcy5hbmltYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJh
dGVkS2V5d29yZEVkaXRvci5FdmVudC5Ob1JlbWFpbmluZ1RyZWVJdGVtcywgbm9SZW1haW5pbmdD
b21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zLCB0aGlzKTsKLQotICAgICAgICBsZXQgc2VsZWN0ZWRD
b21tYVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQgPSB0aGlzLl9zZWxlY3RlZENvbW1h
U2VwYXJhdGVkRWRpdG9ySXRlbVZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMsIHByb3BlcnRpZXMuYW5p
bWF0aW9uLCBhbmltYXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgYW5pbWF0aW9uUHJv
cGVydHlDb21iaW5lci5hZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0
b3IuRXZlbnQuVmFsdWVEaWRDaGFuZ2UsIHNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVt
VmFsdWVDaGFuZ2VkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY29tbWFTZXBhcmF0ZWRFZGl0b3JU
cmVlSXRlbVNlbGVjdGVkID0gdGhpcy5fY29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVlSXRlbVNlbGVj
dGVkLmJpbmQoYW5pbWF0aW9uUHJvcGVydHlDb21iaW5lcik7Ci0gICAgICAgIHByb3BlcnRpZXMu
YW5pbWF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtl
eXdvcmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwgY29tbWFTZXBhcmF0ZWRFZGl0b3JU
cmVlSXRlbVNlbGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBncm91cC5zcGVjaWZpZWRXaWR0aFBy
b3BlcnRpZXMgPSBbcHJvcGVydGllcy5hbmltYXRpb25dOwotCi0gICAgICAgIGxldCBhbmltYXRp
b25Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFthbmltYXRpb25Sb3csIGFuaW1h
dGlvbk5hbWVSb3csIGFuaW1hdGlvblRpbWluZ1JvdywgYW5pbWF0aW9uRHVyYXRpb25Sb3csIGFu
aW1hdGlvbkRpcmVjdGlvblJvdywgYW5pbWF0aW9uU3RhdGVSb3ddKTsKLSAgICAgICAgdGhpcy5f
cG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbYW5pbWF0aW9uR3JvdXBdKTsKLSAgICB9Ci0KLSAgICBf
bm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zKHByb3BlcnR5Q29tYmluZXIsIHBy
b3BlcnR5RWRpdG9ycykKLSAgICB7Ci0gICAgICAgIGlmICghcHJvcGVydHlDb21iaW5lciB8fCAh
cHJvcGVydHlFZGl0b3JzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHByb3BlcnR5
Q29tYmluZXIudXBkYXRlVmFsdWVzRnJvbVRleHQoIiIpOwotICAgICAgICBmb3IgKGxldCBlZGl0
b3Igb2YgcHJvcGVydHlFZGl0b3JzKQotICAgICAgICAgICAgZWRpdG9yLmRpc2FibGVkID0gdHJ1
ZTsKLSAgICB9Ci0KLSAgICBfc2VsZWN0ZWRDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNo
YW5nZWQocHJvcGVydHlFZGl0b3IsIHByb3BlcnR5Q29tYmluZXIpCi0gICAgewotICAgICAgICBw
cm9wZXJ0eUVkaXRvci5zZWxlY3RlZFRyZWVFbGVtZW50VmFsdWUgPSBwcm9wZXJ0eUNvbWJpbmVy
LnN5bnRoZXNpemVkVmFsdWU7Ci0gICAgfQotCi0gICAgX2NvbW1hU2VwYXJhdGVkRWRpdG9yVHJl
ZUl0ZW1TZWxlY3RlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRh
dGVWYWx1ZXNGcm9tVGV4dCA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRoaXMudXBkYXRl
VmFsdWVzRnJvbVRleHQoZXZlbnQuZGF0YS50ZXh0IHx8ICIiKTsKLSAgICB9Ci19OwotCi1XSS5W
aXN1YWxTdHlsZURldGFpbHNQYW5lbC5TdHlsZURpc2FibGVkU3ltYm9sID0gU3ltYm9sKCJ2aXN1
YWwtc3R5bGUtc3R5bGUtZGlzYWJsZWQiKTsKLVdJLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLklu
aXRpYWxQcm9wZXJ0eVNlY3Rpb25UZXh0TGlzdFN5bWJvbCA9IFN5bWJvbCgidmlzdWFsLXN0eWxl
LWluaXRpYWwtcHJvcGVydHktc2VjdGlvbi10ZXh0Iik7Ci0KLS8vIEZJWE1FOiBBZGQgaW5mb3Jt
YXRpb24gYWJvdXQgZWFjaCBwcm9wZXJ0eSBhcyBhIGZvcm0gb2YgZG9jdW1lbnRhdGlvbi4gIFRo
aXMgaXMgY3VycmVudGx5IGVtcHR5IGFzCi0vLyB3ZSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRv
IHVzZSB0aGUgaW5mbyBvbiBzaXRlcyBsaWtlIE1ETiBhbmQgaGF2ZSBub3Qgd3JpdHRlbiBhbnl0
aGluZyBvdXJzZWx2ZXMuCi1XSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm9wZXJ0eVJlZmVy
ZW5jZUluZm8gPSB7fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAwZTU0NDhlMmU4NjU3
ZTA5ZDA2ZjVkMGM1NDFiNzdhYmVlOTExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwz
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVs
ID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuR2VuZXJh
bFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbAotewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKCJzdHlsZS12aXN1YWwiLCBXSS5VSVN0cmluZygiVmlzdWFsIiksIFdJLlZp
c3VhbFN0eWxlRGV0YWlsc1BhbmVsKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVGb250RmFtaWx5TGlz
dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlRm9udEZhbWlseUxpc3RFZGl0b3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZmMTFjNTljZTMwNTQ0MDZmMjU0OTY2MDYzZGI0OGU5MDRhODRiNjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVGb250RmFtaWx5TGlzdEVkaXRvci5q
cworKysgL2Rldi9udWxsCkBAIC0xLDE1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFs
U3R5bGVGb250RmFtaWx5TGlzdEVkaXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlRm9udEZhbWlseUxp
c3RFZGl0b3IgZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRv
cgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIGxvbmdoYW5kUHJvcGVy
dGllcywgbGF5b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVz
LCB0ZXh0LCBsb25naGFuZFByb3BlcnRpZXMsIHRydWUsIGxheW91dFJldmVyc2VkKTsKLQotICAg
ICAgICB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdvcmRzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigic2Nyb2xsIiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhpcykpOwotCi0gICAgICAg
IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tcGxldGlv
bnNDb250cm9sbGVyKHRoaXMpOwotICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5h
ZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLkV2ZW50
LkNvbXBsZXRpb25TZWxlY3RlZCwgdGhpcy5fY29tcGxldGlvbkNsaWNrZWQsIHRoaXMpOwotCi0g
ICAgICAgIHRoaXMuX3dyYXBXaXRoUXVvdGVzUmVnRXhwID0gL15bYS16QS1aXC1dKyQvOwotICAg
ICAgICB0aGlzLl9yZW1vdmVXcmFwcGVkUXVvdGVzUmVnRXhwID0gL1tcIlwnXS9nOwotICAgIH0K
LQotICAgIC8vIFB1YmxpYwotCi0gICAgdmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXJD
dXN0b21pemVDb21wbGV0aW9uRWxlbWVudChzdWdnZXN0aW9uc1ZpZXcsIGVsZW1lbnQsIGl0ZW0p
Ci0gICAgewotICAgICAgICBlbGVtZW50LnN0eWxlLmZvbnRGYW1pbHkgPSBpdGVtOwotICAgIH0K
LQotICAgIGdldCBoYXNDb21wbGV0aW9ucygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5f
Y29tcGxldGlvbkNvbnRyb2xsZXIuaGFzQ29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgc2V0IGNv
bXBsZXRpb25zKGNvbXBsZXRpb25zKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNv
bnRyb2xsZXIuY29tcGxldGlvbnMgPSBjb21wbGV0aW9uczsKLSAgICB9Ci0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfbW9kaWZ5Q29tbWFTZXBhcmF0ZWRLZXl3b3JkKHRleHQpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX3dyYXBXaXRoUXVvdGVzUmVnRXhwLnRlc3QodGV4dCkpCi0gICAgICAg
ICAgICB0ZXh0ID0gIlwiIiArIHRleHQgKyAiXCIiOwotCi0gICAgICAgIHJldHVybiB0ZXh0Owot
ICAgIH0KLQotICAgIF9hZGRDb21tYVNlcGFyYXRlZEtleXdvcmQodmFsdWUsIGluZGV4KQotICAg
IHsKLSAgICAgICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNl
KHRoaXMuX3JlbW92ZVdyYXBwZWRRdW90ZXNSZWdFeHAsICIiKTsKLQotICAgICAgICBsZXQgdmFs
dWVFbGVtZW50ID0gc3VwZXIuX2FkZENvbW1hU2VwYXJhdGVkS2V5d29yZCh2YWx1ZSwgaW5kZXgp
OwotICAgICAgICB2YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUZv
bnRGYW1pbHlUcmVlRWxlbWVudC5FdmVudC5FZGl0b3JLZXlEb3duLCB0aGlzLl90cmVlRWxlbWVu
dEtleURvd24sIHRoaXMpOwotICAgICAgICB2YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihX
SS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5FdmVudC5LZXl3b3JkQ2hhbmdlZCwg
dGhpcy5fdHJlZUVsZW1lbnRLZXl3b3JkQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgIHZhbHVlRWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50
LkV2ZW50LkVkaXRvckJsdXJyZWQsIHRoaXMuX2hpZGVDb21wbGV0aW9ucywgdGhpcyk7Ci0gICAg
ICAgIHJldHVybiB2YWx1ZUVsZW1lbnQ7Ci0gICAgfQotCi0gICAgX2FkZEVtcHR5Q29tbWFTZXBh
cmF0ZWRLZXl3b3JkKCkKLSAgICB7Ci0gICAgICAgIGxldCBuZXdJdGVtID0gc3VwZXIuX2FkZEVt
cHR5Q29tbWFTZXBhcmF0ZWRLZXl3b3JkKCk7Ci0gICAgICAgIG5ld0l0ZW0uc2hvd0tleXdvcmRF
ZGl0b3IoKTsKLSAgICB9Ci0KLSAgICBfY29tcGxldGlvbkNsaWNrZWQoZXZlbnQpCi0gICAgewot
ICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuZGF0YS50ZXh0OwotICAgICAgICB0aGlzLl92YWx1
ZURpZENoYW5nZSgpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVudEtleURvd24oZXZlbnQpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnZpc2libGUpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50ICYmIGV2ZW50LmRh
dGEgJiYgZXZlbnQuZGF0YS5rZXk7Ci0gICAgICAgIGlmICgha2V5KQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChrZXkgPT09ICJFbnRlciIgfHwga2V5ID09PSAiVGFiIikgewot
ICAgICAgICAgICAgbGV0IHNlbGVjdGVkVHJlZUVsZW1lbnQgPSB0aGlzLl9jb21tYVNlcGFyYXRl
ZEtleXdvcmRzLnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgICAgICBpZiAoIXNlbGVjdGVk
VHJlZUVsZW1lbnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBzZWxl
Y3RlZFRyZWVFbGVtZW50LnVwZGF0ZU1haW5UaXRsZSh0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxl
ci5jdXJyZW50Q29tcGxldGlvbik7Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJv
bGxlci5oaWRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoa2V5ID09PSAiRXNjYXBlIikgewotICAgICAgICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25z
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5ID09
PSAiVXAiKSB7Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5wcmV2aW91
cygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGtleSA9
PT0gIkRvd24iKSB7Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5uZXh0
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfdHJlZUVs
ZW1lbnRLZXl3b3JkQ2hhbmdlZCgpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuaGFzQ29tcGxl
dGlvbnMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMu
X3ZhbHVlRGlkQ2hhbmdlKCk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5
d29yZHMuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fY29tcGxldGlvbkNvbnRyb2xs
ZXIudXBkYXRlKHRyZWVFbGVtZW50Lm1haW5UaXRsZSkpIHsKLSAgICAgICAgICAgIGxldCBib3Vu
ZHMgPSB0cmVlRWxlbWVudC5lZGl0b3JCb3VuZHMoMik7Ci0gICAgICAgICAgICBpZiAoIWJvdW5k
cykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRp
b25Db250cm9sbGVyLnNob3coYm91bmRzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9oaWRl
Q29tcGxldGlvbnMoKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIu
aGlkZSgpOwotICAgIH0KLQotICAgIF9jcmVhdGVOZXdUcmVlRWxlbWVudCh2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQo
dmFsdWUpOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRm9udEZh
bWlseVRyZWVFbGVtZW50LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzJkNDVk
NTRkNDQzYWE1ZjMwNTI0ZjYzNmJlOTkxZGZkZWM0OGQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUZvbnRGYW1p
bHlUcmVlRWxlbWVudCA9IGNsYXNzIFZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50IGV4
dGVuZHMgV0kuR2VuZXJhbFRyZWVFbGVtZW50Ci17Ci0gICAgY29uc3RydWN0b3IodGV4dCkKLSAg
ICB7Ci0gICAgICAgIHN1cGVyKFtXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVk
aXRvci5MaXN0SXRlbUNsYXNzTmFtZSwgInZpc3VhbC1zdHlsZS1mb250LWZhbWlseS1saXN0LWl0
ZW0iXSwgdGV4dCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZEVkaXRvciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRFZGl0b3IuY2xhc3NM
aXN0LmFkZCgidmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0tZWRpdG9y
Iik7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRFZGl0b3IucGxhY2Vob2xkZXIgPSBXSS5VSVN0cmlu
ZygiKG1vZGlmeSB0aGUgYm94ZXMgYmVsb3cgdG8gYWRkIGEgdmFsdWUpIik7Ci0gICAgICAgIHRo
aXMuX2tleXdvcmRFZGl0b3Iuc3BlbGxjaGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl9rZXl3
b3JkRWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9rZXl3b3JkRWRpdG9y
S2V5RG93bi5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZEVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX2tleXdvcmRFZGl0b3JLZXlVcC5iaW5kKHRoaXMpKTsK
LSAgICAgICAgdGhpcy5fa2V5d29yZEVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhp
cy5fa2V5d29yZEVkaXRvckJsdXJyZWQuYmluZCh0aGlzKSk7Ci0gICAgfQotCi0gICAgLy8gUHVi
bGljCi0KLSAgICBlZGl0b3JCb3VuZHMocGFkZGluZykKLSAgICB7Ci0gICAgICAgIGlmICh0aGlz
LmtleXdvcmRFZGl0b3JIaWRkZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0
IGJvdW5kcyA9IFdJLlJlY3QucmVjdEZyb21DbGllbnRSZWN0KHRoaXMuX2tleXdvcmRFZGl0b3Iu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpOwotICAgICAgICByZXR1cm4gYm91bmRzLnBhZChwYWRk
aW5nIHx8IDApOwotICAgIH0KLQotICAgIHVwZGF0ZU1haW5UaXRsZSh0ZXh0KQotICAgIHsKLSAg
ICAgICAgdGhpcy5tYWluVGl0bGUgPSB0aGlzLl9rZXl3b3JkRWRpdG9yLnZhbHVlID0gdGV4dDsK
LSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnN0eWxlLmZvbnRGYW1pbHkgPSB0ZXh0ICsgIiwg
IiArIFdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkZvbnRGYW1pbHlGYWxsYmFj
azsKLQotICAgICAgICBsZXQgaGFzVGV4dCA9IHRleHQgJiYgdGV4dC5sZW5ndGg7Ci0gICAgICAg
IHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJuby12YWx1ZSIsICFoYXNUZXh0
KTsKLSAgICAgICAgaWYgKCFoYXNUZXh0KQotICAgICAgICAgICAgdGhpcy5zdWJ0aXRsZSA9IHRo
aXMuX2tleXdvcmRFZGl0b3IucGxhY2Vob2xkZXI7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuRXZlbnQu
S2V5d29yZENoYW5nZWQpOwotICAgIH0KLQotICAgIGdldCBjdXJyZW50bHlFZGl0aW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiAhdGhpcy5rZXl3b3JkRWRpdG9ySGlkZGVuOwotICAgIH0KLQot
ICAgIHNob3dLZXl3b3JkRWRpdG9yKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5rZXl3b3Jk
RWRpdG9ySGlkZGVuKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuc3VidGl0
bGUgPSAiIjsKLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC5yZW1vdmUoImVk
aXRvci1oaWRkZW4iKTsKLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnNjcm9sbEludG9WaWV3
SWZOZWVkZWQoKTsKLQotICAgICAgICB0aGlzLl9rZXl3b3JkRWRpdG9yLnZhbHVlID0gdGhpcy5f
bWFpblRpdGxlOwotICAgICAgICB0aGlzLl9rZXl3b3JkRWRpdG9yLnNlbGVjdCgpOwotICAgIH0K
LQotICAgIGhpZGVLZXl3b3JkRWRpdG9yKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLmtleXdv
cmRFZGl0b3JIaWRkZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy51cGRh
dGVNYWluVGl0bGUodGhpcy5fa2V5d29yZEVkaXRvci52YWx1ZSk7Ci0gICAgICAgIHRoaXMuX2xp
c3RJdGVtTm9kZS5jbGFzc0xpc3QuYWRkKCJlZGl0b3ItaGlkZGVuIik7Ci0gICAgfQotCi0gICAg
Z2V0IGtleXdvcmRFZGl0b3JIaWRkZW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xp
c3RJdGVtTm9kZS5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1oaWRkZW4iKTsKLSAgICB9Ci0K
LSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIG9uYXR0YWNoKCkKLSAgICB7Ci0gICAgICAgIHN1cGVy
Lm9uYXR0YWNoKCk7Ci0KLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnN0eWxlLmZvbnRGYW1p
bHkgPSB0aGlzLl9tYWluVGl0bGU7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xp
c3QuYWRkKCJlZGl0b3ItaGlkZGVuIik7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5hcHBl
bmRDaGlsZCh0aGlzLl9rZXl3b3JkRWRpdG9yKTsKLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2Rl
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5zaG93S2V5d29yZEVkaXRvci5iaW5kKHRo
aXMpKTsKLSAgICB9Ci0KLSAgICBvbmRlc2VsZWN0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuaGlk
ZUtleXdvcmRFZGl0b3IoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfa2V5d29y
ZEVkaXRvcktleURvd24oZXZlbnQpCi0gICAgewotICAgICAgICBpZiAodGhpcy5rZXl3b3JkRWRp
dG9ySGlkZGVuKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBrZXlDb2RlID0g
ZXZlbnQua2V5Q29kZTsKLSAgICAgICAgbGV0IGVudGVyS2V5Q29kZSA9IFdJLktleWJvYXJkU2hv
cnRjdXQuS2V5LkVudGVyLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktl
eUNvZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QuYWRkKCJl
ZGl0b3ItaGlkZGVuIik7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXSS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5FdmVudC5FZGl0b3JLZXlEb3du
LCB7a2V5OiAiRW50ZXIifSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICBsZXQgZXNjYXBlS2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2FwZS5r
ZXlDb2RlOwotICAgICAgICBpZiAoa2V5Q29kZSA9PT0gZXNjYXBlS2V5Q29kZSkgewotICAgICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVmlzdWFsU3R5bGVGb250RmFt
aWx5VHJlZUVsZW1lbnQuRXZlbnQuRWRpdG9yS2V5RG93biwge2tleTogIkVzY2FwZSJ9KTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCB0YWJLZXlDb2RlID0g
V0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuVGFiLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2Rl
ID09PSB0YWJLZXlDb2RlKSB7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwot
ICAgICAgICAgICAgdGhpcy5fZG9udEZpcmVLZXlVcCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxl
bWVudC5FdmVudC5FZGl0b3JLZXlEb3duLCB7a2V5OiAiVGFiIn0pOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7
Ci0gICAgICAgIGlmIChrZXkgPT09ICJVcCIgfHwga2V5ID09PSAiRG93biIpIHsKLSAgICAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICB0aGlzLl9kb250RmlyZUtl
eVVwID0gdHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkV2ZW50LkVkaXRvcktleURvd24sIHtr
ZXl9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50
LkV2ZW50LkVkaXRvcktleURvd24pOwotICAgIH0KLQotICAgIF9rZXl3b3JkRWRpdG9yS2V5VXAo
KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMua2V5d29yZEVkaXRvckhpZGRlbiB8fCB0aGlzLl9k
b250RmlyZUtleVVwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMudXBkYXRl
TWFpblRpdGxlKHRoaXMuX2tleXdvcmRFZGl0b3IudmFsdWUpOwotICAgIH0KLQotICAgIF9rZXl3
b3JkRWRpdG9yQmx1cnJlZCgpCi0gICAgewotICAgICAgICB0aGlzLmhpZGVLZXl3b3JkRWRpdG9y
KCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxl
Rm9udEZhbWlseVRyZWVFbGVtZW50LkV2ZW50LkVkaXRvckJsdXJyZWQpOwotICAgIH0KLX07Ci0K
LVdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkZvbnRGYW1pbHlGYWxsYmFjayA9
ICItd2Via2l0LXN5c3RlbS1mb250LCBzYW5zLXNlcmlmIjsKLQotV0kuVmlzdWFsU3R5bGVGb250
RmFtaWx5VHJlZUVsZW1lbnQuRXZlbnQgPSB7Ci0gICAgS2V5d29yZENoYW5nZWQ6ICJ2aXN1YWwt
c3R5bGUtZm9udC1mYW1pbHktdHJlZS1lbGVtZW50LWtleXdvcmQtY2hhbmdlZCIsCi0gICAgRWRp
dG9yS2V5RG93bjogInZpc3VhbC1zdHlsZS1mb250LWZhbWlseS10cmVlLWVsZW1lbnQtZWRpdG9y
LWtleS1kb3duIiwKLSAgICBFZGl0b3JCbHVycmVkOiAidmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5
LXRyZWUtZWxlbWVudC1lZGl0b3ItYmx1cnJlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2Jv
eC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZUtleXdvcmRDaGVja2JveC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1
MmNmMGQ5ZDdmYjJiMmRhY2E2ZThhNTEwZDZkYjIwOGUwNzZmNzQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmtleXdvcmQtY2hlY2tib3ggPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciB7Ci0gICAgZGlzcGxheTogZmxleDsKLSAgICBhbGlnbi1pdGVtczogY2VudGVy
OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiBpbnB1dCB7Ci0gICAg
d2lkdGg6IGF1dG87Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWY2ZDNkYzg1YjVjZGJjNDdiYzkx
OGQ0ZDc0ZTUxYmZhYjdjYTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlS2V5d29yZENoZWNrYm94LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLVdJLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94ID0gY2xhc3MgVmlzdWFs
U3R5bGVLZXl3b3JkQ2hlY2tib3ggZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9y
Ci17Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgdmFsdWUsIGxheW91dFJl
dmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVsbCwg
bnVsbCwgImtleXdvcmQtY2hlY2tib3giLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhp
cy5fY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLSAg
ICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICB0
aGlzLl9jaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fdmFs
dWVEaWRDaGFuZ2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fY2hlY2tib3hFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl92YWx1ZSA9
IHZhbHVlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMvZywgIi0iKSB8fCBudWxsOwotICAgIH0K
LQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9jaGVja2JveEVsZW1lbnQuY2hlY2tlZCA/IHRoaXMuX3ZhbHVlIDogbnVsbDsKLSAg
ICB9Ci0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl9jaGVja2Jv
eEVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlID09PSB0aGlzLl92YWx1ZTsKLSAgICB9Ci0KLSAgICBn
ZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsK
LSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJs
ZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50
LnRhYkluZGV4ID0gZGlzYWJsZWQgPyAiLTEiIDogbnVsbDsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVL
ZXl3b3JkSWNvbkxpc3QuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzZTllMmQwZjI4MmFhZWY3NTZkZDgzMWFjZGIzMGE4NTA1OGMwODI5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNz
cworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyIHsKLSAgICBtYXJnaW46IDFweCAwIDJweDsKLX0KLQot
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1j
b250YWluZXIgewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVy
dHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQt
aWNvbiB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHdpZHRoOiAyNnB4OwotICAgIGhl
aWdodDogMThweDsKLSAgICBjb2xvcjogYmxhY2s7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDEwMCUsIDEwMCUpOwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMlKTsK
LSAgICBib3JkZXItcmlnaHQ6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29u
dGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1j
b250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpm
aXJzdC1jaGlsZCB7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OwotICAgIGJvcmRl
ci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29u
Omxhc3QtY2hpbGQgewotICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMl
KTsKLSAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OwotICAgIGJvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzOiA0cHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjptYXRjaGVz
KC5jb21wdXRlZCwgLnNlbGVjdGVkKSB7Ci0gICAgd2lkdGg6IDI3cHg7Ci0gICAgYm9yZGVyLXJp
Z2h0OiAxcHggc29saWQ7Ci0gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWxlY3RlZC1iYWNrZ3Jv
dW5kLWNvbG9yKTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29y
ZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5r
ZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yKTsKLSAg
ICBjb2xvcjogaHNsKDAsIDEwMCUsIDEwMCUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWlj
b246bWF0Y2hlcyguY29tcHV0ZWQsIC5zZWxlY3RlZCkgKyAua2V5d29yZC1pY29uIHsKLSAgICB3
aWR0aDogMjVweDsKLSAgICBib3JkZXItbGVmdDogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5
d29yZC1pY29uID4gZGl2IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwot
ICAgIGxlZnQ6IDVweDsKLSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAg
cG9pbnRlci1ldmVudHM6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpub3Qo
LnNlbGVjdGVkKSA+IGRpdiB7Ci0gICAgb3BhY2l0eTogMC43OwotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3Jk
SWNvbkxpc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjAzMDM5OWIwYzYzNDk1N2U3NjEwYzc1NzJiOTlhOWU5ZWEyNmEyYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVLZXl3
b3JkSWNvbkxpc3QgPSBjbGFzcyBWaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCBleHRlbmRzIFdJ
LlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5h
bWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAg
ICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbnVsbCwgImtleXdv
cmQtaWNvbi1saXN0IiwgbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX2ljb25MaXN0
Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRoaXMu
X2ljb25MaXN0Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleXdvcmQtaWNvbi1saXN0LWNvbnRh
aW5lciIpOwotCi0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50cyA9IFtdOwotICAgICAgICB0aGlz
Ll9jb21wdXRlZEljb24gPSBudWxsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBudWxs
OwotCi0gICAgICAgIGxldCBwcmV0dHlQcm9wZXJ0eVJlZmVyZW5jZU5hbWUgPSB0aGlzLl9wcm9w
ZXJ0eVJlZmVyZW5jZU5hbWUuY2FwaXRhbGl6ZSgpLnJlcGxhY2UoLygtLikvZywgKG1hdGNoKSA9
PiBtYXRjaFsxXS50b1VwcGVyQ2FzZSgpKTsKLQotICAgICAgICBmdW5jdGlvbiBjcmVhdGVMaXN0
SXRlbSh2YWx1ZSwgdGl0bGUpIHsKLSAgICAgICAgICAgIGxldCBpY29uQnV0dG9uRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICAgICAgaWNvbkJ1dHRv
bkVsZW1lbnQuaWQgPSB2YWx1ZTsKLSAgICAgICAgICAgIGljb25CdXR0b25FbGVtZW50LnRpdGxl
ID0gdGl0bGU7Ci0gICAgICAgICAgICBpY29uQnV0dG9uRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJr
ZXl3b3JkLWljb24iKTsKLSAgICAgICAgICAgIGljb25CdXR0b25FbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlS2V5d29yZENoYW5nZWQuYmluZCh0aGlzKSk7Ci0K
LSAgICAgICAgICAgIGxldCBpbWFnZU5hbWUgPSAodmFsdWUgPT09ICJub25lIiB8fCB2YWx1ZSA9
PT0gImluaXRpYWwiKSA/ICJWaXN1YWxTdHlsZU5vbmUiIDogcHJldHR5UHJvcGVydHlSZWZlcmVu
Y2VOYW1lICsgdGl0bGUucmVwbGFjZSgvXHMvZywgIiIpOwotICAgICAgICAgICAgaWNvbkJ1dHRv
bkVsZW1lbnQuYXBwZW5kQ2hpbGQoV0kuSW1hZ2VVdGlsaXRpZXMudXNlU1ZHU3ltYm9sKCJJbWFn
ZXMvIiArIGltYWdlTmFtZSArICIuc3ZnIikpOwotCi0gICAgICAgICAgICByZXR1cm4gaWNvbkJ1
dHRvbkVsZW1lbnQ7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5f
cG9zc2libGVWYWx1ZXMuYmFzaWMpIHsKLSAgICAgICAgICAgIGxldCBpY29uRWxlbWVudCA9IGNy
ZWF0ZUxpc3RJdGVtLmNhbGwodGhpcywga2V5LCB0aGlzLl9wb3NzaWJsZVZhbHVlcy5iYXNpY1tr
ZXldKTsKLSAgICAgICAgICAgIHRoaXMuX2ljb25MaXN0Q29udGFpbmVyLmFwcGVuZENoaWxkKGlj
b25FbGVtZW50KTsKLSAgICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50cy5wdXNoKGljb25FbGVt
ZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5faWNvbkxpc3RDb250YWluZXIpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0g
ICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWRJY29uKQot
ICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVk
SWNvbi5pZDsKLSAgICB9Ci0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICB0
aGlzLl9jb21wdXRlZEljb24gPSBudWxsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBu
dWxsOwotICAgICAgICBmb3IgKGxldCBpY29uIG9mIHRoaXMuX2ljb25FbGVtZW50cykgewotICAg
ICAgICAgICAgaWNvbi5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIsICJjb21wdXRlZCIpOwot
Ci0gICAgICAgICAgICBpZiAoaWNvbi5pZCA9PT0gdGhpcy5fdXBkYXRlZFZhbHVlcy5wbGFjZWhv
bGRlcikKLSAgICAgICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24gPSBpY29uOwotCi0gICAg
ICAgICAgICBpZiAoaWNvbi5pZCA9PT0gdmFsdWUgJiYgIXRoaXMuX3Byb3BlcnR5TWlzc2luZykK
LSAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBpY29uOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKCF0aGlzLl9jb21wdXRlZEljb24pCi0gICAgICAgICAgICB0aGlzLl9jb21w
dXRlZEljb24gPSB0aGlzLl9pY29uRWxlbWVudHNbMF07Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Nl
bGVjdGVkSWNvbikKLSAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSWNvbi5jbGFzc0xpc3QuYWRk
KCJzZWxlY3RlZCIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9jb21wdXRlZElj
b24uY2xhc3NMaXN0LmFkZCgiY29tcHV0ZWQiKTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6
ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKLSAgICB9Ci0KLSAg
ICAvLyBQcml2YXRlCi0KLSAgICBfaGFuZGxlS2V5d29yZENoYW5nZWQoZXZlbnQpCi0gICAgewot
ICAgICAgICBsZXQgdG9nZ2xlT2ZmID0gdGhpcy52YWx1ZSA9PT0gZXZlbnQudGFyZ2V0LmlkOwot
ICAgICAgICB0aGlzLl9wcm9wZXJ0eU1pc3NpbmcgPSB0b2dnbGVPZmY7Ci0gICAgICAgIHRoaXMu
dmFsdWUgPSB0b2dnbGVPZmYgPyBudWxsIDogZXZlbnQudGFyZ2V0LmlkOwotICAgICAgICB0aGlz
Ll92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtl
eXdvcmRQaWNrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OGM4NzQ4ZDc2
NWM1OTg5ZDk2MDgxOTRkOWU2ZmNiZmQ5ZTQ2NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTU3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIgPSBjbGFz
cyBWaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIgZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yCi17Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVW
YWx1ZXMsIGxheW91dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1l
cywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIG51bGwsICJrZXl3b3JkLXBpY2tlciIsIGxheW91dFJl
dmVyc2VkKTsKLQotICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwotICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJrZXl3b3JkLXBpY2tlci1zZWxlY3QiKTsKLSAgICAgICAgaWYg
KHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmFkdmFuY2VkKQotICAgICAgICAgICAgdGhpcy5fa2V5d29y
ZFNlbGVjdEVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiT3B0aW9uLWNsaWNrIHRvIHNob3cg
YWxsIHZhbHVlcyIpOwotCi0gICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgdGhpcy5fdW5jaGFuZ2Vk
T3B0aW9uRWxlbWVudC52YWx1ZSA9ICIiOwotICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25F
bGVtZW50LnRleHQgPSBXSS5VSVN0cmluZygiVW5jaGFuZ2VkIik7Ci0gICAgICAgIHRoaXMuX2tl
eXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1l
bnQpOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImhyIikpOwotCi0gICAgICAgIHRoaXMuX2NyZWF0ZVZhbHVl
T3B0aW9ucyh0aGlzLl9wb3NzaWJsZVZhbHVlcy5iYXNpYyk7Ci0gICAgICAgIHRoaXMuX2FkdmFu
Y2VkVmFsdWVzRWxlbWVudHMgPSBudWxsOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2tleXdvcmRTZWxlY3RN
b3VzZURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMuX2hhbmRsZUtleXdvcmRDaGFuZ2VkLmJp
bmQodGhpcykpOwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X2tleXdvcmRTZWxlY3RFbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAg
IGdldCB2YWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQudmFsdWU7Ci0gICAgfQotCi0gICAgc2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAg
ICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKSB7Ci0gICAgICAgICAgICB0aGlzLl91bmNo
YW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuc3Bl
Y2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5TWlzc2lu
ZyB8fCAhdGhpcy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh2YWx1ZSkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVu
dC52YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fdmFsdWVJ
c1N1cHBvcnRlZEFkdmFuY2VkS2V5d29yZCh2YWx1ZSkpCi0gICAgICAgICAgICB0aGlzLl9hZGRB
ZHZhbmNlZFZhbHVlcygpOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZh
bHVlID0gdmFsdWU7Ci0gICAgfQotCi0gICAgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZWRWYWx1ZXMuY29uZmxpY3RpbmdWYWx1ZXMp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFj
ZWhvbGRlckVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9jYW5vbmljYWxpemVkS2V5d29yZEZv
cktleShwbGFjZWhvbGRlcikgfHwgcGxhY2Vob2xkZXI7Ci0gICAgfQotCi0gICAgZ2V0IHN5bnRo
ZXNpemVkVmFsdWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3VuY2hhbmdlZE9wdGlv
bkVsZW1lbnQuc2VsZWN0ZWQgPyBudWxsIDogdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudmFs
dWU7Ci0gICAgfQotCi0gICAgdXBkYXRlRWRpdG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCi0gICAg
ewotICAgICAgICBpZiAoIXVwZGF0ZWRWYWx1ZXMuY29uZmxpY3RpbmdWYWx1ZXMpIHsKLSAgICAg
ICAgICAgIGxldCBtaXNzaW5nID0gdGhpcy5fcHJvcGVydHlNaXNzaW5nIHx8ICF1cGRhdGVkVmFs
dWVzLnZhbHVlOwotICAgICAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudC5zZWxl
Y3RlZCA9IG1pc3Npbmc7Ci0gICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9s
ZGVyRWxlbWVudC5oaWRkZW4gPSAhbWlzc2luZzsKLSAgICAgICAgfQotCi0gICAgICAgIHN1cGVy
LnVwZGF0ZUVkaXRvclZhbHVlcyh1cGRhdGVkVmFsdWVzKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfaGFuZGxlS2V5d29yZENoYW5nZWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5f
dmFsdWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRl
ckVsZW1lbnQuaGlkZGVuID0gIXRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7
Ci0gICAgfQotCi0gICAgX2tleXdvcmRTZWxlY3RNb3VzZURvd24oZXZlbnQpCi0gICAgewotICAg
ICAgICBpZiAoZXZlbnQuYWx0S2V5KQotICAgICAgICAgICAgdGhpcy5fYWRkQWR2YW5jZWRWYWx1
ZXMoKTsKLSAgICAgICAgZWxzZSBpZiAoIXRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRBZHZhbmNlZEtl
eXdvcmQodGhpcy52YWx1ZSkpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVBZHZhbmNlZFZhbHVl
cygpOwotICAgIH0KLQotICAgIF9jcmVhdGVWYWx1ZU9wdGlvbnModmFsdWVzKQotICAgIHsKLSAg
ICAgICAgbGV0IGFkZGVkRWxlbWVudHMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQga2V5IGluIHZh
bHVlcykgewotICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
Im9wdGlvbiIpOwotICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0ga2V5OwotICAgICAgICAgICAg
b3B0aW9uLnRleHQgPSB2YWx1ZXNba2V5XTsKLSAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxl
Y3RFbGVtZW50LmFwcGVuZENoaWxkKG9wdGlvbik7Ci0gICAgICAgICAgICBhZGRlZEVsZW1lbnRz
LnB1c2gob3B0aW9uKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gYWRkZWRFbGVtZW50czsK
LSAgICB9Ci0KLSAgICBfYWRkQWR2YW5jZWRWYWx1ZXMoKQotICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaHIiKSk7Ci0gICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMgPSB0
aGlzLl9jcmVhdGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpOwot
ICAgIH0KLQotICAgIF9yZW1vdmVBZHZhbmNlZFZhbHVlcygpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fYWR2YW5j
ZWRWYWx1ZXNFbGVtZW50c1swXS5wcmV2aW91c1NpYmxpbmcpOwotICAgICAgICBmb3IgKGxldCBl
bGVtZW50IG9mIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICB0aGlz
Ll9rZXl3b3JkU2VsZWN0RWxlbWVudC5yZW1vdmVDaGlsZChlbGVtZW50KTsKLQotICAgICAgICB0
aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzID0gbnVsbDsKLSAgICB9Ci0KLSAgICBfdG9nZ2xl
VGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsKLSAgICAgICAgdGhp
cy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIgOiBudWxs
OwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94LmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3guY3Nz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2E0Njk4MjdlNDFlY2UxNDc5NGNjMTM3
NGUyNjcwZmViNmI3YmQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlTnVtYmVySW5wdXRCb3guY3NzCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIuZm9jdXNlZCA+IC5mb2N1cy1yaW5nIHsKLSAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAycHg7Ci0gICAgbGVmdDogMXB4OwotICAgIHdp
ZHRoOiBjYWxjKDEwMCUgLSAycHgpOwotICAgIGhlaWdodDogMTZweDsKLSAgICBib3JkZXItcmFk
aXVzOiAzcHg7Ci0gICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMTUpIDAgMXB4IDAs
IDAgMCAwIDNweCBoc2xhKDIxMSwgOTYlLCA0OCUsIDAuMjUpOwotICAgIHBvaW50ZXItZXZlbnRz
OiBub25lOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1rZXl3b3JkLXNl
bGVjdCB7Ci0gICAgb3V0bGluZTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5udW1i
ZXItaW5wdXQtY29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IDJweDsKLSAgICBsZWZ0OiAxcHg7Ci0gICAgd2lkdGg6IGNhbGMo
MTAwJSAtIDIwcHgpOwotICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwotICAgIHRleHQtYWxpZ246IHJp
Z2h0OwotICAgIGJvcmRlci1yYWRpdXM6IDRweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0
ZTsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotICAg
IHdoaXRlLXNwYWNlOiBub3dyYXA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5udW1iZXIt
aW5wdXQtZWRpdGFibGUpID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgewotICAgIGRpc3BsYXk6
IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5lciA+
IC5udW1iZXItaW5wdXQtdmFsdWUgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTZw
eDsKLSAgICBtYXJnaW4tcmlnaHQ6IDFweDsKLSAgICBwYWRkaW5nOiAwIDAgMXB4IDNweDsKLSAg
ICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7
Ci0gICAgYm9yZGVyOiBub25lOwotICAgIG91dGxpbmU6IG5vbmU7Ci0gICAgcG9pbnRlci1ldmVu
dHM6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXNwZWNpYWwt
cHJvcGVydHktcGxhY2Vob2xkZXJbaGlkZGVuXSB+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4g
Lm51bWJlci1pbnB1dC12YWx1ZSB7Ci0gICAgcG9pbnRlci1ldmVudHM6IGFsbDsKLX0KLQotLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZh
bHVlLWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gc3BhbiB7Ci0gICAgbWlu
LXdpZHRoOiAtd2Via2l0LWZpdC1jb250ZW50OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLm51
bWJlci1pbnB1dC1jb250YWluZXI6bm90KC5oYXMtdmFsdWUpID4gc3BhbiB7Ci0gICAgY29sb3I6
IGhzbCgwLCAwJSwgNjAlKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3guanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZU51bWJlcklucHV0
Qm94LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGVlMDY1M2FkNjAzZjc4NDE5
NzA2MTdlNzI0Y2I1YmUxN2M3ODliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3guanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3ggPSBjbGFzcyBWaXN1
YWxTdHlsZU51bWJlcklucHV0Qm94IGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRv
cgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVz
LCBwb3NzaWJsZVVuaXRzLCBhbGxvd05lZ2F0aXZlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkKLSAg
ICB7Ci0gICAgICAgIGxldCB1bml0bGVzc051bWJlclVuaXQgPSBXSS5VSVN0cmluZygiTnVtYmVy
Iik7Ci0KLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMs
IHBvc3NpYmxlVW5pdHMgfHwgW3VuaXRsZXNzTnVtYmVyVW5pdF0sICJudW1iZXItaW5wdXQtYm94
IiwgbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX3VuaXRsZXNzTnVtYmVyVW5pdCA9
IHVuaXRsZXNzTnVtYmVyVW5pdDsKLQotICAgICAgICB0aGlzLl9oYXNVbml0cyA9IHRoaXMuX3Bv
c3NpYmxlVW5pdHMuYmFzaWMuc29tZSgodW5pdCkgPT4gdW5pdCAhPT0gdW5pdGxlc3NOdW1iZXJV
bml0KTsKLSAgICAgICAgdGhpcy5fYWxsb3dOZWdhdGl2ZVZhbHVlcyA9ICEhYWxsb3dOZWdhdGl2
ZVZhbHVlcyB8fCBmYWxzZTsKLQotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlz
dC50b2dnbGUoIm5vLXZhbHVlcyIsICFwb3NzaWJsZVZhbHVlcyB8fCAhcG9zc2libGVWYWx1ZXMu
bGVuZ3RoKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJu
by11bml0cyIsICF0aGlzLl9oYXNVbml0cyk7Ci0KLSAgICAgICAgbGV0IGZvY3VzUmluZ0VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgZm9jdXNSaW5nRWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJmb2N1cy1yaW5nIik7Ci0gICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZm9jdXNSaW5nRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5
d29yZFNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKLSAg
ICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibnVtYmVyLWlu
cHV0LWtleXdvcmQtc2VsZWN0Iik7Ci0gICAgICAgIGlmICh0aGlzLl9wb3NzaWJsZVVuaXRzLmFk
dmFuY2VkKQotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudGl0bGUgPSBX
SS5VSVN0cmluZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHVuaXRzIik7Ci0KLSAgICAgICAg
dGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9w
dGlvbiIpOwotICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnZhbHVlID0gIiI7
Ci0gICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQudGV4dCA9IFdJLlVJU3RyaW5n
KCJVbmNoYW5nZWQiKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5
d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIi
KSk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVmFsdWVzKSB7Ci0gICAgICAgICAgICB0
aGlzLl9jcmVhdGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMpOwotICAg
ICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaHIiKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5fcG9z
c2libGVVbml0cykKLSAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVuaXRPcHRpb25zKHRoaXMuX3Bv
c3NpYmxlVW5pdHMuYmFzaWMpOwotCi0gICAgICAgIHRoaXMuX2FkdmFuY2VkVW5pdHNFbGVtZW50
cyA9IG51bGw7Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9mb2N1c0NvbnRlbnRFbGVtZW50LmJpbmQodGhpcykpOwot
ICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZWRvd24iLCB0aGlzLl9rZXl3b3JkU2VsZWN0TW91c2VEb3duLmJpbmQodGhpcykpOwotICAgICAg
ICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0
aGlzLl9rZXl3b3JkQ2hhbmdlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNl
bGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2JsdXJDb250ZW50RWxl
bWVudC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fbnVtYmVyVW5p
dHNDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgdGhp
cy5fbnVtYmVyVW5pdHNDb250YWluZXIuY2xhc3NMaXN0LmFkZCgibnVtYmVyLWlucHV0LWNvbnRh
aW5lciIpOwotCi0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLSAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1
dEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibnVtYmVyLWlucHV0LXZhbHVlIik7Ci0gICAgICAgIHRo
aXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsKLSAgICAgICAg
dGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0
aGlzLl9mb2N1c0NvbnRlbnRFbGVtZW50LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl92YWx1
ZU51bWJlcklucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fdmFs
dWVOdW1iZXJJbnB1dEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVt
YmVySW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5kZWJvdW5jZSgy
NTApLl92YWx1ZU51bWJlcklucHV0S2V5VXApOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklu
cHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fYmx1ckNvbnRlbnRFbGVt
ZW50LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklucHV0RWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLmRlYm91bmNlKDI1MCkuX3ZhbHVlTnVtYmVy
SW5wdXRDaGFuZ2VkKTsKLSAgICAgICAgdGhpcy5fbnVtYmVyVW5pdHNDb250YWluZXIuYXBwZW5k
Q2hpbGQodGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3Vu
aXRzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgdGhp
cy5fbnVtYmVyVW5pdHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fdW5pdHNFbGVtZW50KTsK
LQotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX251bWJlclVu
aXRzQ29udGFpbmVyKTsKLQotICAgICAgICB0aGlzLl9zZXROdW1iZXJJbnB1dElzRWRpdGFibGUo
dHJ1ZSk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnZhbHVlID0gbnVs
bDsKLSAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKCJw
bGFjZWhvbGRlciIsIDApOwotICAgICAgICB0aGlzLl91bml0c0VsZW1lbnRUZXh0Q29udGVudCA9
IHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVk
VW5pdCgicHgiKSA/ICJweCIgOiB0aGlzLl9wb3NzaWJsZVVuaXRzLmJhc2ljWzBdOwotICAgIH0K
LQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGlmICh0
aGlzLl9udW1iZXJJbnB1dElzRWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9h
dCh0aGlzLl92YWx1ZU51bWJlcklucHV0RWxlbWVudC52YWx1ZSk7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZSB8fCBudWxsOwotICAgIH0KLQotICAgIHNl
dCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhp
cy52YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fcHJvcGVy
dHlNaXNzaW5nKSB7Ci0gICAgICAgICAgICBpZiAodmFsdWUgfHwgdGhpcy5fdXBkYXRlZFZhbHVl
cy5wbGFjZWhvbGRlcikKLSAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNl
aG9sZGVyRWxlbWVudC50ZXh0Q29udGVudCA9ICh2YWx1ZSB8fCB0aGlzLl91cGRhdGVkVmFsdWVz
LnBsYWNlaG9sZGVyKSArICh0aGlzLl91cGRhdGVkVmFsdWVzLnVuaXRzIHx8ICIiKTsKLQotICAg
ICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewotICAgICAgICAgICAgICAgIHRoaXMuX3VuY2hh
bmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHRoaXMu
X3NldE51bWJlcklucHV0SXNFZGl0YWJsZSgpOwotICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lh
bFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuc3Bl
Y2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IHRydWU7Ci0KLSAgICAgICAg
aWYgKCF2YWx1ZSkgewotICAgICAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQu
dmFsdWUgPSBudWxsOwotICAgICAgICAgICAgdGhpcy5fbWFya1VuaXRzQ29udGFpbmVySWZJbnB1
dEhhc1ZhbHVlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoIWlzTmFOKHZhbHVlKSkgewotICAgICAgICAgICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0Vk
aXRhYmxlKHRydWUpOwotICAgICAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQu
dmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlICogMTAwKSAvIDEwMDsKLSAgICAgICAgICAgIHRoaXMu
X21hcmtVbml0c0NvbnRhaW5lcklmSW5wdXRIYXNWYWx1ZSgpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQo
dmFsdWUpKSB7Ci0gICAgICAgICAgICB0aGlzLl9zZXROdW1iZXJJbnB1dElzRWRpdGFibGUoKTsK
LSAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlID0gdmFsdWU7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBnZXQgdW5pdHMoKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICBsZXQga2V5d29yZCA9IHRoaXMu
X2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlOwotICAgICAgICBpZiAoIXRoaXMudmFsdWVJc1N1
cHBvcnRlZFVuaXQoa2V5d29yZCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAg
ICByZXR1cm4ga2V5d29yZDsKLSAgICB9Ci0KLSAgICBzZXQgdW5pdHModW5pdCkKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkIHx8IHVuaXQg
PT09IHRoaXMudW5pdHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF1bml0
ICYmICF0aGlzLl9wb3NzaWJsZVVuaXRzLmJhc2ljLmluY2x1ZGVzKHRoaXMuX3VuaXRsZXNzTnVt
YmVyVW5pdCkgJiYgIXRoaXMudmFsdWVJc1N1cHBvcnRlZFVuaXQodW5pdCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRBZHZhbmNlZFVu
aXQodW5pdCkpCi0gICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFVuaXRzKCk7Ci0KLSAgICAg
ICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0VkaXRhYmxlKHRydWUpOwotICAgICAgICB0aGlzLl9r
ZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZSA9IHVuaXQgfHwgdGhpcy5fdW5pdGxlc3NOdW1iZXJV
bml0OwotICAgICAgICB0aGlzLl91bml0c0VsZW1lbnRUZXh0Q29udGVudCA9IHVuaXQ7Ci0gICAg
fQotCi0gICAgZ2V0IHBsYWNlaG9sZGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl92
YWx1ZU51bWJlcklucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIik7Ci0gICAg
fQotCi0gICAgc2V0IHBsYWNlaG9sZGVyKHRleHQpCi0gICAgewotICAgICAgICBpZiAodGV4dCA9
PT0gdGhpcy5wbGFjZWhvbGRlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQg
b25seU51bWVyaWNhbFRleHQgPSB0ZXh0ICYmICFpc05hTih0ZXh0KSAmJiAoTWF0aC5yb3VuZCh0
ZXh0ICogMTAwKSAvIDEwMCk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50
LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCBvbmx5TnVtZXJpY2FsVGV4dCB8fCAwKTsKLQot
ICAgICAgICBpZiAoIW9ubHlOdW1lcmljYWxUZXh0KQotICAgICAgICAgICAgdGhpcy5zcGVjaWFs
UHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9jYW5vbmljYWxp
emVkS2V5d29yZEZvcktleSh0ZXh0KSB8fCB0ZXh0OwotICAgIH0KLQotICAgIGdldCBzeW50aGVz
aXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVt
ZW50LnNlbGVjdGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgbGV0IHZh
bHVlID0gdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWU7Ci0gICAgICAgIGlmICh0
aGlzLl9udW1iZXJJbnB1dElzRWRpdGFibGUgJiYgIXZhbHVlKQotICAgICAgICAgICAgcmV0dXJu
IG51bGw7Ci0KLSAgICAgICAgbGV0IGtleXdvcmQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVu
dC52YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVJc1N1cHBvcnRlZFVuaXQoa2V5d29y
ZCkgPyB2YWx1ZSArIChrZXl3b3JkID09PSB0aGlzLl91bml0bGVzc051bWJlclVuaXQgPyAiIiA6
IGtleXdvcmQpIDoga2V5d29yZDsKLSAgICB9Ci0KLSAgICB1cGRhdGVWYWx1ZUZyb21UZXh0KHRl
eHQsIHZhbHVlKQotICAgIHsKLSAgICAgICAgbGV0IG1hdGNoID0gdGhpcy5wYXJzZVZhbHVlKHZh
bHVlKTsKLSAgICAgICAgdGhpcy52YWx1ZSA9IG1hdGNoID8gbWF0Y2hbMV0gOiB2YWx1ZTsKLSAg
ICAgICAgdGhpcy51bml0cyA9IG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwotICAgICAgICByZXR1
cm4gdGhpcy5tb2RpZnlQcm9wZXJ0eVRleHQodGV4dCwgdmFsdWUpOwotICAgIH0KLQotICAgIC8v
IFByb3RlY3RlZAotCi0gICAgc2V0IHNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudFRl
eHQodGV4dCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2Vs
ZWN0ZWQgPSB0cnVlOwotCi0gICAgICAgIHN1cGVyLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVy
RWxlbWVudFRleHQgPSB0ZXh0OwotICAgIH0KLQotICAgIHBhcnNlVmFsdWUodGV4dCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiAvXigtP1tcZC5dKykoW15cc1xkXXswLDR9KSg/OlxzKjs/KSQvLmV4
ZWModGV4dCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgc2V0IF91bml0c0VsZW1l
bnRUZXh0Q29udGVudCh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9oYXNVbml0cykK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl91bml0c0VsZW1lbnQudGV4dENv
bnRlbnQgPSB0ZXh0ID09PSB0aGlzLl91bml0bGVzc051bWJlclVuaXQgPyAiIiA6IHRleHQ7Ci0g
ICAgICAgIHRoaXMuX21hcmtVbml0c0NvbnRhaW5lcklmSW5wdXRIYXNWYWx1ZSgpOwotICAgIH0K
LQotICAgIF9zZXROdW1iZXJJbnB1dElzRWRpdGFibGUoZmxhZykKLSAgICB7Ci0gICAgICAgIHRo
aXMuX251bWJlcklucHV0SXNFZGl0YWJsZSA9IGZsYWcgfHwgZmFsc2U7Ci0gICAgICAgIHRoaXMu
Y29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibnVtYmVyLWlucHV0LWVkaXRhYmxlIiwg
dGhpcy5fbnVtYmVySW5wdXRJc0VkaXRhYmxlKTsKLSAgICB9Ci0KLSAgICBfbWFya1VuaXRzQ29u
dGFpbmVySWZJbnB1dEhhc1ZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxldCBudW1iZXJJbnB1dFZh
bHVlID0gdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWU7Ci0gICAgICAgIHRoaXMu
X251bWJlclVuaXRzQ29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoImhhcy12YWx1ZSIsIG51bWJl
cklucHV0VmFsdWUgJiYgbnVtYmVySW5wdXRWYWx1ZS5sZW5ndGgpOwotICAgIH0KLQotICAgIF9r
ZXl3b3JkQ2hhbmdlZCgpCi0gICAgewotICAgICAgICBsZXQgdW5jaGFuZ2VkT3B0aW9uU2VsZWN0
ZWQgPSB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkOwotICAgICAgICBpZiAo
IXVuY2hhbmdlZE9wdGlvblNlbGVjdGVkKSB7Ci0gICAgICAgICAgICBsZXQgc2VsZWN0ZWRLZXl3
b3JkSXNVbml0ID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVkVW5pdCh0aGlzLl9rZXl3b3JkU2VsZWN0
RWxlbWVudC52YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX251bWJlcklucHV0SXNFZGl0
YWJsZSAmJiBzZWxlY3RlZEtleXdvcmRJc1VuaXQpCi0gICAgICAgICAgICAgICAgdGhpcy5fdmFs
dWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWUgPSBudWxsOwotCi0gICAgICAgICAgICB0aGlzLl91
bml0c0VsZW1lbnRUZXh0Q29udGVudCA9IHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVl
OwotICAgICAgICAgICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0VkaXRhYmxlKHNlbGVjdGVkS2V5
d29yZElzVW5pdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdGhpcy5fc2V0TnVtYmVy
SW5wdXRJc0VkaXRhYmxlKGZhbHNlKTsKLQotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgp
OwotICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4g
PSAhdW5jaGFuZ2VkT3B0aW9uU2VsZWN0ZWQ7Ci0gICAgfQotCi0gICAgX3ZhbHVlTnVtYmVySW5w
dXRLZXlEb3duKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9udW1iZXJJbnB1dElz
RWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gYWRqdXN0
VmFsdWUoZGVsdGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxldCBuZXdWYWx1ZTsKLSAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWU7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlICYm
IGlzTmFOKHZhbHVlKSkgewotICAgICAgICAgICAgICAgIGxldCBwbGFjZWhvbGRlclZhbHVlID0g
dGhpcy5wbGFjZWhvbGRlciAmJiAhaXNOYU4odGhpcy5wbGFjZWhvbGRlcikgPyBwYXJzZUZsb2F0
KHRoaXMucGxhY2Vob2xkZXIpIDogMDsKLSAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBsYWNl
aG9sZGVyVmFsdWUgKyBkZWx0YTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
IG5ld1ZhbHVlID0gdmFsdWUgKyBkZWx0YTsKLQotICAgICAgICAgICAgaWYgKCF0aGlzLl9hbGxv
d05lZ2F0aXZlVmFsdWVzICYmIG5ld1ZhbHVlIDwgMCkKLSAgICAgICAgICAgICAgICBuZXdWYWx1
ZSA9IDA7Ci0KLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5TWlzc2luZyA9IGZhbHNlOwotICAg
ICAgICAgICAgdGhpcy52YWx1ZSA9IE1hdGgucm91bmQobmV3VmFsdWUgKiAxMDApIC8gMTAwOwot
ICAgICAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGxldCBzaGlmdCA9IDE7Ci0gICAgICAgIGlmIChldmVudC5jdHJsS2V5KQotICAgICAgICAgICAg
c2hpZnQgLz0gMTA7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5KQotICAgICAgICAg
ICAgc2hpZnQgKj0gMTA7Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7
Ci0gICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgiUGFnZSIpKQotICAgICAgICAgICAgc2hpZnQg
Kj0gMTA7Ci0KLSAgICAgICAgaWYgKGtleSA9PT0gIlVwIiB8fCBrZXkgPT09ICJQYWdlVXAiKSB7
Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgYWRqdXN0
VmFsdWUuY2FsbCh0aGlzLCBzaGlmdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAoa2V5ID09PSAiRG93biIgfHwga2V5ID09PSAiUGFnZURvd24iKSB7Ci0g
ICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgYWRqdXN0VmFs
dWUuY2FsbCh0aGlzLCAtc2hpZnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgdGhpcy5fbWFya1VuaXRzQ29udGFpbmVySWZJbnB1dEhhc1ZhbHVlKCk7Ci0gICAg
ICAgIHRoaXMuZGVib3VuY2UoMjUwKS5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBf
dmFsdWVOdW1iZXJJbnB1dEtleVVwKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9u
dW1iZXJJbnB1dElzRWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhp
cy5fbWFya1VuaXRzQ29udGFpbmVySWZJbnB1dEhhc1ZhbHVlKCk7Ci0gICAgICAgIHRoaXMuX3Zh
bHVlRGlkQ2hhbmdlKCk7Ci0gICAgfQotCi0gICAgX2tleXdvcmRTZWxlY3RNb3VzZURvd24oZXZl
bnQpCi0gICAgewotICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KQotICAgICAgICAgICAgdGhpcy5f
YWRkQWR2YW5jZWRVbml0cygpOwotICAgICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc1N1cHBv
cnRlZEFkdmFuY2VkVW5pdCh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZSkpCi0gICAg
ICAgICAgICB0aGlzLl9yZW1vdmVBZHZhbmNlZFVuaXRzKCk7Ci0gICAgfQotCi0gICAgX2NyZWF0
ZVZhbHVlT3B0aW9ucyh2YWx1ZXMpCi0gICAgewotICAgICAgICBsZXQgYWRkZWRFbGVtZW50cyA9
IFtdOwotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7Ci0gICAgICAgICAgICBsZXQg
b3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7Ci0gICAgICAgICAgICBv
cHRpb24udmFsdWUgPSBrZXk7Ci0gICAgICAgICAgICBvcHRpb24udGV4dCA9IHZhbHVlc1trZXld
OwotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQob3B0
aW9uKTsKLSAgICAgICAgICAgIGFkZGVkRWxlbWVudHMucHVzaChvcHRpb24pOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0gICAgX2NyZWF0ZVVu
aXRPcHRpb25zKHVuaXRzKQotICAgIHsKLSAgICAgICAgbGV0IGFkZGVkRWxlbWVudHMgPSBbXTsK
LSAgICAgICAgZm9yIChsZXQgdW5pdCBvZiB1bml0cykgewotICAgICAgICAgICAgbGV0IG9wdGlv
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICAgICAgb3B0aW9u
LnRleHQgPSB1bml0OwotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBw
ZW5kQ2hpbGQob3B0aW9uKTsKLSAgICAgICAgICAgIGFkZGVkRWxlbWVudHMucHVzaChvcHRpb24p
OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0g
ICAgX2FkZEFkdmFuY2VkVW5pdHMoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FkdmFuY2Vk
VW5pdHNFbGVtZW50cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9rZXl3
b3JkU2VsZWN0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIp
KTsKLSAgICAgICAgdGhpcy5fYWR2YW5jZWRVbml0c0VsZW1lbnRzID0gdGhpcy5fY3JlYXRlVW5p
dE9wdGlvbnModGhpcy5fcG9zc2libGVVbml0cy5hZHZhbmNlZCk7Ci0gICAgfQotCi0gICAgX3Jl
bW92ZUFkdmFuY2VkVW5pdHMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9hZHZhbmNlZFVu
aXRzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fa2V5d29y
ZFNlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fYWR2YW5jZWRVbml0c0VsZW1lbnRzWzBd
LnByZXZpb3VzU2libGluZyk7Ci0gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgdGhpcy5fYWR2
YW5jZWRVbml0c0VsZW1lbnRzKQotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1l
bnQucmVtb3ZlQ2hpbGQoZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fYWR2YW5jZWRVbml0c0Vs
ZW1lbnRzID0gbnVsbDsKLSAgICB9Ci0KLSAgICBfZm9jdXNDb250ZW50RWxlbWVudChldmVudCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZm9jdXNl
ZCIpOwotICAgIH0KLQotICAgIF9ibHVyQ29udGVudEVsZW1lbnQoZXZlbnQpCi0gICAgewotICAg
ICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKTsKLSAg
ICB9Ci0KLSAgICBfdmFsdWVOdW1iZXJJbnB1dENoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAg
ICBsZXQgbmV3VmFsdWUgPSB0aGlzLnZhbHVlOwotICAgICAgICBpZiAoIW5ld1ZhbHVlICYmIGlz
TmFOKG5ld1ZhbHVlKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5wbGFjZWhvbGRlciAm
JiAhaXNOYU4odGhpcy5wbGFjZWhvbGRlcikgPyBwYXJzZUZsb2F0KHRoaXMucGxhY2Vob2xkZXIp
IDogMDsKLQotICAgICAgICBpZiAoIXRoaXMuX2FsbG93TmVnYXRpdmVWYWx1ZXMgJiYgbmV3VmFs
dWUgPCAwKQotICAgICAgICAgICAgbmV3VmFsdWUgPSAwOwotCi0gICAgICAgIHRoaXMudmFsdWUg
PSBNYXRoLnJvdW5kKG5ld1ZhbHVlICogMTAwKSAvIDEwMDsKLSAgICAgICAgdGhpcy5fdmFsdWVE
aWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1l
bnRzKGRpc2FibGVkKQotICAgIHsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQu
dGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIgOiBudWxsOwotICAgICAgICB0aGlzLl92YWx1ZU51
bWJlcklucHV0RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7Ci0gICAg
fQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMxNTNjYzQ2ZDg2ZTQ4ZGQ4Nzg0ZjJjMDNlNmZk
NDQ2ODY3OWMyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVBy
b3BlcnR5Q29tYmluZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLVdJLlZpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lciA9IGNsYXNzIFZpc3VhbFN0eWxl
UHJvcGVydHlDb21iaW5lciBleHRlbmRzIFdJLk9iamVjdAotewotICAgIGNvbnN0cnVjdG9yKHBy
b3BlcnR5TmFtZSwgcHJvcGVydHlFZGl0b3JzLCBzcHJlYWROdW1iZXJWYWx1ZXMpCi0gICAgewot
ICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMuX3N0eWxlID0gbnVsbDsKLSAgICAgICAg
dGhpcy5fcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwotICAgICAgICB0aGlzLl9wcm9wZXJ0
eU1pc3NpbmcgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcHJvcGVydHlFZGl0b3JzID0gcHJvcGVy
dHlFZGl0b3JzIHx8IFtdOwotICAgICAgICB0aGlzLl9zcHJlYWROdW1iZXJWYWx1ZXMgPSAhIXNw
cmVhZE51bWJlclZhbHVlcyAmJiB0aGlzLl9wcm9wZXJ0eUVkaXRvcnMubGVuZ3RoID49IDQ7Ci0K
LSAgICAgICAgZm9yIChsZXQgZWRpdG9yIG9mIHRoaXMuX3Byb3BlcnR5RWRpdG9ycykgewotICAg
ICAgICAgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVk
aXRvci5FdmVudC5WYWx1ZURpZENoYW5nZSwgdGhpcy5faGFuZGxlUHJvcGVydHlFZGl0b3JWYWx1
ZUNoYW5nZWQsIHRoaXMpOwotICAgICAgICAgICAgZWRpdG9yLnN1cHByZXNzU3R5bGVUZXh0VXBk
YXRlID0gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3RleHRDb250YWluc05hbWVS
ZWdFeHAgPSBuZXcgUmVnRXhwKCIoPzooPzpefDspXFxzKiIgKyB0aGlzLl9wcm9wZXJ0eU5hbWUg
KyAiXFxzKjopIik7Ci0gICAgICAgIHRoaXMuX3JlcGxhY2VtZW50UmVnRXhwID0gbmV3IFJlZ0V4
cCgiKCg/Ol58OylcXHMqKSgiICsgdGhpcy5fcHJvcGVydHlOYW1lICsgIikoLis/KD86O3wkKSki
KTsKLSAgICAgICAgdGhpcy5fdmFsdWVSZWdFeHAgPSAvKFteXHNdK1woLitcKXxbXlxzXSspKD86
Oz8pL2c7Ci0gICAgfQotCi0gICAgZ2V0IHN0eWxlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9zdHlsZTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewot
ICAgICAgICBsZXQgdmFsdWUgPSAiIjsKLSAgICAgICAgbGV0IG9uZUVkaXRvckhhc1ZhbHVlID0g
ZmFsc2U7Ci0gICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlzLl9wcm9wZXJ0eUVkaXRvcnMp
IHsKLSAgICAgICAgICAgIGxldCBlZGl0b3JWYWx1ZSA9IGVkaXRvci5zeW50aGVzaXplZFZhbHVl
OwotICAgICAgICAgICAgaWYgKGVkaXRvclZhbHVlICYmIGVkaXRvclZhbHVlLmxlbmd0aCkKLSAg
ICAgICAgICAgICAgICBvbmVFZGl0b3JIYXNWYWx1ZSA9IHRydWU7Ci0gICAgICAgICAgICBlbHNl
IGlmIChlZGl0b3Iub3B0aW9uYWxQcm9wZXJ0eSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LQotICAgICAgICAgICAgaWYgKGVkaXRvci5tYXN0ZXJQcm9wZXJ0eSAmJiBlZGl0b3IudmFsdWVJ
c1N1cHBvcnRlZEtleXdvcmQoZWRpdG9yLnZhbHVlKSkgewotICAgICAgICAgICAgICAgIHRoaXMu
X21hcmtFZGl0b3JzKGVkaXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRv
clZhbHVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZWRpdG9yICE9PSB0aGlz
Ll9wcm9wZXJ0eUVkaXRvcnNbMF0pCi0gICAgICAgICAgICAgICAgdmFsdWUgKz0gIiAiOwotCi0g
ICAgICAgICAgICB2YWx1ZSArPSBlZGl0b3JWYWx1ZSB8fCAoZWRpdG9yLmNvbG9yUHJvcGVydHkg
PyAidHJhbnNwYXJlbnQiIDogMCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9tYXJrRWRp
dG9ycygpOwotICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoICYmIG9uZUVkaXRvckhhc1ZhbHVl
ID8gdmFsdWUgOiBudWxsOwotICAgIH0KLQotICAgIG1vZGlmeVByb3BlcnR5VGV4dCh0ZXh0LCB2
YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZXh0Q29udGFpbnNOYW1lUmVnRXhwLnRl
c3QodGV4dCkpCi0gICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHRoaXMuX3JlcGxhY2Vt
ZW50UmVnRXhwLCB2YWx1ZSAhPT0gbnVsbCA/ICIkMSQyOiAiICsgdmFsdWUgKyAiOyIgOiAiJDEi
KTsKLSAgICAgICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpCi0gICAgICAgICAgICB0ZXh0ICs9
IFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Rm9yTmV3
UHJvcGVydHkodGV4dCwgdGhpcy5fcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci0KLSAgICAgICAgcmV0
dXJuIHRleHQ7Ci0gICAgfQotCi0gICAgdXBkYXRlKHN0eWxlKQotICAgIHsKLSAgICAgICAgaWYg
KHN0eWxlKQotICAgICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsKLSAgICAgICAgZWxzZSBp
ZiAodGhpcy5faWdub3JlTmV4dFVwZGF0ZSkgewotICAgICAgICAgICAgdGhpcy5faWdub3JlTmV4
dFVwZGF0ZSA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKCF0aGlzLl9zdHlsZSB8fCAhdGhpcy5fdmFsdWVSZWdFeHApCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgbGV0IHByb3BlcnR5ID0gdGhpcy5fc3R5bGUucHJvcGVydHlGb3JO
YW1lKHRoaXMuX3Byb3BlcnR5TmFtZSwgdHJ1ZSk7Ci0gICAgICAgIGxldCBwcm9wZXJ0eU1pc3Np
bmcgPSAhcHJvcGVydHk7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU1pc3NpbmcgJiYgdGhpcy5fc3R5
bGUubm9kZVN0eWxlcykKLSAgICAgICAgICAgIHByb3BlcnR5ID0gdGhpcy5fc3R5bGUubm9kZVN0
eWxlcy5jb21wdXRlZFN0eWxlLnByb3BlcnR5Rm9yTmFtZSh0aGlzLl9wcm9wZXJ0eU5hbWUpOwot
Ci0gICAgICAgIGlmICghcHJvcGVydHkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
dGhpcy51cGRhdGVWYWx1ZXNGcm9tVGV4dChwcm9wZXJ0eS52YWx1ZSwgcHJvcGVydHlNaXNzaW5n
KTsKLSAgICAgICAgdGhpcy5fcHJvcGVydHlNaXNzaW5nID0gcHJvcGVydHlNaXNzaW5nOwotICAg
IH0KLQotICAgIHVwZGF0ZVZhbHVlc0Zyb21UZXh0KHN0eWxlVGV4dCwgcHJvcGVydHlNaXNzaW5n
KQotICAgIHsKLSAgICAgICAgaWYgKHN0eWxlVGV4dCA9PT0gdGhpcy5zeW50aGVzaXplZFZhbHVl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlz
Ll9wcm9wZXJ0eUVkaXRvcnMpCi0gICAgICAgICAgICBlZGl0b3JbV0kuVmlzdWFsU3R5bGVQcm9w
ZXJ0eUNvbWJpbmVyLkVkaXRvclVwZGF0ZWRTeW1ib2xdID0gZmFsc2U7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gdXBkYXRlRWRpdG9yKGVkaXRvciwgdmFsdWUpIHsKLSAgICAgICAgICAgIGxldCB1cGRh
dGVkVmFsdWVzID0gZWRpdG9yLmdldFZhbHVlc0Zyb21UZXh0KHZhbHVlIHx8ICIiLCBwcm9wZXJ0
eU1pc3NpbmcpOwotICAgICAgICAgICAgaWYgKCF1cGRhdGVkVmFsdWVzKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgZWRpdG9yLnVwZGF0ZUVkaXRvclZhbHVlcyh1cGRh
dGVkVmFsdWVzKTsKLSAgICAgICAgICAgIGVkaXRvcltXSS5WaXN1YWxTdHlsZVByb3BlcnR5Q29t
YmluZXIuRWRpdG9yVXBkYXRlZFN5bWJvbF0gPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKHRoaXMuX3NwcmVhZE51bWJlclZhbHVlcykgewotICAgICAgICAgICAgbGV0IG51bWJlclZh
bHVlcyA9IHN0eWxlVGV4dC5tYXRjaCgvXGQrW1x3JV0qL2cpOwotICAgICAgICAgICAgbGV0IGNv
dW50ID0gbnVtYmVyVmFsdWVzICYmIG51bWJlclZhbHVlcy5sZW5ndGg7Ci0gICAgICAgICAgICBp
ZiAoY291bnQgPT09IDEpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2YgdGhp
cy5fcHJvcGVydHlFZGl0b3JzKQotICAgICAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IoZWRp
dG9yLCBudW1iZXJWYWx1ZXNbMF0pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PT0g
MikgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhpcy5fcHJvcGVydHlFZGl0b3JzW2ld
LCBudW1iZXJWYWx1ZXNbaV0pOwotICAgICAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhp
cy5fcHJvcGVydHlFZGl0b3JzW2kgKyAyXSwgbnVtYmVyVmFsdWVzW2ldKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09PSAzKSB7Ci0gICAgICAgICAg
ICAgICAgdXBkYXRlRWRpdG9yKHRoaXMuX3Byb3BlcnR5RWRpdG9yc1swXSwgbnVtYmVyVmFsdWVz
WzBdKTsKLSAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhpcy5fcHJvcGVydHlFZGl0b3Jz
WzFdLCBudW1iZXJWYWx1ZXNbMV0pOwotICAgICAgICAgICAgICAgIHVwZGF0ZUVkaXRvcih0aGlz
Ll9wcm9wZXJ0eUVkaXRvcnNbMl0sIG51bWJlclZhbHVlc1syXSk7Ci0gICAgICAgICAgICAgICAg
dXBkYXRlRWRpdG9yKHRoaXMuX3Byb3BlcnR5RWRpdG9yc1szXSwgbnVtYmVyVmFsdWVzWzFdKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbXBh
dGlibGVFZGl0b3IodmFsdWUpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlz
Ll9wcm9wZXJ0eUVkaXRvcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgIWVkaXRv
ci52YWx1ZUlzQ29tcGF0aWJsZSh2YWx1ZSkgfHwgZWRpdG9yW1dJLlZpc3VhbFN0eWxlUHJvcGVy
dHlDb21iaW5lci5FZGl0b3JVcGRhdGVkU3ltYm9sXSkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0KLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudFZhbHVlSXNLZXl3b3Jk
ICYmIGVkaXRvci5kaXNhYmxlZCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAg
ICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IoZWRpdG9yLCB2YWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbWF0Y2hlcyA9IHN0eWxlVGV4dC5tYXRjaCh0aGlz
Ll92YWx1ZVJlZ0V4cCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcHJvcGVy
dHlFZGl0b3JzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdXBkYXRlQ29tcGF0aWJsZUVkaXRv
ci5jYWxsKHRoaXMsIG1hdGNoZXMgJiYgbWF0Y2hlc1tpXSk7Ci0gICAgfQotCi0gICAgZ2V0IHBy
b3BlcnR5TWlzc2luZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHlNaXNz
aW5nOwotICAgIH0KLQotICAgIHJlc2V0RWRpdG9yVmFsdWVzKHZhbHVlKQotICAgIHsKLSAgICAg
ICAgdGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9IGZhbHNlOwotICAgICAgICB0aGlzLnVwZGF0ZVZh
bHVlc0Zyb21UZXh0KHZhbHVlIHx8ICIiKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfbWFya0VkaXRvcnMoaWdub3JlZEVkaXRvciwgZGlzYWJsZWQpCi0gICAgewotICAgICAgICB0
aGlzLl9jdXJyZW50VmFsdWVJc0tleXdvcmQgPSBkaXNhYmxlZCB8fCBmYWxzZTsKLSAgICAgICAg
Zm9yIChsZXQgZWRpdG9yIG9mIHRoaXMuX3Byb3BlcnR5RWRpdG9ycykgewotICAgICAgICAgICAg
aWYgKGlnbm9yZWRFZGl0b3IgJiYgZWRpdG9yID09PSBpZ25vcmVkRWRpdG9yKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBlZGl0b3IuZGlzYWJsZWQgPSB0aGlzLl9j
dXJyZW50VmFsdWVJc0tleXdvcmQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfaGFuZGxlUHJv
cGVydHlFZGl0b3JWYWx1ZUNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5faWdub3JlTmV4
dFVwZGF0ZSA9IHRydWU7Ci0gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuc3ludGhlc2l6ZWRWYWx1
ZTsKLSAgICAgICAgaWYgKHRoaXMuX3N0eWxlKQotICAgICAgICAgICAgdGhpcy5fc3R5bGUudGV4
dCA9IHRoaXMubW9kaWZ5UHJvcGVydHlUZXh0KHRoaXMuX3N0eWxlLnRleHQsIHZhbHVlKTsKLQot
ICAgICAgICB0aGlzLl9wcm9wZXJ0eU1pc3NpbmcgPSAhdmFsdWU7Ci0gICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuRXZlbnQu
VmFsdWVEaWRDaGFuZ2UpOwotICAgIH0KLX07Ci0KLVdJLlZpc3VhbFN0eWxlUHJvcGVydHlDb21i
aW5lci5FZGl0b3JVcGRhdGVkU3ltYm9sID0gU3ltYm9sKCJ2aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29tYmluZXItZWRpdG9yLXVwZGF0ZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9w
ZXJ0eUVkaXRvci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmNjhkMjdmN2Ey
ZTY2NDlhNzRlMjk2ZDJiNjI3NzBlZGFhMmU0MDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
IHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIG1pbi1oZWlnaHQ6IDIycHg7Ci0gICAgbWFyZ2lu
OiAwIDZweDsKLQotICAgIGZsZXgtYmFzaXM6IDE2MHB4OwotICAgIGZsZXgtZ3JvdzogMTsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5hY3RpdmUgewotICAgIGRpc3Bs
YXk6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS10aXRsZSB7Ci0gICAgbWFyZ2luOiA0cHg7Ci0gICAgdGV4dC1hbGln
bjogcmlnaHQ7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICB0ZXh0LW92ZXJmbG93OiBlbGxp
cHNpczsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIubGF5b3V0LXJldmVy
c2VkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS10aXRsZSB7Ci0gICAgb3JkZXI6IDI7Ci0gICAg
dGV4dC1hbGlnbjogbGVmdDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXRpdGxlID4gLnByb3BlcnR5LXJlZmVyZW5jZS1pbmZv
IHsKLSAgICBjdXJzb3I6IGhlbHA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmRpc2FibGVkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS10aXRsZSA+IDpub3QoLnByb3Bl
cnR5LXJlZmVyZW5jZS1pbmZvKSB7Ci0gICAgb3BhY2l0eTogMC43OwotfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLXdh
cm5pbmcgewotICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAg
IG9yZGVyOiAxOwotICAgIHRvcDogNXB4OwotICAgIHdpZHRoOiAxMHB4OwotICAgIGhlaWdodDog
MTBweDsKLSAgICBtYXJnaW4tcmlnaHQ6IDRweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIubGF5b3V0LXJldmVyc2VkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0
b3Itd2FybmluZyB7Ci0gICAgbWFyZ2luLXJpZ2h0OiAwOwotICAgIG1hcmdpbi1sZWZ0OiA0cHg7
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm1pc3NpbmctZGVwZW5kZW5j
eSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLXdhcm5pbmcgewotICAgIGRpc3BsYXk6
IGJsb2NrOwotICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvV2FybmluZy5zdmcpOwotfQotCi0u
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnZhbGlkLXZhbHVlID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1lZGl0b3Itd2FybmluZyB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOwotfQotCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVy
IHsKLSAgICBmbGV4OiAxOwotICAgIG9yZGVyOiAyOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
LX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIubGF5b3V0LXJldmVyc2VkID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgewotICAgIG9yZGVyOiAwOwot
fQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5kaXNhYmxlZCA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyIHsKLSAgICBwb2ludGVyLWV2ZW50czogbm9u
ZTsKLSAgICBvcGFjaXR5OiAwLjQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyOm1hdGNoZXMoLm1pc3NpbmctZGVwZW5kZW5jeSwgLmludmFsaWQtdmFsdWUpID4gKjpmaXJz
dC1jaGlsZDptYXRjaGVzKC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyKSB7
Ci0gICAgbWFyZ2luLWxlZnQ6IDJweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciBzZWxlY3Qgewot
ICAgIHdpZHRoOiAxMDAlOwotICAgIG1hcmdpbjogMXB4IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgaW5wdXQgewotICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpOwotICAgIG1hcmdpbjogMDsK
LSAgICBvdXRsaW5lOiBub25lOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5kaXNhYmxlZCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyIGlucHV0
IHsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OwotfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyID4gLnZpc3VhbC1zdHlsZS1zcGVjaWFsLXByb3BlcnR5LXBsYWNlaG9sZGVyIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAycHg7Ci0gICAgbGVmdDogMXB4OwotICAg
IHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKLSAgICBsaW5lLWhlaWdodDogMTZweDsKLSAgICB0
ZXh0LWluZGVudDogN3B4OwotICAgIGJvcmRlci1yYWRpdXM6IDRweDsKLSAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB3aGl0ZTsKLSAgICBjb2xvcjogaHNsKDAsIDAlLCA1MCUpOwotICAgIGZvbnQtc2l6
ZTogMTFweDsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLSAgICBvdmVyZmxvdzogaGlkZGVu
OwotICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgei1pbmRleDogMTsKLX0KLQotLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpID4gLnZpc3VhbC1zdHlsZS1zcGVjaWFs
LXByb3BlcnR5LXBsYWNlaG9sZGVyIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi0udmlzdWFs
LXN0eWxlLXByb3BlcnR5LWluZm8tcG9wb3ZlciB7Ci0gICAgd2lkdGg6IDE5MHB4OwotICAgIG1h
cmdpbjogMCA1cHggM3B4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJv
cGVydHktaW5mby1wb3BvdmVyID4gaDMgewotICAgIG1hcmdpbjogNnB4IDNweDsKLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlUHJvcGVydHlFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhZjlhODM1ZTk3MzVmZTQ5MWJlMjhlZWZkMWRkZDZmNjFhMWRmMzUwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw2MTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0
eWxlUHJvcGVydHlFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yIGV4dGVu
ZHMgV0kuT2JqZWN0Ci17Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgbGFiZWwsIHBv
c3NpYmxlVmFsdWVzLCBwb3NzaWJsZVVuaXRzLCBjbGFzc05hbWUsIGxheW91dFJldmVyc2VkKQot
ICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9wcm9wZXJ0eUluZm9MaXN0
ID0gW107Ci0gICAgICAgIHRoaXMuX3N0eWxlID0gbnVsbDsKLQotICAgICAgICBmdW5jdGlvbiBj
YW5vbmljYWxpemVWYWx1ZXModmFsdWVzKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXZh
bHVlcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGxldCBjYW5vbmlj
YWxpemVkVmFsdWVzID0ge307Ci0gICAgICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMp
Ci0gICAgICAgICAgICAgICAgY2Fub25pY2FsaXplZFZhbHVlc1t2YWx1ZS50b0xvd2VyQ2FzZSgp
LnJlcGxhY2UoL1xzL2csICItIildID0gdmFsdWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBjYW5v
bmljYWxpemVkVmFsdWVzOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1
ZXMgPSBudWxsOwotICAgICAgICBpZiAocG9zc2libGVWYWx1ZXMpIHsKLSAgICAgICAgICAgIHRo
aXMuX3Bvc3NpYmxlVmFsdWVzID0ge307Ci0gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShw
b3NzaWJsZVZhbHVlcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFz
aWMgPSBjYW5vbmljYWxpemVWYWx1ZXMocG9zc2libGVWYWx1ZXMpOwotICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMgPSBjYW5vbmlj
YWxpemVWYWx1ZXMocG9zc2libGVWYWx1ZXMuYmFzaWMpOwotICAgICAgICAgICAgICAgIHRoaXMu
X3Bvc3NpYmxlVmFsdWVzLmFkdmFuY2VkID0gY2Fub25pY2FsaXplVmFsdWVzKHBvc3NpYmxlVmFs
dWVzLmFkdmFuY2VkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0aGlzLl9w
b3NzaWJsZVVuaXRzID0gbnVsbDsKLSAgICAgICAgaWYgKHBvc3NpYmxlVW5pdHMpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3Bvc3NpYmxlVW5pdHMgPSB7fTsKLSAgICAgICAgICAgIGlmIChBcnJheS5p
c0FycmF5KHBvc3NpYmxlVW5pdHMpKQotICAgICAgICAgICAgICAgIHRoaXMuX3Bvc3NpYmxlVW5p
dHMuYmFzaWMgPSBwb3NzaWJsZVVuaXRzOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHRoaXMuX3Bvc3NpYmxlVW5pdHMgPSBwb3NzaWJsZVVuaXRzOwotICAgICAgICB9Ci0gICAg
ICAgIHRoaXMuX2RlcGVuZGVuY2llcyA9IG5ldyBNYXA7Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIiLCBjbGFzc05h
bWUpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImxheW91dC1yZXZl
cnNlZCIsICEhbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIGlmIChsYWJlbCAmJiBsYWJlbC5s
ZW5ndGgpIHsKLSAgICAgICAgICAgIGxldCB0aXRsZUNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJ2aXN1YWwtc3R5bGUtcHJvcGVydHktdGl0bGUiKTsKLQotICAg
ICAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50ID0gdGl0bGVDb250YWluZXIuY3JlYXRlQ2hpbGQo
InNwYW4iKTsKLSAgICAgICAgICAgIHRoaXMuX3RpdGxlRWxlbWVudC5hcHBlbmQobGFiZWwpOwot
ICAgICAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LnRpdGxlID0gbGFiZWw7Ci0gICAgICAgICAg
ICB0aGlzLl90aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5f
dGl0bGVFbGVtZW50TW91c2VPdmVyLmJpbmQodGhpcykpOwotICAgICAgICAgICAgdGhpcy5fdGl0
bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5fdGl0bGVFbGVtZW50
TW91c2VPdXQuYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICB0aGlzLl90aXRsZUVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90aXRsZUVsZW1lbnRDbGljay5iaW5kKHRoaXMp
KTsKLQotICAgICAgICAgICAgdGhpcy5fYm91bmRUaXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2sg
PSB0aGlzLl90aXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2suYmluZCh0aGlzKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVD
aGlsZCgiZGl2IiwgInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIiKTsKLQot
ICAgICAgICB0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9j
b250ZW50RWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJ2aXN1YWwtc3R5bGUtc3BlY2lhbC1w
cm9wZXJ0eS1wbGFjZWhvbGRlciIpOwotICAgICAgICB0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFj
ZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl93YXJuaW5nRWxl
bWVudCA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJ2aXN1YWwtc3R5bGUtcHJv
cGVydHktZWRpdG9yLXdhcm5pbmciKTsKLQotICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzID0g
e307Ci0gICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9IG51bGw7Ci0gICAgICAgIHRoaXMuX3Byb3Bl
cnR5TWlzc2luZyA9IGZhbHNlOwotCi0gICAgICAgIGlmICh0eXBlb2YgcHJvcGVydHlOYW1lcyA9
PT0gInN0cmluZyIpCi0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzID0gW3Byb3BlcnR5TmFtZXNd
OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX2hhc011bHRpcGxlUHJvcGVydGll
cyA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm11bHRp
cGxlIik7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHByb3BlcnR5TmFt
ZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChuYW1lKTsKLSAg
ICAgICAgICAgIHRoaXMuX3Byb3BlcnR5SW5mb0xpc3QucHVzaCh7Ci0gICAgICAgICAgICAgICAg
bmFtZSwKLSAgICAgICAgICAgICAgICB0ZXh0Q29udGFpbnNOYW1lUmVnRXhwOiBuZXcgUmVnRXhw
KCIoPzooPzpefDspXFxzKiIgKyBuYW1lICsgIlxccyo6KSIpLAotICAgICAgICAgICAgICAgIHJl
cGxhY2VtZW50UmVnRXhwOiBuZXcgUmVnRXhwKCIoKD86Xnw7KVxccyopKCIgKyBuYW1lICsgIiko
Lis/KD86O3wkKSkiKQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlz
Ll9wcm9wZXJ0eVJlZmVyZW5jZU5hbWUgPSBwcm9wZXJ0eU5hbWVzWzBdOwotICAgICAgICB0aGlz
Ll9wcm9wZXJ0eVJlZmVyZW5jZVRleHQgPSBXSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm9w
ZXJ0eVJlZmVyZW5jZUluZm9bdGhpcy5fcHJvcGVydHlSZWZlcmVuY2VOYW1lXTsKLSAgICAgICAg
dGhpcy5faGFzUHJvcGVydHlSZWZlcmVuY2UgPSB0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZVRleHQg
JiYgISF0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZVRleHQudHJpbSgpLmxlbmd0aDsKLSAgICAgICAg
dGhpcy5fcmVwcmVzZW50ZWRQcm9wZXJ0eSA9IG51bGw7Ci0gICAgfQotCi0gICAgLy8gU3RhdGlj
Ci0KLSAgICBzdGF0aWMgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Rm9yTmV3UHJvcGVydHkoc3R5bGVU
ZXh0LCBwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgaWYgKCFwcm9wZXJ0
eU5hbWUgfHwgIXByb3BlcnR5VmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSAgICAg
ICAgc3R5bGVUZXh0ID0gc3R5bGVUZXh0IHx8ICIiOwotCi0gICAgICAgIGxldCBsaW5lUHJlZml4
VGV4dCA9IFdJLmluZGVudFN0cmluZygpOwotICAgICAgICBsZXQgbGluZVN1ZmZpeFdoaXRlc3Bh
Y2UgPSAiXG4iOwotICAgICAgICBsZXQgdHJpbW1lZFRleHQgPSBzdHlsZVRleHQudHJpbVJpZ2h0
KCk7Ci0gICAgICAgIGxldCB0ZXh0SGFzTmV3bGluZXMgPSB0cmltbWVkVGV4dC5pbmNsdWRlcygi
XG4iKTsKLQotICAgICAgICBpZiAodHJpbW1lZFRleHQudHJpbUxlZnQoKS5sZW5ndGgpIHsKLSAg
ICAgICAgICAgIGxldCBzdHlsZVRleHRQcmVmaXhXaGl0ZXNwYWNlID0gdHJpbW1lZFRleHQubWF0
Y2goL15ccyovKTsKLSAgICAgICAgICAgIGlmIChzdHlsZVRleHRQcmVmaXhXaGl0ZXNwYWNlKSB7
Ci0gICAgICAgICAgICAgICAgbGV0IGxpbmVQcmVmaXhXaGl0ZXNwYWNlTWF0Y2ggPSBzdHlsZVRl
eHRQcmVmaXhXaGl0ZXNwYWNlWzBdLm1hdGNoKC9bXlxTXG5dKyQvKTsKLSAgICAgICAgICAgICAg
ICBpZiAobGluZVByZWZpeFdoaXRlc3BhY2VNYXRjaCAmJiB0ZXh0SGFzTmV3bGluZXMpCi0gICAg
ICAgICAgICAgICAgICAgIGxpbmVQcmVmaXhUZXh0ID0gbGluZVByZWZpeFdoaXRlc3BhY2VNYXRj
aFswXTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbGluZVBy
ZWZpeFRleHQgPSAiIjsKLSAgICAgICAgICAgICAgICAgICAgbGluZVN1ZmZpeFdoaXRlc3BhY2Ug
PSBzdHlsZVRleHRQcmVmaXhXaGl0ZXNwYWNlWzBdOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCF0cmltbWVkVGV4dC5lbmRzV2l0aCgiOyIpKQot
ICAgICAgICAgICAgICAgIGxpbmVQcmVmaXhUZXh0ID0gIjsiICsgbGluZVByZWZpeFRleHQ7Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbGluZVByZWZpeFRleHQgPSAiXG4iICsgbGluZVBy
ZWZpeFRleHQ7Ci0KLSAgICAgICAgcmV0dXJuIGxpbmVQcmVmaXhUZXh0ICsgcHJvcGVydHlOYW1l
ICsgIjogIiArIHByb3BlcnR5VmFsdWUgKyAiOyIgKyBsaW5lU3VmZml4V2hpdGVzcGFjZTsKLSAg
ICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGdldCBlbGVtZW50KCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9lbGVtZW50OwotICAgIH0KLQotICAgIGdldCBzdHlsZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGU7Ci0gICAgfQotCi0gICAgZ2V0IHZhbHVlKCkKLSAg
ICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIHNl
dCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNz
LgotICAgIH0KLQotICAgIGdldCB1bml0cygpCi0gICAgewotICAgICAgICAvLyBJbXBsZW1lbnRl
ZCBieSBzdWJjbGFzcy4KLSAgICB9Ci0KLSAgICBzZXQgdW5pdHModW5pdCkKLSAgICB7Ci0gICAg
ICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIGdldCBwbGFjZWhv
bGRlcigpCi0gICAgewotICAgICAgICAvLyBJbXBsZW1lbnRlZCBieSBzdWJjbGFzcy4KLSAgICB9
Ci0KLSAgICBzZXQgcGxhY2Vob2xkZXIodGV4dCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVu
dGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAg
ICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIHNl
dCBzdXBwcmVzc1N0eWxlVGV4dFVwZGF0ZShmbGFnKQotICAgIHsKLSAgICAgICAgdGhpcy5fc3Vw
cHJlc3NTdHlsZVRleHRVcGRhdGUgPSBmbGFnOwotICAgIH0KLQotICAgIHNldCBtYXN0ZXJQcm9w
ZXJ0eShmbGFnKQotICAgIHsKLSAgICAgICAgdGhpcy5fbWFzdGVyUHJvcGVydHkgPSBmbGFnOwot
ICAgIH0KLQotICAgIGdldCBtYXN0ZXJQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fbWFzdGVyUHJvcGVydHk7Ci0gICAgfQotCi0gICAgc2V0IG9wdGlvbmFsUHJvcGVydHko
ZmxhZykKLSAgICB7Ci0gICAgICAgIHRoaXMuX29wdGlvbmFsUHJvcGVydHkgPSBmbGFnOwotICAg
IH0KLQotICAgIGdldCBvcHRpb25hbFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9vcHRpb25hbFByb3BlcnR5OwotICAgIH0KLQotICAgIHNldCBjb2xvclByb3BlcnR5KGZs
YWcpCi0gICAgewotICAgICAgICB0aGlzLl9jb2xvclByb3BlcnR5ID0gZmxhZzsKLSAgICB9Ci0K
LSAgICBnZXQgY29sb3JQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29s
b3JQcm9wZXJ0eTsKLSAgICB9Ci0KLSAgICBnZXQgcHJvcGVydHlSZWZlcmVuY2VOYW1lKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZU5hbWU7Ci0gICAgfQot
Ci0gICAgc2V0IHByb3BlcnR5UmVmZXJlbmNlTmFtZShuYW1lKQotICAgIHsKLSAgICAgICAgaWYg
KCFuYW1lIHx8ICFuYW1lLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0
aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZU5hbWUgPSBuYW1lOwotICAgIH0KLQotICAgIHNldCBkaXNh
YmxlZChmbGFnKQotICAgIHsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmbGFnOwotICAgICAg
ICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIiwgdGhpcy5fZGlzYWJs
ZWQpOwotICAgICAgICB0aGlzLl90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxlRWxlbWVudHModGhp
cy5fZGlzYWJsZWQpOwotICAgIH0KLQotICAgIGdldCBkaXNhYmxlZCgpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7Ci0gICAgfQotCi0gICAgdXBkYXRlKHN0eWxlKQotICAg
IHsKLSAgICAgICAgaWYgKHN0eWxlKQotICAgICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsK
LSAgICAgICAgZWxzZSBpZiAodGhpcy5faWdub3JlTmV4dFVwZGF0ZSkgewotICAgICAgICAgICAg
dGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9zdHlsZSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzID0ge307Ci0gICAgICAgIGxldCBwcm9wZXJ0
eVZhbHVlc0NvbmZsaWN0ID0gZmFsc2U7Ci0gICAgICAgIGxldCBwcm9wZXJ0eU1pc3NpbmcgPSBm
YWxzZTsKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHlJbmZvIG9mIHRoaXMuX3Byb3BlcnR5SW5m
b0xpc3QpIHsKLSAgICAgICAgICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX3N0eWxlLnByb3BlcnR5
Rm9yTmFtZShwcm9wZXJ0eUluZm8ubmFtZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBwcm9wZXJ0eU1p
c3NpbmcgPSAhcHJvcGVydHk7Ci0gICAgICAgICAgICBpZiAocHJvcGVydHlNaXNzaW5nICYmIHRo
aXMuX3N0eWxlLm5vZGVTdHlsZXMpCi0gICAgICAgICAgICAgICAgcHJvcGVydHkgPSB0aGlzLl9z
dHlsZS5ub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JOYW1lKHByb3BlcnR5SW5m
by5uYW1lKTsKLQotICAgICAgICAgICAgbGV0IGxvbmdoYW5kUHJvcGVydHlWYWx1ZSA9IG51bGw7
Ci0gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2dlbmVyYXRlVGV4dEZyb21Mb25naGFuZFBy
b3BlcnRpZXMgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgbG9uZ2hhbmRQcm9wZXJ0
eVZhbHVlID0gdGhpcy5fZ2VuZXJhdGVUZXh0RnJvbUxvbmdoYW5kUHJvcGVydGllcygpOwotCi0g
ICAgICAgICAgICBpZiAobG9uZ2hhbmRQcm9wZXJ0eVZhbHVlKQotICAgICAgICAgICAgICAgIHBy
b3BlcnR5TWlzc2luZyA9IGZhbHNlOwotCi0gICAgICAgICAgICBsZXQgcHJvcGVydHlUZXh0ID0g
KHByb3BlcnR5ICYmIHByb3BlcnR5LnZhbHVlKSB8fCBsb25naGFuZFByb3BlcnR5VmFsdWU7Ci0g
ICAgICAgICAgICBpZiAoIXByb3BlcnR5VGV4dCB8fCAhcHJvcGVydHlUZXh0Lmxlbmd0aCkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU1pc3Np
bmcgJiYgcHJvcGVydHkgJiYgcHJvcGVydHkuYW5vbnltb3VzKQotICAgICAgICAgICAgICAgIHRo
aXMuX3JlcHJlc2VudGVkUHJvcGVydHkgPSBwcm9wZXJ0eTsKLQotICAgICAgICAgICAgaWYgKCFw
cm9wZXJ0eU1pc3NpbmcgJiYgcHJvcGVydHkgJiYgIXByb3BlcnR5LnZhbGlkKSB7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpbnZhbGlkLXZhbHVlIik7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fd2FybmluZ0VsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygi
VGhlIHZhbHVlIOKAnCVz4oCdIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuIiku
Zm9ybWF0KHByb3BlcnR5VGV4dCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVy
dHlQbGFjZWhvbGRlckVsZW1lbnRUZXh0ID0gcHJvcGVydHlUZXh0OwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IG5ld1ZhbHVlcyA9IHRo
aXMuZ2V0VmFsdWVzRnJvbVRleHQocHJvcGVydHlUZXh0LCBwcm9wZXJ0eU1pc3NpbmcpOwotICAg
ICAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXIgJiYgdGhpcy5fdXBk
YXRlZFZhbHVlcy5wbGFjZWhvbGRlciAhPT0gbmV3VmFsdWVzLnBsYWNlaG9sZGVyKQotICAgICAg
ICAgICAgICAgIHByb3BlcnR5VmFsdWVzQ29uZmxpY3QgPSB0cnVlOwotCi0gICAgICAgICAgICBp
ZiAoIXRoaXMuX3VwZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXIpCi0gICAgICAgICAgICAgICAgdGhp
cy5fdXBkYXRlZFZhbHVlcyA9IG5ld1ZhbHVlczsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5
VmFsdWVzQ29uZmxpY3QpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzLmNv
bmZsaWN0aW5nVmFsdWVzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9w
ZXJ0eVBsYWNlaG9sZGVyRWxlbWVudFRleHQgPSBXSS5VSVN0cmluZygiKG11bHRpcGxlKSIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKHRoaXMuX2hhc011bHRpcGxlUHJvcGVydGllcykKLSAgICAgICAgICAgIHRoaXMuX3Nw
ZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAhcHJvcGVydHlWYWx1ZXND
b25mbGljdDsKLQotICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvclZhbHVlcyh0aGlzLl91cGRhdGVk
VmFsdWVzKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcykK
LSAgICB7Ci0gICAgICAgIHRoaXMudmFsdWUgPSB1cGRhdGVkVmFsdWVzLnZhbHVlOwotICAgICAg
ICB0aGlzLnVuaXRzID0gdXBkYXRlZFZhbHVlcy51bml0czsKLSAgICAgICAgdGhpcy5wbGFjZWhv
bGRlciA9IHVwZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXI7Ci0KLSAgICAgICAgdGhpcy5fbGFzdFZh
bHVlID0gdGhpcy5zeW50aGVzaXplZFZhbHVlOwotICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFs
c2U7Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkLXZh
bHVlIik7Ci0gICAgICAgIHRoaXMuX2NoZWNrRGVwZW5kZW5jaWVzKCk7Ci0gICAgfQotCi0gICAg
cmVzZXRFZGl0b3JWYWx1ZXModmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl9pZ25vcmVOZXh0
VXBkYXRlID0gZmFsc2U7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmxlbmd0aCkgewot
ICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7Ci0gICAgICAgICAgICB0aGlzLl9zcGVjaWFs
UHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgdXBkYXRlZFZhbHVlcyA9IHRoaXMuZ2V0
VmFsdWVzRnJvbVRleHQodmFsdWUpOwotICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvclZhbHVlcyh1
cGRhdGVkVmFsdWVzKTsKLSAgICB9Ci0KLSAgICBtb2RpZnlQcm9wZXJ0eVRleHQodGV4dCwgdmFs
dWUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiB0aGlzLl9wcm9wZXJ0eUlu
Zm9MaXN0KSB7Ci0gICAgICAgICAgICBpZiAocHJvcGVydHkudGV4dENvbnRhaW5zTmFtZVJlZ0V4
cC50ZXN0KHRleHQpKQotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UocHJvcGVy
dHkucmVwbGFjZW1lbnRSZWdFeHAsIHZhbHVlICE9PSBudWxsID8gIiQxJDI6ICIgKyB2YWx1ZSAr
ICI7IiA6ICIkMSIpOwotICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpCi0gICAg
ICAgICAgICAgICAgdGV4dCArPSBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmdlbmVyYXRl
Rm9ybWF0dGVkVGV4dEZvck5ld1Byb3BlcnR5KHRleHQsIHByb3BlcnR5Lm5hbWUsIHZhbHVlKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGV4dDsKLSAgICB9Ci0KLSAgICBnZXRWYWx1ZXNG
cm9tVGV4dCh0ZXh0LCBwcm9wZXJ0eU1pc3NpbmcpCi0gICAgewotICAgICAgICBsZXQgbWF0Y2gg
PSB0aGlzLnBhcnNlVmFsdWUodGV4dCk7Ci0gICAgICAgIGxldCBwbGFjZWhvbGRlciA9IG1hdGNo
ID8gbWF0Y2hbMV0gOiB0ZXh0OwotICAgICAgICBsZXQgdW5pdHMgPSBtYXRjaCA/IG1hdGNoWzJd
IDogbnVsbDsKLSAgICAgICAgbGV0IHZhbHVlID0gcGxhY2Vob2xkZXI7Ci0gICAgICAgIGlmIChw
cm9wZXJ0eU1pc3NpbmcpCi0gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudmFsdWVJc1N1cHBvcnRl
ZEtleXdvcmQodGV4dCkgPyB0ZXh0IDogbnVsbDsKLQotICAgICAgICB0aGlzLl9wcm9wZXJ0eU1p
c3NpbmcgPSBwcm9wZXJ0eU1pc3NpbmcgfHwgZmFsc2U7Ci0gICAgICAgIHJldHVybiB7dmFsdWUs
IHVuaXRzLCBwbGFjZWhvbGRlcn07Ci0gICAgfQotCi0gICAgZ2V0IHByb3BlcnR5TWlzc2luZygp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlZFZhbHVlcyAmJiB0aGlzLl9wcm9w
ZXJ0eU1pc3Npbmc7Ci0gICAgfQotCi0gICAgdmFsdWVJc0NvbXBhdGlibGUodmFsdWUpCi0gICAg
ewotICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQo
dmFsdWUpIHx8ICEhdGhpcy5wYXJzZVZhbHVlKHZhbHVlKTsKLSAgICB9Ci0KLSAgICB2YWx1ZUlz
U3VwcG9ydGVkS2V5d29yZCh2YWx1ZSkgewotICAgICAgICBpZiAoIXRoaXMuX3Bvc3NpYmxlVmFs
dWVzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmIChPYmplY3Qua2V5
cyh0aGlzLl9wb3NzaWJsZVZhbHVlcy5iYXNpYykuaW5jbHVkZXModmFsdWUpKQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRB
ZHZhbmNlZEtleXdvcmQodmFsdWUpOwotICAgIH0KLQotICAgIHZhbHVlSXNTdXBwb3J0ZWRVbml0
KHVuaXQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX3Bvc3NpYmxlVW5pdHMpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVW5pdHMuYmFz
aWMuaW5jbHVkZXModW5pdCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBy
ZXR1cm4gdGhpcy5fdmFsdWVJc1N1cHBvcnRlZEFkdmFuY2VkVW5pdCh1bml0KTsKLSAgICB9Ci0K
LSAgICBhZGREZXBlbmRlbmN5KHByb3BlcnR5TmFtZXMsIHByb3BlcnR5VmFsdWVzKQotICAgIHsK
LSAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWVzIHx8ICFwcm9wZXJ0eU5hbWVzLmxlbmd0aCB8fCAh
cHJvcGVydHlWYWx1ZXMgfHwgIXByb3BlcnR5VmFsdWVzLmxlbmd0aCkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcGVydHlOYW1lcykpCi0gICAg
ICAgICAgICBwcm9wZXJ0eU5hbWVzID0gW3Byb3BlcnR5TmFtZXNdOwotCi0gICAgICAgIGZvciAo
bGV0IHByb3BlcnR5IG9mIHByb3BlcnR5TmFtZXMpCi0gICAgICAgICAgICB0aGlzLl9kZXBlbmRl
bmNpZXMuc2V0KHByb3BlcnR5LCBwcm9wZXJ0eVZhbHVlcyk7Ci0gICAgfQotCi0gICAgLy8gUHJv
dGVjdGVkCi0KLSAgICBnZXQgY29udGVudEVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2NvbnRlbnRFbGVtZW50OwotICAgIH0KLQotICAgIGdldCBzcGVjaWFsUHJvcGVydHlQ
bGFjZWhvbGRlckVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxQ
cm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudDsKLSAgICB9Ci0KLSAgICBzZXQgc3BlY2lhbFByb3Bl
cnR5UGxhY2Vob2xkZXJFbGVtZW50VGV4dCh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0ZXh0
IHx8ICF0ZXh0Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9z
cGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAg
IHRoaXMuX3NwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC50ZXh0Q29udGVudCA9IHRl
eHQ7Ci0gICAgfQotCi0gICAgcGFyc2VWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IC9eKFteO10rKVxzKjs/JC8uZXhlYyh0ZXh0KTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0K
LSAgICBfdmFsdWVJc1N1cHBvcnRlZEFkdmFuY2VkS2V5d29yZCh2YWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCAmJiBPYmplY3Qua2V5cyh0
aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCkuaW5jbHVkZXModmFsdWUpOwotICAgIH0KLQot
ICAgIF92YWx1ZUlzU3VwcG9ydGVkQWR2YW5jZWRVbml0KHVuaXQpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fcG9zc2libGVVbml0cy5hZHZhbmNlZCAmJiB0aGlzLl9wb3NzaWJsZVVuaXRz
LmFkdmFuY2VkLmluY2x1ZGVzKHVuaXQpOwotICAgIH0KLQotICAgIF9jYW5vbmljYWxpemVkS2V5
d29yZEZvcktleSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXRoaXMuX3Bv
c3NpYmxlVmFsdWVzKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJu
IHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljW3ZhbHVlXSB8fCAodGhpcy5fcG9zc2libGVWYWx1
ZXMuYWR2YW5jZWQgJiYgdGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWRbdmFsdWVdKSB8fCBu
dWxsOwotICAgIH0KLQotICAgIF9rZXlGb3JLZXl3b3JkKGtleXdvcmQpCi0gICAgewotICAgICAg
ICBpZiAoIWtleXdvcmQgfHwgIWtleXdvcmQubGVuZ3RoIHx8ICF0aGlzLl9wb3NzaWJsZVZhbHVl
cykKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGZvciAobGV0IGJhc2ljS2V5
IGluIHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5f
cG9zc2libGVWYWx1ZXMuYmFzaWNbYmFzaWNLZXldID09PSBrZXl3b3JkKQotICAgICAgICAgICAg
ICAgIHJldHVybiBiYXNpY0tleTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghdGhpcy5fcG9z
c2libGVWYWx1ZXMuYWR2YW5jZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAg
ICBmb3IgKGxldCBhZHZhbmNlZEtleSBpbiB0aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCkg
ewotICAgICAgICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmFkdmFuY2VkW2FkdmFuY2Vk
S2V5XSA9PT0ga2V5d29yZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gYWR2YW5jZWRLZXk7Ci0g
ICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBfdmFsdWVEaWRD
aGFuZ2UoKQotICAgIHsKLSAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5zeW50aGVzaXplZFZhbHVl
OwotICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2xhc3RWYWx1ZSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgICAgICBpZiAodGhpcy5fc3R5bGUgJiYgIXRoaXMuX3N1cHByZXNz
U3R5bGVUZXh0VXBkYXRlKSB7Ci0gICAgICAgICAgICBsZXQgbmV3VGV4dCA9IHRoaXMuX3N0eWxl
LnRleHQ7Ci0gICAgICAgICAgICBuZXdUZXh0ID0gdGhpcy5fcmVwbGFjZVNob3J0aGFuZFByb3Bl
cnR5V2l0aExvbmdoYW5kUHJvcGVydGllcyhuZXdUZXh0KTsKLSAgICAgICAgICAgIG5ld1RleHQg
PSB0aGlzLm1vZGlmeVByb3BlcnR5VGV4dChuZXdUZXh0LCB2YWx1ZSk7Ci0gICAgICAgICAgICB0
aGlzLl9zdHlsZS50ZXh0ID0gbmV3VGV4dDsKLSAgICAgICAgICAgIGlmICghbmV3VGV4dC5sZW5n
dGgpCi0gICAgICAgICAgICAgICAgdGhpcy5fc3R5bGUudXBkYXRlKG51bGwsIG51bGwsIHRoaXMu
X3N0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5f
bGFzdFZhbHVlID0gdmFsdWU7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TWlzc2luZyA9ICF2YWx1
ZTsKLSAgICAgICAgdGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9IHRydWU7Ci0gICAgICAgIHRoaXMu
X3NwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSB0cnVlOwotCi0gICAg
ICAgIHRoaXMuX2NoZWNrRGVwZW5kZW5jaWVzKCk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuY2xh
c3NMaXN0LnJlbW92ZSgiaW52YWxpZC12YWx1ZSIpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuRXZlbnQuVmFsdWVE
aWRDaGFuZ2UpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBfcmVwbGFjZVNo
b3J0aGFuZFByb3BlcnR5V2l0aExvbmdoYW5kUHJvcGVydGllcyh0ZXh0KQotICAgIHsKLSAgICAg
ICAgaWYgKCF0aGlzLl9yZXByZXNlbnRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuIHRl
eHQ7Ci0KLSAgICAgICAgbGV0IHNob3J0aGFuZCA9IHRoaXMuX3JlcHJlc2VudGVkUHJvcGVydHku
cmVsYXRlZFNob3J0aGFuZFByb3BlcnR5OwotICAgICAgICBpZiAoIXNob3J0aGFuZCkKLSAgICAg
ICAgICAgIHJldHVybiB0ZXh0OwotCi0gICAgICAgIGxldCBsb25naGFuZFRleHQgPSAiIjsKLSAg
ICAgICAgZm9yIChsZXQgbG9uZ2hhbmRQcm9wZXJ0eSBvZiBzaG9ydGhhbmQucmVsYXRlZExvbmdo
YW5kUHJvcGVydGllcykgewotICAgICAgICAgICAgaWYgKGxvbmdoYW5kUHJvcGVydHkuYW5vbnlt
b3VzKQotICAgICAgICAgICAgICAgIGxvbmdoYW5kVGV4dCArPSBsb25naGFuZFByb3BlcnR5LnN5
bnRoZXNpemVkVGV4dDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbG9uZ2hhbmRUZXh0ID8g
dGV4dC5yZXBsYWNlKHNob3J0aGFuZC50ZXh0LCBsb25naGFuZFRleHQpIDogdGV4dDsKLSAgICB9
Ci0KLSAgICBfaGFzTXVsdGlwbGVDb25mbGljdGluZ1ZhbHVlcygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVQcm9wZXJ0aWVzICYmICF0aGlzLl9zcGVjaWFsUHJvcGVy
dHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuOwotICAgIH0KLQotICAgIF9jaGVja0RlcGVuZGVu
Y2llcygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2RlcGVuZGVuY2llcy5zaXplIHx8ICF0
aGlzLl9zdHlsZSB8fCAhdGhpcy5zeW50aGVzaXplZFZhbHVlKSB7Ci0gICAgICAgICAgICB0aGlz
Ll9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm1pc3NpbmctZGVwZW5kZW5jeSIpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHRpdGxlID0gIiI7Ci0KLSAg
ICAgICAgbGV0IGRlcGVuZGVuY2llcyA9IHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMuY29tcHV0ZWRT
dHlsZS5wcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHsKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLl9kZXBlbmRlbmNpZXMuaGFzKHByb3BlcnR5Lm5hbWUpIHx8IHRoaXMuX2RlcGVuZGVu
Y2llcy5oYXMocHJvcGVydHkuY2Fub25pY2FsTmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IGZvciAobGV0IHByb3BlcnR5IG9mIGRlcGVuZGVuY2llcykgewotICAgICAgICAgICAgbGV0IGRl
cGVuZGVuY3lWYWx1ZXMgPSB0aGlzLl9kZXBlbmRlbmNpZXMuZ2V0KHByb3BlcnR5Lm5hbWUpOwot
ICAgICAgICAgICAgaWYgKCFkZXBlbmRlbmN5VmFsdWVzLmluY2x1ZGVzKHByb3BlcnR5LnZhbHVl
KSkKLSAgICAgICAgICAgICAgICB0aXRsZSArPSAiXG4gIiArIHByb3BlcnR5Lm5hbWUgKyAiOiAi
ICsgZGVwZW5kZW5jeVZhbHVlcy5qb2luKCIvIik7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlz
Ll9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoIm1pc3NpbmctZGVwZW5kZW5jeSIsICEhdGl0bGUu
bGVuZ3RoKTsKLSAgICAgICAgdGhpcy5fd2FybmluZ0VsZW1lbnQudGl0bGUgPSB0aXRsZS5sZW5n
dGggPyBXSS5VSVN0cmluZygiTWlzc2luZyBEZXBlbmRlbmNpZXM6JXMiKS5mb3JtYXQodGl0bGUp
IDogbnVsbDsKLSAgICB9Ci0KLSAgICBfdGl0bGVFbGVtZW50UHJlcGFyZUZvckNsaWNrKGV2ZW50
KQotICAgIHsKLSAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInBy
b3BlcnR5LXJlZmVyZW5jZS1pbmZvIiwgZXZlbnQudHlwZSA9PT0gImtleWRvd24iICYmIGV2ZW50
LmFsdEtleSk7Ci0gICAgfQotCi0gICAgX3RpdGxlRWxlbWVudE1vdXNlT3ZlcihldmVudCkKLSAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5faGFzUHJvcGVydHlSZWZlcmVuY2UpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
InByb3BlcnR5LXJlZmVyZW5jZS1pbmZvIiwgZXZlbnQuYWx0S2V5KTsKLSAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2JvdW5kVGl0bGVFbGVtZW50UHJl
cGFyZUZvckNsaWNrKTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAi
LCB0aGlzLl9ib3VuZFRpdGxlRWxlbWVudFByZXBhcmVGb3JDbGljayk7Ci0gICAgfQotCi0gICAg
X3RpdGxlRWxlbWVudE1vdXNlT3V0KCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faGFzUHJv
cGVydHlSZWZlcmVuY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdGl0
bGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInByb3BlcnR5LXJlZmVyZW5jZS1pbmZvIik7Ci0g
ICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9ib3Vu
ZFRpdGxlRWxlbWVudFByZXBhcmVGb3JDbGljayk7Ci0gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2
ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5fYm91bmRUaXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xp
Y2spOwotICAgIH0KLQotICAgIF90aXRsZUVsZW1lbnRDbGljayhldmVudCkKLSAgICB7Ci0gICAg
ICAgIGlmIChldmVudC5hbHRLZXkpCi0gICAgICAgICAgICB0aGlzLl9zaG93UHJvcGVydHlJbmZv
UG9wb3ZlcigpOwotICAgIH0KLQotICAgIF9zaG93UHJvcGVydHlJbmZvUG9wb3ZlcigpCi0gICAg
ewotICAgICAgICBpZiAoIXRoaXMuX2hhc1Byb3BlcnR5UmVmZXJlbmNlKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIGxldCBwcm9wZXJ0eUluZm9FbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgicCIpOwotICAgICAgICBwcm9wZXJ0eUluZm9FbGVtZW50LmNsYXNzTGlzdC5h
ZGQoInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1pbmZvLXBvcG92ZXIiKTsKLQotICAgICAgICBsZXQg
cHJvcGVydHlJbmZvVGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKTsK
LSAgICAgICAgcHJvcGVydHlJbmZvVGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRoaXMuX3Byb3BlcnR5UmVmZXJlbmNlTmFtZSkpOwotICAgICAgICBwcm9w
ZXJ0eUluZm9FbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnR5SW5mb1RpdGxlRWxlbWVudCk7Ci0K
LSAgICAgICAgcHJvcGVydHlJbmZvRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSh0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZVRleHQpKTsKLQotICAgICAgICBsZXQgYm91
bmRzID0gV0kuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fdGl0bGVFbGVtZW50LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpKTsKLSAgICAgICAgbGV0IHBvcG92ZXIgPSBuZXcgV0kuUG9wb3Zl
cih0aGlzKTsKLSAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gcHJvcGVydHlJbmZvRWxlbWVudDsK
LSAgICAgICAgcG9wb3Zlci5wcmVzZW50KGJvdW5kcy5wYWQoMiksIFtXSS5SZWN0RWRnZS5NSU5f
WV0pOwotICAgICAgICBwb3BvdmVyLndpbmRvd1Jlc2l6ZUhhbmRsZXIgPSAoKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgYm91bmRzID0gV0kuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fdGl0
bGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKLSAgICAgICAgICAgIHBvcG92ZXIu
cHJlc2VudChib3VuZHMucGFkKDIpLCBbV0kuUmVjdEVkZ2UuTUlOX1ldKTsKLSAgICAgICAgfTsK
LSAgICB9Ci0KLSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVk
KQotICAgIHsKLSAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MuCi0gICAgfQotfTsK
LQotV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5FdmVudCA9IHsKLSAgICBWYWx1ZURpZENo
YW5nZTogInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItdmFsdWUtY2hhbmdlZCIKLX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluay5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluay5jc3MKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NmJhMTYyYzk5ZWY4MzQwNjQ2ZTMwOTBiMzRiMmZi
YmYzZDYwNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9w
ZXJ0eUVkaXRvckxpbmsuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rIHsKLSAgICBkaXNwbGF5
OiBmbGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZl
OwotICAgIG1pbi13aWR0aDogMzJweDsKLSAgICBtYXJnaW4tbGVmdDogMXB4OwotfQotCi1AbWVk
aWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC52aXN1YWwtc3R5
bGUtcHJvcGVydHktZWRpdG9yLWxpbmsgewotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICB9
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsuZGlzYWJsZWQgewotICAg
IHZpc2liaWxpdHk6IGhpZGRlbjsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3It
bGluay5saW5rLWFsbCB7Ci0gICAgaGVpZ2h0OiAxM3B4OwotICAgIG1hcmdpbjogMCBhdXRvIDJw
eDsKLSAgICBwYWRkaW5nOiAwIDUwcHg7Ci0gICAgYm9yZGVyLXRvcC13aWR0aDogMDsKLSAgICBi
b3JkZXItcmlnaHQtd2lkdGg6IDFweDsKLSAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwOwotICAg
IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDUw
JSk7Ci0gICAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVy
dHktZWRpdG9yLWxpbmsubGluay1hbGwubGlua2VkIHsKLSAgICBib3JkZXItY29sb3I6IGJsYWNr
OwotICAgIGJvcmRlci1zdHlsZTogc29saWQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
ZWRpdG9yLWxpbmsgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlciB7
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogY2FsYyg1MCUgLSAwLjVweCk7Ci0g
ICAgd2lkdGg6IDQ4cHg7Ci0gICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCBoc2woMCwgMCUsIDUw
JSk7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsubGlua2VkID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIgewotICAgIGJvcmRlci10b3A6
IDFweCBzb2xpZCBibGFjazsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGlu
ayA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQgewotICAg
IGxlZnQ6IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlci5yaWdodCB7Ci0gICAgcmlnaHQ6
IDFweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbCA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQgewotICAgIGxl
ZnQ6IDFweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFs
bC5saW5rZWQgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlciB7Ci0g
ICAgd2lkdGg6IDUxcHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsu
bGluay1hbGwubGlua2VkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3Jk
ZXIubGVmdCB7Ci0gICAgbGVmdDogMDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0
b3ItbGluay5saW5rLWFsbC5saW5rZWQgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1s
aW5rLWJvcmRlci5yaWdodCB7Ci0gICAgcmlnaHQ6IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJv
cGVydHktZWRpdG9yLWxpbmsubGluay12ZXJ0aWNhbCB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZl
OwotICAgIHRvcDogLTFweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGlu
azpub3QoLmxpbmstYWxsKSB7Ci0gICAgaGVpZ2h0OiAyMHB4OwotfQotCi0udmlzdWFsLXN0eWxl
LXByb3BlcnR5LWVkaXRvci1saW5rOm5vdCgubGluay1hbGwpID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIgewotICAgIHdpZHRoOiAxMHB4OwotICAgIHRvcDogNTAl
OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rOm5vdCgubGluay1hbGwp
LmxpbmtlZCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyIHsKLSAg
ICB3aWR0aDogMTJweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluayA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstaWNvbiA+IDptYXRjaGVzKC5saW5r
ZWQtaWNvbiwgLnVubGlua2VkLWljb24pIHsKLSAgICB3aWR0aDogOXB4OwotICAgIGhlaWdodDog
MTJweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluayA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstaWNvbiA+IC51bmxpbmtlZC1pY29uIHsKLSAgICBw
b3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci0gICAgei1p
bmRleDogMTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluazpub3QoLmxp
bmtlZCkgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWljb24gPiA6bWF0Y2hl
cygubGlua2VkLWljb24sIC51bmxpbmtlZC1pY29uKSB7Ci0gICAgY29sb3I6IGhzbCgwLCAwJSwg
NTAlKTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluazpub3QoLmxpbmst
YWxsKSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstaWNvbiB7Ci0gICAgbWFy
Z2luLWxlZnQ6IDExcHg7Ci19Ci0KLUBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJh
dGlvOiAyKSB7Ci0gICAgLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFs
bCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQsCi0gICAg
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbC5saW5rZWQgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWljb246aG92ZXIgKyAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlci5yaWdodCAgewotICAgICAgICB3aWR0aDogNDlw
eDsKLSAgICB9Ci0KLSAgICAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIubGVmdCB7Ci0gICAgICAgIGxl
ZnQ6IDFweDsKLSAgICB9Ci0KLSAgICAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5r
LmxpbmstYWxsLmxpbmtlZCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9y
ZGVyLmxlZnQgewotICAgICAgICB3aWR0aDogNTJweDsKLSAgICB9Ci0KLSAgICAudmlzdWFsLXN0
eWxlLXByb3BlcnR5LWVkaXRvci1saW5rID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3It
bGluay1pY29uID4gOm1hdGNoZXMoLmxpbmtlZC1pY29uLCAudW5saW5rZWQtaWNvbikgewotICAg
ICAgICB3aWR0aDogMTBweDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluay5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
UHJvcGVydHlFZGl0b3JMaW5rLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzdl
ZGRiN2YyMjcyMjhmMmZhNzllMzE0NDdkMGU2Y2FiNGM0MWZiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yTGluayA9IGNsYXNzIFZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rIGV4dGVuZHMg
V0kuT2JqZWN0Ci17Ci0gICAgY29uc3RydWN0b3IobGlua2VkUHJvcGVydGllcywgY2xhc3NOYW1l
LCBsaW5rc1RvSGlkZVdoZW5MaW5rZWQpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAg
ICAgIHRoaXMuX2xpbmtlZFByb3BlcnRpZXMgPSBsaW5rZWRQcm9wZXJ0aWVzIHx8IFtdOwotICAg
ICAgICB0aGlzLl9saW5rc1RvSGlkZVdoZW5MaW5rZWQgPSBsaW5rc1RvSGlkZVdoZW5MaW5rZWQg
fHwgW107Ci0gICAgICAgIHRoaXMuX2xhc3RQcm9wZXJ0eUVkaXRlZCA9IG51bGw7Ci0KLSAgICAg
ICAgZm9yIChsZXQgcHJvcGVydHkgb2YgdGhpcy5fbGlua2VkUHJvcGVydGllcykKLSAgICAgICAg
ICAgIHByb3BlcnR5LmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRv
ci5FdmVudC5WYWx1ZURpZENoYW5nZSwgdGhpcy5fbGlua2VkUHJvcGVydHlWYWx1ZUNoYW5nZWQs
IHRoaXMpOwotCi0gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aXN1YWwtc3R5
bGUtcHJvcGVydHktZWRpdG9yLWxpbmsiLCBjbGFzc05hbWUgfHwgIiIpOwotCi0gICAgICAgIGxl
dCBsZWZ0TGluZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAg
ICAgbGVmdExpbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1l
ZGl0b3ItbGluay1ib3JkZXIiLCAibGVmdCIpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVu
ZENoaWxkKGxlZnRMaW5lRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgidmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWljb24iKTsK
LSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiQ2xpY2sgdG8g
bGluayBwcm9wZXJ0eSB2YWx1ZXMiKTsKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5faWNvbk1vdXNlb3Zlci5iaW5kKHRoaXMpKTsK
LSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0
aGlzLl9pY29uTW91c2VvdXQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faWNvbkNsaWNrZWQuYmluZCh0aGlzKSk7
Ci0KLSAgICAgICAgdGhpcy5fdW5saW5rZWRJY29uID0gV0kuSW1hZ2VVdGlsaXRpZXMudXNlU1ZH
U3ltYm9sKCJJbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eVVubGlua2VkLnN2ZyIsICJ1bmxpbmtl
ZC1pY29uIik7Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Vu
bGlua2VkSWNvbik7Ci0KLSAgICAgICAgdGhpcy5fbGlua2VkSWNvbiA9IFdJLkltYWdlVXRpbGl0
aWVzLnVzZVNWR1N5bWJvbCgiSW1hZ2VzL1Zpc3VhbFN0eWxlUHJvcGVydHlMaW5rZWQuc3ZnIiwg
ImxpbmtlZC1pY29uIik7Ci0gICAgICAgIHRoaXMuX2xpbmtlZEljb24uaGlkZGVuID0gdHJ1ZTsK
LSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGlua2VkSWNvbik7
Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pY29uRWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IHJpZ2h0TGluZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICAgICAgcmlnaHRMaW5lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aXN1YWwt
c3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyIiwgInJpZ2h0Iik7Ci0gICAgICAgIHRo
aXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQocmlnaHRMaW5lRWxlbWVudCk7Ci0KLSAgICAgICAgdGhp
cy5fbGlua2VkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7Ci0gICAg
fQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgZWxlbWVudCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fZWxlbWVudDsKLSAgICB9Ci0KLSAgICBzZXQgbGlua2VkKGZsYWcpCi0gICAg
ewotICAgICAgICB0aGlzLl9saW5rZWQgPSBmbGFnOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNs
YXNzTGlzdC50b2dnbGUoImxpbmtlZCIsIHRoaXMuX2xpbmtlZCk7Ci0KLSAgICAgICAgaWYgKHRo
aXMuX2xpbmtlZEljb24pCi0gICAgICAgICAgICB0aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9ICF0
aGlzLl9saW5rZWQ7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3VubGlua2VkSWNvbikKLSAgICAgICAg
ICAgIHRoaXMuX3VubGlua2VkSWNvbi5oaWRkZW4gPSB0aGlzLl9saW5rZWQ7Ci0KLSAgICAgICAg
dGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSB0aGlzLl9saW5rZWQgPyBXSS5VSVN0cmluZygiUmVt
b3ZlIGxpbmsiKSA6IFdJLlVJU3RyaW5nKCJMaW5rIHByb3BlcnR5IHZhbHVlcyIpOwotCi0gICAg
ICAgIGZvciAobGV0IGxpbmtUb0hpZGUgb2YgdGhpcy5fbGlua3NUb0hpZGVXaGVuTGlua2VkKQot
ICAgICAgICAgICAgbGlua1RvSGlkZS5kaXNhYmxlZCA9IHRoaXMuX2xpbmtlZDsKLSAgICB9Ci0K
LSAgICBzZXQgZGlzYWJsZWQoZmxhZykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkID0g
ZmxhZzsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJkaXNhYmxlZCIs
IHRoaXMuX2Rpc2FibGVkKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfbGlua2Vk
UHJvcGVydHlWYWx1ZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIWV2ZW50KQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBwcm9wZXJ0eSA9IGV2ZW50LnRhcmdl
dDsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl9sYXN0UHJvcGVydHlFZGl0ZWQgPSBwcm9wZXJ0eTsKLSAgICAgICAgaWYgKCF0aGlz
Ll9saW5rZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTGlu
a2VkRWRpdG9ycyhwcm9wZXJ0eSk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZUxpbmtlZEVkaXRvcnMo
cHJvcGVydHkpCi0gICAgewotICAgICAgICBsZXQgc3R5bGUgPSBwcm9wZXJ0eS5zdHlsZTsKLSAg
ICAgICAgbGV0IHRleHQgPSBzdHlsZS50ZXh0OwotICAgICAgICBsZXQgdmFsdWUgPSBwcm9wZXJ0
eS5zeW50aGVzaXplZFZhbHVlIHx8IG51bGw7Ci0KLSAgICAgICAgZm9yIChsZXQgbGlua2VkUHJv
cGVydHkgb2YgdGhpcy5fbGlua2VkUHJvcGVydGllcykKLSAgICAgICAgICAgIHRleHQgPSBsaW5r
ZWRQcm9wZXJ0eS51cGRhdGVWYWx1ZUZyb21UZXh0KHRleHQsIHZhbHVlKTsKLQotICAgICAgICBz
dHlsZS50ZXh0ID0gdGV4dDsKLSAgICB9Ci0KLSAgICBfaWNvbk1vdXNlb3ZlcigpCi0gICAgewot
ICAgICAgICB0aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9IHRoaXMuX2xpbmtlZDsKLSAgICAgICAg
dGhpcy5fdW5saW5rZWRJY29uLmhpZGRlbiA9ICF0aGlzLl9saW5rZWQ7Ci0gICAgfQotCi0gICAg
X2ljb25Nb3VzZW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9
ICF0aGlzLl9saW5rZWQ7Ci0gICAgICAgIHRoaXMuX3VubGlua2VkSWNvbi5oaWRkZW4gPSB0aGlz
Ll9saW5rZWQ7Ci0gICAgfQotCi0gICAgX2ljb25DbGlja2VkKCkKLSAgICB7Ci0gICAgICAgIHRo
aXMubGlua2VkID0gIXRoaXMuX2xpbmtlZDsKLSAgICAgICAgdGhpcy5fdXBkYXRlTGlua2VkRWRp
dG9ycyh0aGlzLl9sYXN0UHJvcGVydHlFZGl0ZWQgfHwgdGhpcy5fbGlua2VkUHJvcGVydGllc1sw
XSk7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlu
cHV0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODhkM2NiNDRhZjdlMDJhNWY4
NWJiOTgzZDNiMGFiOGFiOTVhZTAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQgPSBjbGFz
cyBWaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0IGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9w
ZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIGxheW91
dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVs
bCwgbnVsbCwgInByb3BlcnR5LW5hbWUtaW5wdXQiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAg
ICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW5wdXQiKTsKLSAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LnBsYWNl
aG9sZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIHByb3BlcnR5IG5hbWUiKTsKLSAgICAgICAgdGhp
cy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0
aGlzLl9pbnB1dEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TmFt
ZUlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuZGVib3VuY2UoMjUw
KS5faW5wdXRLZXlVcCk7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Byb3BlcnR5
TmFtZUlucHV0RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIg
PSBuZXcgV0kuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIodGhpcyk7Ci0gICAgICAg
IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5
bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVkLCB0aGlzLl9j
b21wbGV0aW9uQ2xpY2tlZCwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBn
ZXQgdmFsdWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0
RWxlbWVudC52YWx1ZTsKLSAgICB9Ci0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAg
ICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRoaXMudmFsdWUpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LnZhbHVlID0gdmFs
dWU7Ci0gICAgfQotCi0gICAgZ2V0IHN5bnRoZXNpemVkVmFsdWUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMudmFsdWUgfHwgbnVsbDsKLSAgICB9Ci0KLSAgICBnZXQgaGFzQ29tcGxldGlv
bnMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhh
c0NvbXBsZXRpb25zOwotICAgIH0KLQotICAgIHNldCBjb21wbGV0aW9ucyhjb21wbGV0aW9ucykK
LSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmNvbXBsZXRpb25zID0g
Y29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2NvbXBsZXRpb25D
bGlja2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEudGV4
dDsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfaW5wdXRL
ZXlEb3duKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jb21wbGV0aW9uQ29udHJv
bGxlci52aXNpYmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBrZXlDb2Rl
ID0gZXZlbnQua2V5Q29kZTsKLSAgICAgICAgbGV0IGVudGVyS2V5Q29kZSA9IFdJLktleWJvYXJk
U2hvcnRjdXQuS2V5LkVudGVyLmtleUNvZGU7Ci0gICAgICAgIGxldCB0YWJLZXlDb2RlID0gV0ku
S2V5Ym9hcmRTaG9ydGN1dC5LZXkuVGFiLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09
PSBlbnRlcktleUNvZGUgfHwga2V5Q29kZSA9PT0gdGFiS2V5Q29kZSkgewotICAgICAgICAgICAg
dGhpcy52YWx1ZSA9IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9u
OwotICAgICAgICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25zKCk7Ci0gICAgICAgICAgICB0aGlz
Ll92YWx1ZURpZENoYW5nZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgbGV0IGVzY2FwZUtleUNvZGUgPSBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUu
a2V5Q29kZTsKLSAgICAgICAgaWYgKGtleUNvZGUgPT09IGVzY2FwZUtleUNvZGUpIHsKLSAgICAg
ICAgICAgIHRoaXMuX2hpZGVDb21wbGV0aW9ucygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgICAg
IGlmIChrZXkgPT09ICJVcCIpIHsKLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9s
bGVyLnByZXZpb3VzKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoa2V5ID09PSAiRG93biIpIHsKLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250
cm9sbGVyLm5leHQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIF9pbnB1dEtleVVwKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9u
cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fdmFs
dWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnVwZGF0ZSh0aGlzLnZh
bHVlKSkgewotICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdJLlJlY3QucmVjdEZyb21DbGllbnRS
ZWN0KHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KSk7Ci0gICAgICAgICAgICBpZiAoIWJvdW5kcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnNob3coYm91bmRzLCAyKTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIF9oaWRlQ29tcGxldGlvbnMoKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuaGlkZSgpOwotICAgIH0KLQotICAgIF90b2dn
bGVUYWJiaW5nT2ZTZWxlY3RhYmxlRWxlbWVudHMoZGlzYWJsZWQpCi0gICAgewotICAgICAgICB0
aGlzLl9wcm9wZXJ0eU5hbWVJbnB1dEVsZW1lbnQudGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIg
OiBudWxsOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRp
dmVOdW1iZXJTbGlkZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWFlNTk3
MTZmYThjN2I1MTI2ZTQ3MzM5NDBmYjAwYjk2Njc0ZjI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLm51bWJlci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdGl0bGUgewotICAgIG1hcmdpbi1yaWdodDogM3B4OwotfQotCi0u
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5wdXQtYm94LnJlbGF0aXZl
LW51bWJlci1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7
Ci0gICAgb3JkZXI6IDI7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51
bWJlci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJv
cGVydHktdmFsdWUtY29udGFpbmVyOm5vdCgubnVtYmVyLWlucHV0LWVkaXRhYmxlKSArIC5yZWxh
dGl2ZS1zbGlkZXIsCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5w
dXQtYm94LnJlbGF0aXZlLW51bWJlci1zbGlkZXIuZGlzYWJsZWQgPiAucmVsYXRpdmUtc2xpZGVy
IHsKLSAgICBvcGFjaXR5OiAwLjU7Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ci19Ci0KLS52
aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJlci1pbnB1dC1ib3gucmVsYXRpdmUt
bnVtYmVyLXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyLm5v
LXZhbHVlcy5uby11bml0cyB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIubnVtYmVyLWlucHV0LWJveC5yZWxhdGl2ZS1udW1iZXItc2xp
ZGVyID4gLnJlbGF0aXZlLXNsaWRlciB7Ci0gICAgd2lkdGg6IDQ3JTsKLSAgICBtYXJnaW4tdG9w
OiAwOwotICAgIG1hcmdpbi1yaWdodDogN3B4OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNs
aWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU0M2M4NTU3NWE5NmQwZGFlY2ZlN2VlMjFlNWJhYTlhMGFjMDk0YzAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHls
ZVJlbGF0aXZlTnVtYmVyU2xpZGVyID0gY2xhc3MgVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNs
aWRlciBleHRlbmRzIFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3gKLXsKLSAgICBjb25zdHJ1
Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgcG9zc2libGVVbml0cywg
YWxsb3dOZWdhdGl2ZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAgICBzdXBl
cihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgcG9zc2libGVVbml0cywgYWxs
b3dOZWdhdGl2ZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX2VsZW1l
bnQuY2xhc3NMaXN0LmFkZCgicmVsYXRpdmUtbnVtYmVyLXNsaWRlciIpOwotCi0gICAgICAgIHRo
aXMuX3NsaWRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotICAg
ICAgICB0aGlzLl9zbGlkZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoInJlbGF0aXZlLXNsaWRlciIp
OwotICAgICAgICB0aGlzLl9zbGlkZXJFbGVtZW50LnR5cGUgPSAicmFuZ2UiOwotICAgICAgICB0
aGlzLl9zbGlkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5fc2xpZGVy
Q2hhbmdlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLl9zbGlkZXJFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9zdGFydGluZ1ZhbHVlID0gMDsK
LSAgICAgICAgdGhpcy5fc2NhbGUgPSAyMDA7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAg
ICBzZXQgc2NhbGUoc2NhbGUpCi0gICAgewotICAgICAgICB0aGlzLl9zY2FsZSA9IHNjYWxlIHx8
IDE7Ci0gICAgfQotCi0gICAgdXBkYXRlRWRpdG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCi0gICAg
ewotICAgICAgICBzdXBlci51cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcyk7Ci0gICAg
ICAgIHRoaXMuX3Jlc2V0U2xpZGVyKCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAg
X3Jlc2V0U2xpZGVyKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N0YXJ0aW5nVmFsdWUgPSBwYXJz
ZUZsb2F0KHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnZhbHVlKTsKLSAgICAgICAgaWYg
KGlzTmFOKHRoaXMuX3N0YXJ0aW5nVmFsdWUpKQotICAgICAgICAgICAgdGhpcy5fc3RhcnRpbmdW
YWx1ZSA9IHBhcnNlRmxvYXQodGhpcy5wbGFjZWhvbGRlcikgfHwgMDsKLQotICAgICAgICBsZXQg
bWlkcG9pbnQgPSB0aGlzLl9zY2FsZSAvIDI7Ci0gICAgICAgIGlmICh0aGlzLl9hbGxvd05lZ2F0
aXZlVmFsdWVzIHx8IHRoaXMuX3N0YXJ0aW5nVmFsdWUgPiBtaWRwb2ludCkgewotICAgICAgICAg
ICAgdGhpcy5fc2xpZGVyRWxlbWVudC5taW4gPSAtbWlkcG9pbnQ7Ci0gICAgICAgICAgICB0aGlz
Ll9zbGlkZXJFbGVtZW50Lm1heCA9IG1pZHBvaW50OwotICAgICAgICAgICAgdGhpcy5fc2xpZGVy
RWxlbWVudC52YWx1ZSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9z
bGlkZXJFbGVtZW50Lm1pbiA9IDA7Ci0gICAgICAgICAgICB0aGlzLl9zbGlkZXJFbGVtZW50Lm1h
eCA9IHRoaXMuX3NjYWxlOwotICAgICAgICAgICAgdGhpcy5fc2xpZGVyRWxlbWVudC52YWx1ZSA9
IHRoaXMuX3N0YXJ0aW5nVmFsdWU7Ci0gICAgICAgICAgICB0aGlzLl9zdGFydGluZ1ZhbHVlID0g
MDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9zbGlkZXJDaGFuZ2VkKCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMudmFsdWUgPSB0aGlzLl9zdGFydGluZ1ZhbHVlICsgTWF0aC5yb3VuZChwYXJzZUZs
b2F0KHRoaXMuX3NsaWRlckVsZW1lbnQudmFsdWUpICogMTAwKSAvIDEwMDsKLSAgICAgICAgdGhp
cy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfbnVtYmVySW5wdXRDaGFuZ2VkKCkK
LSAgICB7Ci0gICAgICAgIHN1cGVyLl9udW1iZXJJbnB1dENoYW5nZWQoKTsKLSAgICAgICAgdGhp
cy5fcmVzZXRTbGlkZXIoKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVT
ZWxlY3RvclNlY3Rpb24uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTcxN2Ew
NTEwODAzNTI1ZjVlOGViNzIyOTRkMWY4MzRlZTk2MWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmNzcworKysgL2Rldi9udWxsCkBA
IC0xLDEyMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5
bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5oZWFkZXIgewotICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAg
aGVpZ2h0OiAyMnB4OwotfQotCi0uZGV0YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rv
ci1zZWN0aW9uOm5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIgewotICAgIGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi1AbWVkaWEgKC13ZWJraXQtbWlu
LWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0
eWxlLXNlbGVjdG9yLXNlY3Rpb246bm90KC5jb2xsYXBzZWQpID4gLmhlYWRlciB7Ci0gICAgICAg
IGJvcmRlci13aWR0aDogMC41cHggIWltcG9ydGFudDsKLSAgICB9Ci19Ci0KLS5kZXRhaWxzLXNl
Y3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmN1cnJlbnQt
c2VsZWN0b3IgewotICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA5NXB4KTsKLSAgICBtYXJnaW4tbGVm
dDogMTBweDsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotfQotCi0udmlzdWFsLXN0eWxlLXNl
bGVjdG9yLXNlY3Rpb24uZGV0YWlscy1zZWN0aW9uOm5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIg
PiAuY3VycmVudC1zZWxlY3RvciB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLmRldGFpbHMt
c2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5oZWFkZXIgPiAuY3VycmVu
dC1zZWxlY3RvciA+IC5pY29uIHsKLSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogM3B4OwotfQotCi0uZGV0YWlscy1z
ZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uID4gLmhlYWRlciA+IC5jdXJyZW50
LXNlbGVjdG9yID4gc3BhbiB7Ci0gICAgbWFyZ2luLWxlZnQ6IDIxcHg7Ci19Ci0KLS5kZXRhaWxz
LXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmNvbnRy
b2xzIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgdG9wOiAw
OwotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOwotfQotCi0uZGV0
YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLmNvbGxhcHNlZCA+IC5o
ZWFkZXIgPiAuY29udHJvbHMgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS5kZXRhaWxzLXNl
Y3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmNvbnRyb2xz
ID4gLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLWFkZC1ydWxlIHsKLSAgICB3aWR0aDog
MjNweDsKLSAgICBoZWlnaHQ6IDIxcHg7Ci0gICAgcGFkZGluZzogNHB4IDVweDsKLSAgICBvcGFj
aXR5OiAwLjc7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNl
Y3Rpb246bm90KC5jb2xsYXBzZWQpID4gLmNvbnRlbnQgewotICAgIGRpc3BsYXk6IGJsb2NrOwot
fQotCi0uZGV0YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uID4gLmNv
bnRlbnQgPiAuc2VsZWN0b3JzIHsKLSAgICBtYXgtaGVpZ2h0OiAxMTBweDsKLSAgICBvdmVyZmxv
dzogYXV0bzsKLX0KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2Vj
dGlvbiA+IC5jb250ZW50ID4gLnNlbGVjdG9ycyA+IC5zZWxlY3Rvci1saXN0IHsKLSAgICBtYXJn
aW46IDA7Ci0gICAgcGFkZGluZy1sZWZ0OiAwOwotICAgIG91dGxpbmU6IG5vbmU7Ci19Ci0KLS5k
ZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuY29udGVudCA+
IC5zZWxlY3RvcnMgPiAuc2VsZWN0b3ItbGlzdCA+IC52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRl
bTpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDEwMCUsIDEw
MCUpOwotfQotCi0uZGV0YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9u
ID4gLmNvbnRlbnQgPiAuc2VsZWN0b3JzID4gLnNlbGVjdG9yLWxpc3QgPiAuc2VjdGlvbi1kaXZp
ZGVyIHsKLSAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7Ci0gICAgdG9wOiAtMXB4OwotICAg
IGhlaWdodDogMTlweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7Ci0g
ICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwotICAgIGJvcmRlci1zdHlsZTog
c29saWQ7Ci0gICAgYm9yZGVyLXdpZHRoOiAxcHggMDsKLSAgICB6LWluZGV4OiB2YXIoLS16LWlu
ZGV4LWhlYWRlcik7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9y
LXNlY3Rpb24gPiAuY29udGVudCA+IC5zZWxlY3RvcnMgPiAuc2VsZWN0b3ItbGlzdCA+IC5zZWN0
aW9uLWRpdmlkZXIgPiA6bWF0Y2hlcyguZGlzY2xvc3VyZS1idXR0b24sIC5pY29uKSB7Ci0gICAg
ZGlzcGxheTogbm9uZTsKLX0KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0
b3Itc2VjdGlvbiA+IC5jb250ZW50ID4gLnNlbGVjdG9ycyA+IC5zZWxlY3Rvci1saXN0ID4gLnNl
Y3Rpb24tZGl2aWRlciB+IC52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbTpudGgtY2hpbGQoZXZl
bikgewotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAxMDAlLCAxMDAlKTsKLX0KLQotLmRl
dGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5jb250ZW50ID4g
LnNlbGVjdG9ycyA+IC5zZWxlY3Rvci1saXN0ID4gLnNlY3Rpb24tZGl2aWRlciB+IC52aXN1YWwt
c3R5bGUtc2VsZWN0b3ItaXRlbTpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogdHJhbnNwYXJlbnQ7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0
aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjIyZDY3ZjY2YTAzZjg0YTNh
MDFlZjhjYWZlYTQ4NmVlNjhkN2M3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzUzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZp
c3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVuZHMgV0kuRGV0YWlsc1NlY3Rpb24KLXsKLSAg
ICBjb25zdHJ1Y3RvcigpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0b3JTZWN0aW9uID0ge2Vs
ZW1lbnQ6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfTsKLSAgICAgICAgc2VsZWN0b3JT
ZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0b3JzIik7Ci0KLSAgICAgICAgbGV0
IGNvbnRyb2xFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAg
IGNvbnRyb2xFbGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbnRyb2xzIik7Ci0KLSAgICAgICAgc3Vw
ZXIoInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uIiwgV0kuVUlTdHJpbmcoIlN0eWxlIFJ1
bGVzIiksIFtzZWxlY3RvclNlY3Rpb25dLCBjb250cm9sRWxlbWVudCk7Ci0KLSAgICAgICAgdGhp
cy5fbm9kZVN0eWxlcyA9IG51bGw7Ci0KLSAgICAgICAgdGhpcy5fY3VycmVudFNlbGVjdG9yRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9jdXJy
ZW50U2VsZWN0b3JFbGVtZW50LmNsYXNzTGlzdC5hZGQoImN1cnJlbnQtc2VsZWN0b3IiKTsKLQot
ICAgICAgICBsZXQgY3VycmVudFNlbGVjdG9ySWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbWciKTsKLSAgICAgICAgY3VycmVudFNlbGVjdG9ySWNvbkVsZW1lbnQuY2xhc3NM
aXN0LmFkZCgiaWNvbiIpOwotICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmFw
cGVuZENoaWxkKGN1cnJlbnRTZWxlY3Rvckljb25FbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9j
dXJyZW50U2VsZWN0b3JUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAg
ICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2N1cnJl
bnRTZWxlY3RvclRleHQpOwotCi0gICAgICAgIHRoaXMuX2hlYWRlckVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fY3VycmVudFNlbGVjdG9yRWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHNlbGVjdG9y
TGlzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwotICAgICAgICBzZWxl
Y3Rvckxpc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdG9yLWxpc3QiKTsKLSAgICAgICAg
c2VsZWN0b3JTZWN0aW9uLmVsZW1lbnQuYXBwZW5kQ2hpbGQoc2VsZWN0b3JMaXN0RWxlbWVudCk7
Ci0KLSAgICAgICAgdGhpcy5fc2VsZWN0b3JzID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdG9y
TGlzdEVsZW1lbnQpOwotICAgICAgICB0aGlzLl9zZWxlY3RvcnMuZGlzY2xvc3VyZUJ1dHRvbnMg
PSBmYWxzZTsKLSAgICAgICAgdGhpcy5fc2VsZWN0b3JzLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJl
ZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9zZWxlY3RvckNoYW5nZWQs
IHRoaXMpOwotCi0gICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51bGw7
Ci0KLSAgICAgICAgbGV0IGFkZEdseXBoRWxlbWVudCA9IFdJLkltYWdlVXRpbGl0aWVzLnVzZVNW
R1N5bWJvbCgiSW1hZ2VzL1BsdXMxMy5zdmciLCAidmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rp
b24tYWRkLXJ1bGUiLCBXSS5VSVN0cmluZygiQWRkIG5ldyBydWxlIikpOwotICAgICAgICBhZGRH
bHlwaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9hZGROZXdSdWxlQ2xp
Y2suYmluZCh0aGlzKSk7Ci0gICAgICAgIGFkZEdseXBoRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjb250ZXh0bWVudSIsIHRoaXMuX2FkZE5ld1J1bGVDb250ZXh0TWVudS5iaW5kKHRoaXMpKTsK
LSAgICAgICAgY29udHJvbEVsZW1lbnQuYXBwZW5kQ2hpbGQoYWRkR2x5cGhFbGVtZW50KTsKLQot
ICAgICAgICB0aGlzLl9oZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIs
IHRoaXMuX2hhbmRsZU1vdXNlT3Zlci5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5faGVhZGVy
RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX2hhbmRsZU1vdXNlT3V0
LmJpbmQodGhpcykpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgdXBkYXRlKG5vZGVT
dHlsZXMpCi0gICAgewotICAgICAgICBsZXQgc3R5bGUgPSB0aGlzLmN1cnJlbnRTdHlsZSgpOwot
ICAgICAgICBpZiAoc3R5bGUpCi0gICAgICAgICAgICB0aGlzLl9ub2RlU3R5bGVzW1dJLlZpc3Vh
bFN0eWxlU2VsZWN0b3JTZWN0aW9uLkxhc3RTZWxlY3RlZFJ1bGVTeW1ib2xdID0gc3R5bGU7Ci0K
LSAgICAgICAgaWYgKG5vZGVTdHlsZXMpCi0gICAgICAgICAgICB0aGlzLl9ub2RlU3R5bGVzID0g
bm9kZVN0eWxlczsKLQotICAgICAgICBpZiAoIXRoaXMuX25vZGVTdHlsZXMpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fc2VsZWN0b3JzLnJlbW92ZUNoaWxkcmVuKCk7Ci0g
ICAgICAgIGxldCBwcmV2aW91c1J1bGUgPSBudWxsOwotCi0gICAgICAgIC8vIFBzZXVkbyBTdHls
ZXMKLSAgICAgICAgbGV0IHBzZXVkb1J1bGVzID0gW107Ci0gICAgICAgIGxldCBwc2V1ZG9FbGVt
ZW50cyA9IHRoaXMuX25vZGVTdHlsZXMucHNldWRvRWxlbWVudHM7Ci0gICAgICAgIGZvciAobGV0
IHBzZXVkb0lkZW50aWZpZXIgaW4gcHNldWRvRWxlbWVudHMpCi0gICAgICAgICAgICBwc2V1ZG9S
dWxlcyA9IHBzZXVkb1J1bGVzLmNvbmNhdChwc2V1ZG9FbGVtZW50c1twc2V1ZG9JZGVudGlmaWVy
XS5tYXRjaGVkUnVsZXMpOwotCi0gICAgICAgIGxldCBvcmRlcmVkUHNldWRvUnVsZXMgPSB1bmlx
dWVPcmRlcmVkUnVsZXMocHNldWRvUnVsZXMpOwotICAgICAgICAvLyBSZXZlcnNlIHRoZSBhcnJh
eSB0byBlbnN1cmUgdGhhdCBzcGxpY2luZyB0aGUgYXJyYXkgd2lsbCBub3QgbWVzcyB3aXRoIHRo
ZSBvcmRlci4KLSAgICAgICAgaWYgKG9yZGVyZWRQc2V1ZG9SdWxlcy5sZW5ndGgpCi0gICAgICAg
ICAgICBvcmRlcmVkUHNldWRvUnVsZXMucmV2ZXJzZSgpOwotCi0gICAgICAgIGZ1bmN0aW9uIGNy
ZWF0ZVNlbGVjdG9ySXRlbShzdHlsZSwgdGl0bGUsIHN1YnRpdGxlKSB7Ci0gICAgICAgICAgICBs
ZXQgc2VsZWN0b3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtKHRoaXMsIHN0
eWxlLCB0aXRsZSwgc3VidGl0bGUpOwotICAgICAgICAgICAgc2VsZWN0b3IuYWRkRXZlbnRMaXN0
ZW5lcihXSS5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uRXZlbnQuQ2hlY2tib3hDaGFuZ2Vk
LCB0aGlzLl90cmVlRWxlbWVudENoZWNrYm94VG9nZ2xlZCwgdGhpcyk7Ci0gICAgICAgICAgICB0
aGlzLl9zZWxlY3RvcnMuYXBwZW5kQ2hpbGQoc2VsZWN0b3IpOwotCi0gICAgICAgICAgICBpZiAo
c3R5bGUuaXNJbnNwZWN0b3JSdWxlKCkgJiYgdGhpcy5fbmV3SW5zcGVjdG9yUnVsZVNlbGVjdG9y
ID09PSBzdHlsZS5zZWxlY3RvclRleHQgJiYgIXN0eWxlLmhhc1Byb3BlcnRpZXMoKSkgewotICAg
ICAgICAgICAgICAgIHNlbGVjdG9yLnNlbGVjdCh0cnVlKTsKLSAgICAgICAgICAgICAgICBzZWxl
Y3Rvci5lbGVtZW50LnNjcm9sbEludG9WaWV3KCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbm9k
ZVN0eWxlc1tXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2VsZWN0ZWRSdWxlU3lt
Ym9sXSA9IHN0eWxlOwotICAgICAgICAgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxl
Y3RvciA9IG51bGw7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBpZiAodGhpcy5fbm9kZVN0eWxlc1tXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2Vj
dGlvbi5MYXN0U2VsZWN0ZWRSdWxlU3ltYm9sXSA9PT0gc3R5bGUpIHsKLSAgICAgICAgICAgICAg
ICBzZWxlY3Rvci5zZWxlY3QodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgc2VsZWN0b3IuZWxlbWVu
dC5zY3JvbGxJbnRvVmlldygpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gdW5pcXVlT3JkZXJlZFJ1bGVzKG9yZGVyZWRSdWxlcykKLSAgICAgICAgewotICAg
ICAgICAgICAgaWYgKCFvcmRlcmVkUnVsZXMgfHwgIW9yZGVyZWRSdWxlcy5sZW5ndGgpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheTsKLQotICAgICAgICAgICAgbGV0IHVuaXF1ZVJ1
bGVzID0gbmV3IE1hcDsKLSAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygb3JkZXJlZFJ1bGVz
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF1bmlxdWVSdWxlcy5oYXMocnVsZS5pZCkpCi0gICAg
ICAgICAgICAgICAgICAgIHVuaXF1ZVJ1bGVzLnNldChydWxlLmlkLCBydWxlKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHVuaXF1ZVJ1bGVzLnZhbHVlcygp
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGluc2VydEFsbE1hdGNoaW5nUHNldWRv
UnVsZXMoZm9yY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghb3JkZXJlZFBzZXVkb1J1
bGVzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChm
b3JjZSkgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBvcmRlcmVkUHNldWRvUnVsZXMu
bGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IHBzZXVk
b1J1bGUgPSBvcmRlcmVkUHNldWRvUnVsZXNbaV07Ci0gICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNlbGVjdG9ySXRlbS5jYWxsKHRoaXMsIHBzZXVkb1J1bGUuc3R5bGUsIHBzZXVkb1J1bGUuc2Vs
ZWN0b3JUZXh0LCBwc2V1ZG9SdWxlLm1lZGlhVGV4dCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIG9yZGVyZWRQc2V1ZG9SdWxlcyA9IFtdOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBpZiAoIXByZXZpb3VzUnVsZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIGZvciAobGV0IGkgPSBvcmRlcmVkUHNldWRvUnVsZXMubGVuZ3RoIC0gMTsg
aSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgICAgICBsZXQgcHNldWRvUnVsZSA9IG9yZGVyZWRQ
c2V1ZG9SdWxlc1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoIXBzZXVkb1J1bGUuc2VsZWN0b3JJ
c0dyZWF0ZXIocHJldmlvdXNSdWxlLm1vc3RTcGVjaWZpY1NlbGVjdG9yKSkKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAgICBjcmVhdGVTZWxlY3Rvckl0ZW0u
Y2FsbCh0aGlzLCBwc2V1ZG9SdWxlLnN0eWxlLCBwc2V1ZG9SdWxlLnNlbGVjdG9yVGV4dCwgcHNl
dWRvUnVsZS5tZWRpYVRleHQpOwotICAgICAgICAgICAgICAgIHByZXZpb3VzUnVsZSA9IHBzZXVk
b1J1bGU7Ci0gICAgICAgICAgICAgICAgb3JkZXJlZFBzZXVkb1J1bGVzLnNwbGljZShpLCAxKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzLl9ub2RlU3R5bGVz
LmlubGluZVN0eWxlKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX25vZGVTdHlsZXNbV0kuVmlz
dWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uTGFzdFNlbGVjdGVkUnVsZVN5bWJvbF0pCi0gICAgICAg
ICAgICAgICAgdGhpcy5fbm9kZVN0eWxlc1tXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5M
YXN0U2VsZWN0ZWRSdWxlU3ltYm9sXSA9IHRoaXMuX25vZGVTdHlsZXMuaW5saW5lU3R5bGU7Ci0K
LSAgICAgICAgICAgIC8vIElubGluZSBTdHlsZQotICAgICAgICAgICAgY3JlYXRlU2VsZWN0b3JJ
dGVtLmNhbGwodGhpcywgdGhpcy5fbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgV0kuVUlTdHJpbmco
IlRoaXMgRWxlbWVudCIpKTsKLSAgICAgICAgfSBlbHNlIGlmICghdGhpcy5fbm9kZVN0eWxlc1tX
SS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2VsZWN0ZWRSdWxlU3ltYm9sXSkKLSAg
ICAgICAgICAgIHRoaXMuX25vZGVTdHlsZXNbV0kuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24u
TGFzdFNlbGVjdGVkUnVsZVN5bWJvbF0gPSB0aGlzLl9ub2RlU3R5bGVzLm1hdGNoZWRSdWxlc1sw
XS5zdHlsZTsKLQotICAgICAgICAvLyBNYXRjaGVkIFJ1bGVzCi0gICAgICAgIGZvciAobGV0IHJ1
bGUgb2YgdW5pcXVlT3JkZXJlZFJ1bGVzKHRoaXMuX25vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSkg
ewotICAgICAgICAgICAgaWYgKHJ1bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVTaGVldC5UeXBlLlVz
ZXJBZ2VudCkgewotICAgICAgICAgICAgICAgIGluc2VydEFsbE1hdGNoaW5nUHNldWRvUnVsZXMu
Y2FsbCh0aGlzLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgaW5zZXJ0QWxsTWF0Y2hpbmdQc2V1ZG9SdWxlcy5jYWxsKHRoaXMp
OwotICAgICAgICAgICAgY3JlYXRlU2VsZWN0b3JJdGVtLmNhbGwodGhpcywgcnVsZS5zdHlsZSwg
cnVsZS5zZWxlY3RvclRleHQsIHJ1bGUubWVkaWFUZXh0KTsKLSAgICAgICAgICAgIHByZXZpb3Vz
UnVsZSA9IHJ1bGU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBKdXN0IGluIGNhc2UgdGhlcmUg
YXJlIGFueSByZW1haW5pbmcgcHNldWRvLXN0eWxlcy4KLSAgICAgICAgaW5zZXJ0QWxsTWF0Y2hp
bmdQc2V1ZG9SdWxlcy5jYWxsKHRoaXMsIHRydWUpOwotCi0gICAgICAgIC8vIEluaGVyaXRlZCBS
dWxlcwotICAgICAgICBmb3IgKGxldCBpbmhlcml0ZWQgb2YgdGhpcy5fbm9kZVN0eWxlcy5pbmhl
cml0ZWRSdWxlcykgewotICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWQubWF0Y2hlZFJ1bGVzIHx8
ICFpbmhlcml0ZWQubWF0Y2hlZFJ1bGVzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICAgICAgbGV0IGRpdmlkZXIgPSBudWxsOwotCi0gICAgICAgICAgICBmb3Ig
KGxldCBydWxlIG9mIHVuaXF1ZU9yZGVyZWRSdWxlcyhpbmhlcml0ZWQubWF0Y2hlZFJ1bGVzKSkg
ewotICAgICAgICAgICAgICAgIGlmIChydWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlU2hlZXQuVHlw
ZS5Vc2VyQWdlbnQpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAg
ICAgICAgaWYgKCFkaXZpZGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBkaXZpZGVyVGV4
dCA9IFdJLlVJU3RyaW5nKCJJbmhlcml0ZWQgZnJvbSAlcyIpLmZvcm1hdChpbmhlcml0ZWQubm9k
ZS5kaXNwbGF5TmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGRpdmlkZXIgPSBuZXcgV0kuR2Vu
ZXJhbFRyZWVFbGVtZW50KCJzZWN0aW9uLWRpdmlkZXIiLCBkaXZpZGVyVGV4dCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGRpdmlkZXIuc2VsZWN0YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9zZWxlY3RvcnMuYXBwZW5kQ2hpbGQoZGl2aWRlcik7Ci0gICAgICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICAgICAgY3JlYXRlU2VsZWN0b3JJdGVtLmNhbGwodGhpcywgcnVs
ZS5zdHlsZSwgcnVsZS5zZWxlY3RvclRleHQsIHJ1bGUubWVkaWFUZXh0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9
IG51bGw7Ci0gICAgfQotCi0gICAgY3VycmVudFN0eWxlKCkKLSAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5fbm9kZVN0eWxlcyB8fCAhdGhpcy5fc2VsZWN0b3JzLnNlbGVjdGVkVHJlZUVsZW1lbnQp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0
b3JzLnNlbGVjdGVkVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgfQotCi0gICAg
dHJlZUl0ZW1Gb3JTdHlsZShzdHlsZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGl0ZW0gb2Yg
dGhpcy5fc2VsZWN0b3JzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbS5yZXByZXNl
bnRlZE9iamVjdCA9PT0gc3R5bGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgc2VsZWN0RW1wdHlTdHls
ZVRyZWVJdGVtKHN0eWxlKQotICAgIHsKLSAgICAgICAgaWYgKHN0eWxlLmhhc1Byb3BlcnRpZXMo
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsZXQgdHJlZUl0ZW0gPSB0
aGlzLnRyZWVJdGVtRm9yU3R5bGUoc3R5bGUpOwotICAgICAgICBpZiAoIXRyZWVJdGVtKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHRyZWVJdGVtLnNlbGVjdCh0cnVlLCB0
cnVlKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0g
ICAgX3NlbGVjdG9yQ2hhbmdlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZFRy
ZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2Vs
ZWN0ZWRUcmVlRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBUaGUg
Y2xhc3MgbmVlZHMgdG8gYmUgY29tcGxldGVseSByZXNldCBhcyB0aGUgcHJldmlvdXNseSBzZWxl
Y3RlZCB0cmVlRWxlbWVudCBtb3N0IGxpa2VseSBoYWQKLSAgICAgICAgLy8gYSBkaWZmZXJlbnQg
aWNvbiBjbGFzc05hbWUgYW5kIGl0IGlzIHNpbXBsZXIgdG8gcmVnZW5lcmF0ZSB0aGUgY2xhc3Mg
dGhhbiB0byBmaW5kIG91dCB3aGljaAotICAgICAgICAvLyBjbGFzcyB3YXMgcHJldmlvdXNseSBh
cHBsaWVkLgotICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmNsYXNzTmFtZSA9
ICJjdXJyZW50LXNlbGVjdG9yICIgKyBzZWxlY3RlZFRyZWVFbGVtZW50Lmljb25DbGFzc05hbWU7
Ci0KLSAgICAgICAgbGV0IHNlbGVjdG9yVGV4dCA9IHNlbGVjdGVkVHJlZUVsZW1lbnQubWFpblRp
dGxlOwotICAgICAgICBsZXQgbWVkaWFUZXh0ID0gc2VsZWN0ZWRUcmVlRWxlbWVudC5zdWJ0aXRs
ZTsKLSAgICAgICAgaWYgKG1lZGlhVGV4dCAmJiBtZWRpYVRleHQubGVuZ3RoKQotICAgICAgICAg
ICAgc2VsZWN0b3JUZXh0ICs9ICIgXHUyMDE0ICIgKyBtZWRpYVRleHQ7IC8vIGVtLWRhc2gKLQot
ICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0LnRleHRDb250ZW50ID0gc2VsZWN0b3JU
ZXh0OwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0
eWxlU2VsZWN0b3JTZWN0aW9uLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCk7Ci0gICAgfQotCi0gICAg
X2FkZE5ld1J1bGVDbGljayhldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fbm9kZVN0
eWxlcyB8fCB0aGlzLl9ub2RlU3R5bGVzLm5vZGUuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLmN1cnJl
bnRTdHlsZSgpLnNlbGVjdG9yVGV4dDsKLSAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0aGlz
Ll9ub2RlU3R5bGVzLnJ1bGVzRm9yU2VsZWN0b3Ioc2VsZWN0b3IpOwotICAgICAgICBmb3IgKGxl
dCBydWxlIG9mIGV4aXN0aW5nUnVsZXMpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdEVt
cHR5U3R5bGVUcmVlSXRlbShydWxlLnN0eWxlKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0b3IgPSBzZWxl
Y3RvcjsKLSAgICAgICAgdGhpcy5fbm9kZVN0eWxlcy5hZGRSdWxlKHNlbGVjdG9yKTsKLSAgICB9
Ci0KLSAgICBfYWRkTmV3UnVsZUNvbnRleHRNZW51KGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9ub2RlU3R5bGVzIHx8IHRoaXMuX25vZGVTdHlsZXMubm9kZS5pc0luVXNlckFnZW50
U2hhZG93VHJlZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBzdHlsZVNo
ZWV0cyA9IFdJLmNzc1N0eWxlTWFuYWdlci5zdHlsZVNoZWV0cy5maWx0ZXIoc3R5bGVTaGVldCA9
PiBzdHlsZVNoZWV0Lmhhc0luZm8oKSAmJiAhc3R5bGVTaGVldC5pc0lubGluZVN0eWxlVGFnKCkg
JiYgIXN0eWxlU2hlZXQuaXNJbmxpbmVTdHlsZUF0dHJpYnV0ZVN0eWxlU2hlZXQoKSk7Ci0gICAg
ICAgIGlmICghc3R5bGVTaGVldHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGxldCBjb250ZXh0TWVudSA9IFdJLkNvbnRleHRNZW51LmNyZWF0ZUZyb21FdmVudChldmVu
dCk7Ci0KLSAgICAgICAgY29uc3QgaGFuZGxlciA9IG51bGw7Ci0gICAgICAgIGNvbnN0IGRpc2Fi
bGVkID0gdHJ1ZTsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygi
QXZhaWxhYmxlIFN0eWxlIFNoZWV0cyIpLCBoYW5kbGVyLCBkaXNhYmxlZCk7Ci0KLSAgICAgICAg
Zm9yIChsZXQgc3R5bGVTaGVldCBvZiBzdHlsZVNoZWV0cykgewotICAgICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShzdHlsZVNoZWV0LmRpc3BsYXlOYW1lLCAoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgdGV4dCA9ICIiOwotICAgICAgICAgICAgICAgIHRoaXMuX25vZGVTdHls
ZXMuYWRkUnVsZSh0aGlzLmN1cnJlbnRTdHlsZSgpLnNlbGVjdG9yVGV4dCwgdGV4dCwgc3R5bGVT
aGVldC5pZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF90cmVl
RWxlbWVudENoZWNrYm94VG9nZ2xlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzdHlsZSA9
IHRoaXMuY3VycmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgbGV0IHN0eWxlVGV4dCA9IHN0eWxlLnRleHQ7Ci0gICAgICAgIGlm
ICghc3R5bGVUZXh0IHx8ICFzdHlsZVRleHQubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIC8vIENvbW1lbnQgb3IgdW5jb21tZW50IHRoZSBzdHlsZSB0ZXh0LgotICAgICAg
ICBsZXQgbmV3U3R5bGVUZXh0ID0gIiI7Ci0gICAgICAgIGxldCBzdHlsZUVuYWJsZWQgPSBldmVu
dCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEuZW5hYmxlZDsKLSAgICAgICAgaWYgKHN0eWxl
RW5hYmxlZCkKLSAgICAgICAgICAgIG5ld1N0eWxlVGV4dCA9IHN0eWxlVGV4dC5yZXBsYWNlKC9c
cyooXC9cKnxcKlwvKVxzKi9nLCAiIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1N0
eWxlVGV4dCA9ICIvKiAiICsgc3R5bGVUZXh0LnJlcGxhY2UoLyhccyo7KD8hJClccyopL2csICIk
MSAqLy8qICIpICsgIiAqLyI7Ci0KLSAgICAgICAgc3R5bGUudGV4dCA9IG5ld1N0eWxlVGV4dDsK
LSAgICAgICAgc3R5bGVbV0kuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuU3R5bGVEaXNhYmxlZFN5
bWJvbF0gPSAhc3R5bGVFbmFibGVkOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5FdmVudC5TZWxlY3RvckNoYW5nZWQp
OwotCi0gICAgfQotCi0gICAgX2hhbmRsZU1vdXNlT3ZlcigpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMuY29sbGFwc2VkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBzdHls
ZSA9IHRoaXMuY3VycmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCFzdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAg
IFdJLmRvbVRyZWVNYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUoc3R5bGUubm9kZS5pZCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5o
aWdobGlnaHRTZWxlY3RvcihzdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0LCBzdHlsZS5ub2Rl
Lm93bmVyRG9jdW1lbnQuZnJhbWVJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlTW91
c2VPdXQoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmNvbGxhcHNlZCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdo
dCgpOwotICAgIH0KLX07Ci0KLVdJLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLkxhc3RTZWxl
Y3RlZFJ1bGVTeW1ib2wgPSBTeW1ib2woInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLWxh
c3Qtc2VsZWN0ZWQtcnVsZSIpOwotCi1XSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5FdmVu
dCA9IHsKLSAgICBTZWxlY3RvckNoYW5nZWQ6ICJ2aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlv
bi1zZWxlY3Rvci1jaGFuZ2VkIgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVj
dG9yVHJlZUl0ZW0uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTVlNjU1ODE5
ODBjY2Q0NzNmMzkxOTg5ZDEzNDZjNDY3YzcwOWNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1p
dGVtIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAg
d2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAyNXB4OwotICAgIHBhZGRpbmc6IDJweCAwOwotICAg
IGxpbmUtaGVpZ2h0OiAyMHB4OwotICAgIGZvbnQtc2l6ZTogMTFweDsKLX0KLQotLml0ZW0udmlz
dWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6
IHZhcigtLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3IpICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6
IHZhcigtLXNlbGVjdGVkLWZvcmVncm91bmQtY29sb3IpOwotfQotCi0uaXRlbS52aXN1YWwtc3R5
bGUtc2VsZWN0b3ItaXRlbSA+IC5kaXNjbG9zdXJlLWJ1dHRvbiB7Ci0gICAgZGlzcGxheTogbm9u
ZTsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0gPiBpbnB1dFt0eXBlPSJj
aGVja2JveCJdIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgbWFyZ2luLWxlZnQ6IDVw
eDsKLX0KLQotYm9keTpub3QoLndpbmRvdy1pbmFjdGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3Rp
dmUpIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdGVkID4gaW5wdXRbdHlw
ZT0iY2hlY2tib3giXTpjaGVja2VkOjpiZWZvcmUgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
LSAgICB0b3A6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDA7
Ci0gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7Ci0gICAgYm9yZGVyLXJhZGl1czogM3B4Owot
ICAgIGNvbnRlbnQ6ICIiOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbSA+
IC5pY29uIHsKLSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgbWFyZ2lu
OiAwIDNweCAwIDRweDsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0ubW9k
aWZpZWQgPiAuaWNvbiB7Ci0gICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuNzUpOwotfQotCi0uaXRl
bS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb24gewot
ICAgIGhlaWdodDogMTRweDsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7
Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQg
PiAuaWNvbjpob3ZlciB7Ci0gICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7Ci19Ci0KLS5pdGVt
LnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjphY3Rp
dmUgewotICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjgpOwotfQotCi0uaXRlbS52aXN1YWwtc3R5
bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLnRpdGxlcyA+IC50aXRsZSB7Ci0g
ICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3It
aXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLnRpdGxlcyA+IC50aXRsZTo6YmVmb3JlIHsKLSAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6
IDEwMCU7Ci0gICAgaGVpZ2h0OiA1MCU7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhz
bGEoMCwgMTAwJSwgNTAlLCAwLjYpOwotICAgIGNvbnRlbnQ6ICIiOwotfQotCi1AbWVkaWEgKC13
ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC5pdGVtLnZpc3VhbC1zdHls
ZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAudGl0bGVzID4gLnRpdGxlOjpiZWZv
cmUgewotICAgICAgICB0b3A6IC0wLjVweDsKLSAgICB9Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHls
ZS1zZWxlY3Rvci1pdGVtID4gLnRpdGxlcyB7Ci0gICAgZmxleDogMTsKLSAgICB0b3A6IDA7Ci0g
ICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICB3aGl0
ZS1zcGFjZTogbm93cmFwOwotICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwotfQotCi0uaXRl
bS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbTpub3QoLmRvbS1lbGVtZW50LWljb24pID4gLnRp
dGxlcyA+IC50aXRsZSB7Ci0gICAgcGFkZGluZzogMCAxcHggMnB4OwotICAgIGxpbmUtaGVpZ2h0
OiAxMnB4OwotICAgIG91dGxpbmU6IG5vbmU7Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxl
Y3Rvci1pdGVtOm5vdCguZG9tLWVsZW1lbnQtaWNvbikuZWRpdGFibGUgPiAudGl0bGVzID4gLnRp
dGxlIHsKLSAgICBjdXJzb3I6IHRleHQ7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsK
LX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW06bm90KC5kb20tZWxlbWVudC1p
Y29uKS5lZGl0YWJsZSA+IC50aXRsZXMgPiAudGl0bGU6Zm9jdXMgewotICAgIGNvbG9yOiBibGFj
azsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICBib3JkZXItcmFkaXVzOiAycHg7
Ci0gICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMTUpIDAgMXB4IDAsIDAgMCAwIDNw
eCBoc2xhKDAsIDEwMCUsIDEwMCUsIDAuMyk7Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxl
Y3Rvci1pdGVtID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7Ci0gICAgdmVydGljYWwtYWxpZ246IDFw
eDsKLSAgICBmb250LXNpemU6IDlweDsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9y
LWl0ZW0uc2VsZWN0ZWQgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKLSAgICBjb2xvcjogaW5oZXJp
dDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDliZWM1YTIyY2NiZTdhOTQ0YjU3YjlmMzg2NThi
MGNjYmEyNWNmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNl
bGVjdG9yVHJlZUl0ZW0uanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLVdJLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxl
U2VsZWN0b3JUcmVlSXRlbSBleHRlbmRzIFdJLkdlbmVyYWxUcmVlRWxlbWVudAotewotICAgIGNv
bnN0cnVjdG9yKGRlbGVnYXRlLCBzdHlsZSwgdGl0bGUsIHN1YnRpdGxlKQotICAgIHsKLSAgICAg
ICAgbGV0IGljb25DbGFzc05hbWU7Ci0gICAgICAgIHN3aXRjaCAoc3R5bGUudHlwZSkgewotICAg
ICAgICBjYXNlIFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlOgotICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoc3R5bGUub3duZXJSdWxlIGluc3RhbmNlb2YgV0kuQ1NTUnVsZSwgc3R5
bGUub3duZXJSdWxlKTsKLQotICAgICAgICAgICAgaWYgKHN0eWxlLmluaGVyaXRlZCkKLSAgICAg
ICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
SW5oZXJpdGVkU3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAgZWxzZSBp
ZiAoc3R5bGUub3duZXJSdWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlU2hlZXQuVHlwZS5BdXRob3Ip
Ci0gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLkF1dGhvclN0eWxlUnVsZUljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHN0eWxlLm93bmVyUnVsZS50eXBlID09PSBXSS5DU1NTdHlsZVNoZWV0LlR5cGUuVXNl
cikKLSAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24uVXNlclN0eWxlUnVsZUljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHN0eWxlLm93bmVyUnVsZS50eXBlID09PSBXSS5DU1NTdHlsZVNoZWV0LlR5cGUuVXNl
ckFnZW50KQotICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXSS5DU1NTdHlsZURlY2xh
cmF0aW9uU2VjdGlvbi5Vc2VyQWdlbnRTdHlsZVJ1bGVJY29uU3R5bGVDbGFzc05hbWU7Ci0gICAg
ICAgICAgICBlbHNlIGlmIChzdHlsZS5vd25lclJ1bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVTaGVl
dC5UeXBlLkluc3BlY3RvcikKLSAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uSW5zcGVjdG9yU3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NO
YW1lOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBXSS5DU1NTdHlsZURlY2xh
cmF0aW9uLlR5cGUuSW5saW5lOgotICAgICAgICBjYXNlIFdJLkNTU1N0eWxlRGVjbGFyYXRpb24u
VHlwZS5BdHRyaWJ1dGU6Ci0gICAgICAgICAgICBpZiAoc3R5bGUuaW5oZXJpdGVkKQotICAgICAg
ICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5J
bmhlcml0ZWRFbGVtZW50U3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXSS5ET01UcmVlRWxlbWVudFBh
dGhDb21wb25lbnQuRE9NRWxlbWVudEljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGljb25DbGFzc2VzID0gW2ljb25DbGFzc05h
bWVdOwotICAgICAgICBpZiAoc3R5bGUub3duZXJSdWxlICYmIHN0eWxlLm93bmVyUnVsZS5oYXNN
YXRjaGVkUHNldWRvRWxlbWVudFNlbGVjdG9yKCkpCi0gICAgICAgICAgICBpY29uQ2xhc3Nlcy5w
dXNoKFdJLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlBzZXVkb0VsZW1lbnRTZWxlY3RvclN0
eWxlQ2xhc3NOYW1lKTsKLQotICAgICAgICB0aXRsZSA9IHRpdGxlLnRyaW0oKTsKLQotICAgICAg
ICBzdXBlcihbInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtIiwgLi4uaWNvbkNsYXNzZXNdLCB0
aXRsZSwgc3VidGl0bGUsIHN0eWxlKTsKLQotICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVn
YXRlOwotCi0gICAgICAgIHRoaXMuX2ljb25DbGFzc2VzID0gaWNvbkNsYXNzZXM7Ci0gICAgICAg
IHRoaXMuX2xhc3RWYWx1ZSA9IHRpdGxlOwotICAgICAgICB0aGlzLl9lbmFibGVFZGl0aW5nID0g
dHJ1ZTsKLSAgICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yID0gZmFsc2U7Ci0gICAgfQot
Ci0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgaWNvbkNsYXNzTmFtZSgpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5faWNvbkNsYXNzZXMuam9pbigiICIpOwotICAgIH0KLQotICAgIGdldCBz
ZWxlY3RvclRleHQoKQotICAgIHsKLSAgICAgICAgbGV0IHRpdGxlVGV4dCA9IHRoaXMuX21haW5U
aXRsZUVsZW1lbnQudGV4dENvbnRlbnQ7Ci0gICAgICAgIGlmICghdGl0bGVUZXh0IHx8ICF0aXRs
ZVRleHQubGVuZ3RoKQotICAgICAgICAgICAgdGl0bGVUZXh0ID0gdGhpcy5fbWFpblRpdGxlOwot
Ci0gICAgICAgIHJldHVybiB0aXRsZVRleHQudHJpbSgpOwotICAgIH0KLQotICAgIC8vIFByb3Rl
Y3RlZAotCi0gICAgb25hdHRhY2goKQotICAgIHsKLSAgICAgICAgc3VwZXIub25hdHRhY2goKTsK
LQotICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVy
IiwgdGhpcy5faGlnaGxpZ2h0Tm9kZXNXaXRoU2VsZWN0b3IuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMuX2xpc3RJdGVtTm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX2hp
ZGVET01Ob2RlSGlnaGxpZ2h0LmJpbmQodGhpcykpOwotCi0gICAgICAgIHRoaXMuX2NoZWNrYm94
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMu
X2NoZWNrYm94RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsKLSAgICAgICAgdGhpcy5fY2hlY2ti
b3hFbGVtZW50LmNoZWNrZWQgPSAhdGhpcy5yZXByZXNlbnRlZE9iamVjdFtXSS5WaXN1YWxTdHls
ZURldGFpbHNQYW5lbC5TdHlsZURpc2FibGVkU3ltYm9sXTsKLSAgICAgICAgdGhpcy5fdXBkYXRl
Q2hlY2tib3hUaXRsZSgpOwotICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5faGFuZGxlQ2hlY2tib3hDaGFuZ2VkLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2NoZWNrYm94
RWxlbWVudCwgdGhpcy5faWNvbkVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2Vk
LmJpbmQodGhpcykpOwotCi0gICAgICAgIHRoaXMuX21haW5UaXRsZUVsZW1lbnQuc3BlbGxjaGVj
ayA9IGZhbHNlOwotICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU1haW5UaXRsZU1vdXNlRG93bi5iaW5kKHRoaXMp
KTsKLSAgICAgICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlk
b3duIiwgdGhpcy5faGFuZGxlTWFpblRpdGxlS2V5RG93bi5iaW5kKHRoaXMpKTsKLSAgICAgICAg
dGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX2hp
Z2hsaWdodE5vZGVzV2l0aFNlbGVjdG9yLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9tYWlu
VGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0aGlzLl9jb21taXRTZWxlY3Rv
ci5iaW5kKHRoaXMpKTsKLQotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50
TGlzdGVuZXIoV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5FdmVudC5Jbml0aWFsVGV4dE1vZGlmaWVk
LCB0aGlzLl9zdHlsZVRleHRNb2RpZmllZCwgdGhpcyk7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0Lm93bmVyUnVsZSkKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Qub3duZXJSdWxlLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ1NTUnVsZS5FdmVudC5TZWxlY3RvckNo
YW5nZWQsIHRoaXMuX3VwZGF0ZVNlbGVjdG9ySWNvbiwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5f
c3R5bGVUZXh0TW9kaWZpZWQoKTsKLSAgICB9Ci0KLSAgICBvbmRlc2VsZWN0KCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0YWJsZSIpOwot
ICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IGZhbHNlOwot
ICAgIH0KLQotICAgIHBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50KQotICAg
IHsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBSdWxl
IiksICgpID0+IHsKLSAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QubW9kaWZpZWQpIHsKLSAg
ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJlc2V0IiksICgp
ID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlc2V0VGV4dCgp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXRoaXMucmVwcmVz
ZW50ZWRPYmplY3Qub3duZXJSdWxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlNob3cgU291cmNlIiksICgpID0+IHsK
LSAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICAgICAgaWdub3JlTmV0
d29ya1RhYjogdHJ1ZSwKLSAgICAgICAgICAgICAgICBpZ25vcmVTZWFyY2hUYWI6IHRydWUsCi0g
ICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBpZiAoZXZlbnQubWV0YUtleSkKLSAgICAgICAg
ICAgICAgICBXSS5zaG93T3JpZ2luYWxVbmZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbih0aGlz
LnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zb3VyY2VDb2RlTG9jYXRpb24sIG9wdGlvbnMp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdJLnNob3dTb3VyY2VDb2RlTG9j
YXRpb24odGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9u
LCBvcHRpb25zKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gT25seSB1c2VkIG9uZSBjb2xv
biB0ZW1wb3JhcmlseSBzaW5jZSBzaW5nbGUtY29sb24gcHNldWRvIGVsZW1lbnRzIGFyZSB2YWxp
ZCBDU1MuCi0gICAgICAgIGlmIChXSS5DU1NTdHlsZU1hbmFnZXIuUHNldWRvRWxlbWVudE5hbWVz
LnNvbWUoKGNsYXNzTmFtZSkgPT4gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zZWxlY3RvclRleHQu
aW5jbHVkZXMoIjoiICsgY2xhc3NOYW1lKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKFdJLkNTU1N0eWxlTWFuYWdlci5Gb3JjZWFibGVQc2V1ZG9DbGFzc2VzLmV2ZXJ5KChj
bGFzc05hbWUpID0+ICF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNlbGVjdG9yVGV4dC5pbmNsdWRl
cygiOiIgKyBjbGFzc05hbWUpKSkgewotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2Vw
YXJhdG9yKCk7Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHBzZXVkb0NsYXNzIG9mIFdJLkNTU1N0
eWxlTWFuYWdlci5Gb3JjZWFibGVQc2V1ZG9DbGFzc2VzKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KHBzZXVkb0NsYXNzID09PSAidmlzaXRlZCIgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2Rl
Lm5vZGVOYW1lKCkgIT09ICJBIikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAg
ICAgICAgICAgICAgICBsZXQgcHNldWRvQ2xhc3NTZWxlY3RvciA9ICI6IiArIHBzZXVkb0NsYXNz
OwotCi0gICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygi
QWRkICVzIFJ1bGUiKS5mb3JtYXQocHNldWRvQ2xhc3NTZWxlY3RvciksICgpID0+IHsKLSAgICAg
ICAgICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlLnNldFBzZXVkb0NsYXNz
RW5hYmxlZChwc2V1ZG9DbGFzcywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBwc2V1
ZG9TZWxlY3RvcnMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvcnMu
bWFwKChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCArIHBzZXVkb0NsYXNzU2VsZWN0b3IpOwot
ICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRk
UnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCAiKSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBh
cmF0b3IoKTsKLQotICAgICAgICBmb3IgKGxldCBwc2V1ZG9FbGVtZW50IG9mIFdJLkNTU1N0eWxl
TWFuYWdlci5Qc2V1ZG9FbGVtZW50TmFtZXMpIHsKLSAgICAgICAgICAgIGxldCBwc2V1ZG9FbGVt
ZW50U2VsZWN0b3IgPSAiOjoiICsgcHNldWRvRWxlbWVudDsKLSAgICAgICAgICAgIGNvbnN0IHN0
eWxlVGV4dCA9ICJjb250ZW50OiBcIlwiOyI7Ci0KLSAgICAgICAgICAgIGxldCBleGlzdGluZ1Ry
ZWVJdGVtID0gbnVsbDsKLSAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2Yg
dGhpcy5fZGVsZWdhdGUudHJlZUl0ZW1Gb3JTdHlsZSA9PT0gImZ1bmN0aW9uIikgewotICAgICAg
ICAgICAgICAgIGxldCBzZWxlY3RvclRleHQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVy
UnVsZS5zZWxlY3RvclRleHQ7Ci0gICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMucnVsZXNGb3JTZWxlY3RvcihzZWxlY3Rv
clRleHQgKyBwc2V1ZG9FbGVtZW50U2VsZWN0b3IpOwotICAgICAgICAgICAgICAgIGlmIChleGlz
dGluZ1J1bGVzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGRu
J3QgcmVhbGx5IGV2ZXIgYmUgbW9yZSB0aGFuIG9uZSBwc2V1ZG8tZWxlbWVudCBydWxlCi0gICAg
ICAgICAgICAgICAgICAgIC8vIHRoYXQgaXMgbm90IGluIGEgbWVkaWEgcXVlcnkuIEFzIHN1Y2gs
IGp1c3QgZm9jdXMgdGhlIGZpcnN0IHJ1bGUKLSAgICAgICAgICAgICAgICAgICAgLy8gb24gdGhl
IGFzc3VtcHRpb24gdGhhdCBpdCBpcyB0aGUgb25seSBvbmUgbmVjZXNzYXJ5LgotICAgICAgICAg
ICAgICAgICAgICBleGlzdGluZ1RyZWVJdGVtID0gdGhpcy5fZGVsZWdhdGUudHJlZUl0ZW1Gb3JT
dHlsZShleGlzdGluZ1J1bGVzWzBdLnN0eWxlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGxldCB0aXRsZSA9IGV4aXN0aW5nVHJlZUl0ZW0gPyBXSS5V
SVN0cmluZygiU2VsZWN0ICVzIFJ1bGUiKSA6IFdJLlVJU3RyaW5nKCJDcmVhdGUgJXMgUnVsZSIp
OwotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbSh0aXRsZS5mb3JtYXQocHNldWRv
RWxlbWVudFNlbGVjdG9yKSwgKCkgPT4gewotICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1Ry
ZWVJdGVtKSB7Ci0gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVHJlZUl0ZW0uc2VsZWN0KHRy
dWUsIHRydWUpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBzZWxlY3Rvci50
ZXh0ICsgcHNldWRvRWxlbWVudFNlbGVjdG9yKTsKLSAgICAgICAgICAgICAgICB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCAi
KSwgc3R5bGVUZXh0KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgc3Vw
ZXIucG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQpOwotICAgIH0KLQotICAg
IC8vIFByaXZhdGUKLQotICAgIF9oaWdobGlnaHROb2Rlc1dpdGhTZWxlY3RvcigpCi0gICAgewot
ICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7Ci0gICAgICAg
ICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKHRoaXMucmVwcmVzZW50ZWRP
YmplY3Qubm9kZS5pZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRTZWxlY3Rvcih0aGlzLnNlbGVjdG9yVGV4dCwg
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlLm93bmVyRG9jdW1lbnQuZnJhbWVJZGVudGlmaWVy
KTsKLSAgICB9Ci0KLSAgICBfaGlkZURPTU5vZGVIaWdobGlnaHQoKQotICAgIHsKLSAgICAgICAg
V0kuZG9tVHJlZU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLSAgICB9Ci0KLSAgICBf
aGFuZGxlQ2hlY2tib3hDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fdXBkYXRl
Q2hlY2tib3hUaXRsZSgpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
SS5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uRXZlbnQuQ2hlY2tib3hDaGFuZ2VkLCB7ZW5h
YmxlZDogdGhpcy5fY2hlY2tib3hFbGVtZW50LmNoZWNrZWR9KTsKLSAgICB9Ci0KLSAgICBfdXBk
YXRlQ2hlY2tib3hUaXRsZSgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fY2hlY2tib3hFbGVt
ZW50LmNoZWNrZWQpCi0gICAgICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQudGl0bGUgPSBX
SS5VSVN0cmluZygiQ29tbWVudCBvdXQgcnVsZSIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0aGlzLl9jaGVja2JveEVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiVW5jb21tZW50IHJ1
bGUiKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlTWFpblRpdGxlTW91c2VEb3duKGV2ZW50KQotICAg
IHsKLSAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3Qu
dG9nZ2xlKCJlZGl0YWJsZSIsIHRoaXMuc2VsZWN0ZWQpOwotICAgICAgICB0aGlzLl9tYWluVGl0
bGVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IHRoaXMuc2VsZWN0ZWQgPyAicGxhaW50ZXh0LW9u
bHkiIDogZmFsc2U7Ci0gICAgfQotCi0gICAgX2hhbmRsZU1haW5UaXRsZUtleURvd24oZXZlbnQp
Ci0gICAgewotICAgICAgICB0aGlzLl9oaWdobGlnaHROb2Rlc1dpdGhTZWxlY3RvcigpOwotCi0g
ICAgICAgIGxldCBlbnRlcktleUNvZGUgPSBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5FbnRlci5r
ZXlDb2RlOwotICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gZW50ZXJLZXlDb2RlKQotICAg
ICAgICAgICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5ibHVyKCk7Ci0gICAgfQotCi0gICAgX2Nv
bW1pdFNlbGVjdG9yKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0
KCk7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0YWJs
ZSIpOwotICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IGZh
bHNlOwotICAgICAgICB0aGlzLl91cGRhdGVUaXRsZVRvb2x0aXAoKTsKLQotICAgICAgICBsZXQg
dmFsdWUgPSB0aGlzLnNlbGVjdG9yVGV4dDsKLSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9s
YXN0VmFsdWUgJiYgIXRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRl
eHQgPSB2YWx1ZTsKLSAgICB9Ci0KLSAgICBfc3R5bGVUZXh0TW9kaWZpZWQoKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC50b2dnbGUoIm1vZGlmaWVkIiwgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5tb2RpZmllZCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVNlbGVj
dG9ySWNvbihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9
IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgIWV2ZW50LmRhdGEudmFsaWQ7Ci0gICAgICAgIHRoaXMu
X2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJzZWxlY3Rvci1pbnZhbGlkIiwgISF0aGlz
Ll9oYXNJbnZhbGlkU2VsZWN0b3IpOwotICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVj
dG9yKSB7Ci0gICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5n
KCJUaGUgc2VsZWN0b3Ig4oCcJXPigJ0gaXMgaW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0
aGUgcHJldmlvdXMgc2VsZWN0b3IuIikuZm9ybWF0KHRoaXMuc2VsZWN0b3JUZXh0KTsKLSAgICAg
ICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJVc2luZyBw
cmV2aW91cyBzZWxlY3RvciDigJwlc+KAnSIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
Lm93bmVyUnVsZS5zZWxlY3RvclRleHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBudWxsOwotICAgICAgICB0aGlz
Lm1haW5UaXRsZUVsZW1lbnQudGl0bGUgPSBudWxsOwotCi0gICAgICAgIGxldCBoYXNNYXRjaGVk
UHNldWRvRWxlbWVudFNlbGVjdG9yID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUg
JiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuaGFzTWF0Y2hlZFBzZXVkb0VsZW1l
bnRTZWxlY3RvcigpOwotICAgICAgICB0aGlzLl9pY29uQ2xhc3Nlcy50b2dnbGVJbmNsdWRlcyhX
SS5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5Qc2V1ZG9FbGVtZW50U2VsZWN0b3JTdHlsZUNs
YXNzTmFtZSwgaGFzTWF0Y2hlZFBzZXVkb0VsZW1lbnRTZWxlY3Rvcik7Ci0gICAgfQotCi0gICAg
X2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlz
Ll9oYXNJbnZhbGlkU2VsZWN0b3IgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUp
IHsKLSAgICAgICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMu
X2xhc3RWYWx1ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9yVGV4
dDsKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdG9ySWNvbigpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotfTsKLQotV0kuVmlzdWFsU3R5bGVTZWxlY3RvclRy
ZWVJdGVtLkV2ZW50ID0gewotICAgIENoZWNrYm94Q2hhbmdlZDogInZpc3VhbC1zdHlsZS1zZWxl
Y3Rvci1pdGVtLWNoZWNrYm94LWNoYW5nZWQiCi19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVz
Um93LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFiNTU1MGUxMTRhZThlYzI1NGQwYzEwZGMzMTFiNTBkYTM1ODMzMjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93LmNzcwor
KysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0udmlzdWFsLXN0eWxl
LXRhYmJlZC1wcm9wZXJ0aWVzLXJvdyB+IDpub3QoLnZpc2libGUpIHsKLSAgICB2aXNpYmlsaXR5
OiBoaWRkZW47Ci0gICAgaGVpZ2h0OiAwOwotfQotCi0udmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9w
ZXJ0aWVzLXJvdyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93LWNvbnRhaW5l
ciB7Ci0gICAgbWFyZ2luOiAwIGF1dG87Ci19Ci0KLS52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3Bl
cnRpZXMtcm93ID4gLnZpc3VhbC1zdHlsZS10YWJiZWQtcHJvcGVydGllcy1yb3ctY29udGFpbmVy
ID4gYnV0dG9uIHsKLSAgICBtYXJnaW46IDAgMnB4IDJweDsKLSAgICBib3JkZXItcmFkaXVzOiAz
cHg7Ci0gICAgYm9yZGVyLXdpZHRoOiAwIDFweDsKLSAgICBib3JkZXItY29sb3I6IHRyYW5zcGFy
ZW50OwotICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotfQotCi0udmlzdWFsLXN0
eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJvdyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRp
ZXMtcm93LWNvbnRhaW5lciA+IGJ1dHRvbi5zZWxlY3RlZCB7Ci0gICAgY29sb3I6IHZhcigtLXNl
bGVjdGVkLWZvcmVncm91bmQtY29sb3IpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNl
bGVjdGVkLWJhY2tncm91bmQtY29sb3IpOwotfQotCi0udmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9w
ZXJ0aWVzLXJvdyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93LWNvbnRhaW5l
ciA+IGJ1dHRvbjpub3QoLnNlbGVjdGVkKTpob3ZlciB7Ci0gICAgY29sb3I6IHdoaXRlOwotICAg
IGJhY2tncm91bmQtY29sb3I6IGhzbGEoMjEzLCA5MiUsIDU1JSwgMC41KTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VGFiYmVkUHJvcGVydGllc1Jvdy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzdlNTU5NGFlMjNmOWM5ZWU4MmM4NjgzYzU4MzgyYjQxYjVhM2Q5
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRhYmJlZFByb3Bl
cnRpZXNSb3cuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
V0kuVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93ID0gY2xhc3MgVmlzdWFsU3R5bGVUYWJi
ZWRQcm9wZXJ0aWVzUm93IGV4dGVuZHMgV0kuRGV0YWlsc1NlY3Rpb25Sb3cKLXsKLSAgICBjb25z
dHJ1Y3Rvcih0YWJNYXApCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMu
X2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJv
dyIpOwotCi0gICAgICAgIGxldCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmlz
dWFsLXN0eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJvdy1jb250YWluZXIiKTsKLQotICAgICAgICB0
aGlzLl90YWJCdXR0b25zID0gW107Ci0gICAgICAgIHRoaXMuX3RhYk1hcCA9IHRhYk1hcDsKLSAg
ICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3RhYk1hcCkgewotICAgICAgICAgICAgbGV0IGJ1
dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICAgICAgYnV0
dG9uLmlkID0ga2V5OwotICAgICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gdGhpcy5fdGFi
TWFwW2tleV0udGl0bGU7Ci0gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl9oYW5kbGVCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOwotCi0gICAgICAgICAg
ICBjb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGJ1dHRvbik7Ci0gICAgICAgICAgICB0aGlz
Ll90YWJCdXR0b25zLnB1c2goYnV0dG9uKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBmaXJz
dEJ1dHRvbiA9IHRoaXMuX3RhYkJ1dHRvbnNbMF07Ci0gICAgICAgIGZpcnN0QnV0dG9uLmNsYXNz
TGlzdC5hZGQoInNlbGVjdGVkIik7Ci0gICAgICAgIHRoaXMuX3RhYk1hcFtmaXJzdEJ1dHRvbi5p
ZF0uZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIik7Ci0KLSAgICAgICAgdGhpcy5fZWxl
bWVudC5hcHBlbmRDaGlsZChjb250YWluZXJFbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfaGFuZGxlQnV0dG9uQ2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGZv
ciAobGV0IGl0ZW0gb2YgdGhpcy5fdGFiQnV0dG9ucykgewotICAgICAgICAgICAgbGV0IHRhYiA9
IHRoaXMuX3RhYk1hcFtpdGVtLmlkXTsKLSAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGl0ZW0g
PT09IGV2ZW50LnRhcmdldDsKLSAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnRvZ2dsZSgic2Vs
ZWN0ZWQiLCBzZWxlY3RlZCk7Ci0gICAgICAgICAgICB0YWIuZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJ2aXNpYmxlIiwgc2VsZWN0ZWQpOwotICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlF
ZGl0b3Igb2YgdGFiLnByb3BlcnRpZXMpCi0gICAgICAgICAgICAgICAgcHJvcGVydHlFZGl0b3Iu
dXBkYXRlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVU
aW1pbmdFZGl0b3IuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjJjZmJlMzIw
YmE5NjZjNWFiOGRmZjM2MzJmYTU5MTYwMDI5YWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50
aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgewot
ICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+
IC5rZXl3b3JkLXBpY2tlci1zZWxlY3QgewotICAgIG9yZGVyOiAxOwotfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5z
cHJpbmcpIHsKLSAgICB3aWR0aDogMjNweDsKLSAgICBoZWlnaHQ6IDIwcHg7Ci19Ci0KLS52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12YWx1ZSkgPiAuaW5saW5lLXN3
YXRjaC5iZXppZXIsCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRp
dG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5zcHJpbmct
dmFsdWUpID4gLmlubGluZS1zd2F0Y2guc3ByaW5nIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQot
Ci1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAg
ICAgIG1hcmdpbi1sZWZ0OiAwLjVweDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VGltaW5nRWRpdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODQxYzg1Njk4
NTE1NGJiZTI3Zjg0NzQ1NjVhYWJiYjg2OWQ2MTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvciA9IGNsYXNz
IFZpc3VhbFN0eWxlVGltaW5nRWRpdG9yIGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlj
a2VyCi17Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1
ZXMsIGxheW91dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywg
dGV4dCwgcG9zc2libGVWYWx1ZXMsIGxheW91dFJldmVyc2VkKTsKLQotICAgICAgICB0aGlzLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgidGltaW5nLWVkaXRvciIpOwotCi0gICAgICAgIHRoaXMuX2tl
eXdvcmRTZWxlY3RFbGVtZW50LmNyZWF0ZUNoaWxkKCJociIpOwotCi0gICAgICAgIHRoaXMuX2N1
c3RvbUJlemllck9wdGlvbkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVh
dGVDaGlsZCgib3B0aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1l
bnQudmFsdWUgPSAiYmV6aWVyIjsKLSAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxl
bWVudC50ZXh0ID0gV0kuVUlTdHJpbmcoIkJlemllciIpOwotCi0gICAgICAgIHRoaXMuX2N1c3Rv
bVNwcmluZ09wdGlvbkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVD
aGlsZCgib3B0aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQu
dmFsdWUgPSAic3ByaW5nIjsKLSAgICAgICAgdGhpcy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVu
dC50ZXh0ID0gV0kuVUlTdHJpbmcoIlNwcmluZyIpOwotCi0gICAgICAgIHRoaXMuX2JlemllclN3
YXRjaCA9IG5ldyBXSS5JbmxpbmVTd2F0Y2goV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKTsK
LSAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLmFkZEV2ZW50TGlzdGVuZXIoV0kuSW5saW5lU3dh
dGNoLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fYmV6aWVyU3dhdGNoVmFsdWVDaGFuZ2VkLCB0
aGlzKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9iZXpp
ZXJTd2F0Y2guZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fc3ByaW5nU3dhdGNoID0gbmV3IFdJ
LklubGluZVN3YXRjaChXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpOwotICAgICAgICB0aGlz
Ll9zcHJpbmdTd2F0Y2guYWRkRXZlbnRMaXN0ZW5lcihXSS5JbmxpbmVTd2F0Y2guRXZlbnQuVmFs
dWVDaGFuZ2VkLCB0aGlzLl9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5nZWQsIHRoaXMpOwotICAgICAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NwcmluZ1N3YXRjaC5lbGVt
ZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIGdldCB2YWx1ZSgpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzLl9iZXppZXJWYWx1ZTsKLQotICAgICAgICBpZiAodGhp
cy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLl9zcHJpbmdWYWx1ZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIudmFsdWU7Ci0gICAg
fQotCi0gICAgc2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYmV6aWVyVmFs
dWUgPSB2YWx1ZTsKLSAgICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSB2YWx1ZTsKLSAgICAgICAg
aWYgKHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7Ci0gICAgICAgICAgICBz
dXBlci52YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFz
c0xpc3QucmVtb3ZlKCJiZXppZXItdmFsdWUiLCAic3ByaW5nLXZhbHVlIik7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVy
VmFsdWU7Ci0gICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQg
PSAhIWJlemllcjsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xl
KCJiZXppZXItdmFsdWUiLCAhIWJlemllcik7Ci0KLSAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMu
X3NwcmluZ1ZhbHVlOwotICAgICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNl
bGVjdGVkID0gISFzcHJpbmc7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZSgic3ByaW5nLXZhbHVlIiwgISFzcHJpbmcpOwotCi0gICAgICAgIHRoaXMuc3BlY2lh
bFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhYmV6aWVyIHx8ICEhc3ByaW5n
OwotICAgICAgICBpZiAoIWJlemllciAmJiAhc3ByaW5nKQotICAgICAgICAgICAgc3VwZXIudmFs
dWUgPSB2YWx1ZTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewot
ICAgICAgICBpZiAodGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9iZXppZXJWYWx1ZTsKLQotICAgICAgICBpZiAodGhpcy5f
Y3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiB0
aGlzLl9zcHJpbmdWYWx1ZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIuc3ludGhlc2l6ZWRWYWx1
ZTsKLSAgICB9Ci0KLSAgICBwYXJzZVZhbHVlKHRleHQpCi0gICAgewotICAgICAgICByZXR1cm4g
LygoPzpjdWJpYy1iZXppZXJ8c3ByaW5nKVwoLitcKSkvLmV4ZWModGV4dCk7Ci0gICAgfQotCi0g
ICAgLy8gUHJpdmF0ZQotCi0gICAgZ2V0IF9iZXppZXJWYWx1ZSgpCi0gICAgewotICAgICAgICBs
ZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlOwotICAgICAgICBpZiAoIWJlemll
cikKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHJldHVybiBiZXppZXIudG9T
dHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzZXQgX2JlemllclZhbHVlKHRleHQpCi0gICAgewotICAg
ICAgICB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWUgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5n
KHRleHQpOwotICAgIH0KLQotICAgIGdldCBfc3ByaW5nVmFsdWUoKQotICAgIHsKLSAgICAgICAg
bGV0IHNwcmluZyA9IHRoaXMuX3NwcmluZ1N3YXRjaC52YWx1ZTsKLSAgICAgICAgaWYgKCFzcHJp
bmcpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gc3ByaW5nLnRv
U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgc2V0IF9zcHJpbmdWYWx1ZSh0ZXh0KQotICAgIHsKLSAg
ICAgICAgdGhpcy5fc3ByaW5nU3dhdGNoLnZhbHVlID0gV0kuU3ByaW5nLmZyb21TdHJpbmcodGV4
dCk7Ci0gICAgfQotCi0gICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKCkKLSAgICB7Ci0gICAgICAg
IHN1cGVyLl9oYW5kbGVLZXl3b3JkQ2hhbmdlZCgpOwotCi0gICAgICAgIGxldCBjdXN0b21CZXpp
ZXJPcHRpb25TZWxlY3RlZCA9IHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0
ZWQ7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiYmV6aWVy
LXZhbHVlIiwgISFjdXN0b21CZXppZXJPcHRpb25TZWxlY3RlZCk7Ci0gICAgICAgIGlmIChjdXN0
b21CZXppZXJPcHRpb25TZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuX2JlemllclZhbHVlID0g
ImxpbmVhciI7Ci0KLSAgICAgICAgbGV0IGN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVkID0gdGhp
cy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZDsKLSAgICAgICAgdGhpcy5jb250
ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJzcHJpbmctdmFsdWUiLCAhIWN1c3RvbVNwcmlu
Z09wdGlvblNlbGVjdGVkKTsKLSAgICAgICAgaWYgKGN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVk
KQotICAgICAgICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSAiMSAxMDAgMTAgMCI7Ci0KLSAgICAg
ICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gISFjdXN0
b21CZXppZXJPcHRpb25TZWxlY3RlZCB8fCAhIWN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVkOwot
ICAgIH0KLQotICAgIF9iZXppZXJTd2F0Y2hWYWx1ZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAg
ICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLQotICAgIF9zcHJpbmdTd2F0Y2hW
YWx1ZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgp
OwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmQ1NjI2MjFiYjYzMjliMDliZjMxZjIyNTdhMmJlNjQ0MjNjZDcz
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVSTElucHV0Lmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0
eWxlVVJMSW5wdXQgPSBjbGFzcyBWaXN1YWxTdHlsZVVSTElucHV0IGV4dGVuZHMgV0kuVmlzdWFs
U3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRl
eHQsIHBvc3NpYmxlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7Ci0gICAgICAgIHN1cGVy
KHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBudWxsLCAidXJsLWlucHV0Iiwg
bGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVu
dC50eXBlID0gInVybCI7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC5wbGFjZWhvbGRl
ciA9IFdJLlVJU3RyaW5nKCJFbnRlciBhIFVSTCIpOwotICAgICAgICB0aGlzLl91cmxJbnB1dEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLmRlYm91bmNlKDI1MCkuX3ZhbHVl
RGlkQ2hhbmdlKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlz
Ll91cmxJbnB1dEVsZW1lbnQpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHZh
bHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91cmxJbnB1dEVsZW1lbnQudmFsdWU7
Ci0gICAgfQotCi0gICAgc2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCh2YWx1
ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkgfHwgdGhpcy5fcHJvcGVydHlNaXNzaW5nKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC52YWx1ZSA9
IHZhbHVlOwotICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAg
ICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVl
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGlmICh0aGlzLnZh
bHVlSXNTdXBwb3J0ZWRLZXl3b3JkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsK
LQotICAgICAgICByZXR1cm4gInVybCgiICsgdmFsdWUgKyAiKSI7Ci0gICAgfQotCi0gICAgLy8g
UHJvdGVjdGVkCi0KLSAgICBwYXJzZVZhbHVlKHRleHQpCi0gICAgewotICAgICAgICBpZiAodGhp
cy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh0ZXh0KSkKLSAgICAgICAgICAgIHJldHVybiBbdGV4
dCwgdGV4dF07Ci0KLSAgICAgICAgcmV0dXJuIC9eKD86dXJsXChccyopKFteXCldKikoPzpccypc
KVxzKjs/KSQvLmV4ZWModGV4dCk7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVu
aXRTbGlkZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTM1ZWI3ZmFjNjFl
YWFiMDI3MmQ5YmE2N2FiMWRhZmIyNmY4ZTQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1z
bGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIg
ewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICBtYXJnaW46IDVweCAxcHggMDsKLSAgICBi
YWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCBibGFj
ayksIHVybCguLi9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5zbGlkZXIgPiBpbWcgewotICAgIHRvcDogLTFweDsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VW5pdFNsaWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDkyMzdhMmFjZjMzYWY2N2I4OGMxYmViYzJhZTQ1MzJhOWQzNGQ4YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVVbml0U2xpZGVyID0g
Y2xhc3MgVmlzdWFsU3R5bGVVbml0U2xpZGVyIGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0
eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBsYXlvdXRS
ZXZlcnNlZCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBudWxs
LCBudWxsLCAidW5pdC1zbGlkZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5f
c2xpZGVyID0gbmV3IFdJLlNsaWRlcjsKLSAgICAgICAgdGhpcy5fc2xpZGVyLmRlbGVnYXRlID0g
dGhpczsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zbGlk
ZXIuZWxlbWVudCk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQgdmFsdWUodmFs
dWUpCi0gICAgewotICAgICAgICBsZXQga25vYlggPSBwYXJzZUZsb2F0KHZhbHVlKTsKLSAgICAg
ICAgaWYgKGlzTmFOKGtub2JYKSkKLSAgICAgICAgICAgIGtub2JYID0gcGFyc2VGbG9hdCh0aGlz
Ll91cGRhdGVkVmFsdWVzLnBsYWNlaG9sZGVyKSB8fCAwOwotCi0gICAgICAgIHRoaXMuX3NsaWRl
ci5rbm9iWCA9IGtub2JYOwotICAgIH0KLQotICAgIGdldCB2YWx1ZSgpCi0gICAgewotICAgICAg
ICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLl9zbGlkZXIudmFsdWUgKiAxMDApIC8gMTAwOwotICAg
IH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLnZhbHVlOwotICAgIH0KLQotICAgIHJlY2FsY3VsYXRlV2lkdGgodmFsdWUpCi0gICAgewot
ICAgICAgICB0aGlzLl9zbGlkZXIucmVjYWxjdWxhdGVLbm9iWCgpOwotICAgIH0KLQotICAgIHNs
aWRlclZhbHVlRGlkQ2hhbmdlKHNsaWRlciwgdmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl92
YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLX07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350280</attachid>
            <date>2018-09-20 16:46:02 -0700</date>
            <delta_ts>2018-09-20 19:05:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189807-20180920164601.patch</filename>
            <type>text/plain</type>
            <size>402154</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJjODY3YmUxY2RjMDg3ZWVlOTU0MmE0MDY0YmJm
OTAwMDlkNDFjNzYuLmU0NTM4Y2IyMjg2ZmIyZTYzYjEwMTMyYzA1YWViMjBhMmJiMmMwNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDE4LTA5LTIwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBy
ZW1vdmUgVmlzdWFsIFN0eWxlIENTUyBkZXRhaWxzIHNpZGViYXIgcGFuZWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTgwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBUaGUgVmlzdWFsIFN0eWxlIENT
UyBkZXRhaWxzIHNpZGViYXIgcGFuZWwgaGFzIGJlZW4gaGlkZGVuIGJlaGluZCBhbiAiZXhwZXJp
bWVudGFsIiBzZXR0aW5nCisgICAgICAgIGZvciBhbG1vc3QgYSB5ZWFyLiAgSXQncyB0aW1lIHRo
YXQgd2UgcmVtb3ZlIGl0LgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpz
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuRWxl
bWVudHNUYWJDb250ZW50Vmlldyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TZXR0
aW5nc1RhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuU2V0dGluZ3NUYWJDb250ZW50Vmll
dy5wcm90b3R5cGUuX2NyZWF0ZUV4cGVyaW1lbnRhbFNldHRpbmdzVmlldyk6CisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVQYXVzZWQuc3ZnOiBSZW1v
dmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FuaW1hdGlvblBsYXlTdGF0ZVJ1
bm5pbmcuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFy
Qm90aC5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJM
ZWZ0LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhclJp
Z2h0LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdExl
ZnQuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0Umln
aHQuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHls
ZUl0YWxpYy5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvRm9u
dFN0eWxlTm9ybWFsLnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdl
cy9MaXN0U3R5bGVQb3NpdGlvbkluc2lkZS5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvTGlzdFN0eWxlUG9zaXRpb25PdXRzaWRlLnN2ZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3ZnOiBSZW1vdmVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnkuc3ZnOiBS
ZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkxlZnQuc3Zn
OiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnblJpZ2h0
LnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3Jh
dGlvbkxpbmVUaHJvdWdoLnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0RGVjb3JhdGlvbk92ZXJsaW5lLnN2ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmc6IFJlbW92ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybUNhcGl0YWxpemUuc3Zn
OiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1M
b3dlcmNhc2Uuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1Rl
eHRUcmFuc2Zvcm1VcHBlcmNhc2Uuc3ZnOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmc6IFJlbW92ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eUxpbmtlZC5zdmc6IFJlbW92ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eVVubGlua2Vk
LnN2ZzogUmVtb3ZlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVCYWNrZ3JvdW5kUGlja2VyLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3VuZFBpY2tlci5qczogUmVtb3ZlZC4KKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFzaWNJbnB1dC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3Nz
OiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xv
clBpY2tlci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmNzczogUmVtb3ZlZC4KKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRp
dG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVEZXRhaWxzUGFuZWwuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanM6IFJlbW92ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanM6IFJlbW92ZWQu
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUZvbnRGYW1pbHlMaXN0
RWRpdG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuanM6IFJlbW92ZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5jc3M6IFJlbW92ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5
d29yZEljb25MaXN0LmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzOiBSZW1vdmVkLgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveC5jc3M6
IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZU51bWJl
cklucHV0Qm94LmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVQcm9wZXJ0eUNvbWJpbmVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3M6IFJlbW92ZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0
eUVkaXRvckxpbmsuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvckxpbmsuanM6IFJlbW92ZWQuCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJl
clNsaWRlci5jc3M6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uY3NzOiBSZW1vdmVkLgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24u
anM6IFJlbW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNl
bGVjdG9yVHJlZUl0ZW0uY3NzOiBSZW1vdmVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93LmNzczogUmVt
b3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGFiYmVkUHJv
cGVydGllc1Jvdy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlk
ZXIuanM6IFJlbW92ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1Zp
c3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLmpzOiBSZW1vdmVkLgorCiAyMDE4LTA5LTE5
ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IG1vdmUgRGFya01vZGUuY3NzIHJ1bGVzIGludG8gYXBwcm9wcmlhdGUgQ1NTIGZp
bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAyMmMwZDFhNTgyMGJjODg2
YTM3MjM1ZTQ0OWE3YWQ1MjgyNTQ4MWNlLi41MDU2YzVhOGViOTQyMjFmYjQ1ZmFjOTJkMmExMmUx
MWRjMDZiZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTU3LDggKzU3
LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siKGFzeW5jKSJdID0gIihhc3luYykiOwogbG9jYWxpemVk
U3RyaW5nc1siKGRpc2spIl0gPSAiKGRpc2spIjsKIGxvY2FsaXplZFN0cmluZ3NbIihtYW55KSJd
ID0gIihtYW55KSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIobWVtb3J5KSJdID0gIihtZW1vcnkpIjsK
LWxvY2FsaXplZFN0cmluZ3NbIihtb2RpZnkgdGhlIGJveGVzIGJlbG93IHRvIGFkZCBhIHZhbHVl
KSJdID0gIihtb2RpZnkgdGhlIGJveGVzIGJlbG93IHRvIGFkZCBhIHZhbHVlKSI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyIobXVsdGlwbGUpIl0gPSAiKG11bHRpcGxlKSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyIocHJvZ3JhbSkiXSA9ICIocHJvZ3JhbSkiOwogbG9jYWxpemVkU3RyaW5nc1siKHNlcnZpY2Ug
d29ya2VyKSJdID0gIihzZXJ2aWNlIHdvcmtlcikiOwogbG9jYWxpemVkU3RyaW5nc1siKHVuaW5p
dGlhbGl6ZWQpIl0gPSAiKHVuaW5pdGlhbGl6ZWQpIjsKQEAgLTg2LDggKzg0LDYgQEAgbG9jYWxp
emVkU3RyaW5nc1siQWRkIHByb2JlIGV4cHJlc3Npb24iXSA9ICJBZGQgcHJvYmUgZXhwcmVzc2lv
biI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQgd2F0Y2ggZXhwcmVzc2lvbiJdID0gIkFkZCB3YXRj
aCBleHByZXNzaW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZGl0aW9ucyJdID0gIkFkZGl0aW9u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGRyZXNzIl0gPSAiQWRkcmVzcyI7Ci1sb2NhbGl6ZWRT
dHJpbmdzWyJBbGlnbiJdID0gIkFsaWduIjsKLWxvY2FsaXplZFN0cmluZ3NbIkFsaWdubWVudCJd
ID0gIkFsaWdubWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwiXSA9ICJBbGwiOwogbG9jYWxp
emVkU3RyaW5nc1siQWxsIENoYW5nZXMiXSA9ICJBbGwgQ2hhbmdlcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbGwgRXhjZXB0aW9ucyJdID0gIkFsbCBFeGNlcHRpb25zIjsKQEAgLTk1LDEzICs5MSwx
MSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJBbGwgTGF5ZXJzIl0gPSAiQWxsIExheWVycyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbGwgUmVxdWVzdHMiXSA9ICJBbGwgUmVxdWVzdHMiOwogbG9jYWxpemVk
U3RyaW5nc1siQWxsIFJlc291cmNlcyJdID0gIkFsbCBSZXNvdXJjZXMiOwogbG9jYWxpemVkU3Ry
aW5nc1siQWxsIFN0b3JhZ2UiXSA9ICJBbGwgU3RvcmFnZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJB
bHRlcm5hdGVzIl0gPSAiQWx0ZXJuYXRlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBv
Y2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJy
ZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBl
cnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gcmVhZCB0aGUg4oCcJXPigJ0gdGFibGUuIl0gPSAiQW4g
ZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIHJlYWQgdGhlIOKAnCVz4oCdIHRhYmxlLiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBbiB1bmV4cGVjdGVkIGVycm9yICVzIG9jY3VycmVkLiJdID0gIkFuIHVu
ZXhwZWN0ZWQgZXJyb3IgJXMgb2NjdXJyZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFuIHVuZXhw
ZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIl0gPSAiQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4i
OwogbG9jYWxpemVkU3RyaW5nc1siQW5nbGUiXSA9ICJBbmdsZSI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJBbmltYXRpb24iXSA9ICJBbmltYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siQW5pbWF0aW9u
IEZyYW1lICVkIENhbmNlbGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIENhbmNlbGVkIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFuaW1hdGlvbiBGcmFtZSAlZCBGaXJlZCJdID0gIkFuaW1hdGlvbiBG
cmFtZSAlZCBGaXJlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbmltYXRpb24gRnJhbWUgJWQgUmVx
dWVzdGVkIl0gPSAiQW5pbWF0aW9uIEZyYW1lICVkIFJlcXVlc3RlZCI7CkBAIC0xMTksNyArMTEz
LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siQXNzZXJ0aW9uIEZhaWxlZDogJXMiXSA9ICJBc3NlcnRp
b24gRmFpbGVkOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBc3NlcnRpb24gRmFpbHVyZXMiXSA9
ICJBc3NlcnRpb24gRmFpbHVyZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQXNzZXJ0aW9uIHdpdGgg
bWVzc2FnZTogJXMiXSA9ICJBc3NlcnRpb24gd2l0aCBtZXNzYWdlOiAlcyI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJBc3NlcnRpdmUiXSA9ICJBc3NlcnRpdmUiOwotbG9jYWxpemVkU3RyaW5nc1siQXR0
YWNoIl0gPSAiQXR0YWNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkF0dHJpYnV0ZSJdID0gIkF0dHJp
YnV0ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBdHRyaWJ1dGUgTW9kaWZpZWQiXSA9ICJBdHRyaWJ1
dGUgTW9kaWZpZWQiOwogbG9jYWxpemVkU3RyaW5nc1siQXR0cmlidXRlcyJdID0gIkF0dHJpYnV0
ZXMiOwpAQCAtMTI5LDIzICsxMjIsMTUgQEAgbG9jYWxpemVkU3RyaW5nc1siQXV0b21hdGljYWxs
eSBjb250aW51ZSBhZnRlciBldmFsdWF0aW5nIl0gPSAiQXV0b21hdGljYWxseSBjb24KIGxvY2Fs
aXplZFN0cmluZ3NbIkF2YWlsYWJsZSBTdHlsZSBTaGVldHMiXSA9ICJBdmFpbGFibGUgU3R5bGUg
U2hlZXRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkF2ZXJhZ2UgVGltZSJdID0gIkF2ZXJhZ2UgVGlt
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCYWNrICglcykiXSA9ICJCYWNrICglcykiOwotbG9jYWxp
emVkU3RyaW5nc1siQmFja2dyb3VuZCJdID0gIkJhY2tncm91bmQiOwogbG9jYWxpemVkU3RyaW5n
c1siQmFja3RyYWNlIl0gPSAiQmFja3RyYWNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJhc2ljIl0g
PSAiQmFzaWMiOwotbG9jYWxpemVkU3RyaW5nc1siQmFzaXMiXSA9ICJCYXNpcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJCZWFjb24iXSA9ICJCZWFjb24iOwogbG9jYWxpemVkU3RyaW5nc1siQmVhY29u
cyJdID0gIkJlYWNvbnMiOwotbG9jYWxpemVkU3RyaW5nc1siQmV6aWVyIl0gPSAiQmV6aWVyIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkJpbmFyeSBGcmFtZSJdID0gIkJpbmFyeSBGcmFtZSI7Ci1sb2Nh
bGl6ZWRTdHJpbmdzWyJCbGVuZCJdID0gIkJsZW5kIjsKIGxvY2FsaXplZFN0cmluZ3NbIkJsb2Nr
IFZhcmlhYmxlcyJdID0gIkJsb2NrIFZhcmlhYmxlcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJCbHVy
Il0gPSAiQmx1ciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb2R5OiJdID0gIkJvZHk6IjsKLWxvY2Fs
aXplZFN0cmluZ3NbIkJvcmRlciJdID0gIkJvcmRlciI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJCb3R0
b20iXSA9ICJCb3R0b20iOwogbG9jYWxpemVkU3RyaW5nc1siQm91bmRhcnkiXSA9ICJCb3VuZGFy
eSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCb3ggTW9kZWwiXSA9ICJCb3ggTW9kZWwiOwotbG9jYWxp
emVkU3RyaW5nc1siQm94IFNoYWRvdyJdID0gIkJveCBTaGFkb3ciOwogbG9jYWxpemVkU3RyaW5n
c1siQnJlYWsgb24gZXZlbnRzIHdpdGggbmFtZToiXSA9ICJCcmVhayBvbiBldmVudHMgd2l0aCBu
YW1lOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJCcmVhayBvbiByZXF1ZXN0IHdpdGggVVJMOiJdID0g
IkJyZWFrIG9uIHJlcXVlc3Qgd2l0aCBVUkw6IjsKIGxvY2FsaXplZFN0cmluZ3NbIkJyZWFrIG9u
4oCmIl0gPSAiQnJlYWsgb27igKYiOwpAQCAtMTc2LDE0ICsxNjEsMTAgQEAgbG9jYWxpemVkU3Ry
aW5nc1siQ2FudmFzICVzIl0gPSAiQ2FudmFzICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhbnZh
cyBFbGVtZW50Il0gPSAiQ2FudmFzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFz
OiJdID0gIkNhbnZhczoiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FudmFzZXMiXSA9ICJDYW52YXNl
cyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJDYXAiXSA9ICJDYXAiOwotbG9jYWxpemVkU3RyaW5nc1si
Q2FwcyJdID0gIkNhcHMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2FwdHVyZSBTY3JlZW5zaG90Il0g
PSAiQ2FwdHVyZSBTY3JlZW5zaG90IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNhcHR1cmluZyJdID0g
IkNhcHR1cmluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDYXRjaCBWYXJpYWJsZXMiXSA9ICJDYXRj
aCBWYXJpYWJsZXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2F0ZWdvcmllcyJdID0gIkNhdGVnb3Jp
ZXMiOwotbG9jYWxpemVkU3RyaW5nc1siQ2VudGVyIFgiXSA9ICJDZW50ZXIgWCI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJDZW50ZXIgWSJdID0gIkNlbnRlciBZIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNo
YXJhY3RlciBEYXRhIl0gPSAiQ2hhcmFjdGVyIERhdGEiOwogbG9jYWxpemVkU3RyaW5nc1siQ2hh
cmdlIOKAmCVz4oCZIHRvIENhbGxlcnMiXSA9ICJDaGFyZ2Ug4oCYJXPigJkgdG8gQ2FsbGVycyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDaGVja2VkIl0gPSAiQ2hlY2tlZCI7CkBAIC0xOTIsMjMgKzE3
MywxOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDaGlsZCBMYXllcnMiXSA9ICJDaGlsZCBMYXllcnMi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2hpbGQgYWRkZWQgdG8gIl0gPSAiQ2hpbGQgYWRkZWQgdG8g
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNoaWxkcmVuIl0gPSAiQ2hpbGRyZW4iOwogbG9jYWxpemVk
U3RyaW5nc1siQ2xhc3NlcyJdID0gIkNsYXNzZXMiOwotbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIi
XSA9ICJDbGVhciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBMb2ciXSA9ICJDbGVhciBMb2ci
OwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgTmV0d29yayBJdGVtcyAoJXMpIl0gPSAiQ2xlYXIg
TmV0d29yayBJdGVtcyAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsZWFyIFRpbWVsaW5lICgl
cykiXSA9ICJDbGVhciBUaW1lbGluZSAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsZWFyIGZp
bHRlcnMiXSA9ICJDbGVhciBmaWx0ZXJzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsZWFyIGZvY3Vz
Il0gPSAiQ2xlYXIgZm9jdXMiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgbG9nICglcyBvciAl
cykiXSA9ICJDbGVhciBsb2cgKCVzIG9yICVzKSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJDbGVhciBt
b2RpZmllZCBwcm9wZXJ0aWVzIl0gPSAiQ2xlYXIgbW9kaWZpZWQgcHJvcGVydGllcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJDbGVhciBvYmplY3Qgc3RvcmUiXSA9ICJDbGVhciBvYmplY3Qgc3RvcmUi
OwogbG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgc2FtcGxlcyJdID0gIkNsZWFyIHNhbXBsZXMiOwog
bG9jYWxpemVkU3RyaW5nc1siQ2xlYXIgd2F0Y2ggZXhwcmVzc2lvbnMiXSA9ICJDbGVhciB3YXRj
aCBleHByZXNzaW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGljayBMaXN0ZW5lciJdID0gIkNs
aWNrIExpc3RlbmVyIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNsaWNrIHRvIGNsb3NlIHRoaXMgdGFi
Il0gPSAiQ2xpY2sgdG8gY2xvc2UgdGhpcyB0YWIiOwotbG9jYWxpemVkU3RyaW5nc1siQ2xpY2sg
dG8gbGluayBwcm9wZXJ0eSB2YWx1ZXMiXSA9ICJDbGljayB0byBsaW5rIHByb3BlcnR5IHZhbHVl
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbGljayB0byBzZWxlY3QgYSBjb2xvci4gU2hpZnQtY2xp
Y2sgdG8gc3dpdGNoIGNvbG9yIGZvcm1hdHMuIl0gPSAiQ2xpY2sgdG8gc2VsZWN0IGEgY29sb3Iu
IFNoaWZ0LWNsaWNrIHRvIHN3aXRjaCBjb2xvciBmb3JtYXRzLiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDbGlja2FibGUiXSA9ICJDbGlja2FibGUiOwotbG9jYWxpemVkU3RyaW5nc1siQ2xpcCJdID0g
IkNsaXAiOwogbG9jYWxpemVkU3RyaW5nc1siQ2xvc2UiXSA9ICJDbG9zZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJDbG9zZSAlcyB0aW1lbGluZSB2aWV3Il0gPSAiQ2xvc2UgJXMgdGltZWxpbmUgdmll
dyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDbG9zZSBUYWIiXSA9ICJDbG9zZSBUYWIiOwpAQCAtMjIw
LDEwICsxOTcsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJDb2RlIl0gPSAiQ29kZSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJDb2xsYXBzZSBBbGwiXSA9ICJDb2xsYXBzZSBBbGwiOwogbG9jYWxpemVkU3Ry
aW5nc1siQ29sbGFwc2UgY29sdW1ucyJdID0gIkNvbGxhcHNlIGNvbHVtbnMiOwogbG9jYWxpemVk
U3RyaW5nc1siQ29sbGVjdCBnYXJiYWdlIl0gPSAiQ29sbGVjdCBnYXJiYWdlIjsKLWxvY2FsaXpl
ZFN0cmluZ3NbIkNvbG9yIl0gPSAiQ29sb3IiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tbWVudCJd
ID0gIkNvbW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tbWVudCBBbGwgUHJvcGVydGllcyJd
ID0gIkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiOwotbG9jYWxpemVkU3RyaW5nc1siQ29tbWVudCBv
dXQgcnVsZSJdID0gIkNvbW1lbnQgb3V0IHJ1bGUiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcGFy
ZSBzbmFwc2hvdHMiXSA9ICJDb21wYXJlIHNuYXBzaG90cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJD
b21wYXJpc29uIG9mIHRvdGFsIG1lbW9yeSBzaXplIGF0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGVk
IHRpbWUgcmFuZ2UgdG8gdGhlIG1heGltdW0gbWVtb3J5IHNpemUgaW4gdGhpcyByZWNvcmRpbmci
XSA9ICJDb21wYXJpc29uIG9mIHRvdGFsIG1lbW9yeSBzaXplIGF0IHRoZSBlbmQgb2YgdGhlIHNl
bGVjdGVkIHRpbWUgcmFuZ2UgdG8gdGhlIG1heGltdW0gbWVtb3J5IHNpemUgaW4gdGhpcyByZWNv
cmRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcG9zaXRlIl0gPSAiQ29tcG9zaXRlIjsKQEAg
LTI2OSwxNCArMjQ0LDEyIEBAIGxvY2FsaXplZFN0cmluZ3NbIkNvdW50Il0gPSAiQ291bnQiOwog
bG9jYWxpemVkU3RyaW5nc1siQ3JlYXRlICVzIFJ1bGUiXSA9ICJDcmVhdGUgJXMgUnVsZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJDcmVhdGUgYSBuZXcgdGFiIl0gPSAiQ3JlYXRlIGEgbmV3IHRhYiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDdXJyZW50Il0gPSAiQ3VycmVudCI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJDdXJzb3IiXSA9ICJDdXJzb3IiOwogbG9jYWxpemVkU3RyaW5nc1siQ3VzdG9tIl0gPSAi
Q3VzdG9tIjsKIGxvY2FsaXplZFN0cmluZ3NbIkROUyJdID0gIkROUyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJET00gQnJlYWtwb2ludHMiXSA9ICJET00gQnJlYWtwb2ludHMiOwogbG9jYWxpemVkU3Ry
aW5nc1siRE9NIENvbnRlbnQgTG9hZGVkIFx1MjAxNCAlcyJdID0gIkRPTSBDb250ZW50IExvYWRl
ZCBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siRE9NIEV2ZW50Il0gPSAiRE9NIEV2ZW50
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRhbXBpbmciXSA9ICJEYW1waW5nIjsKLWxvY2FsaXplZFN0
cmluZ3NbIkRhc2ggQXJyYXkiXSA9ICJEYXNoIEFycmF5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRh
dGEiXSA9ICJEYXRhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkRhdGEgcmV0dXJuZWQgZnJvbSB0aGUg
ZGF0YWJhc2UgaXMgdG9vIGxhcmdlLiJdID0gIkRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgZGF0YWJh
c2UgaXMgdG9vIGxhcmdlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEYXRhYmFzZSJdID0gIkRhdGFi
YXNlIjsKQEAgLTI5MSw5ICsyNjQsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJEZWJ1Z2dlciBkaXNh
YmxlZCBkdXJpbmcgVGltZWxpbmUgcmVjb3JkaW5nIl0gPSAiRGVidWdnZXIgZGlzYQogbG9jYWxp
emVkU3RyaW5nc1siRGVidWdnZXI6Il0gPSAiRGVidWdnZXI6IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkRlYnVncyJdID0gIkRlYnVncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZWNvZGVkIl0gPSAiRGVj
b2RlZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJEZWNvcmF0aW9uIl0gPSAiRGVjb3JhdGlvbiI7Ci1s
b2NhbGl6ZWRTdHJpbmdzWyJEZWZhdWx0Il0gPSAiRGVmYXVsdCI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJEZWxheSJdID0gIkRlbGF5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSJdID0gIkRlbGV0
ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZWxldGUgQnJlYWtwb2ludCJdID0gIkRlbGV0ZSBCcmVh
a3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRlbGV0ZSBCcmVha3BvaW50cyJdID0gIkRlbGV0
ZSBCcmVha3BvaW50cyI7CkBAIC0zMDIsNyArMjcyLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siRGV0
YWNoZWQiXSA9ICJEZXRhY2hlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEZXRhaWxzIl0gPSAiRGV0
YWlscyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaWQgeW91IG1lYW4g4oCcJXPigJ0/XG5DbGljayB0
byByZXBsYWNlLiJdID0gIkRpZCB5b3UgbWVhbiDigJwlc+KAnT9cbkNsaWNrIHRvIHJlcGxhY2Uu
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpbWVuc2lvbnMiXSA9ICJEaW1lbnNpb25zIjsKLWxvY2Fs
aXplZFN0cmluZ3NbIkRpcmVjdGlvbiJdID0gIkRpcmVjdGlvbiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJEaXNhYmxlIEJyZWFrcG9pbnQiXSA9ICJEaXNhYmxlIEJyZWFrcG9pbnQiOwogbG9jYWxpemVk
U3RyaW5nc1siRGlzYWJsZSBCcmVha3BvaW50cyJdID0gIkRpc2FibGUgQnJlYWtwb2ludHMiOwog
bG9jYWxpemVkU3RyaW5nc1siRGlzYWJsZSBFdmVudCBMaXN0ZW5lciJdID0gIkRpc2FibGUgRXZl
bnQgTGlzdGVuZXIiOwpAQCAtMzExLDcgKzI4MCw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIkRpc2Fi
bGUgYWxsIGJyZWFrcG9pbnRzICglcykiXSA9ICJEaXNhYmxlIGFsbCBicmVha3BvaW50cyAoJXMp
CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlIHBhaW50IGZsYXNoaW5nIl0gPSAiRGlzYWJsZSBw
YWludCBmbGFzaGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJEaXNhYmxlZCJdID0gIkRpc2FibGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRpc2sgQ2FjaGUiXSA9ICJEaXNrIENhY2hlIjsKLWxvY2Fs
aXplZFN0cmluZ3NbIkRpc3BsYXkiXSA9ICJEaXNwbGF5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkRp
c3BsYXllZCBDb2x1bW5zIl0gPSAiRGlzcGxheWVkIENvbHVtbnMiOwogbG9jYWxpemVkU3RyaW5n
c1siRG8gbm90IGNsZWFyIG5ldHdvcmsgaXRlbXMgb24gbmV3IHBhZ2UgbG9hZHMiXSA9ICJEbyBu
b3QgY2xlYXIgbmV0d29yayBpdGVtcyBvbiBuZXcgcGFnZSBsb2FkcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJEbyBub3QgY2xlYXIgdGhlIGNvbnNvbGUgb24gbmV3IHBhZ2UgbG9hZHMiXSA9ICJEbyBu
b3QgY2xlYXIgdGhlIGNvbnNvbGUgb24gbmV3IHBhZ2UgbG9hZHMiOwpAQCAtMzQwLDcgKzMwOCw2
IEBAIGxvY2FsaXplZFN0cmluZ3NbIkVkaXQgY3VzdG9tIGdyYWRpZW50Il0gPSAiRWRpdCBjdXN0
b20gZ3JhZGllbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCDigJwlc+KAnSJdID0gIkVkaXQg
4oCcJXPigJ0iOwogbG9jYWxpemVkU3RyaW5nc1siRWRpdCDigJxjdWJpYy1iZXppZXLigJwgZnVu
Y3Rpb24iXSA9ICJFZGl0IOKAnGN1YmljLWJlemllcuKAnCBmdW5jdGlvbiI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJFZGl0IOKAnHNwcmluZ+KAnCBmdW5jdGlvbiJdID0gIkVkaXQg4oCcc3ByaW5n4oCc
IGZ1bmN0aW9uIjsKLWxvY2FsaXplZFN0cmluZ3NbIkVmZmVjdHMiXSA9ICJFZmZlY3RzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkVsZW1lbnQiXSA9ICJFbGVtZW50IjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkVsZW1lbnQgY2xpcHMgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMiXSA9ICJFbGVtZW50IGNsaXBz
IGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnQgaGFz
IENTUyBibGVuZGluZyBhcHBsaWVkIGFuZCBjb21wb3NpdGVkIGRlc2NlbmRhbnRzIl0gPSAiRWxl
bWVudCBoYXMgQ1NTIGJsZW5kaW5nIGFwcGxpZWQgYW5kIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMi
OwpAQCAtMzg1LDE0ICszNTIsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgcGFpbnQgZmxh
c2hpbmciXSA9ICJFbmFibGUgcGFpbnQgZmxhc2hpbmciOwogbG9jYWxpemVkU3RyaW5nc1siRW5h
YmxlZCJdID0gIkVuYWJsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RlZCJdID0gIkVuY29k
ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5jb2RpbmciXSA9ICJFbmNvZGluZyI7Ci1sb2NhbGl6
ZWRTdHJpbmdzWyJFbnRlciBUYWciXSA9ICJFbnRlciBUYWciOwotbG9jYWxpemVkU3RyaW5nc1si
RW50ZXIgVmFsdWUiXSA9ICJFbnRlciBWYWx1ZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJFbnRlciBh
IEdyYWRpZW50Il0gPSAiRW50ZXIgYSBHcmFkaWVudCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJFbnRl
ciBhIFVSTCJdID0gIkVudGVyIGEgVVJMIjsKLWxvY2FsaXplZFN0cmluZ3NbIkVudGVyIGFuIGFy
cmF5IHZhbHVlIl0gPSAiRW50ZXIgYW4gYXJyYXkgdmFsdWUiOwotbG9jYWxpemVkU3RyaW5nc1si
RW50ZXIgcHJvcGVydHkgbmFtZSJdID0gIkVudGVyIHByb3BlcnR5IG5hbWUiOwotbG9jYWxpemVk
U3RyaW5nc1siRW50ZXIgdGhlIG5hbWUgb2YgYSBLZXlmcmFtZSJdID0gIkVudGVyIHRoZSBuYW1l
IG9mIGEgS2V5ZnJhbWUiOwotbG9jYWxpemVkU3RyaW5nc1siRW50ZXIgdmFsdWUiXSA9ICJFbnRl
ciB2YWx1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbnRpcmUgUmVjb3JkaW5nIl0gPSAiRW50aXJl
IFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFcnJvciJdID0gIkVycm9yIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkVycm9yOiAiXSA9ICJFcnJvcjogIjsKQEAgLTQyMSwyMSArMzgwLDE0IEBA
IGxvY2FsaXplZFN0cmluZ3NbIkV4dHJhIFNjcmlwdHMiXSA9ICJFeHRyYSBTY3JpcHRzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkZhZGUgdW5leGVjdXRlZCBjb2RlIl0gPSAiRmFkZSB1bmV4ZWN1dGVk
IGNvZGUiOwogbG9jYWxpemVkU3RyaW5nc1siRmFpbGVkIHRvIHVwZ3JhZGUiXSA9ICJGYWlsZWQg
dG8gdXBncmFkZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGYWlsdXJlIHN0YXR1cyBjb2RlIl0gPSAi
RmFpbHVyZSBzdGF0dXMgY29kZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJGYW1pbHkiXSA9ICJGYW1p
bHkiOwotbG9jYWxpemVkU3RyaW5nc1siRmVhdHVyZXMiXSA9ICJGZWF0dXJlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJGZXRjaCJdID0gIkZldGNoIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZldGNoZXMi
XSA9ICJGZXRjaGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGUgb3IgUmVzb3VyY2UiXSA9ICJG
aWxlIG9yIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbGVuYW1lIl0gPSAiRmlsZW5h
bWUiOwotbG9jYWxpemVkU3RyaW5nc1siRmlsbCJdID0gIkZpbGwiOwotbG9jYWxpemVkU3RyaW5n
c1siRmlsbCBNb2RlIl0gPSAiRmlsbCBNb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkZpbHRlciJd
ID0gIkZpbHRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaWx0ZXIgRnVsbCBVUkwiXSA9ICJGaWx0
ZXIgRnVsbCBVUkwiOwogbG9jYWxpemVkU3RyaW5nc1siRmluZCBOZXh0ICglcykiXSA9ICJGaW5k
IE5leHQgKCVzKSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGaW5kIFByZXZpb3VzICglcykiXSA9ICJG
aW5kIFByZXZpb3VzICglcykiOwotbG9jYWxpemVkU3RyaW5nc1siRmxleGJveCJdID0gIkZsZXhi
b3giOwotbG9jYWxpemVkU3RyaW5nc1siRmxvYXQiXSA9ICJGbG9hdCI7Ci1sb2NhbGl6ZWRTdHJp
bmdzWyJGbG9hdCBhbmQgQ2xlYXIiXSA9ICJGbG9hdCBhbmQgQ2xlYXIiOwogbG9jYWxpemVkU3Ry
aW5nc1siRmxvd3MiXSA9ICJGbG93cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb2N1cyAlcyBSdWxl
Il0gPSAiRm9jdXMgJXMgUnVsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJGb2N1cyBvbiBTdWJ0cmVl
Il0gPSAiRm9jdXMgb24gU3VidHJlZSI7CkBAIC00NzYsNyArNDI4LDYgQEAgbG9jYWxpemVkU3Ry
aW5nc1siR3JvdXAiXSA9ICJHcm91cCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJHcm91cCBieSBFdmVu
dCJdID0gIkdyb3VwIGJ5IEV2ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwIGJ5IE5vZGUi
XSA9ICJHcm91cCBieSBOb2RlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkdyb3VwaW5nIE1ldGhvZCJd
ID0gIkdyb3VwaW5nIE1ldGhvZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJHcm93Il0gPSAiR3JvdyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJIQVIgRXhwb3J0ICglcykiXSA9ICJIQVIgRXhwb3J0ICglcyki
OwogbG9jYWxpemVkU3RyaW5nc1siSFRNTCJdID0gIkhUTUwiOwogbG9jYWxpemVkU3RyaW5nc1si
SFRNTCBBdHRyaWJ1dGVzIl0gPSAiSFRNTCBBdHRyaWJ1dGVzIjsKQEAgLTQ5OSw3ICs0NTAsNiBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJIaWRlIHR5cGUgaW5mb3JtYXRpb24iXSA9ICJIaWRlIHR5cGUg
aW5mb3JtYXRpb24iOwogbG9jYWxpemVkU3RyaW5nc1siSGllcmFyY2h5IExldmVsIl0gPSAiSGll
cmFyY2h5IExldmVsIjsKIGxvY2FsaXplZFN0cmluZ3NbIkhpZ2giXSA9ICJIaWdoIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkhpZ2hlc3Q6ICVzIl0gPSAiSGlnaGVzdDogJXMiOwotbG9jYWxpemVkU3Ry
aW5nc1siSG9yaXpvbnRhbCJdID0gIkhvcml6b250YWwiOwogbG9jYWxpemVkU3RyaW5nc1siSG9z
dCJdID0gIkhvc3QiOwogbG9jYWxpemVkU3RyaW5nc1siSVAgQWRkcmVzcyJdID0gIklQIEFkZHJl
c3MiOwogbG9jYWxpemVkU3RyaW5nc1siSWRlbnRpdHkiXSA9ICJJZGVudGl0eSI7CkBAIC01MTUs
NyArNDY1LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkltcG9ydCByZWNvcmRpbmcgZnJvbSBmaWxlIl0gPSAiSW1wb3J0IHJlY29y
ZGluZyBmcm9tIGZpbGUiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgUmVjb3JkaW5ncyJd
ID0gIkltcG9ydGVkIFJlY29yZGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siSW5jb21wbGV0ZSJd
ID0gIkluY29tcGxldGUiOwotbG9jYWxpemVkU3RyaW5nc1siSW5kZW50Il0gPSAiSW5kZW50IjsK
IGxvY2FsaXplZFN0cmluZ3NbIkluZGVudCB3aWR0aDoiXSA9ICJJbmRlbnQgd2lkdGg6IjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkluZGV4Il0gPSAiSW5kZXgiOwogbG9jYWxpemVkU3RyaW5nc1siSW5k
ZXggS2V5IFx1MjAxNCAlcyJdID0gIkluZGV4IEtleSBcdTIwMTQgJXMiOwpAQCAtNTI0LDI2ICs0
NzMsMjIgQEAgbG9jYWxpemVkU3RyaW5nc1siSW5mbzogIl0gPSAiSW5mbzogIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkluZm9zIl0gPSAiSW5mb3MiOwogbG9jYWxpemVkU3RyaW5nc1siSW5oZXJpdGVk
IEZyb20iXSA9ICJJbmhlcml0ZWQgRnJvbSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbmhlcml0ZWQg
RnJvbTogIl0gPSAiSW5oZXJpdGVkIEZyb206ICI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJJbmhlcml0
ZWQgZnJvbSAlcyJdID0gIkluaGVyaXRlZCBmcm9tICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIklu
aXRpYWwgU3RhdGUiXSA9ICJJbml0aWFsIFN0YXRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkluaXRp
YWwgVmVsb2NpdHkiXSA9ICJJbml0aWFsIFZlbG9jaXR5IjsKIGxvY2FsaXplZFN0cmluZ3NbIklu
aXRpYXRlZCJdID0gIkluaXRpYXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbml0aWF0b3IiXSA9
ICJJbml0aWF0b3IiOwogbG9jYWxpemVkU3RyaW5nc1siSW5wdXQ6ICJdID0gIklucHV0OiAiOwot
bG9jYWxpemVkU3RyaW5nc1siSW5zZXQiXSA9ICJJbnNldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJ
bnNwZWN0b3IgU3R5bGUgU2hlZXQiXSA9ICJJbnNwZWN0b3IgU3R5bGUgU2hlZXQiOwogbG9jYWxp
emVkU3RyaW5nc1siSW5zdGFuY2VzIl0gPSAiSW5zdGFuY2VzIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkludmFsaWQiXSA9ICJJbnZhbGlkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkludmFsaWQgY2hhcmFj
dGVycyJdID0gIkludmFsaWQgY2hhcmFjdGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbnZlcnRl
ZCJdID0gIkludmVydGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkludm9rZSBnZXR0ZXIiXSA9ICJJ
bnZva2UgZ2V0dGVyIjsKLWxvY2FsaXplZFN0cmluZ3NbIkl0ZXJhdGlvbnMiXSA9ICJJdGVyYXRp
b25zIjsKIGxvY2FsaXplZFN0cmluZ3NbIkpTT04iXSA9ICJKU09OIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkphdmFTY3JpcHQiXSA9ICJKYXZhU2NyaXB0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkphdmFT
Y3JpcHQgJiBFdmVudHMiXSA9ICJKYXZhU2NyaXB0ICYgRXZlbnRzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkphdmFTY3JpcHQgQWxsb2NhdGlvbnMiXSA9ICJKYXZhU2NyaXB0IEFsbG9jYXRpb25zIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkphdmFTY3JpcHQgQ29udGV4dCJdID0gIkphdmFTY3JpcHQgQ29u
dGV4dCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJKb2luIl0gPSAiSm9pbiI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJKdW1wIHRvIERlZmluaXRpb24iXSA9ICJKdW1wIHRvIERlZmluaXRpb24iOwogbG9jYWxp
emVkU3RyaW5nc1siS2V5Il0gPSAiS2V5IjsKIGxvY2FsaXplZFN0cmluZ3NbIktleSBQYXRoIl0g
PSAiS2V5IFBhdGgiOwpAQCAtNTU2LDE4ICs1MDEsMTIgQEAgbG9jYWxpemVkU3RyaW5nc1siTGF5
ZXJzOiJdID0gIkxheWVyczoiOwogbG9jYWxpemVkU3RyaW5nc1siTGF5b3V0Il0gPSAiTGF5b3V0
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkxheW91dCAmIFJlbmRlcmluZyJdID0gIkxheW91dCAmIFJl
bmRlcmluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMYXlvdXQgSW52YWxpZGF0ZWQiXSA9ICJMYXlv
dXQgSW52YWxpZGF0ZWQiOwotbG9jYWxpemVkU3RyaW5nc1siTGVmdCJdID0gIkxlZnQiOwogbG9j
YWxpemVkU3RyaW5nc1siTGVnYWN5IFN0eWxlIEVkaXRvciJdID0gIkxlZ2FjeSBTdHlsZSBFZGl0
b3IiOwotbG9jYWxpemVkU3RyaW5nc1siTGVnYWN5IFZpc3VhbCBTdHlsZXMgUGFuZWwiXSA9ICJM
ZWdhY3kgVmlzdWFsIFN0eWxlcyBQYW5lbCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJMZXR0ZXIiXSA9
ICJMZXR0ZXIiOwotbG9jYWxpemVkU3RyaW5nc1siTGlnYXR1cmVzIl0gPSAiTGlnYXR1cmVzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkxpbmUgJWQiXSA9ICJMaW5lICVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkxpbmUgJWQ6JWQiXSA9ICJMaW5lICVkOiVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxpbmUg
TnVtYmVyIl0gPSAiTGluZSBOdW1iZXIiOwogbG9jYWxpemVkU3RyaW5nc1siTGluZSB3cmFwcGlu
ZzoiXSA9ICJMaW5lIHdyYXBwaW5nOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJMaW5lYXIgR3JhZGll
bnQiXSA9ICJMaW5lYXIgR3JhZGllbnQiOwotbG9jYWxpemVkU3RyaW5nc1siTGluayBwcm9wZXJ0
eSB2YWx1ZXMiXSA9ICJMaW5rIHByb3BlcnR5IHZhbHVlcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJM
aXN0IFN0eWxlcyJdID0gIkxpc3QgU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxpdmUiXSA9
ICJMaXZlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkxpdmUgU2l6ZSJdID0gIkxpdmUgU2l6ZSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJMb2FkIFx1MjAxNCAlcyJdID0gIkxvYWQgXHUyMDE0ICVzIjsKQEAg
LTU5NCwxMCArNTMzLDggQEAgbG9jYWxpemVkU3RyaW5nc1siTUlNRSBUeXBlIl0gPSAiTUlNRSBU
eXBlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk1JTUUgVHlwZToiXSA9ICJNSU1FIFR5cGU6IjsKIGxv
Y2FsaXplZFN0cmluZ3NbIk1haW4iXSA9ICJNYWluIjsKIGxvY2FsaXplZFN0cmluZ3NbIk1hbmlm
ZXN0IFVSTCJdID0gIk1hbmlmZXN0IFVSTCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJNYXJnaW4iXSA9
ICJNYXJnaW4iOwogbG9jYWxpemVkU3RyaW5nc1siTWFzcyJdID0gIk1hc3MiOwogbG9jYWxpemVk
U3RyaW5nc1siTWF0Y2hpbmciXSA9ICJNYXRjaGluZyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJNYXgi
XSA9ICJNYXgiOwogbG9jYWxpemVkU3RyaW5nc1siTWF4IENvbXBhcmlzb24iXSA9ICJNYXggQ29t
cGFyaXNvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNYXhpbXVtIl0gPSAiTWF4aW11bSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJNYXhpbXVtIFNpemU6ICVzIl0gPSAiTWF4aW11bSBTaXplOiAlcyI7CkBA
IC02MTMsOSArNTUwLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siTWVtb3J5OiAlcyJdID0gIk1lbW9y
eTogJXMiOwogbG9jYWxpemVkU3RyaW5nc1siTWVzc2FnZSJdID0gIk1lc3NhZ2UiOwogbG9jYWxp
emVkU3RyaW5nc1siTWV0aG9kIl0gPSAiTWV0aG9kIjsKIGxvY2FsaXplZFN0cmluZ3NbIk1pY3Jv
dGFzayBEaXNwYXRjaGVkIl0gPSAiTWljcm90YXNrIERpc3BhdGNoZWQiOwotbG9jYWxpemVkU3Ry
aW5nc1siTWluIl0gPSAiTWluIjsKLWxvY2FsaXplZFN0cmluZ3NbIk1pc3NpbmcgRGVwZW5kZW5j
aWVzOiVzIl0gPSAiTWlzc2luZyBEZXBlbmRlbmNpZXM6JXMiOwotbG9jYWxpemVkU3RyaW5nc1si
TWl0ZXIiXSA9ICJNaXRlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNaXhlZCJdID0gIk1peGVkIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk1vZHVsZSBDb2RlIl0gPSAiTW9kdWxlIENvZGUiOwogbG9jYWxp
emVkU3RyaW5nc1siTXVsdGktRW50cnkiXSA9ICJNdWx0aS1FbnRyeSI7CkBAIC02NjIsNDAgKzU5
NiwyOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJOb2RlIFJlbW92ZWQiXSA9ICJOb2RlIFJlbW92ZWQi
OwogbG9jYWxpemVkU3RyaW5nc1siTm9kZXMiXSA9ICJOb2RlcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJOb25lIl0gPSAiTm9uZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOb3QgZm91bmQiXSA9ICJOb3Qg
Zm91bmQiOwotbG9jYWxpemVkU3RyaW5nc1siTnVtYmVyIl0gPSAiTnVtYmVyIjsKLWxvY2FsaXpl
ZFN0cmluZ3NbIk51bWVyaWMiXSA9ICJOdW1lcmljIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVj
dCBHcmFwaCJdID0gIk9iamVjdCBHcmFwaCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgU3Rv
cmUiXSA9ICJPYmplY3QgU3RvcmUiOwogbG9jYWxpemVkU3RyaW5nc1siT2ZmIl0gPSAiT2ZmIjsK
LWxvY2FsaXplZFN0cmluZ3NbIk9mZnNldCJdID0gIk9mZnNldCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJPbmNlIl0gPSAiT25jZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPbmxpbmUiXSA9ICJPbmxpbmUi
OwogbG9jYWxpemVkU3RyaW5nc1siT25seSBzaG93IHJlc291cmNlcyB3aXRoIGlzc3VlcyJdID0g
Ik9ubHkgc2hvdyByZXNvdXJjZXMgd2l0aCBpc3N1ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siT25s
eSBzaG93IHZpc3VhbCBhY3Rpb25zIl0gPSAiT25seSBzaG93IHZpc3VhbCBhY3Rpb25zIjsKLWxv
Y2FsaXplZFN0cmluZ3NbIk9wYWNpdHkiXSA9ICJPcGFjaXR5IjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik9wZW4iXSA9ICJPcGVuIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9wZW4gaW4gTmV3IFRhYiJdID0g
Ik9wZW4gaW4gTmV3IFRhYiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJPcHRpb24tY2xpY2sgdG8gc2hv
dyBhbGwgdW5pdHMiXSA9ICJPcHRpb24tY2xpY2sgdG8gc2hvdyBhbGwgdW5pdHMiOwotbG9jYWxp
emVkU3RyaW5nc1siT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHZhbHVlcyJdID0gIk9wdGlvbi1j
bGljayB0byBzaG93IGFsbCB2YWx1ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siT3B0aW9uLWNsaWNr
IHRvIHNob3cgc291cmNlIl0gPSAiT3B0aW9uLWNsaWNrIHRvIHNob3cgc291cmNlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIk9wdGlvbnMiXSA9ICJPcHRpb25zIjsKLWxvY2FsaXplZFN0cmluZ3NbIk9y
ZGVyIl0gPSAiT3JkZXIiOwotbG9jYWxpemVkU3RyaW5nc1siT3JpZ2luIl0gPSAiT3JpZ2luIjsK
IGxvY2FsaXplZFN0cmluZ3NbIk9yaWdpbmFsIl0gPSAiT3JpZ2luYWwiOwogbG9jYWxpemVkU3Ry
aW5nc1siT3JpZ2luYWwgZm9ybWF0dGluZyJdID0gIk9yaWdpbmFsIGZvcm1hdHRpbmciOwogbG9j
YWxpemVkU3RyaW5nc1siT3JpZ2luYWxseSAlcyJdID0gIk9yaWdpbmFsbHkgJXMiOwogbG9jYWxp
emVkU3RyaW5nc1siT3RoZXIiXSA9ICJPdGhlciI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPdGhlciBJ
c3N1ZSJdID0gIk90aGVyIElzc3VlIjsKIGxvY2FsaXplZFN0cmluZ3NbIk91dGdvaW5nIG1lc3Nh
Z2UiXSA9ICJPdXRnb2luZyBtZXNzYWdlIjsKLWxvY2FsaXplZFN0cmluZ3NbIk91dGxpbmUiXSA9
ICJPdXRsaW5lIjsKIGxvY2FsaXplZFN0cmluZ3NbIk91dHB1dDogIl0gPSAiT3V0cHV0OiAiOwot
bG9jYWxpemVkU3RyaW5nc1siT3V0c2V0Il0gPSAiT3V0c2V0IjsKIGxvY2FsaXplZFN0cmluZ3Nb
Ik92ZXIgMSBtcyJdID0gIk92ZXIgMSBtcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPdmVyIDE1IG1z
Il0gPSAiT3ZlciAxNSBtcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJPdmVyZmxvdyJdID0gIk92ZXJm
bG93IjsKIGxvY2FsaXplZFN0cmluZ3NbIk92ZXJ2aWV3Il0gPSAiT3ZlcnZpZXciOwogbG9jYWxp
emVkU3RyaW5nc1siT3ducyJdID0gIk93bnMiOwotbG9jYWxpemVkU3RyaW5nc1siUGFkZGluZyJd
ID0gIlBhZGRpbmciOwogbG9jYWxpemVkU3RyaW5nc1siUGFnZSJdID0gIlBhZ2UiOwogbG9jYWxp
emVkU3RyaW5nc1siUGFnZSBJc3N1ZSJdID0gIlBhZ2UgSXNzdWUiOwogbG9jYWxpemVkU3RyaW5n
c1siUGFnZSBuYXZpZ2F0ZWQgYXQgJXMiXSA9ICJQYWdlIG5hdmlnYXRlZCBhdCAlcyI7CkBAIC03
MTYsOSArNjM4LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUGxheSBTb3VuZCJdID0gIlBsYXkgU291
bmQiOwogbG9jYWxpemVkU3RyaW5nc1siUG9saXRlIl0gPSAiUG9saXRlIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlBvbmcgRnJhbWUiXSA9ICJQb25nIEZyYW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBv
cnQiXSA9ICJQb3J0IjsKLWxvY2FsaXplZFN0cmluZ3NbIlBvc2l0aW9uIl0gPSAiUG9zaXRpb24i
OwotbG9jYWxpemVkU3RyaW5nc1siUG9zaXRpb24gWCJdID0gIlBvc2l0aW9uIFgiOwotbG9jYWxp
emVkU3RyaW5nc1siUG9zaXRpb24gWSJdID0gIlBvc2l0aW9uIFkiOwogbG9jYWxpemVkU3RyaW5n
c1siUHJlZmVyIGluZGVudCB1c2luZzoiXSA9ICJQcmVmZXIgaW5kZW50IHVzaW5nOiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJQcmVzZXJ2ZSBMb2ciXSA9ICJQcmVzZXJ2ZSBMb2ciOwogbG9jYWxpemVk
U3RyaW5nc1siUHJlc3MgJXMgdG8gbG9hZCBhIHJlY29yZGluZyBmcm9tIGZpbGUuIl0gPSAiUHJl
c3MgJXMgdG8gbG9hZCBhIHJlY29yZGluZyBmcm9tIGZpbGUuIjsKQEAgLTczNSw3ICs2NTQsNiBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9iZXMiXSA9ICJQcm9iZXMiOwogbG9jYWxpemVkU3RyaW5n
c1siUHJvY2Vzc2luZyBJbnN0cnVjdGlvbiJdID0gIlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24iOwog
bG9jYWxpemVkU3RyaW5nc1siUHJvZ3JhbSAlZCJdID0gIlByb2dyYW0gJWQiOwogbG9jYWxpemVk
U3RyaW5nc1siUHJvcGVydGllcyJdID0gIlByb3BlcnRpZXMiOwotbG9jYWxpemVkU3RyaW5nc1si
UHJvcGVydHkiXSA9ICJQcm9wZXJ0eSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm90b2NvbCJdID0g
IlByb3RvY29sIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBzZXVkbyBFbGVtZW50Il0gPSAiUHNldWRv
IEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUXVlcnkgUGFyYW1ldGVycyJdID0gIlF1ZXJ5
IFBhcmFtZXRlcnMiOwpAQCAtNzQ0LDkgKzY2Miw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIlF1ZXJ5
IFN0cmluZyBQYXJhbWV0ZXJzIl0gPSAiUXVlcnkgU3RyaW5nIFBhcmFtZXRlcnMiOwogbG9jYWxp
emVkU3RyaW5nc1siUXVlcnkgcmV0dXJuZWQgbm8gcmVzdWx0cy4iXSA9ICJRdWVyeSByZXR1cm5l
ZCBubyByZXN1bHRzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJRdWV1ZWQiXSA9ICJRdWV1ZWQiOwog
bG9jYWxpemVkU3RyaW5nc1siUmFkaWFsIEdyYWRpZW50Il0gPSAiUmFkaWFsIEdyYWRpZW50IjsK
LWxvY2FsaXplZFN0cmluZ3NbIlJhZGl1cyJdID0gIlJhZGl1cyI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJSYWRpdXMgWCJdID0gIlJhZGl1cyBYIjsKLWxvY2FsaXplZFN0cmluZ3NbIlJhZGl1cyBZIl0g
PSAiUmFkaXVzIFkiOwogbG9jYWxpemVkU3RyaW5nc1siUmFuZ2UgSXNzdWUiXSA9ICJSYW5nZSBJ
c3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWFkb25seSJdID0gIlJlYWRvbmx5IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJlYXNvbnMgZm9yIGNvbXBvc2l0aW5nIl0gPSAiUmVhc29ucyBmb3IgY29t
cG9zaXRpbmciOwpAQCAtNzY3LDEzICs2ODIsMTAgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVsb2Fk
IFdlYiBJbnNwZWN0b3IiXSA9ICJSZWxvYWQgV2ViIEluc3BlY3RvciI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZWxvYWQgcGFnZSAoJXMpXG5SZWxvYWQgcGFnZSBpZ25vcmluZyBjYWNoZSAoJXMpIl0g
PSAiUmVsb2FkIHBhZ2UgKCVzKVxuUmVsb2FkIHBhZ2UgaWdub3JpbmcgY2FjaGUgKCVzKSI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmFscyJdID0gIlJlbW92YWxzIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlJlbW92ZSBXYXRjaCBFeHByZXNzaW9uIl0gPSAiUmVtb3ZlIFdhdGNoIEV4cHJlc3Npb24i
OwotbG9jYWxpemVkU3RyaW5nc1siUmVtb3ZlIGxpbmsiXSA9ICJSZW1vdmUgbGluayI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZW1vdmUgcHJvYmUiXSA9ICJSZW1vdmUgcHJvYmUiOwotbG9jYWxpemVk
U3RyaW5nc1siUmVtb3ZlIHNlbGVjdGVkIGl0ZW0iXSA9ICJSZW1vdmUgc2VsZWN0ZWQgaXRlbSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZW1vdmUgdGhpcyBicmVha3BvaW50IGFjdGlvbiJdID0gIlJl
bW92ZSB0aGlzIGJyZWFrcG9pbnQgYWN0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlbW92ZWQg
ZGVzY2VuZGFudCAiXSA9ICJSZW1vdmVkIGRlc2NlbmRhbnQgIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlJlbmRlcmluZyBGcmFtZXMiXSA9ICJSZW5kZXJpbmcgRnJhbWVzIjsKLWxvY2FsaXplZFN0cmlu
Z3NbIlJlcGVhdCJdID0gIlJlcGVhdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXBlYXRpbmcgTGlu
ZWFyIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5nIExpbmVhciBHcmFkaWVudCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50Il0gPSAiUmVwZWF0aW5nIFJhZGlhbCBH
cmFkaWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXF1ZXN0Il0gPSAiUmVxdWVzdCI7CkBAIC03
ODMsNyArNjk1LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siUmVxdWVzdCBEYXRhIl0gPSAiUmVxdWVz
dCBEYXRhIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcXVlc3QgSGVhZGVycyJdID0gIlJlcXVlc3Qg
SGVhZGVycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXF1ZXN0aW5nOiAlcyJdID0gIlJlcXVlc3Rp
bmc6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlcXVpcmVkIl0gPSAiUmVxdWlyZWQiOwotbG9j
YWxpemVkU3RyaW5nc1siUmVzZXQiXSA9ICJSZXNldCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXNv
dXJjZSJdID0gIlJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlc291cmNlIFNpemUiXSA9
ICJSZXNvdXJjZSBTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJlc291cmNlIFR5cGUiXSA9ICJS
ZXNvdXJjZSBUeXBlIjsKQEAgLTgxNCw5ICs3MjUsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZl
YWwgaW4gTmV0d29yayBUYWIiXSA9ICJSZXZlYWwgaW4gTmV0d29yayBUYWIiOwogbG9jYWxpemVk
U3RyaW5nc1siUmV2ZWFsIGluIE9yaWdpbmFsIFJlc291cmNlIl0gPSAiUmV2ZWFsIGluIE9yaWdp
bmFsIFJlc291cmNlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBSZXNvdXJjZXMgVGFi
Il0gPSAiUmV2ZWFsIGluIFJlc291cmNlcyBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFs
IGluIFNvdXJjZXMgVGFiIl0gPSAiUmV2ZWFsIGluIFNvdXJjZXMgVGFiIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlJpZ2h0Il0gPSAiUmlnaHQiOwogbG9jYWxpemVkU3RyaW5nc1siUm9sZSJdID0gIlJv
bGUiOwotbG9jYWxpemVkU3RyaW5nc1siUnVsZSJdID0gIlJ1bGUiOwogbG9jYWxpemVkU3RyaW5n
c1siU2FtZS1TaXRlIl0gPSAiU2FtZS1TaXRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNhbXBsZXMi
XSA9ICJTYW1wbGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNhdmUgRmlsZSJdID0gIlNhdmUgRmls
ZSI7CkBAIC04MzgsNyArNzQ3LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2VhcmNoIFJlc291cmNl
IENvbnRlbnQiXSA9ICJTZWFyY2ggUmVzb3VyY2UgQ29udGVudCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTZWN1cmUiXSA9ICJTZWN1cmUiOwogbG9jYWxpemVkU3RyaW5nc1siU2VjdXJpdHkgSXNzdWUi
XSA9ICJTZWN1cml0eSBJc3N1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWN1cml0eSBPcmlnaW4i
XSA9ICJTZWN1cml0eSBPcmlnaW4iOwotbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ICVzIFJ1bGUi
XSA9ICJTZWxlY3QgJXMgUnVsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3QgYmFzZWxpbmUg
c25hcHNob3QiXSA9ICJTZWxlY3QgYmFzZWxpbmUgc25hcHNob3QiOwogbG9jYWxpemVkU3RyaW5n
c1siU2VsZWN0IGNvbXBhcmlzb24gc25hcHNob3QiXSA9ICJTZWxlY3QgY29tcGFyaXNvbiBzbmFw
c2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCJdID0gIlNlbGVjdGVkIjsKQEAgLTg1
Miw3ICs3NjAsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBTeW1ib2wiXSA9ICJTZWxl
Y3RlZCBTeW1ib2wiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0ZWQgVmFsdWUiXSA9ICJTZWxl
Y3RlZCBWYWx1ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWxlY3RlZCBXZWJTb2NrZXQiXSA9ICJT
ZWxlY3RlZCBXZWJTb2NrZXQiOwogbG9jYWxpemVkU3RyaW5nc1siU2VsZWN0b3IgUGF0aCJdID0g
IlNlbGVjdG9yIFBhdGgiOwotbG9jYWxpemVkU3RyaW5nc1siU2VsZiJdID0gIlNlbGYiOwogbG9j
YWxpemVkU3RyaW5nc1siU2VsZiBTaXplIl0gPSAiU2VsZiBTaXplIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNlbGYgVGltZSJdID0gIlNlbGYgVGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZW1hbnRp
YyBJc3N1ZSJdID0gIlNlbWFudGljIElzc3VlIjsKQEAgLTg2NSw3ICs3NzIsNiBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJTZXR0ZXIiXSA9ICJTZXR0ZXIiOwogbG9jYWxpemVkU3RyaW5nc1siU2V0dGlu
Z3MiXSA9ICJTZXR0aW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaGFkZXIiXSA9ICJTaGFkZXIi
OwogbG9jYWxpemVkU3RyaW5nc1siU2hhZGVyIFByb2dyYW1zIl0gPSAiU2hhZGVyIFByb2dyYW1z
IjsKLWxvY2FsaXplZFN0cmluZ3NbIlNoYWRvdyJdID0gIlNoYWRvdyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJTaGFkb3cgQ29udGVudCJdID0gIlNoYWRvdyBDb250ZW50IjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNoYWRvdyBDb250ZW50ICglcykiXSA9ICJTaGFkb3cgQ29udGVudCAoJXMpIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlNoYXJlZCBGb2N1cyJdID0gIlNoYXJlZCBGb2N1cyI7CkBAIC04ODAsNyAr
Nzg2LDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyBQYXRoIl0gPSAiU2hvdyBQYXRoIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlNob3cgUmVtYWluaW5nICglZCkiXSA9ICJTaG93IFJlbWFpbmluZyAo
JWQpIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cgUnVsZXJzIl0gPSAiU2hvdyBSdWxlcnMiOwog
bG9jYWxpemVkU3RyaW5nc1siU2hvdyBTY29wZSBDaGFpbiBvbiBwYXVzZSJdID0gIlNob3cgU2Nv
cGUgQ2hhaW4gb24gcGF1c2UiOwotbG9jYWxpemVkU3RyaW5nc1siU2hvdyBTb3VyY2UiXSA9ICJT
aG93IFNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IGFsbCBhY3Rpb25zIl0gPSAiU2hv
dyBhbGwgYWN0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTaG93IGFsbCByZXNvdXJjZXMiXSA9
ICJTaG93IGFsbCByZXNvdXJjZXMiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyBjb21wb3NpdGlu
ZyBib3JkZXJzIl0gPSAiU2hvdyBjb21wb3NpdGluZyBib3JkZXJzIjsKQEAgLTg5NywxMiArODAy
LDkgQEAgbG9jYWxpemVkU3RyaW5nc1siU2hvdyB0cmFuc3BhcmVuY3kgZ3JpZCJdID0gIlNob3cg
dHJhbnNwYXJlbmN5IGdyaWQiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdyB0eXBlIGluZm9ybWF0
aW9uIl0gPSAiU2hvdyB0eXBlIGluZm9ybWF0aW9uIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNob3cg
d2FybmluZ3MgbG9nZ2VkIHRvIHRoZSBDb25zb2xlIl0gPSAiU2hvdyB3YXJuaW5ncyBsb2dnZWQg
dG8gdGhlIENvbnNvbGUiOwogbG9jYWxpemVkU3RyaW5nc1siU2hvdzoiXSA9ICJTaG93OiI7Ci1s
b2NhbGl6ZWRTdHJpbmdzWyJTaHJpbmsiXSA9ICJTaHJpbmsiOwogbG9jYWxpemVkU3RyaW5nc1si
U2l6ZSJdID0gIlNpemUiOwogbG9jYWxpemVkU3RyaW5nc1siU2l6ZSBvZiBjdXJyZW50IG9iamVj
dCBwbHVzIGFsbCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIl0gPSAiU2l6ZSBvZiBjdXJyZW50IG9i
amVjdCBwbHVzIGFsbCBvYmplY3RzIGl0IGtlZXBzIGFsaXZlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlNpemVzIl0gPSAiU2l6ZXMiOwotbG9jYWxpemVkU3RyaW5nc1siU2l6aW5nIl0gPSAiU2l6aW5n
IjsKLWxvY2FsaXplZFN0cmluZ3NbIlNsaWNlIl0gPSAiU2xpY2UiOwogbG9jYWxpemVkU3RyaW5n
c1siU25hcHNob3QgJWQiXSA9ICJTbmFwc2hvdCAlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTbmFw
c2hvdCAlZCBcdTIwMTQgJXMiXSA9ICJTbmFwc2hvdCAlZCBcdTIwMTQgJXMiOwogbG9jYWxpemVk
U3RyaW5nc1siU25hcHNob3QgQ29tcGFyaXNvbiAoJWQgYW5kICVkKSJdID0gIlNuYXBzaG90IENv
bXBhcmlzb24gKCVkIGFuZCAlZCkiOwpAQCAtOTE2LDEyICs4MTgsOSBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJTb3VyY2VzIl0gPSAiU291cmNlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTb3VyY2VzOiJd
ID0gIlNvdXJjZXM6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlNwYWNlIl0gPSAiU3BhY2UiOwogbG9j
YWxpemVkU3RyaW5nc1siU3BhY2VzIl0gPSAiU3BhY2VzIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNw
YWNpbmciXSA9ICJTcGFjaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNwZWNpZmljaXR5OiAoJWQs
ICVkLCAlZCkiXSA9ICJTcGVjaWZpY2l0eTogKCVkLCAlZCwgJWQpIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlNwZWNpZmljaXR5OiBObyB2YWx1ZSBmb3Igc2VsZWN0ZWQgZWxlbWVudCJdID0gIlNwZWNp
ZmljaXR5OiBObyB2YWx1ZSBmb3Igc2VsZWN0ZWQgZWxlbWVudCI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJTcGVsbGluZyJdID0gIlNwZWxsaW5nIjsKLWxvY2FsaXplZFN0cmluZ3NbIlNwcmVhZCJdID0g
IlNwcmVhZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJTcHJpbmciXSA9ICJTcHJpbmciOwogbG9jYWxp
emVkU3RyaW5nc1siU3RhbGxlZCJdID0gIlN0YWxsZWQiOwogbG9jYWxpemVkU3RyaW5nc1siU3Rh
cnQgVGltZSJdID0gIlN0YXJ0IFRpbWUiOwogbG9jYWxpemVkU3RyaW5nc1siU3RhcnQgZWxlbWVu
dCBzZWxlY3Rpb24gKCVzKSJdID0gIlN0YXJ0IGVsZW1lbnQgc2VsZWN0aW9uICglcykiOwpAQCAt
OTQxLDEwICs4NDAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTdG9wIHJlY29yZGluZyJdID0gIlN0
b3AgcmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0b3AgcmVjb3JkaW5nICglcykiXSA9
ICJTdG9wIHJlY29yZGluZyAoJXMpIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0b3AgcmVjb3JkaW5n
IGNhbnZhcyBhY3Rpb25zIl0gPSAiU3RvcCByZWNvcmRpbmcgY2FudmFzIGFjdGlvbnMiOwogbG9j
YWxpemVkU3RyaW5nc1siU3RvcmFnZSJdID0gIlN0b3JhZ2UiOwotbG9jYWxpemVkU3RyaW5nc1si
U3Ryb2tlIl0gPSAiU3Ryb2tlIjsKLWxvY2FsaXplZFN0cmluZ3NbIlN0eWxlIl0gPSAiU3R5bGUi
OwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGUgQXR0cmlidXRlIl0gPSAiU3R5bGUgQXR0cmlidXRl
IjsKLWxvY2FsaXplZFN0cmluZ3NbIlN0eWxlIFJ1bGVzIl0gPSAiU3R5bGUgUnVsZXMiOwogbG9j
YWxpemVkU3RyaW5nc1siU3R5bGUgcnVsZSJdID0gIlN0eWxlIHJ1bGUiOwogbG9jYWxpemVkU3Ry
aW5nc1siU3R5bGVzIl0gPSAiU3R5bGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBJbnZh
bGlkYXRlZCJdID0gIlN0eWxlcyBJbnZhbGlkYXRlZCI7CkBAIC05NTIsNyArODQ4LDYgQEAgbG9j
YWxpemVkU3RyaW5nc1siU3R5bGVzIFJlY2FsY3VsYXRlZCJdID0gIlN0eWxlcyBSZWNhbGN1bGF0
ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGVzIFNpZGViYXI6Il0gPSAiU3R5bGVzIFNpZGVi
YXI6IjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBcdTIwMTQgQ29tcHV0ZWQiXSA9ICJTdHls
ZXMgXHUyMDE0IENvbXB1dGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBcdTIwMTQgUnVs
ZXMiXSA9ICJTdHlsZXMgXHUyMDE0IFJ1bGVzIjsKLWxvY2FsaXplZFN0cmluZ3NbIlN0eWxlcyBc
dTIwMTQgVmlzdWFsIl0gPSAiU3R5bGVzIFx1MjAxNCBWaXN1YWwiOwogbG9jYWxpemVkU3RyaW5n
c1siU3R5bGVzaGVldCJdID0gIlN0eWxlc2hlZXQiOwogbG9jYWxpemVkU3RyaW5nc1siU3R5bGVz
aGVldHMiXSA9ICJTdHlsZXNoZWV0cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTdWJ0cmVlIE1vZGlm
aWVkIl0gPSAiU3VidHJlZSBNb2RpZmllZCI7CkBAIC05NjgsMTQgKzg2MywxMiBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJUZXh0IEZyYW1lIl0gPSAiVGV4dCBGcmFtZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJUZXh0IE5vZGUiXSA9ICJUZXh0IE5vZGUiOwogbG9jYWxpemVkU3RyaW5nc1siVGhlIHBhZ2Un
cyBjb250ZW50IGhhcyBjaGFuZ2VkIl0gPSAiVGhlIHBhZ2UncyBjb250ZW50IGhhcyBjaGFuZ2Vk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoZSBzZWxlY3RvciDigJwlc+KAnSBpcyBpbnZhbGlkLlxu
Q2xpY2sgdG8gcmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBzZWxlY3Rvci4iXSA9ICJUaGUgc2VsZWN0
b3Ig4oCcJXPigJ0gaXMgaW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlvdXMg
c2VsZWN0b3IuIjsKLWxvY2FsaXplZFN0cmluZ3NbIlRoZSB2YWx1ZSDigJwlc+KAnSBpcyBub3Qg
c3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LiJdID0gIlRoZSB2YWx1ZSDigJwlc+KAnSBpcyBu
b3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGUg
dmFsdWUg4oCcJXPigJ0gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbkNsaWNr
IHRvIGRlbGV0ZSBhbmQgb3BlbiBhdXRvY29tcGxldGUuIl0gPSAiVGhlIHZhbHVlIOKAnCVz4oCd
IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG5DbGljayB0byBkZWxldGUgYW5k
IG9wZW4gYXV0b2NvbXBsZXRlLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGUgdmFsdWUg4oCcJXPi
gJ0gbmVlZHMgdW5pdHMuXG5DbGljayB0byBhZGQg4oCccHjigJ0gdG8gdGhlIHZhbHVlLiJdID0g
IlRoZSB2YWx1ZSDigJwlc+KAnSBuZWVkcyB1bml0cy5cbkNsaWNrIHRvIGFkZCDigJxweOKAnSB0
byB0aGUgdmFsdWUuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRoZSB2YXJpYWJsZSDigJwlc+KAnSBk
b2VzIG5vdCBleGlzdC5cbkNsaWNrIHRvIGRlbGV0ZSBhbmQgb3BlbiBhdXRvY29tcGxldGUuIl0g
PSAiVGhlIHZhcmlhYmxlIOKAnCVz4oCdIGRvZXMgbm90IGV4aXN0LlxuQ2xpY2sgdG8gZGVsZXRl
IGFuZCBvcGVuIGF1dG9jb21wbGV0ZS4iOwogbG9jYWxpemVkU3RyaW5nc1siVGhlIOKAnCVz4oCd
XG50YWJsZSBpcyBlbXB0eS4iXSA9ICJUaGUg4oCcJXPigJ1cbnRhYmxlIGlzIGVtcHR5LiI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJUaGUg4oCcd2Via2l04oCdIHByZWZpeCBpcyBuZWVkZWQgZm9yIHRo
aXMgcHJvcGVydHkuXG5DbGljayB0byBpbnNlcnQgYSBkdXBsaWNhdGUgd2l0aCB0aGUgcHJlZml4
LiJdID0gIlRoZSDigJx3ZWJraXTigJ0gcHJlZml4IGlzIG5lZWRlZCBmb3IgdGhpcyBwcm9wZXJ0
eS5cbkNsaWNrIHRvIGluc2VydCBhIGR1cGxpY2F0ZSB3aXRoIHRoZSBwcmVmaXguIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlRoZSDigJx3ZWJraXTigJ0gcHJlZml4IGlzIG5vdCBuZWNlc3NhcnkuXG5D
bGljayB0byBpbnNlcnQgYSBkdXBsaWNhdGUgd2l0aG91dCB0aGUgcHJlZml4LiJdID0gIlRoZSDi
gJx3ZWJraXTigJ0gcHJlZml4IGlzIG5vdCBuZWNlc3NhcnkuXG5DbGljayB0byBpbnNlcnQgYSBk
dXBsaWNhdGUgd2l0aG91dCB0aGUgcHJlZml4LiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIEVs
ZW1lbnQiXSA9ICJUaGlzIEVsZW1lbnQiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBhY3Rpb24g
Y2F1c2VzIG5vIHZpc3VhbCBjaGFuZ2UiXSA9ICJUaGlzIGFjdGlvbiBjYXVzZXMgbm8gdmlzdWFs
IGNoYW5nZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaGlzIG9iamVjdCBpcyBhIHJvb3QiXSA9ICJU
aGlzIG9iamVjdCBpcyBhIHJvb3QiOwogbG9jYWxpemVkU3RyaW5nc1siVGhpcyBvYmplY3QgaXMg
cmVmZXJlbmNlZCBieSBpbnRlcm5hbCBvYmplY3RzIl0gPSAiVGhpcyBvYmplY3QgaXMgcmVmZXJl
bmNlZCBieSBpbnRlcm5hbCBvYmplY3RzIjsKQEAgLTk5Niw3ICs4ODksNiBAQCBsb2NhbGl6ZWRT
dHJpbmdzWyJUaW1lc3RhbXAgXHUyMDE0ICVzIl0gPSAiVGltZXN0YW1wIFx1MjAxNCAlcyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJUaW1pbmciXSA9ICJUaW1pbmciOwogbG9jYWxpemVkU3RyaW5nc1si
VG9nZ2xlIENsYXNzZXMiXSA9ICJUb2dnbGUgQ2xhc3NlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJU
b2dnbGUgVmlzaWJpbGl0eSJdID0gIlRvZ2dsZSBWaXNpYmlsaXR5IjsKLWxvY2FsaXplZFN0cmlu
Z3NbIlRvcCJdID0gIlRvcCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3AgRnVuY3Rpb25zIl0gPSAi
VG9wIEZ1bmN0aW9ucyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3RhbCBUaW1lIl0gPSAiVG90YWwg
VGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUb3RhbCBtZW1vcnkgc2l6ZSBhdCB0aGUgZW5kIG9m
IHRoZSBzZWxlY3RlZCB0aW1lIHJhbmdlIl0gPSAiVG90YWwgbWVtb3J5IHNpemUgYXQgdGhlIGVu
ZCBvZiB0aGUgc2VsZWN0ZWQgdGltZSByYW5nZSI7CkBAIC0xMDA2LDggKzg5OCw2IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIlRyYWNlIl0gPSAiVHJhY2UiOwogbG9jYWxpemVkU3RyaW5nc1siVHJhY2U6
ICVzIl0gPSAiVHJhY2U6ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRyYW5zZmVyIFNpemUiXSA9
ICJUcmFuc2ZlciBTaXplIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRyYW5zZmVycmVkIl0gPSAiVHJh
bnNmZXJyZWQiOwotbG9jYWxpemVkU3RyaW5nc1siVHJhbnNmb3JtIl0gPSAiVHJhbnNmb3JtIjsK
LWxvY2FsaXplZFN0cmluZ3NbIlRyYW5zaXRpb24iXSA9ICJUcmFuc2l0aW9uIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlRyaWdnZXJlZCBCcmVha3BvaW50Il0gPSAiVHJpZ2dlcmVkIEJyZWFrcG9pbnQi
OwogbG9jYWxpemVkU3RyaW5nc1siVHJpZ2dlcmVkIFhIUiBCcmVha3BvaW50Il0gPSAiVHJpZ2dl
cmVkIFhIUiBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlRydWUiXSA9ICJUcnVlIjsK
QEAgLTEwMTgsOSArOTA4LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siVVJMIl0gPSAiVVJMIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlVuYWJsZSB0byBkZXRlcm1pbmUgcGF0aCB0byBwcm9wZXJ0eSBmcm9t
IHJvb3QiXSA9ICJVbmFibGUgdG8gZGV0ZXJtaW5lIHBhdGggdG8gcHJvcGVydHkgZnJvbSByb290
IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVuYWJsZSB0byBwYXJzZSBhcyBKU09OOiAlcyJdID0gIlVu
YWJsZSB0byBwYXJzZSBhcyBKU09OOiAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJVbmNhdWdodCBF
eGNlcHRpb25zIl0gPSAiVW5jYXVnaHQgRXhjZXB0aW9ucyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJV
bmNoYW5nZWQiXSA9ICJVbmNoYW5nZWQiOwogbG9jYWxpemVkU3RyaW5nc1siVW5jb21tZW50IEFs
bCBQcm9wZXJ0aWVzIl0gPSAiVW5jb21tZW50IEFsbCBQcm9wZXJ0aWVzIjsKLWxvY2FsaXplZFN0
cmluZ3NbIlVuY29tbWVudCBydWxlIl0gPSAiVW5jb21tZW50IHJ1bGUiOwogbG9jYWxpemVkU3Ry
aW5nc1siVW5kZWZpbmVkIGN1c3RvbSBlbGVtZW50Il0gPSAiVW5kZWZpbmVkIGN1c3RvbSBlbGVt
ZW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVuaXF1ZSJdID0gIlVuaXF1ZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJVbmtub3duIGVycm9yIl0gPSAiVW5rbm93biBlcnJvciI7CkBAIC0xMDM1LDIzICs5
MjMsMTggQEAgbG9jYWxpemVkU3RyaW5nc1siVXNlciBBZ2VudCJdID0gIlVzZXIgQWdlbnQiOwog
bG9jYWxpemVkU3RyaW5nc1siVXNlciBBZ2VudCBTdHlsZXNoZWV0Il0gPSAiVXNlciBBZ2VudCBT
dHlsZXNoZWV0IjsKIGxvY2FsaXplZFN0cmluZ3NbIlVzZXIgSW50ZXJmYWNlOiJdID0gIlVzZXIg
SW50ZXJmYWNlOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJVc2VyIFN0eWxlc2hlZXQiXSA9ICJVc2Vy
IFN0eWxlc2hlZXQiOwotbG9jYWxpemVkU3RyaW5nc1siVXNpbmcgS2V5d29yZCBWYWx1ZSJdID0g
IlVzaW5nIEtleXdvcmQgVmFsdWUiOwogbG9jYWxpemVkU3RyaW5nc1siVXNpbmcgcHJldmlvdXMg
c2VsZWN0b3Ig4oCcJXPigJ0iXSA9ICJVc2luZyBwcmV2aW91cyBzZWxlY3RvciDigJwlc+KAnSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJWYWx1ZSJdID0gIlZhbHVlIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IlZhcmlhYmxlcyJdID0gIlZhcmlhYmxlcyI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWYXJpYW50cyJd
ID0gIlZhcmlhbnRzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZlcmJvc2UiXSA9ICJWZXJib3NlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlZlcnNpb24iXSA9ICJWZXJzaW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlZlcnRleCJdID0gIlZlcnRleCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0ZXggU2hhZGVy
Il0gPSAiVmVydGV4IFNoYWRlciI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWZXJ0aWNhbCJdID0gIlZl
cnRpY2FsIjsKIGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgSW1hZ2UiXSA9ICJWaWV3IEltYWdlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlZpZXcgUmVjb3JkaW5nIl0gPSAiVmlldyBSZWNvcmRpbmciOwog
bG9jYWxpemVkU3RyaW5nc1siVmlldyBTaGFkZXIiXSA9ICJWaWV3IFNoYWRlciI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJWaWV3IHZhcmlhYmxlIHZhbHVlIl0gPSAiVmlldyB2YXJpYWJsZSB2YWx1ZSI7
Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWaXNpYmlsaXR5Il0gPSAiVmlzaWJpbGl0eSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJWaXNpYmxlIl0gPSAiVmlzaWJsZSI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJWaXN1
YWwiXSA9ICJWaXN1YWwiOwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyJdID0gIldhaXRpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siV2FpdGluZyBmb3IgY2FudmFzIGNvbnRleHRzIGNyZWF0ZWQg
Ynkgc2NyaXB0IG9yIENTUy4iXSA9ICJXYWl0aW5nIGZvciBjYW52YXMgY29udGV4dHMgY3JlYXRl
ZCBieSBzY3JpcHQgb3IgQ1NTLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXYWl0aW5nIGZvciBmcmFt
ZXPigKYiXSA9ICJXYWl0aW5nIGZvciBmcmFtZXPigKYiOwpAQCAtMTA2MywyOCArOTQ2LDE3IEBA
IGxvY2FsaXplZFN0cmluZ3NbIldlYiBJbnNwZWN0b3IiXSA9ICJXZWIgSW5zcGVjdG9yIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIldlYlJUQyJdID0gIldlYlJUQyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJX
ZWJSVEMgTG9nZ2luZzoiXSA9ICJXZWJSVEMgTG9nZ2luZzoiOwogbG9jYWxpemVkU3RyaW5nc1si
V2ViU29ja2V0IENvbm5lY3Rpb24gRXN0YWJsaXNoZWQiXSA9ICJXZWJTb2NrZXQgQ29ubmVjdGlv
biBFc3RhYmxpc2hlZCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJXZWlnaHQiXSA9ICJXZWlnaHQiOwot
bG9jYWxpemVkU3RyaW5nc1siV2hpdGVzcGFjZSJdID0gIldoaXRlc3BhY2UiOwogbG9jYWxpemVk
U3RyaW5nc1siV2hpdGVzcGFjZSBjaGFyYWN0ZXJzIl0gPSAiV2hpdGVzcGFjZSBjaGFyYWN0ZXJz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIldpZHRoIl0gPSAiV2lkdGgiOwogbG9jYWxpemVkU3RyaW5n
c1siV2l0aCBPYmplY3QgUHJvcGVydGllcyJdID0gIldpdGggT2JqZWN0IFByb3BlcnRpZXMiOwot
bG9jYWxpemVkU3RyaW5nc1siV29yZCJdID0gIldvcmQiOwogbG9jYWxpemVkU3RyaW5nc1siV29y
a2VyIFx1MjAxNCAlcyJdID0gIldvcmtlciBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1si
V29ya2luZyBDb3B5Il0gPSAiV29ya2luZyBDb3B5IjsKLWxvY2FsaXplZFN0cmluZ3NbIldyYXAi
XSA9ICJXcmFwIjsKIGxvY2FsaXplZFN0cmluZ3NbIldyYXAgbGluZXMgdG8gZWRpdG9yIHdpZHRo
Il0gPSAiV3JhcCBsaW5lcyB0byBlZGl0b3Igd2lkdGgiOwotbG9jYWxpemVkU3RyaW5nc1siWCJd
ID0gIlgiOwotbG9jYWxpemVkU3RyaW5nc1siWDEiXSA9ICJYMSI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJYMiJdID0gIlgyIjsKIGxvY2FsaXplZFN0cmluZ3NbIlhIUiJdID0gIlhIUiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJYSFIgQnJlYWtwb2ludHMiXSA9ICJYSFIgQnJlYWtwb2ludHMiOwogbG9jYWxp
emVkU3RyaW5nc1siWEhScyJdID0gIlhIUnMiOwogbG9jYWxpemVkU3RyaW5nc1siWFBhdGgiXSA9
ICJYUGF0aCI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJZIl0gPSAiWSI7Ci1sb2NhbGl6ZWRTdHJpbmdz
WyJZMSJdID0gIlkxIjsKLWxvY2FsaXplZFN0cmluZ3NbIlkyIl0gPSAiWTIiOwogbG9jYWxpemVk
U3RyaW5nc1siWWVzIl0gPSAiWWVzIjsKLWxvY2FsaXplZFN0cmluZ3NbIlotSW5kZXgiXSA9ICJa
LUluZGV4IjsKIGxvY2FsaXplZFN0cmluZ3NbIlpvb206Il0gPSAiWm9vbToiOwogbG9jYWxpemVk
U3RyaW5nc1siY29tcHV0ZWQiXSA9ICJjb21wdXRlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJkZWZh
dWx0Il0gPSAiZGVmYXVsdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9CYXNlL1NldHRpbmcuanMKaW5kZXggYTBhNTc5ZTQyMWIwZWM5OWUwNzA0YmIzZDMx
YWY0MzA3MzhjOTI4ZC4uOGQ4NGVmMzI0MzBiOWZhZWU4YmJhOTk2MWM2OWJlZTY0OWY1NWVjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0
aW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0
dGluZy5qcwpAQCAtMTIyLDcgKzEyMiw2IEBAIFdJLnNldHRpbmdzID0gewogICAgIGV4cGVyaW1l
bnRhbEVuYWJsZUxheWVyc1RhYjogbmV3IFdJLlNldHRpbmcoImV4cGVyaW1lbnRhbC1lbmFibGUt
bGF5ZXJzLXRhYiIsIGZhbHNlKSwKICAgICBleHBlcmltZW50YWxFbmFibGVTb3VyY2VzVGFiOiBu
ZXcgV0kuU2V0dGluZygiZXhwZXJpbWVudGFsLWVuYWJsZS1zb3VyY2VzLWJhciIsIGZhbHNlKSwK
ICAgICBleHBlcmltZW50YWxMZWdhY3lTdHlsZUVkaXRvcjogbmV3IFdJLlNldHRpbmcoImV4cGVy
aW1lbnRhbC1sZWdhY3ktc3R5bGUtZWRpdG9yIiwgZmFsc2UpLAotICAgIGV4cGVyaW1lbnRhbExl
Z2FjeVZpc3VhbFNpZGViYXI6IG5ldyBXSS5TZXR0aW5nKCJleHBlcmltZW50YWwtbGVnYWN5LXZp
c3VhbC1zaWRlYmFyIiwgZmFsc2UpLAogICAgIGV4cGVyaW1lbnRhbEVuYWJsZU5ld1RhYkJhcjog
bmV3IFdJLlNldHRpbmcoImV4cGVyaW1lbnRhbC1lbmFibGUtbmV3LXRhYi1iYXIiLCBmYWxzZSks
CiAgICAgZXhwZXJpbWVudGFsRW5hYmxlQWNjZXNzaWJpbGl0eUF1ZGl0VGFiOiBuZXcgV0kuU2V0
dGluZygiZXhwZXJpbWVudGFsLWVuYWJsZS1hY2Nlc3NpYmlsaXR5LWF1ZGl0LXRhYiIsIGZhbHNl
KSwKICAgICBleHBlcmltZW50YWxSZWNvcmRpbmdIYXNWaXN1YWxFZmZlY3Q6IG5ldyBXSS5TZXR0
aW5nKCJleHBlcmltZW50YWwtcmVjb3JkaW5nLWhhcy12aXN1YWwtZWZmZWN0IiwgZmFsc2UpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29u
dHJvbGxlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNlOTZiN2VkZDcyMTE2
M2U0MjJhMGUxZTI1ZWU1ZDhmZDJhMDE4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVDb21wbGV0aW9u
c0NvbnRyb2xsZXIgPSBjbGFzcyBWaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlciBleHRl
bmRzIFdJLk9iamVjdAotewotICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlIHx8IG51bGw7
Ci0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldyA9IG5ldyBXSS5Db21wbGV0aW9uU3VnZ2Vz
dGlvbnNWaWV3KHRoaXMpOwotICAgICAgICB0aGlzLl9jb21wbGV0aW9ucyA9IG51bGw7Ci0gICAg
ICAgIHRoaXMuX2N1cnJlbnRDb21wbGV0aW9ucyA9IFtdOwotICAgICAgICB0aGlzLl9zZWxlY3Rl
ZENvbXBsZXRpb25JbmRleCA9IDA7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQg
dmlzaWJsZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlvbnMgJiYgdGhp
cy5fY3VycmVudENvbXBsZXRpb25zLmxlbmd0aCAmJiB0aGlzLl9zdWdnZXN0aW9uc1ZpZXcudmlz
aWJsZTsKLSAgICB9Ci0KLSAgICBnZXQgaGFzQ29tcGxldGlvbnMoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuICEhdGhpcy5fY29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgZ2V0IGN1cnJlbnRDb21w
bGV0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9ucykKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50Q29tcGxl
dGlvbnNbdGhpcy5fc2VsZWN0ZWRDb21wbGV0aW9uSW5kZXhdIHx8IG51bGw7Ci0gICAgfQotCi0g
ICAgc2V0IGNvbXBsZXRpb25zKGNvbXBsZXRpb25zKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29t
cGxldGlvbnMgPSBjb21wbGV0aW9ucyB8fCBudWxsOwotICAgIH0KLQotICAgIGNvbXBsZXRpb25T
dWdnZXN0aW9uc1ZpZXdDdXN0b21pemVDb21wbGV0aW9uRWxlbWVudChzdWdnZXN0aW9uc1ZpZXcs
IGVsZW1lbnQsIGl0ZW0pCi0gICAgewotICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlw
ZW9mIHRoaXMuX2RlbGVnYXRlLnZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyQ3VzdG9t
aXplQ29tcGxldGlvbkVsZW1lbnQgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzLl9k
ZWxlZ2F0ZS52aXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlckN1c3RvbWl6ZUNvbXBsZXRp
b25FbGVtZW50KHN1Z2dlc3Rpb25zVmlldywgZWxlbWVudCwgaXRlbSk7Ci0gICAgfQotCi0gICAg
Y29tcGxldGlvblN1Z2dlc3Rpb25zQ2xpY2tlZENvbXBsZXRpb24oc3VnZ2VzdGlvbnNWaWV3LCB0
ZXh0KQotICAgIHsKLSAgICAgICAgc3VnZ2VzdGlvbnNWaWV3LmhpZGUoKTsKLSAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRy
b2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVkLCB7dGV4dH0pOwotICAgIH0KLQotICAgIHBy
ZXZpb3VzKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5zZWxlY3RQcmV2
aW91cygpOwotICAgICAgICB0aGlzLl9zZWxlY3RlZENvbXBsZXRpb25JbmRleCA9IHRoaXMuX3N1
Z2dlc3Rpb25zVmlldy5zZWxlY3RlZEluZGV4OwotICAgIH0KLQotICAgIG5leHQoKQotICAgIHsK
LSAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNWaWV3LnNlbGVjdE5leHQoKTsKLSAgICAgICAgdGhp
cy5fc2VsZWN0ZWRDb21wbGV0aW9uSW5kZXggPSB0aGlzLl9zdWdnZXN0aW9uc1ZpZXcuc2VsZWN0
ZWRJbmRleDsKLSAgICB9Ci0KLSAgICB1cGRhdGUodmFsdWUpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMuaGFzQ29tcGxldGlvbnMpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAg
ICAgdGhpcy5fY3VycmVudENvbXBsZXRpb25zID0gdGhpcy5fY29tcGxldGlvbnMuc3RhcnRzV2l0
aCh2YWx1ZSk7Ci0KLSAgICAgICAgdmFyIGN1cnJlbnRDb21wbGV0aW9uc0xlbmd0aCA9IHRoaXMu
X2N1cnJlbnRDb21wbGV0aW9ucy5sZW5ndGg7Ci0gICAgICAgIGlmIChjdXJyZW50Q29tcGxldGlv
bnNMZW5ndGgpIHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50Q29tcGxldGlvbnNMZW5ndGggPT09
IDEgJiYgdGhpcy5fY3VycmVudENvbXBsZXRpb25zWzBdID09PSB2YWx1ZSkgewotICAgICAgICAg
ICAgICAgIHRoaXMuaGlkZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkQ29tcGxldGlvbkluZGV4
ID49IGN1cnJlbnRDb21wbGV0aW9uc0xlbmd0aCkKLSAgICAgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RlZENvbXBsZXRpb25JbmRleCA9IDA7Ci0KLSAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25z
Vmlldy51cGRhdGUodGhpcy5fY3VycmVudENvbXBsZXRpb25zLCB0aGlzLl9zZWxlY3RlZENvbXBs
ZXRpb25JbmRleCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuaGlkZSgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgc2hv
dyhib3VuZHMsIHBhZGRpbmcpCi0gICAgewotICAgICAgICBpZiAoIWJvdW5kcykKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1ZpZXcuc2hvdyhib3VuZHMu
cGFkKHBhZGRpbmcgfHwgMCkpOwotICAgIH0KLQotICAgIGhpZGUoKQotICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5pc0hhbmRsaW5nQ2xpY2tFdmVudCgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zVmlldy5oaWRlKCk7Ci0g
ICAgfQotfTsKLQotV0kuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuRXZlbnQgPSB7
Ci0gICAgQ29tcGxldGlvblNlbGVjdGVkOiAidmlzdWFsLXN0eWxlLWNvbXBsZXRpb25zLWNvbnRy
b2xsZXItY29tcGxldGlvbi1zZWxlY3RlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQW5pbWF0aW9uUGxheVN0YXRlUGF1c2VkLnN2
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25Q
bGF5U3RhdGVQYXVzZWQuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDI0ZWE1
YjZjOTViZjNlNzliMDRlMzIzNjJhNDUzYmZkYjEwNjcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVQYXVzZWQuc3ZnCisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgot
PCEtLSBDb3B5cmlnaHQgwqkgMjAxNiBEZXZpbiBSb3Vzc28gPHdlYmtpdEBkZXZpbnJvdXNzby5j
b20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYi
PgotICAgIDxyZWN0IGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIiB4PSIyLjUiIHk9
IjIuNSIgd2lkdGg9IjMiIGhlaWdodD0iMTAiLz4KLSAgICA8cmVjdCBmaWxsPSJjdXJyZW50Q29s
b3IiIHN0cm9rZT0ibm9uZSIgeD0iOS41IiB5PSIyLjUiIHdpZHRoPSIzIiBoZWlnaHQ9IjEwIi8+
Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVSdW5uaW5nLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbmltYXRpb25QbGF5U3RhdGVSdW5uaW5nLnN2Zwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFmMjAyMzhmOGIyMzFiNDc3MThiYmQ1ZGQx
N2ZkZjNkYWI1NGU4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQW5pbWF0aW9u
UGxheVN0YXRlUnVubmluZy5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE2
IERldmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290
IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGggZmlsbD0iY3Vy
cmVudENvbG9yIiBzdHJva2U9Im5vbmUiIGQ9Ik0gNC41IDIuNSBMIDQuNSAxMi41IEwgMTIuNSA3
LjUgWiIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvQ2xlYXJCb3RoLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9DbGVhckJvdGguc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjZjczMjk1NjdmYWJhMDdiNTQzMGNkNmZkYzI0NjI4OGY5YjQ4NTllLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckJvdGguc3ZnCisrKyAvZGV2L251bGwKQEAgLTEs
MTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0g
Q29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0i
MS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0i
Y3VycmVudENvbG9yIiB4PSIwLjUiIHk9IjEuNSIgd2lkdGg9IjMuNSIgaGVpZ2h0PSIxMiIvPgot
ICAgIDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjAu
NSAzLjUgMC41IDUuNSA0IDMuNSA0IDEuNSIvPgotICAgIDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRD
b2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjAuNSA3LjUgMC41IDkuNSA0IDcuNSA0IDUuNSIv
PgotICAgIDxwb2x5Z29uIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9
IjAuNSAxMS41IDAuNSAxMy41IDQgMTEuNSA0IDkuNSIvPgotICAgIDxyZWN0IGZpbGw9Im5vbmUi
IHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxMiIgeT0iMS41IiB3aWR0aD0iMy41IiBoZWlnaHQ9
IjEyIi8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciIHBv
aW50cz0iMTIgMy41IDEyIDUuNSAxNS41IDMuNSAxNS41IDEuNSIvPgotICAgIDxwb2x5Z29uIGZp
bGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjEyIDcuNSAxMiA5LjUgMTUu
NSA3LjUgMTUuNSA1LjUiLz4KLSAgICA8cG9seWdvbiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNp
dHk9IjAuNyIgcG9pbnRzPSIxMiAxMS41IDEyIDEzLjUgMTUuNSAxMS41IDE1LjUgOS41Ii8+Ci0g
ICAgPHJlY3QgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHg9IjUuNSIgeT0iNSIg
d2lkdGg9IjUiIGhlaWdodD0iNSIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJMZWZ0LnN2ZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckxlZnQuc3ZnCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkYmE4OTIwNTJiYjhjNDYyYzQ4MGYwOGY2ZTVlYWFjY2RhNzA4
YzVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9DbGVhckxlZnQuc3ZnCisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1
dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJy
b290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgZmlsbD0i
bm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHg9IjIiIHk9IjEuNSIgd2lkdGg9IjUiIGhlaWdo
dD0iMTIiLz4KLSAgICA8cG9seWdvbiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNyIg
cG9pbnRzPSIyIDMuNSAyIDUuNSA3IDMuNSA3IDEuNSIvPgotICAgIDxwb2x5Z29uIGZpbGw9ImN1
cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjIgNy41IDIgOS41IDcgNy41IDcgNS41
Ii8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjciIHBvaW50
cz0iMiAxMS41IDIgMTMuNSA3IDExLjUgNyA5LjUiLz4KLSAgICA8cmVjdCBmaWxsPSJub25lIiBz
dHJva2U9ImN1cnJlbnRDb2xvciIgeD0iOSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgot
PC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvQ2xlYXJSaWdodC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4
YzRkYTZmZjkxNDY5YWIyZTlkNjM0MTYzNTlmYzJjMWUxMzM2NWQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmln
aHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZp
ZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHJlY3QgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50
Q29sb3IiIHg9IjkiIHk9IjEuNSIgd2lkdGg9IjUiIGhlaWdodD0iMTIiLz4KLSAgICA8cG9seWdv
biBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuNyIgcG9pbnRzPSI5IDMuNSA5IDUuNSAx
NCAzLjUgMTQgMS41Ii8+Ci0gICAgPHBvbHlnb24gZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5
PSIwLjciIHBvaW50cz0iOSA3LjUgOSA5LjUgMTQgNy41IDE0IDUuNSIvPgotICAgIDxwb2x5Z29u
IGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC43IiBwb2ludHM9IjkgMTEuNSA5IDEzLjUg
MTQgMTEuNSAxNCA5LjUiLz4KLSAgICA8cmVjdCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRD
b2xvciIgeD0iMiIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgotPC9zdmc+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRMZWZ0
LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdExl
ZnQuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDRiYzIzYTE5MmEzNDI4ODI2
ZDg1MTc1MmE1MjM0YmY5MjEzODY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9G
bG9hdExlZnQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYi
PgotICAgIDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIwLjUiIHk9
IjIuNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENv
bG9yIiB4MT0iNy41IiB5MT0iMi41IiB4Mj0iMTYiIHkyPSIyLjUiLz4KLSAgICA8bGluZSBzdHJv
a2U9ImN1cnJlbnRDb2xvciIgeDE9IjcuNSIgeTE9IjUiIHgyPSIxNiIgeTI9IjUiLz4KLSAgICA8
bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjcuNSIgeTE9IjcuNSIgeDI9IjE2IiB5Mj0i
Ny41Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwIiB5MT0iMTAiIHgy
PSIxNiIgeTI9IjEwIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwIiB5
MT0iMTIuNSIgeDI9IjE2IiB5Mj0iMTIuNSIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRSaWdodC5zdmcgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRSaWdodC5zdmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNDY2Y2ExMWU4ZmVjZTBmYmUyY2NhMGUyY2Zk
YjI3ZDQ4MTRjYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0UmlnaHQu
c3ZnCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxy
ZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxMC41IiB5PSIyLjUiIHdp
ZHRoPSI1IiBoZWlnaHQ9IjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9
IjAiIHkxPSIyLjUiIHgyPSI4LjUiIHkyPSIyLjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJl
bnRDb2xvciIgeDE9IjAiIHkxPSI1IiB4Mj0iOC41IiB5Mj0iNSIvPgotICAgIDxsaW5lIHN0cm9r
ZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjcuNSIgeDI9IjguNSIgeTI9IjcuNSIvPgotICAg
IDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjEwIiB4Mj0iMTYiIHkyPSIx
MCIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjEyLjUiIHgy
PSIxNiIgeTI9IjEyLjUiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGljLnN2ZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY3NzA1ZjEwYmFlYzRkMzQzOThkODU4NDBjMWFj
NjE3MTVlZmZjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRh
bGljLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAg
IDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTSA0LjU1NzEyODkxIDguMzU0NDkyMTkgTCA0
LjE4MzU5Mzc1IDUuNTAyNDQxNDEgTCAyLjUzNTY0NDUzIDguMzU0NDkyMTkgTCA0LjU1NzEyODkx
IDguMzU0NDkyMTkgWiBNIDMuOTMzMTA1NDcgNC41NDQ0MzM1OSBMIDQuOTIxODc1IDQuNTQ0NDMz
NTkgTCA1Ljg5MzA2NjQxIDExIEwgNC45MzUwNTg1OSAxMSBMIDQuNjg4OTY0ODQgOS4wNjY0MDYy
NSBMIDIuMTM1NzQyMTkgOS4wNjY0MDYyNSBMIDEuMDI4MzIwMzEgMTEgTCAwLjEzMTgzNTkzOCAx
MSBMIDMuOTMzMTA1NDcgNC41NDQ0MzM1OSBaIE0gNy44OTY5NzI2NiA0LjUyMjQ2MDk0IEwgOC42
NjYwMTU2MiA0LjUyMjQ2MDk0IEwgOC4xNjk0MzM1OSA2Ljg2NDc0NjA5IEMgOC4zODkxNjEyNSA2
LjYzOTE1OTAzIDguNjMxNTkwNDcgNi40NjcwNDE2MSA4Ljg5NjcyODUyIDYuMzQ4Mzg4NjcgQyA5
LjE2MTg2NjU2IDYuMjI5NzM1NzMgOS40MzUwNTcxOSA2LjE3MDQxMDE2IDkuNzE2MzA4NTkgNi4x
NzA0MTAxNiBDIDEwLjMwMjI0OSA2LjE3MDQxMDE2IDEwLjczNTEwNiA2LjM3MTgyNDE2IDExLjAx
NDg5MjYgNi43NzQ2NTgyIEMgMTEuMjk0Njc5MSA3LjE3NzQ5MjI1IDExLjM1MTA3NTEgNy43NzE0
ODA0NSAxMS4xODQwODIgOC41NTY2NDA2MiBDIDExLjAyNTg3ODEgOS4zMDA3ODQ5NyAxMC43MTM4
Njk1IDkuOTE4OTQyODUgMTAuMjQ4MDQ2OSAxMC40MTExMzI4IEMgOS43ODIyMjQyMyAxMC45MDMz
MjI4IDkuMjI5OTgzNjYgMTEuMTQ5NDE0MSA4LjU5MTMwODU5IDExLjE0OTQxNDEgQyA4LjIzMzg4
NDkzIDExLjE0OTQxNDEgNy45NTExNzI5MiAxMS4wNjI5ODkxIDcuNzQzMTY0MDYgMTAuODkwMTM2
NyBDIDcuNjE3MTg2ODcgMTAuNzg3NTk3MSA3LjQ5NTYwNjA1IDEwLjYyMzUzNjMgNy4zNzg0MTc5
NyAxMC4zOTc5NDkyIEwgNy4yNTA5NzY1NiAxMSBMIDYuNTIxNDg0MzcgMTEgTCA3Ljg5Njk3MjY2
IDQuNTIyNDYwOTQgWiBNIDEwLjM2NjY5OTIgOC41OTYxOTE0MSBDIDEwLjQ3MjE2ODUgOC4xMDEw
NzE3NCAxMC40NTMxMjU3IDcuNjkwOTE5NTkgMTAuMzA5NTcwMyA3LjM2NTcyMjY2IEMgMTAuMTY2
MDE0OSA3LjA0MDUyNTcyIDkuODg3Njk3MzggNi44Nzc5Mjk2OSA5LjQ3NDYwOTM4IDYuODc3OTI5
NjkgQyA5LjExNDI1NjAxIDYuODc3OTI5NjkgOC43NzAwMjExNyA3LjAxMTIyOTE0IDguNDQxODk0
NTMgNy4yNzc4MzIwMyBDIDguMTEzNzY3ODkgNy41NDQ0MzQ5MyA3Ljg4NTI1NDU1IDcuOTgzODgz
NjYgNy43NTYzNDc2NiA4LjU5NjE5MTQxIEMgNy42NjI1OTcxOSA5LjAzODU3NjQzIDcuNjQyMDg5
NTggOS4zOTc0NTk1NiA3LjY5NDgyNDIyIDkuNjcyODUxNTYgQyA3Ljc5MTUwNDM5IDEwLjE5MTQw
ODggOC4xMjQwMjA2IDEwLjQ1MDY4MzYgOC42OTIzODI4MSAxMC40NTA2ODM2IEMgOS4xMjAxMTkz
MyAxMC40NTA2ODM2IDkuNDc2MDcyOCAxMC4yODA3NjM0IDkuNzYwMjUzOTEgOS45NDA5MTc5NyBD
IDEwLjA0NDQzNSA5LjYwMTA3MjUyIDEwLjI0NjU4MTQgOS4xNTI4MzQ4MSAxMC4zNjY2OTkyIDgu
NTk2MTkxNDEgTCAxMC4zNjY2OTkyIDguNTk2MTkxNDEgWiBNIDE1Ljk2MDkzNzUgNy44NzU0ODgy
OCBMIDE1LjE5MTg5NDUgNy44NzU0ODgyOCBDIDE1LjIwNjU0MyA3LjU4NTQ0Nzc3IDE1LjE1MDg3
OTUgNy4zNDQ0ODMzOCAxNS4wMjQ5MDIzIDcuMTUyNTg3ODkgQyAxNC44OTg5MjUyIDYuOTYwNjky
NCAxNC42NTEzNjkgNi44NjQ3NDYwOSAxNC4yODIyMjY2IDYuODY0NzQ2MDkgQyAxMy43NzgzMTc4
IDYuODY0NzQ2MDkgMTMuMzY1MjM2IDcuMTEwODM3MzggMTMuMDQyOTY4OCA3LjYwMzAyNzM0IEMg
MTIuODM0OTU5OSA3LjkyMjM2NDg4IDEyLjY4MTE1MjggOC4zMTY0MDM5MSAxMi41ODE1NDMgOC43
ODUxNTYyNSBDIDEyLjQ3OTAwMzQgOS4yNTY4MzgzIDEyLjQ5MzY1MTcgOS42NTM4MDY5OCAxMi42
MjU0ODgzIDkuOTc2MDc0MjIgQyAxMi43NTczMjQ5IDEwLjI5ODM0MTUgMTMuMDM3MTA3MiAxMC40
NTk0NzI3IDEzLjQ2NDg0MzggMTAuNDU5NDcyNyBDIDEzLjc5Mjk3MDQgMTAuNDU5NDcyNyAxNC4w
NzQyMTc2IDEwLjM1OTEzMTkgMTQuMzA4NTkzOCAxMC4xNTg0NDczIEMgMTQuNTQyOTY5OSA5Ljk1
Nzc2MjY3IDE0LjczMzM5NzcgOS42ODMxMDcyMSAxNC44Nzk4ODI4IDkuMzM0NDcyNjYgTCAxNS42
NDg5MjU4IDkuMzM0NDcyNjYgQyAxNS40MjkxOTgxIDkuOTU4NDk5MjEgMTUuMTEyNzk1IDEwLjQx
NDc5MzUgMTQuNjk5NzA3IDEwLjcwMzM2OTEgQyAxNC4yODY2MTkgMTAuOTkxOTQ0OCAxMy44MDYx
NTUxIDExLjEzNjIzMDUgMTMuMjU4MzAwOCAxMS4xMzYyMzA1IEMgMTIuNjQzMDYzMyAxMS4xMzYy
MzA1IDEyLjE5OTk1MjUgMTAuOTExMzc5MiAxMS45Mjg5NTUxIDEwLjQ2MTY2OTkgQyAxMS42NTc5
NTc2IDEwLjAxMTk2MDYgMTEuNTk0MjM3NiA5LjQ1MDE5ODY4IDExLjczNzc5MyA4Ljc3NjM2NzE5
IEMgMTEuOTEzNTc1MSA3Ljk1MDE5MTE4IDEyLjI1MTIxODIgNy4zMDcxMzEyMSAxMi43NTA3MzI0
IDYuODQ3MTY3OTcgQyAxMy4yNTAyNDY2IDYuMzg3MjA0NzMgMTMuODEwNTQzOCA2LjE1NzIyNjU2
IDE0LjQzMTY0MDYgNi4xNTcyMjY1NiBDIDE0Ljk2MTkxNjcgNi4xNTcyMjY1NiAxNS4zNjU0Nzcx
IDYuMjg2MTMxNTIgMTUuNjQyMzM0IDYuNTQzOTQ1MzEgQyAxNS45MTkxOTA4IDYuODAxNzU5MSAx
Ni4wMjUzOTA5IDcuMjQ1NjAyMzIgMTUuOTYwOTM3NSA3Ljg3NTQ4ODI4IEwgMTUuOTYwOTM3NSA3
Ljg3NTQ4ODI4IFoiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZU5vcm1hbC5zdmcgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdlNzZiYWNmY2I5MzE5M2RlNzlhZjM1ZWYxYWI3MGY3
MDM1Yzk4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFs
LnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxw
YXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTSAzLjk5OTAyMzQ0IDguMzU0NDkyMTkgTDMuMDE5
MDQyOTcgNS41MDI0NDE0MSBMMS45Nzc1MzkwNiA4LjM1NDQ5MjE5IEwzLjk5OTAyMzQ0IDguMzU0
NDkyMTkgWiBNIDIuNTYyMDExNzIgNC41NDQ0MzM1OSBMMy41NTA3ODEyNSA0LjU0NDQzMzU5IEw1
Ljg5MzA2NjQxIDExIEw0LjkzNTA1ODU5IDExIEw0LjI4MDI3MzQ0IDkuMDY2NDA2MjUgTDEuNzI3
MDUwNzggOS4wNjY0MDYyNSBMMS4wMjgzMjAzMSAxMSBMMC4xMzE4MzU5MzggMTEgTDIuNTYyMDEx
NzIgNC41NDQ0MzM1OSBaIE0gNi44NTE0ODQzOSA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDQuNTIy
NDYwOTQgTDcuNjIwNTI3MzYgNi44NjQ3NDYwOSBDIDcuNzkzMzc5NzggNi42MzkxNTkwMyA3Ljk5
OTkyMDY5IDYuNDY3MDQxNjEgOC4yNDAxNTYyNiA2LjM0ODM4ODY3IEMgOC40ODAzOTE4NCA2LjIy
OTczNTczIDguNzQxMTMxNDIgNi4xNzA0MTAxNiA5LjAyMjM4MjgzIDYuMTcwNDEwMTYgQyA5LjYw
ODMyMzI2IDYuMTcwNDEwMTYgMTAuMDgzNjYwMyA2LjM3MTgyNDE2IDEwLjQ0ODQwODIgNi43NzQ2
NTgyIEMgMTAuODEzMTU2MSA3LjE3NzQ5MjI1IDEwLjk5NTUyNzQgNy43NzE0ODA0NSAxMC45OTU1
Mjc0IDguNTU2NjQwNjIgQyAxMC45OTU1Mjc0IDkuMzAwNzg0OTcgMTAuODE1MzUzNCA5LjkxODk0
Mjg1IDEwLjQ1NSAxMC40MTExMzI4IEMgMTAuMDk0NjQ2NiAxMC45MDMzMjI4IDkuNTk1MTM5OTMg
MTEuMTQ5NDE0MSA4Ljk1NjQ2NDg2IDExLjE0OTQxNDEgQyA4LjU5OTA0MTE5IDExLjE0OTQxNDEg
OC4yOTcyODY0IDExLjA2Mjk4OTEgOC4wNTExOTE0MiAxMC44OTAxMzY3IEMgNy45MDQ3MDYzMSAx
MC43ODc1OTcxIDcuNzQ3OTY5NiAxMC42MjM1MzYzIDcuNTgwOTc2NTggMTAuMzk3OTQ5MiBMNy41
ODA5NzY1OCAxMSBMNi44NTE0ODQzOSAxMSBMNi44NTE0ODQzOSA0LjUyMjQ2MDk0IFogTSA5Ljg2
ODMzMDA5IDkuOTQwOTE3OTcgQyAxMC4wODA3MzM1IDkuNjAxMDcyNTIgMTAuMTg2OTMzNiA5LjE1
MjgzNDgxIDEwLjE4NjkzMzYgOC41OTYxOTE0MSBDIDEwLjE4NjkzMzYgOC4xMDEwNzE3NCAxMC4w
ODA3MzM1IDcuNjkwOTE5NTkgOS44NjgzMzAwOSA3LjM2NTcyMjY2IEMgOS42NTU5MjY2OSA3LjA0
MDUyNTcyIDkuMzQzMTg1NjcgNi44Nzc5Mjk2OSA4LjkzMDA5NzY3IDYuODc3OTI5NjkgQyA4LjU2
OTc0NDMxIDYuODc3OTI5NjkgOC4yNTQwNzM2MyA3LjAxMTIyOTE0IDcuOTgzMDc2MTggNy4yNzc4
MzIwMyBDIDcuNzEyMDc4NzQgNy41NDQ0MzQ5MyA3LjU3NjU4MjA0IDcuOTgzODgzNjYgNy41NzY1
ODIwNCA4LjU5NjE5MTQxIEMgNy41NzY1ODIwNCA5LjAzODU3NjQzIDcuNjMyMjQ1NTUgOS4zOTc0
NTk1NiA3Ljc0MzU3NDIzIDkuNjcyODUxNTYgQyA3Ljk1MTU4MzA4IDEwLjE5MTQwODggOC4zMzk3
NjI4IDEwLjQ1MDY4MzYgOC45MDgxMjUwMSAxMC40NTA2ODM2IEMgOS4zMzU4NjE1MyAxMC40NTA2
ODM2IDkuNjU1OTI2NjkgMTAuMjgwNzYzNCA5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgTDkuODY4MzMw
MDkgOS45NDA5MTc5NyBaIE0gMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEMgMTUuNjkwMDMxIDYuODAx
NzU5MSAxNS44ODk5ODAyIDcuMjQ1NjAyMzIgMTUuOTU3MzYzMyA3Ljg3NTQ4ODI4IEwxNS4xODgz
MjAzIDcuODc1NDg4MjggQyAxNS4xNDE0NDUxIDcuNTg1NDQ3NzcgMTUuMDM0NTEyNiA3LjM0NDQ4
MzM4IDE0Ljg2NzUxOTYgNy4xNTI1ODc4OSBDIDE0LjcwMDUyNjUgNi45NjA2OTI0IDE0LjQzMjQ2
MjggNi44NjQ3NDYwOSAxNC4wNjMzMjAzIDYuODY0NzQ2MDkgQyAxMy41NTk0MTE2IDYuODY0NzQ2
MDkgMTMuMTk5MDYzNiA3LjExMDgzNzM4IDEyLjk4MjI2NTcgNy42MDMwMjczNCBDIDEyLjg0MTYz
OTkgNy45MjIzNjQ4OCAxMi43NzEzMjgyIDguMzE2NDAzOTEgMTIuNzcxMzI4MiA4Ljc4NTE1NjI1
IEMgMTIuNzcxMzI4MiA5LjI1NjgzODMgMTIuODcwOTM2NSA5LjY1MzgwNjk4IDEzLjA3MDE1NjMg
OS45NzYwNzQyMiBDIDEzLjI2OTM3NiAxMC4yOTgzNDE1IDEzLjU4Mjg0OTUgMTAuNDU5NDcyNyAx
NC4wMTA1ODYgMTAuNDU5NDcyNyBDIDE0LjMzODcxMjYgMTAuNDU5NDcyNyAxNC41OTg3MTk4IDEw
LjM1OTEzMTkgMTQuNzkwNjE1MyAxMC4xNTg0NDczIEMgMTQuOTgyNTEwOCA5Ljk1Nzc2MjY3IDE1
LjExNTA3NzggOS42ODMxMDcyMSAxNS4xODgzMjAzIDkuMzM0NDcyNjYgTDE1Ljk1NzM2MzMgOS4z
MzQ0NzI2NiBDIDE1Ljg2OTQ3MjIgOS45NTg0OTkyMSAxNS42NDk3NDc5IDEwLjQxNDc5MzUgMTUu
Mjk4MTgzNiAxMC43MDMzNjkxIEMgMTQuOTQ2NjE5NCAxMC45OTE5NDQ4IDE0LjQ5NjkxNjggMTEu
MTM2MjMwNSAxMy45NDkwNjI1IDExLjEzNjIzMDUgQyAxMy4zMzM4MjUxIDExLjEzNjIzMDUgMTIu
ODQzMTA3MyAxMC45MTEzNzkyIDEyLjQ3Njg5NDYgMTAuNDYxNjY5OSBDIDEyLjExMDY4MTggMTAu
MDExOTYwNiAxMS45Mjc1NzgyIDkuNDUwMTk4NjggMTEuOTI3NTc4MiA4Ljc3NjM2NzE5IEMgMTEu
OTI3NTc4MiA3Ljk1MDE5MTE4IDEyLjEyODI1OTcgNy4zMDcxMzEyMSAxMi41Mjk2Mjg5IDYuODQ3
MTY3OTcgQyAxMi45MzA5OTgxIDYuMzg3MjA0NzMgMTMuNDQyMjIzNSA2LjE1NzIyNjU2IDE0LjA2
MzMyMDMgNi4xNTcyMjY1NiBDIDE0LjU5MzU5NjQgNi4xNTcyMjY1NiAxNS4wMjQ5ODg2IDYuMjg2
MTMxNTIgMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEwxNS4zNTc1MDk4IDYuNTQzOTQ1MzEgWiIvPgot
PC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvTGlzdFN0eWxlUG9zaXRpb25JbnNpZGUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBvc2l0aW9uSW5zaWRlLnN2ZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdkODk0MWZjMjIxZGFkYmYyNDU0YTllMTc1MzQwMTQw
OTkyYzE5Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvTGlzdFN0eWxlUG9zaXRp
b25JbnNpZGUuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBEZXZpbiBS
b3Vzc28gPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4K
LTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lv
bj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxjaXJjbGUgZmlsbD0iY3VycmVudENv
bG9yIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY3g9IjgiIGN5PSI3LjUiIHI9IjIuNSIvPgotICAg
IDxyZWN0IGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB4PSIxIiB5PSIyIiB3aWR0
aD0iMTQiIGhlaWdodD0iMTEiLz4KLTwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9M
aXN0U3R5bGVQb3NpdGlvbk91dHNpZGUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBvc2l0aW9uT3V0c2lkZS5zdmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI3MWE2M2VkYjU0YTIwYTQxNGM4OGVhN2JjNzM4NmExM2E5YmU0
MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0xpc3RTdHlsZVBvc2l0aW9uT3V0
c2lkZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IERldmluIFJvdXNz
byA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIx
LjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPGNpcmNsZSBmaWxsPSJjdXJyZW50Q29sb3Ii
IHN0cm9rZT0iY3VycmVudENvbG9yIiBjeD0iMy41IiBjeT0iNy41IiByPSIyLjUiLz4KLSAgICA8
cmVjdCBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgeD0iOSIgeT0iMiIgd2lkdGg9
IjYiIGhlaWdodD0iMTEiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkNlbnRlci5zdmcgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVyLnN2ZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY2ZDc2YzUyN2ZjMmRlY2Q4ODBhZmM2Nzg5MTg4
ODEwNGVhYWYxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2Vu
dGVyLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAg
IDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iMyIgeDI9IjE0LjUiIHky
PSIzIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIzIiB5MT0iNS41IiB4
Mj0iMTIiIHkyPSI1LjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAu
NSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENv
bG9yIiB4MT0iMyIgeTE9IjEwLjUiIHgyPSIxMiIgeTI9IjEwLjUiLz4KLSAgICA8bGluZSBzdHJv
a2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjEzIiB4Mj0iMTQuNSIgeTI9IjEzIi8+Ci08
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzcyN2VmODkzNzA0YzRjYThiZDBiNGNjODg4YjVkOTJkYzg0OGJkMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduSnVzdGlmeS5zdmcKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3Qi
IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8bGluZSBzdHJva2U9ImN1
cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIvPgotICAgIDxsaW5l
IHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iNS41IiB4Mj0iMTQuNSIgeTI9IjUu
NSIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENvbG9yIiB4MT0iMC41IiB5MT0iOCIgeDI9
IjE0LjUiIHkyPSI4Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUi
IHkxPSIxMC41IiB4Mj0iMTQuNSIgeTI9IjEwLjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJl
bnRDb2xvciIgeDE9IjAuNSIgeTE9IjEzIiB4Mj0iMTQuNSIgeTI9IjEzIi8+Ci08L3N2Zz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0
QWxpZ25MZWZ0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9UZXh0QWxpZ25MZWZ0LnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVhODFl
ZDhhMTlkYTU4MDE0OWJhMjhhNWI1YzliMzZlYTE5ZjA3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdo
dCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmll
d0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAu
NSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIvPgotICAgIDxsaW5lIHN0cm9rZT0iY3VycmVudENv
bG9yIiB4MT0iMC41IiB5MT0iNS41IiB4Mj0iOS41IiB5Mj0iNS41Ii8+Ci0gICAgPGxpbmUgc3Ry
b2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSI4IiB4Mj0iMTQuNSIgeTI9IjgiLz4KLSAg
ICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAuNSIgeTE9IjEwLjUiIHgyPSI5LjUi
IHkyPSIxMC41Ii8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkx
PSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnblJpZ2h0LnN2
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc5NzJkNzg0ODQwY2NhZDM2ZTU0MzJh
Nzg5ZDMyYWFjNzAyM2E3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFs
aWduUmlnaHQuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiI+
Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSIzIiB4Mj0iMTQu
NSIgeTI9IjMiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjUuNSIgeTE9
IjUuNSIgeDI9IjE0LjUiIHkyPSI1LjUiLz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xv
ciIgeDE9IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIvPgotICAgIDxsaW5lIHN0cm9rZT0i
Y3VycmVudENvbG9yIiB4MT0iNS41IiB5MT0iMTAuNSIgeDI9IjE0LjUiIHkyPSIxMC41Ii8+Ci0g
ICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHgxPSIwLjUiIHkxPSIxMyIgeDI9IjE0LjUi
IHkyPSIxMyIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25MaW5lVGhyb3VnaC5zdmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25MaW5lVGhy
b3VnaC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwZmU0YjlhMTdmM2RlYTMy
YzM0OTYxNjYwNmY0ZGU2N2Q4NTlhNTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1RleHREZWNvcmF0aW9uTGluZVRocm91Z2guc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmln
aHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZp
ZXdCb3g9IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNIDMu
OTk5MDIzNDQgOC4zNTQ0OTIxOSBMMy4wMTkwNDI5NyA1LjUwMjQ0MTQxIEwxLjk3NzUzOTA2IDgu
MzU0NDkyMTkgTDMuOTk5MDIzNDQgOC4zNTQ0OTIxOSBaIE0gMi41NjIwMTE3MiA0LjU0NDQzMzU5
IEwzLjU1MDc4MTI1IDQuNTQ0NDMzNTkgTDUuODkzMDY2NDEgMTEgTDQuOTM1MDU4NTkgMTEgTDQu
MjgwMjczNDQgOS4wNjY0MDYyNSBMMS43MjcwNTA3OCA5LjA2NjQwNjI1IEwxLjAyODMyMDMxIDEx
IEwwLjEzMTgzNTkzOCAxMSBMMi41NjIwMTE3MiA0LjU0NDQzMzU5IFogTSA2Ljg1MTQ4NDM5IDQu
NTIyNDYwOTQgTDcuNjIwNTI3MzYgNC41MjI0NjA5NCBMNy42MjA1MjczNiA2Ljg2NDc0NjA5IEMg
Ny43OTMzNzk3OCA2LjYzOTE1OTAzIDcuOTk5OTIwNjkgNi40NjcwNDE2MSA4LjI0MDE1NjI2IDYu
MzQ4Mzg4NjcgQyA4LjQ4MDM5MTg0IDYuMjI5NzM1NzMgOC43NDExMzE0MiA2LjE3MDQxMDE2IDku
MDIyMzgyODMgNi4xNzA0MTAxNiBDIDkuNjA4MzIzMjYgNi4xNzA0MTAxNiAxMC4wODM2NjAzIDYu
MzcxODI0MTYgMTAuNDQ4NDA4MiA2Ljc3NDY1ODIgQyAxMC44MTMxNTYxIDcuMTc3NDkyMjUgMTAu
OTk1NTI3NCA3Ljc3MTQ4MDQ1IDEwLjk5NTUyNzQgOC41NTY2NDA2MiBDIDEwLjk5NTUyNzQgOS4z
MDA3ODQ5NyAxMC44MTUzNTM0IDkuOTE4OTQyODUgMTAuNDU1IDEwLjQxMTEzMjggQyAxMC4wOTQ2
NDY2IDEwLjkwMzMyMjggOS41OTUxMzk5MyAxMS4xNDk0MTQxIDguOTU2NDY0ODYgMTEuMTQ5NDE0
MSBDIDguNTk5MDQxMTkgMTEuMTQ5NDE0MSA4LjI5NzI4NjQgMTEuMDYyOTg5MSA4LjA1MTE5MTQy
IDEwLjg5MDEzNjcgQyA3LjkwNDcwNjMxIDEwLjc4NzU5NzEgNy43NDc5Njk2IDEwLjYyMzUzNjMg
Ny41ODA5NzY1OCAxMC4zOTc5NDkyIEw3LjU4MDk3NjU4IDExIEw2Ljg1MTQ4NDM5IDExIEw2Ljg1
MTQ4NDM5IDQuNTIyNDYwOTQgWiBNIDkuODY4MzMwMDkgOS45NDA5MTc5NyBDIDEwLjA4MDczMzUg
OS42MDEwNzI1MiAxMC4xODY5MzM2IDkuMTUyODM0ODEgMTAuMTg2OTMzNiA4LjU5NjE5MTQxIEMg
MTAuMTg2OTMzNiA4LjEwMTA3MTc0IDEwLjA4MDczMzUgNy42OTA5MTk1OSA5Ljg2ODMzMDA5IDcu
MzY1NzIyNjYgQyA5LjY1NTkyNjY5IDcuMDQwNTI1NzIgOS4zNDMxODU2NyA2Ljg3NzkyOTY5IDgu
OTMwMDk3NjcgNi44Nzc5Mjk2OSBDIDguNTY5NzQ0MzEgNi44Nzc5Mjk2OSA4LjI1NDA3MzYzIDcu
MDExMjI5MTQgNy45ODMwNzYxOCA3LjI3NzgzMjAzIEMgNy43MTIwNzg3NCA3LjU0NDQzNDkzIDcu
NTc2NTgyMDQgNy45ODM4ODM2NiA3LjU3NjU4MjA0IDguNTk2MTkxNDEgQyA3LjU3NjU4MjA0IDku
MDM4NTc2NDMgNy42MzIyNDU1NSA5LjM5NzQ1OTU2IDcuNzQzNTc0MjMgOS42NzI4NTE1NiBDIDcu
OTUxNTgzMDggMTAuMTkxNDA4OCA4LjMzOTc2MjggMTAuNDUwNjgzNiA4LjkwODEyNTAxIDEwLjQ1
MDY4MzYgQyA5LjMzNTg2MTUzIDEwLjQ1MDY4MzYgOS42NTU5MjY2OSAxMC4yODA3NjM0IDkuODY4
MzMwMDkgOS45NDA5MTc5NyBMOS44NjgzMzAwOSA5Ljk0MDkxNzk3IFogTSAxNS4zNTc1MDk4IDYu
NTQzOTQ1MzEgQyAxNS42OTAwMzEgNi44MDE3NTkxIDE1Ljg4OTk4MDIgNy4yNDU2MDIzMiAxNS45
NTczNjMzIDcuODc1NDg4MjggTDE1LjE4ODMyMDMgNy44NzU0ODgyOCBDIDE1LjE0MTQ0NTEgNy41
ODU0NDc3NyAxNS4wMzQ1MTI2IDcuMzQ0NDgzMzggMTQuODY3NTE5NiA3LjE1MjU4Nzg5IEMgMTQu
NzAwNTI2NSA2Ljk2MDY5MjQgMTQuNDMyNDYyOCA2Ljg2NDc0NjA5IDE0LjA2MzMyMDMgNi44NjQ3
NDYwOSBDIDEzLjU1OTQxMTYgNi44NjQ3NDYwOSAxMy4xOTkwNjM2IDcuMTEwODM3MzggMTIuOTgy
MjY1NyA3LjYwMzAyNzM0IEMgMTIuODQxNjM5OSA3LjkyMjM2NDg4IDEyLjc3MTMyODIgOC4zMTY0
MDM5MSAxMi43NzEzMjgyIDguNzg1MTU2MjUgQyAxMi43NzEzMjgyIDkuMjU2ODM4MyAxMi44NzA5
MzY1IDkuNjUzODA2OTggMTMuMDcwMTU2MyA5Ljk3NjA3NDIyIEMgMTMuMjY5Mzc2IDEwLjI5ODM0
MTUgMTMuNTgyODQ5NSAxMC40NTk0NzI3IDE0LjAxMDU4NiAxMC40NTk0NzI3IEMgMTQuMzM4NzEy
NiAxMC40NTk0NzI3IDE0LjU5ODcxOTggMTAuMzU5MTMxOSAxNC43OTA2MTUzIDEwLjE1ODQ0NzMg
QyAxNC45ODI1MTA4IDkuOTU3NzYyNjcgMTUuMTE1MDc3OCA5LjY4MzEwNzIxIDE1LjE4ODMyMDMg
OS4zMzQ0NzI2NiBMMTUuOTU3MzYzMyA5LjMzNDQ3MjY2IEMgMTUuODY5NDcyMiA5Ljk1ODQ5OTIx
IDE1LjY0OTc0NzkgMTAuNDE0NzkzNSAxNS4yOTgxODM2IDEwLjcwMzM2OTEgQyAxNC45NDY2MTk0
IDEwLjk5MTk0NDggMTQuNDk2OTE2OCAxMS4xMzYyMzA1IDEzLjk0OTA2MjUgMTEuMTM2MjMwNSBD
IDEzLjMzMzgyNTEgMTEuMTM2MjMwNSAxMi44NDMxMDczIDEwLjkxMTM3OTIgMTIuNDc2ODk0NiAx
MC40NjE2Njk5IEMgMTIuMTEwNjgxOCAxMC4wMTE5NjA2IDExLjkyNzU3ODIgOS40NTAxOTg2OCAx
MS45Mjc1NzgyIDguNzc2MzY3MTkgQyAxMS45Mjc1NzgyIDcuOTUwMTkxMTggMTIuMTI4MjU5NyA3
LjMwNzEzMTIxIDEyLjUyOTYyODkgNi44NDcxNjc5NyBDIDEyLjkzMDk5ODEgNi4zODcyMDQ3MyAx
My40NDIyMjM1IDYuMTU3MjI2NTYgMTQuMDYzMzIwMyA2LjE1NzIyNjU2IEMgMTQuNTkzNTk2NCA2
LjE1NzIyNjU2IDE1LjAyNDk4ODYgNi4yODYxMzE1MiAxNS4zNTc1MDk4IDYuNTQzOTQ1MzEgTDE1
LjM1NzUwOTggNi41NDM5NDUzMSBaIi8+Ci0gICAgPGxpbmUgc3Ryb2tlPSJjdXJyZW50Q29sb3Ii
IHgxPSIwIiB5MT0iOC41IiB4Mj0iMTYiIHkyPSI4LjUiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9u
T3ZlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NWYwNGFhMWRiYWVhYzEyMjVhYWFhOWQxMGY2MTQyZWM3YWY4YWYwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbk92ZXJsaW5lLnN2ZworKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KLTwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAtLT4KLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIg
dmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxwYXRoIGZpbGw9ImN1cnJl
bnRDb2xvciIgZD0iTSAzLjk5OTAyMzQ0IDguMzU0NDkyMTkgTDMuMDE5MDQyOTcgNS41MDI0NDE0
MSBMMS45Nzc1MzkwNiA4LjM1NDQ5MjE5IEwzLjk5OTAyMzQ0IDguMzU0NDkyMTkgWiBNIDIuNTYy
MDExNzIgNC41NDQ0MzM1OSBMMy41NTA3ODEyNSA0LjU0NDQzMzU5IEw1Ljg5MzA2NjQxIDExIEw0
LjkzNTA1ODU5IDExIEw0LjI4MDI3MzQ0IDkuMDY2NDA2MjUgTDEuNzI3MDUwNzggOS4wNjY0MDYy
NSBMMS4wMjgzMjAzMSAxMSBMMC4xMzE4MzU5MzggMTEgTDIuNTYyMDExNzIgNC41NDQ0MzM1OSBa
IE0gNi44NTE0ODQzOSA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDQuNTIyNDYwOTQgTDcuNjIwNTI3
MzYgNi44NjQ3NDYwOSBDIDcuNzkzMzc5NzggNi42MzkxNTkwMyA3Ljk5OTkyMDY5IDYuNDY3MDQx
NjEgOC4yNDAxNTYyNiA2LjM0ODM4ODY3IEMgOC40ODAzOTE4NCA2LjIyOTczNTczIDguNzQxMTMx
NDIgNi4xNzA0MTAxNiA5LjAyMjM4MjgzIDYuMTcwNDEwMTYgQyA5LjYwODMyMzI2IDYuMTcwNDEw
MTYgMTAuMDgzNjYwMyA2LjM3MTgyNDE2IDEwLjQ0ODQwODIgNi43NzQ2NTgyIEMgMTAuODEzMTU2
MSA3LjE3NzQ5MjI1IDEwLjk5NTUyNzQgNy43NzE0ODA0NSAxMC45OTU1Mjc0IDguNTU2NjQwNjIg
QyAxMC45OTU1Mjc0IDkuMzAwNzg0OTcgMTAuODE1MzUzNCA5LjkxODk0Mjg1IDEwLjQ1NSAxMC40
MTExMzI4IEMgMTAuMDk0NjQ2NiAxMC45MDMzMjI4IDkuNTk1MTM5OTMgMTEuMTQ5NDE0MSA4Ljk1
NjQ2NDg2IDExLjE0OTQxNDEgQyA4LjU5OTA0MTE5IDExLjE0OTQxNDEgOC4yOTcyODY0IDExLjA2
Mjk4OTEgOC4wNTExOTE0MiAxMC44OTAxMzY3IEMgNy45MDQ3MDYzMSAxMC43ODc1OTcxIDcuNzQ3
OTY5NiAxMC42MjM1MzYzIDcuNTgwOTc2NTggMTAuMzk3OTQ5MiBMNy41ODA5NzY1OCAxMSBMNi44
NTE0ODQzOSAxMSBMNi44NTE0ODQzOSA0LjUyMjQ2MDk0IFogTSA5Ljg2ODMzMDA5IDkuOTQwOTE3
OTcgQyAxMC4wODA3MzM1IDkuNjAxMDcyNTIgMTAuMTg2OTMzNiA5LjE1MjgzNDgxIDEwLjE4Njkz
MzYgOC41OTYxOTE0MSBDIDEwLjE4NjkzMzYgOC4xMDEwNzE3NCAxMC4wODA3MzM1IDcuNjkwOTE5
NTkgOS44NjgzMzAwOSA3LjM2NTcyMjY2IEMgOS42NTU5MjY2OSA3LjA0MDUyNTcyIDkuMzQzMTg1
NjcgNi44Nzc5Mjk2OSA4LjkzMDA5NzY3IDYuODc3OTI5NjkgQyA4LjU2OTc0NDMxIDYuODc3OTI5
NjkgOC4yNTQwNzM2MyA3LjAxMTIyOTE0IDcuOTgzMDc2MTggNy4yNzc4MzIwMyBDIDcuNzEyMDc4
NzQgNy41NDQ0MzQ5MyA3LjU3NjU4MjA0IDcuOTgzODgzNjYgNy41NzY1ODIwNCA4LjU5NjE5MTQx
IEMgNy41NzY1ODIwNCA5LjAzODU3NjQzIDcuNjMyMjQ1NTUgOS4zOTc0NTk1NiA3Ljc0MzU3NDIz
IDkuNjcyODUxNTYgQyA3Ljk1MTU4MzA4IDEwLjE5MTQwODggOC4zMzk3NjI4IDEwLjQ1MDY4MzYg
OC45MDgxMjUwMSAxMC40NTA2ODM2IEMgOS4zMzU4NjE1MyAxMC40NTA2ODM2IDkuNjU1OTI2Njkg
MTAuMjgwNzYzNCA5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgTDkuODY4MzMwMDkgOS45NDA5MTc5NyBa
IE0gMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIEMgMTUuNjkwMDMxIDYuODAxNzU5MSAxNS44ODk5ODAy
IDcuMjQ1NjAyMzIgMTUuOTU3MzYzMyA3Ljg3NTQ4ODI4IEwxNS4xODgzMjAzIDcuODc1NDg4Mjgg
QyAxNS4xNDE0NDUxIDcuNTg1NDQ3NzcgMTUuMDM0NTEyNiA3LjM0NDQ4MzM4IDE0Ljg2NzUxOTYg
Ny4xNTI1ODc4OSBDIDE0LjcwMDUyNjUgNi45NjA2OTI0IDE0LjQzMjQ2MjggNi44NjQ3NDYwOSAx
NC4wNjMzMjAzIDYuODY0NzQ2MDkgQyAxMy41NTk0MTE2IDYuODY0NzQ2MDkgMTMuMTk5MDYzNiA3
LjExMDgzNzM4IDEyLjk4MjI2NTcgNy42MDMwMjczNCBDIDEyLjg0MTYzOTkgNy45MjIzNjQ4OCAx
Mi43NzEzMjgyIDguMzE2NDAzOTEgMTIuNzcxMzI4MiA4Ljc4NTE1NjI1IEMgMTIuNzcxMzI4MiA5
LjI1NjgzODMgMTIuODcwOTM2NSA5LjY1MzgwNjk4IDEzLjA3MDE1NjMgOS45NzYwNzQyMiBDIDEz
LjI2OTM3NiAxMC4yOTgzNDE1IDEzLjU4Mjg0OTUgMTAuNDU5NDcyNyAxNC4wMTA1ODYgMTAuNDU5
NDcyNyBDIDE0LjMzODcxMjYgMTAuNDU5NDcyNyAxNC41OTg3MTk4IDEwLjM1OTEzMTkgMTQuNzkw
NjE1MyAxMC4xNTg0NDczIEMgMTQuOTgyNTEwOCA5Ljk1Nzc2MjY3IDE1LjExNTA3NzggOS42ODMx
MDcyMSAxNS4xODgzMjAzIDkuMzM0NDcyNjYgTDE1Ljk1NzM2MzMgOS4zMzQ0NzI2NiBDIDE1Ljg2
OTQ3MjIgOS45NTg0OTkyMSAxNS42NDk3NDc5IDEwLjQxNDc5MzUgMTUuMjk4MTgzNiAxMC43MDMz
NjkxIEMgMTQuOTQ2NjE5NCAxMC45OTE5NDQ4IDE0LjQ5NjkxNjggMTEuMTM2MjMwNSAxMy45NDkw
NjI1IDExLjEzNjIzMDUgQyAxMy4zMzM4MjUxIDExLjEzNjIzMDUgMTIuODQzMTA3MyAxMC45MTEz
NzkyIDEyLjQ3Njg5NDYgMTAuNDYxNjY5OSBDIDEyLjExMDY4MTggMTAuMDExOTYwNiAxMS45Mjc1
NzgyIDkuNDUwMTk4NjggMTEuOTI3NTc4MiA4Ljc3NjM2NzE5IEMgMTEuOTI3NTc4MiA3Ljk1MDE5
MTE4IDEyLjEyODI1OTcgNy4zMDcxMzEyMSAxMi41Mjk2Mjg5IDYuODQ3MTY3OTcgQyAxMi45MzA5
OTgxIDYuMzg3MjA0NzMgMTMuNDQyMjIzNSA2LjE1NzIyNjU2IDE0LjA2MzMyMDMgNi4xNTcyMjY1
NiBDIDE0LjU5MzU5NjQgNi4xNTcyMjY1NiAxNS4wMjQ5ODg2IDYuMjg2MTMxNTIgMTUuMzU3NTA5
OCA2LjU0Mzk0NTMxIEwxNS4zNTc1MDk4IDYuNTQzOTQ1MzEgWiIvPgotICAgIDxsaW5lIHN0cm9r
ZT0iY3VycmVudENvbG9yIiB4MT0iMCIgeTE9IjMuNSIgeDI9IjE2IiB5Mj0iMy41Ii8+Ci08L3N2
Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25VbmRlcmxpbmUuc3ZnCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmMGJkOTkwYWFhYmQ4N2Q1NTIxNzQ5M2RhNGZmYzkzY2YzOTQx
MmMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvblVuZGVy
bGluZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAg
ICA8cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0gMy45OTkwMjM0NCA4LjM1NDQ5MjE5IEwz
LjAxOTA0Mjk3IDUuNTAyNDQxNDEgTDEuOTc3NTM5MDYgOC4zNTQ0OTIxOSBMMy45OTkwMjM0NCA4
LjM1NDQ5MjE5IFogTSAyLjU2MjAxMTcyIDQuNTQ0NDMzNTkgTDMuNTUwNzgxMjUgNC41NDQ0MzM1
OSBMNS44OTMwNjY0MSAxMSBMNC45MzUwNTg1OSAxMSBMNC4yODAyNzM0NCA5LjA2NjQwNjI1IEwx
LjcyNzA1MDc4IDkuMDY2NDA2MjUgTDEuMDI4MzIwMzEgMTEgTDAuMTMxODM1OTM4IDExIEwyLjU2
MjAxMTcyIDQuNTQ0NDMzNTkgWiBNIDYuODUxNDg0MzkgNC41MjI0NjA5NCBMNy42MjA1MjczNiA0
LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDYuODY0NzQ2MDkgQyA3Ljc5MzM3OTc4IDYuNjM5MTU5MDMg
Ny45OTk5MjA2OSA2LjQ2NzA0MTYxIDguMjQwMTU2MjYgNi4zNDgzODg2NyBDIDguNDgwMzkxODQg
Ni4yMjk3MzU3MyA4Ljc0MTEzMTQyIDYuMTcwNDEwMTYgOS4wMjIzODI4MyA2LjE3MDQxMDE2IEMg
OS42MDgzMjMyNiA2LjE3MDQxMDE2IDEwLjA4MzY2MDMgNi4zNzE4MjQxNiAxMC40NDg0MDgyIDYu
Nzc0NjU4MiBDIDEwLjgxMzE1NjEgNy4xNzc0OTIyNSAxMC45OTU1Mjc0IDcuNzcxNDgwNDUgMTAu
OTk1NTI3NCA4LjU1NjY0MDYyIEMgMTAuOTk1NTI3NCA5LjMwMDc4NDk3IDEwLjgxNTM1MzQgOS45
MTg5NDI4NSAxMC40NTUgMTAuNDExMTMyOCBDIDEwLjA5NDY0NjYgMTAuOTAzMzIyOCA5LjU5NTEz
OTkzIDExLjE0OTQxNDEgOC45NTY0NjQ4NiAxMS4xNDk0MTQxIEMgOC41OTkwNDExOSAxMS4xNDk0
MTQxIDguMjk3Mjg2NCAxMS4wNjI5ODkxIDguMDUxMTkxNDIgMTAuODkwMTM2NyBDIDcuOTA0NzA2
MzEgMTAuNzg3NTk3MSA3Ljc0Nzk2OTYgMTAuNjIzNTM2MyA3LjU4MDk3NjU4IDEwLjM5Nzk0OTIg
TDcuNTgwOTc2NTggMTEgTDYuODUxNDg0MzkgMTEgTDYuODUxNDg0MzkgNC41MjI0NjA5NCBaIE0g
OS44NjgzMzAwOSA5Ljk0MDkxNzk3IEMgMTAuMDgwNzMzNSA5LjYwMTA3MjUyIDEwLjE4NjkzMzYg
OS4xNTI4MzQ4MSAxMC4xODY5MzM2IDguNTk2MTkxNDEgQyAxMC4xODY5MzM2IDguMTAxMDcxNzQg
MTAuMDgwNzMzNSA3LjY5MDkxOTU5IDkuODY4MzMwMDkgNy4zNjU3MjI2NiBDIDkuNjU1OTI2Njkg
Ny4wNDA1MjU3MiA5LjM0MzE4NTY3IDYuODc3OTI5NjkgOC45MzAwOTc2NyA2Ljg3NzkyOTY5IEMg
OC41Njk3NDQzMSA2Ljg3NzkyOTY5IDguMjU0MDczNjMgNy4wMTEyMjkxNCA3Ljk4MzA3NjE4IDcu
Mjc3ODMyMDMgQyA3LjcxMjA3ODc0IDcuNTQ0NDM0OTMgNy41NzY1ODIwNCA3Ljk4Mzg4MzY2IDcu
NTc2NTgyMDQgOC41OTYxOTE0MSBDIDcuNTc2NTgyMDQgOS4wMzg1NzY0MyA3LjYzMjI0NTU1IDku
Mzk3NDU5NTYgNy43NDM1NzQyMyA5LjY3Mjg1MTU2IEMgNy45NTE1ODMwOCAxMC4xOTE0MDg4IDgu
MzM5NzYyOCAxMC40NTA2ODM2IDguOTA4MTI1MDEgMTAuNDUwNjgzNiBDIDkuMzM1ODYxNTMgMTAu
NDUwNjgzNiA5LjY1NTkyNjY5IDEwLjI4MDc2MzQgOS44NjgzMzAwOSA5Ljk0MDkxNzk3IEw5Ljg2
ODMzMDA5IDkuOTQwOTE3OTcgWiBNIDE1LjM1NzUwOTggNi41NDM5NDUzMSBDIDE1LjY5MDAzMSA2
LjgwMTc1OTEgMTUuODg5OTgwMiA3LjI0NTYwMjMyIDE1Ljk1NzM2MzMgNy44NzU0ODgyOCBMMTUu
MTg4MzIwMyA3Ljg3NTQ4ODI4IEMgMTUuMTQxNDQ1MSA3LjU4NTQ0Nzc3IDE1LjAzNDUxMjYgNy4z
NDQ0ODMzOCAxNC44Njc1MTk2IDcuMTUyNTg3ODkgQyAxNC43MDA1MjY1IDYuOTYwNjkyNCAxNC40
MzI0NjI4IDYuODY0NzQ2MDkgMTQuMDYzMzIwMyA2Ljg2NDc0NjA5IEMgMTMuNTU5NDExNiA2Ljg2
NDc0NjA5IDEzLjE5OTA2MzYgNy4xMTA4MzczOCAxMi45ODIyNjU3IDcuNjAzMDI3MzQgQyAxMi44
NDE2Mzk5IDcuOTIyMzY0ODggMTIuNzcxMzI4MiA4LjMxNjQwMzkxIDEyLjc3MTMyODIgOC43ODUx
NTYyNSBDIDEyLjc3MTMyODIgOS4yNTY4MzgzIDEyLjg3MDkzNjUgOS42NTM4MDY5OCAxMy4wNzAx
NTYzIDkuOTc2MDc0MjIgQyAxMy4yNjkzNzYgMTAuMjk4MzQxNSAxMy41ODI4NDk1IDEwLjQ1OTQ3
MjcgMTQuMDEwNTg2IDEwLjQ1OTQ3MjcgQyAxNC4zMzg3MTI2IDEwLjQ1OTQ3MjcgMTQuNTk4NzE5
OCAxMC4zNTkxMzE5IDE0Ljc5MDYxNTMgMTAuMTU4NDQ3MyBDIDE0Ljk4MjUxMDggOS45NTc3NjI2
NyAxNS4xMTUwNzc4IDkuNjgzMTA3MjEgMTUuMTg4MzIwMyA5LjMzNDQ3MjY2IEwxNS45NTczNjMz
IDkuMzM0NDcyNjYgQyAxNS44Njk0NzIyIDkuOTU4NDk5MjEgMTUuNjQ5NzQ3OSAxMC40MTQ3OTM1
IDE1LjI5ODE4MzYgMTAuNzAzMzY5MSBDIDE0Ljk0NjYxOTQgMTAuOTkxOTQ0OCAxNC40OTY5MTY4
IDExLjEzNjIzMDUgMTMuOTQ5MDYyNSAxMS4xMzYyMzA1IEMgMTMuMzMzODI1MSAxMS4xMzYyMzA1
IDEyLjg0MzEwNzMgMTAuOTExMzc5MiAxMi40NzY4OTQ2IDEwLjQ2MTY2OTkgQyAxMi4xMTA2ODE4
IDEwLjAxMTk2MDYgMTEuOTI3NTc4MiA5LjQ1MDE5ODY4IDExLjkyNzU3ODIgOC43NzYzNjcxOSBD
IDExLjkyNzU3ODIgNy45NTAxOTExOCAxMi4xMjgyNTk3IDcuMzA3MTMxMjEgMTIuNTI5NjI4OSA2
Ljg0NzE2Nzk3IEMgMTIuOTMwOTk4MSA2LjM4NzIwNDczIDEzLjQ0MjIyMzUgNi4xNTcyMjY1NiAx
NC4wNjMzMjAzIDYuMTU3MjI2NTYgQyAxNC41OTM1OTY0IDYuMTU3MjI2NTYgMTUuMDI0OTg4NiA2
LjI4NjEzMTUyIDE1LjM1NzUwOTggNi41NDM5NDUzMSBMMTUuMzU3NTA5OCA2LjU0Mzk0NTMxIFoi
Lz4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAiIHkxPSIxMi41IiB4Mj0i
MTYiIHkyPSIxMi41Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybUNhcGl0
YWxpemUuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2U3NmJhY2ZjYjkzMTkz
ZGU3OWFmMzVlZjFhYjcwZjcwMzVjOThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdo
dCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmll
d0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0gMy45
OTkwMjM0NCA4LjM1NDQ5MjE5IEwzLjAxOTA0Mjk3IDUuNTAyNDQxNDEgTDEuOTc3NTM5MDYgOC4z
NTQ0OTIxOSBMMy45OTkwMjM0NCA4LjM1NDQ5MjE5IFogTSAyLjU2MjAxMTcyIDQuNTQ0NDMzNTkg
TDMuNTUwNzgxMjUgNC41NDQ0MzM1OSBMNS44OTMwNjY0MSAxMSBMNC45MzUwNTg1OSAxMSBMNC4y
ODAyNzM0NCA5LjA2NjQwNjI1IEwxLjcyNzA1MDc4IDkuMDY2NDA2MjUgTDEuMDI4MzIwMzEgMTEg
TDAuMTMxODM1OTM4IDExIEwyLjU2MjAxMTcyIDQuNTQ0NDMzNTkgWiBNIDYuODUxNDg0MzkgNC41
MjI0NjA5NCBMNy42MjA1MjczNiA0LjUyMjQ2MDk0IEw3LjYyMDUyNzM2IDYuODY0NzQ2MDkgQyA3
Ljc5MzM3OTc4IDYuNjM5MTU5MDMgNy45OTk5MjA2OSA2LjQ2NzA0MTYxIDguMjQwMTU2MjYgNi4z
NDgzODg2NyBDIDguNDgwMzkxODQgNi4yMjk3MzU3MyA4Ljc0MTEzMTQyIDYuMTcwNDEwMTYgOS4w
MjIzODI4MyA2LjE3MDQxMDE2IEMgOS42MDgzMjMyNiA2LjE3MDQxMDE2IDEwLjA4MzY2MDMgNi4z
NzE4MjQxNiAxMC40NDg0MDgyIDYuNzc0NjU4MiBDIDEwLjgxMzE1NjEgNy4xNzc0OTIyNSAxMC45
OTU1Mjc0IDcuNzcxNDgwNDUgMTAuOTk1NTI3NCA4LjU1NjY0MDYyIEMgMTAuOTk1NTI3NCA5LjMw
MDc4NDk3IDEwLjgxNTM1MzQgOS45MTg5NDI4NSAxMC40NTUgMTAuNDExMTMyOCBDIDEwLjA5NDY0
NjYgMTAuOTAzMzIyOCA5LjU5NTEzOTkzIDExLjE0OTQxNDEgOC45NTY0NjQ4NiAxMS4xNDk0MTQx
IEMgOC41OTkwNDExOSAxMS4xNDk0MTQxIDguMjk3Mjg2NCAxMS4wNjI5ODkxIDguMDUxMTkxNDIg
MTAuODkwMTM2NyBDIDcuOTA0NzA2MzEgMTAuNzg3NTk3MSA3Ljc0Nzk2OTYgMTAuNjIzNTM2MyA3
LjU4MDk3NjU4IDEwLjM5Nzk0OTIgTDcuNTgwOTc2NTggMTEgTDYuODUxNDg0MzkgMTEgTDYuODUx
NDg0MzkgNC41MjI0NjA5NCBaIE0gOS44NjgzMzAwOSA5Ljk0MDkxNzk3IEMgMTAuMDgwNzMzNSA5
LjYwMTA3MjUyIDEwLjE4NjkzMzYgOS4xNTI4MzQ4MSAxMC4xODY5MzM2IDguNTk2MTkxNDEgQyAx
MC4xODY5MzM2IDguMTAxMDcxNzQgMTAuMDgwNzMzNSA3LjY5MDkxOTU5IDkuODY4MzMwMDkgNy4z
NjU3MjI2NiBDIDkuNjU1OTI2NjkgNy4wNDA1MjU3MiA5LjM0MzE4NTY3IDYuODc3OTI5NjkgOC45
MzAwOTc2NyA2Ljg3NzkyOTY5IEMgOC41Njk3NDQzMSA2Ljg3NzkyOTY5IDguMjU0MDczNjMgNy4w
MTEyMjkxNCA3Ljk4MzA3NjE4IDcuMjc3ODMyMDMgQyA3LjcxMjA3ODc0IDcuNTQ0NDM0OTMgNy41
NzY1ODIwNCA3Ljk4Mzg4MzY2IDcuNTc2NTgyMDQgOC41OTYxOTE0MSBDIDcuNTc2NTgyMDQgOS4w
Mzg1NzY0MyA3LjYzMjI0NTU1IDkuMzk3NDU5NTYgNy43NDM1NzQyMyA5LjY3Mjg1MTU2IEMgNy45
NTE1ODMwOCAxMC4xOTE0MDg4IDguMzM5NzYyOCAxMC40NTA2ODM2IDguOTA4MTI1MDEgMTAuNDUw
NjgzNiBDIDkuMzM1ODYxNTMgMTAuNDUwNjgzNiA5LjY1NTkyNjY5IDEwLjI4MDc2MzQgOS44Njgz
MzAwOSA5Ljk0MDkxNzk3IEw5Ljg2ODMzMDA5IDkuOTQwOTE3OTcgWiBNIDE1LjM1NzUwOTggNi41
NDM5NDUzMSBDIDE1LjY5MDAzMSA2LjgwMTc1OTEgMTUuODg5OTgwMiA3LjI0NTYwMjMyIDE1Ljk1
NzM2MzMgNy44NzU0ODgyOCBMMTUuMTg4MzIwMyA3Ljg3NTQ4ODI4IEMgMTUuMTQxNDQ1MSA3LjU4
NTQ0Nzc3IDE1LjAzNDUxMjYgNy4zNDQ0ODMzOCAxNC44Njc1MTk2IDcuMTUyNTg3ODkgQyAxNC43
MDA1MjY1IDYuOTYwNjkyNCAxNC40MzI0NjI4IDYuODY0NzQ2MDkgMTQuMDYzMzIwMyA2Ljg2NDc0
NjA5IEMgMTMuNTU5NDExNiA2Ljg2NDc0NjA5IDEzLjE5OTA2MzYgNy4xMTA4MzczOCAxMi45ODIy
NjU3IDcuNjAzMDI3MzQgQyAxMi44NDE2Mzk5IDcuOTIyMzY0ODggMTIuNzcxMzI4MiA4LjMxNjQw
MzkxIDEyLjc3MTMyODIgOC43ODUxNTYyNSBDIDEyLjc3MTMyODIgOS4yNTY4MzgzIDEyLjg3MDkz
NjUgOS42NTM4MDY5OCAxMy4wNzAxNTYzIDkuOTc2MDc0MjIgQyAxMy4yNjkzNzYgMTAuMjk4MzQx
NSAxMy41ODI4NDk1IDEwLjQ1OTQ3MjcgMTQuMDEwNTg2IDEwLjQ1OTQ3MjcgQyAxNC4zMzg3MTI2
IDEwLjQ1OTQ3MjcgMTQuNTk4NzE5OCAxMC4zNTkxMzE5IDE0Ljc5MDYxNTMgMTAuMTU4NDQ3MyBD
IDE0Ljk4MjUxMDggOS45NTc3NjI2NyAxNS4xMTUwNzc4IDkuNjgzMTA3MjEgMTUuMTg4MzIwMyA5
LjMzNDQ3MjY2IEwxNS45NTczNjMzIDkuMzM0NDcyNjYgQyAxNS44Njk0NzIyIDkuOTU4NDk5MjEg
MTUuNjQ5NzQ3OSAxMC40MTQ3OTM1IDE1LjI5ODE4MzYgMTAuNzAzMzY5MSBDIDE0Ljk0NjYxOTQg
MTAuOTkxOTQ0OCAxNC40OTY5MTY4IDExLjEzNjIzMDUgMTMuOTQ5MDYyNSAxMS4xMzYyMzA1IEMg
MTMuMzMzODI1MSAxMS4xMzYyMzA1IDEyLjg0MzEwNzMgMTAuOTExMzc5MiAxMi40NzY4OTQ2IDEw
LjQ2MTY2OTkgQyAxMi4xMTA2ODE4IDEwLjAxMTk2MDYgMTEuOTI3NTc4MiA5LjQ1MDE5ODY4IDEx
LjkyNzU3ODIgOC43NzYzNjcxOSBDIDExLjkyNzU3ODIgNy45NTAxOTExOCAxMi4xMjgyNTk3IDcu
MzA3MTMxMjEgMTIuNTI5NjI4OSA2Ljg0NzE2Nzk3IEMgMTIuOTMwOTk4MSA2LjM4NzIwNDczIDEz
LjQ0MjIyMzUgNi4xNTcyMjY1NiAxNC4wNjMzMjAzIDYuMTU3MjI2NTYgQyAxNC41OTM1OTY0IDYu
MTU3MjI2NTYgMTUuMDI0OTg4NiA2LjI4NjEzMTUyIDE1LjM1NzUwOTggNi41NDM5NDUzMSBMMTUu
MzU3NTA5OCA2LjU0Mzk0NTMxIFoiLz4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1Mb3dlcmNhc2Uuc3Zn
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zv
cm1Mb3dlcmNhc2Uuc3ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTFjZmQyZDYw
NzBmY2M0MTUyNTAxNzBiMjY2NjIyMWNlMmZlZDQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZworKysgL2Rldi9udWxsCkBAIC0xLDUg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29w
eXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KLTxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCIgdmVyc2lvbj0iMS4x
IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgotICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0i
TSAyLjEzNzQ5OTk5IDEwLjI4ODA4NTkgQyAyLjMwNDQ5MzAxIDEwLjQxOTkyMjUgMi41MDIyNDQ5
NCAxMC40ODU4Mzk4IDIuNzMwNzYxNzEgMTAuNDg1ODM5OCBDIDMuMDA5MDgzNDEgMTAuNDg1ODM5
OCAzLjI3ODYxMTk3IDEwLjQyMTM4NzQgMy41MzkzNTU0NiAxMC4yOTI0ODA1IEMgMy45Nzg4MTA3
OCAxMC4wNzg2MTIyIDQuMTk4NTM1MTQgOS43Mjg1MTgwNiA0LjE5ODUzNTE0IDkuMjQyMTg3NSBM
IDQuMTk4NTM1MTQgOC42MDQ5ODA0NyBDIDQuMTAxODU0OTcgOC42NjY1MDQyMSAzLjk3NzM0NDUg
OC43MTc3NzMyMyAzLjgyNDk5OTk5IDguNzU4Nzg5MDYgQyAzLjY3MjY1NTQ4IDguNzk5ODA0ODkg
My41MjMyNDI5MSA4LjgyOTEwMTQ3IDMuMzc2NzU3OCA4Ljg0NjY3OTY5IEwgMi44OTc3NTM4OSA4
LjkwODIwMzEyIEMgMi42MTA2NDMwOCA4Ljk0NjI4OTI1IDIuMzk1MzEzMjEgOS4wMDYzNDcyNSAy
LjI1MTc1NzggOS4wODgzNzg5MSBDIDIuMDA4NTkyNTIgOS4yMjYwNzQ5MSAxLjg4NzAxMTcxIDku
NDQ1Nzk5MjcgMS44ODcwMTE3MSA5Ljc0NzU1ODU5IEMgMS44ODcwMTE3MSA5Ljk3NjA3NTM2IDEu
OTcwNTA2OTcgMTAuMTU2MjQ5MyAyLjEzNzQ5OTk5IDEwLjI4ODA4NTkgTCAyLjEzNzQ5OTk5IDEw
LjI4ODA4NTkgWiBNIDMuODAzMDI3MzMgOC4xNDc5NDkyMiBDIDMuOTg0NjY4ODcgOC4xMjQ1MTE2
IDQuMTA2MjQ5NjggOC4wNDgzNDA0OSA0LjE2Nzc3MzQzIDcuOTE5NDMzNTkgQyA0LjIwMjkyOTg1
IDcuODQ5MTIwNzQgNC4yMjA1MDc4IDcuNzQ4MDQ3NTMgNC4yMjA1MDc4IDcuNjE2MjEwOTQgQyA0
LjIyMDUwNzggNy4zNDY2NzgzNCA0LjEyNDU2MTQ5IDcuMTUxMTIzNjUgMy45MzI2NjYgNy4wMjk1
NDEwMiBDIDMuNzQwNzcwNTEgNi45MDc5NTgzOCAzLjQ2NjExNTA2IDYuODQ3MTY3OTcgMy4xMDg2
OTEzOSA2Ljg0NzE2Nzk3IEMgMi42OTU2MDMzOSA2Ljg0NzE2Nzk3IDIuNDAyNjM3NTcgNi45NTg0
OTQ5OCAyLjIyOTc4NTE0IDcuMTgxMTUyMzQgQyAyLjEzMzEwNDk3IDcuMzA0MTk5ODMgMi4wNzAx
MTczMiA3LjQ4NzMwMzQ3IDIuMDQwODIwMyA3LjczMDQ2ODc1IEwgMS4zMDI1MzkwNSA3LjczMDQ2
ODc1IEMgMS4zMTcxODc1NiA3LjE1MDM4NzcyIDEuNTA1NDE4MSA2Ljc0NjgyNzMxIDEuODY3MjM2
MzIgNi41MTk3NzUzOSBDIDIuMjI5MDU0NTMgNi4yOTI3MjM0NyAyLjY0ODcyODA3IDYuMTc5MTk5
MjIgMy4xMjYyNjk1MiA2LjE3OTE5OTIyIEMgMy42Nzk5ODMyMyA2LjE3OTE5OTIyIDQuMTI5Njg1
NzYgNi4yODQ2NjY5MSA0LjQ3NTM5MDYxIDYuNDk1NjA1NDcgQyA0LjgxODE2NTc2IDYuNzA2NTQ0
MDIgNC45ODk1NTA3NyA3LjAzNDY2NTc0IDQuOTg5NTUwNzcgNy40Nzk5ODA0NyBMIDQuOTg5NTUw
NzcgMTAuMTkxNDA2MiBDIDQuOTg5NTUwNzcgMTAuMjczNDM3OSA1LjAwNjM5NjMgMTAuMzM5MzU1
MiA1LjA0MDA4Nzg4IDEwLjM4OTE2MDIgQyA1LjA3Mzc3OTQ1IDEwLjQzODk2NTEgNS4xNDQ4MjM2
NiAxMC40NjM4NjcyIDUuMjUzMjIyNjQgMTAuNDYzODY3MiBDIDUuMjg4Mzc5MDcgMTAuNDYzODY3
MiA1LjMyNzkyOTQ2IDEwLjQ2MTY2OTkgNS4zNzE4NzQ5OSAxMC40NTcyNzU0IEMgNS40MTU4MjA1
MiAxMC40NTI4ODA4IDUuNDYyNjk1MDUgMTAuNDQ2Mjg5MSA1LjUxMjQ5OTk5IDEwLjQzNzUgTCA1
LjUxMjQ5OTk5IDExLjAyMTk3MjcgQyA1LjM4OTQ1MjUgMTEuMDU3MTI5MSA1LjI5NTcwMzQ0IDEx
LjA3OTEwMTUgNS4yMzEyNDk5OSAxMS4wODc4OTA2IEMgNS4xNjY3OTY1NCAxMS4wOTY2Nzk3IDUu
MDc4OTA2NzkgMTEuMTAxMDc0MiA0Ljk2NzU3ODExIDExLjEwMTA3NDIgQyA0LjY5NTExNTgxIDEx
LjEwMTA3NDIgNC40OTczNjM4OCAxMS4wMDQzOTU1IDQuMzc0MzE2MzkgMTAuODExMDM1MiBDIDQu
MzA5ODYyOTUgMTAuNzA4NDk1NiA0LjI2NDQ1MzI0IDEwLjU2MzQ3NzUgNC4yMzgwODU5MyAxMC4z
NzU5NzY2IEMgNC4wNzY5NTIzMSAxMC41ODY5MTUxIDMuODQ1NTA5MzEgMTAuNzcwMDE4OCAzLjU0
Mzc0OTk5IDEwLjkyNTI5MyBDIDMuMjQxOTkwNjcgMTEuMDgwNTY3MiAyLjkwOTQ3NDQ2IDExLjE1
ODIwMzEgMi41NDYxOTEzOSAxMS4xNTgyMDMxIEMgMi4xMDk2NjU3NyAxMS4xNTgyMDMxIDEuNzUy
OTc5ODkgMTEuMDI1NjM2MSAxLjQ3NjEyMzAzIDEwLjc2MDQ5OCBDIDEuMTk5MjY2MTggMTAuNDk1
MzYgMS4wNjA4Mzk4MyAxMC4xNjM1NzYyIDEuMDYwODM5ODMgOS43NjUxMzY3MiBDIDEuMDYwODM5
ODMgOS4zMjg2MTExIDEuMTk3MDY4OTQgOC45OTAyMzU1OCAxLjQ2OTUzMTI0IDguNzUgQyAxLjc0
MTk5MzU0IDguNTA5NzY0NDIgMi4wOTk0MTE4NCA4LjM2MTgxNjY4IDIuNTQxNzk2ODYgOC4zMDYx
NTIzNCBMIDMuODAzMDI3MzMgOC4xNDc5NDkyMiBaIE0gNi4yMjQ0MTQwNSA0LjUyMjQ2MDk0IEwg
Ni45OTM0NTcwMiA0LjUyMjQ2MDk0IEwgNi45OTM0NTcwMiA2Ljg2NDc0NjA5IEMgNy4xNjYzMDk0
NSA2LjYzOTE1OTAzIDcuMzcyODUwMzUgNi40NjcwNDE2MSA3LjYxMzA4NTkzIDYuMzQ4Mzg4Njcg
QyA3Ljg1MzMyMTUgNi4yMjk3MzU3MyA4LjExNDA2MTA4IDYuMTcwNDEwMTYgOC4zOTUzMTI0OSA2
LjE3MDQxMDE2IEMgOC45ODEyNTI5MiA2LjE3MDQxMDE2IDkuNDU2NTg5OTYgNi4zNzE4MjQxNiA5
LjgyMTMzNzg4IDYuNzc0NjU4MiBDIDEwLjE4NjA4NTggNy4xNzc0OTIyNSAxMC4zNjg0NTcgNy43
NzE0ODA0NSAxMC4zNjg0NTcgOC41NTY2NDA2MiBDIDEwLjM2ODQ1NyA5LjMwMDc4NDk3IDEwLjE4
ODI4MyA5LjkxODk0Mjg1IDkuODI3OTI5NjggMTAuNDExMTMyOCBDIDkuNDY3NTc2MzEgMTAuOTAz
MzIyOCA4Ljk2ODA2OTU5IDExLjE0OTQxNDEgOC4zMjkzOTQ1MiAxMS4xNDk0MTQxIEMgNy45NzE5
NzA4NiAxMS4xNDk0MTQxIDcuNjcwMjE2MDYgMTEuMDYyOTg5MSA3LjQyNDEyMTA4IDEwLjg5MDEz
NjcgQyA3LjI3NzYzNTk3IDEwLjc4NzU5NzEgNy4xMjA4OTkyNiAxMC42MjM1MzYzIDYuOTUzOTA2
MjQgMTAuMzk3OTQ5MiBMIDYuOTUzOTA2MjQgMTEgTCA2LjIyNDQxNDA1IDExIEwgNi4yMjQ0MTQw
NSA0LjUyMjQ2MDk0IFogTSA5LjI0MTI1OTc1IDkuOTQwOTE3OTcgQyA5LjQ1MzY2MzE2IDkuNjAx
MDcyNTIgOS41NTk4NjMyNyA5LjE1MjgzNDgxIDkuNTU5ODYzMjcgOC41OTYxOTE0MSBDIDkuNTU5
ODYzMjcgOC4xMDEwNzE3NCA5LjQ1MzY2MzE2IDcuNjkwOTE5NTkgOS4yNDEyNTk3NSA3LjM2NTcy
MjY2IEMgOS4wMjg4NTYzNSA3LjA0MDUyNTcyIDguNzE2MTE1MzMgNi44Nzc5Mjk2OSA4LjMwMzAy
NzMzIDYuODc3OTI5NjkgQyA3Ljk0MjY3Mzk3IDYuODc3OTI5NjkgNy42MjcwMDMzIDcuMDExMjI5
MTQgNy4zNTYwMDU4NSA3LjI3NzgzMjAzIEMgNy4wODUwMDg0IDcuNTQ0NDM0OTMgNi45NDk1MTE3
MSA3Ljk4Mzg4MzY2IDYuOTQ5NTExNzEgOC41OTYxOTE0MSBDIDYuOTQ5NTExNzEgOS4wMzg1NzY0
MyA3LjAwNTE3NTIxIDkuMzk3NDU5NTYgNy4xMTY1MDM4OSA5LjY3Mjg1MTU2IEMgNy4zMjQ1MTI3
NSAxMC4xOTE0MDg4IDcuNzEyNjkyNDYgMTAuNDUwNjgzNiA4LjI4MTA1NDY4IDEwLjQ1MDY4MzYg
QyA4LjcwODc5MTE5IDEwLjQ1MDY4MzYgOS4wMjg4NTYzNSAxMC4yODA3NjM0IDkuMjQxMjU5NzUg
OS45NDA5MTc5NyBMIDkuMjQxMjU5NzUgOS45NDA5MTc5NyBaIE0gMTQuNDAwNDM5NCA2LjU0Mzk0
NTMxIEMgMTQuNzMyOTYwNiA2LjgwMTc1OTEgMTQuOTMyOTA5OCA3LjI0NTYwMjMyIDE1LjAwMDI5
MyA3Ljg3NTQ4ODI4IEwgMTQuMjMxMjUgNy44NzU0ODgyOCBDIDE0LjE4NDM3NDggNy41ODU0NDc3
NyAxNC4wNzc0NDIyIDcuMzQ0NDgzMzggMTMuOTEwNDQ5MiA3LjE1MjU4Nzg5IEMgMTMuNzQzNDU2
MiA2Ljk2MDY5MjQgMTMuNDc1MzkyNSA2Ljg2NDc0NjA5IDEzLjEwNjI1IDYuODY0NzQ2MDkgQyAx
Mi42MDIzNDEyIDYuODY0NzQ2MDkgMTIuMjQxOTkzMyA3LjExMDgzNzM4IDEyLjAyNTE5NTMgNy42
MDMwMjczNCBDIDExLjg4NDU2OTYgNy45MjIzNjQ4OCAxMS44MTQyNTc4IDguMzE2NDAzOTEgMTEu
ODE0MjU3OCA4Ljc4NTE1NjI1IEMgMTEuODE0MjU3OCA5LjI1NjgzODMgMTEuOTEzODY2MiA5LjY1
MzgwNjk4IDEyLjExMzA4NTkgOS45NzYwNzQyMiBDIDEyLjMxMjMwNTcgMTAuMjk4MzQxNSAxMi42
MjU3NzkxIDEwLjQ1OTQ3MjcgMTMuMDUzNTE1NiAxMC40NTk0NzI3IEMgMTMuMzgxNjQyMyAxMC40
NTk0NzI3IDEzLjY0MTY0OTQgMTAuMzU5MTMxOSAxMy44MzM1NDQ5IDEwLjE1ODQ0NzMgQyAxNC4w
MjU0NDA0IDkuOTU3NzYyNjcgMTQuMTU4MDA3NCA5LjY4MzEwNzIxIDE0LjIzMTI1IDkuMzM0NDcy
NjYgTCAxNS4wMDAyOTMgOS4zMzQ0NzI2NiBDIDE0LjkxMjQwMTkgOS45NTg0OTkyMSAxNC42OTI2
Nzc1IDEwLjQxNDc5MzUgMTQuMzQxMTEzMyAxMC43MDMzNjkxIEMgMTMuOTg5NTQ5IDEwLjk5MTk0
NDggMTMuNTM5ODQ2NSAxMS4xMzYyMzA1IDEyLjk5MTk5MjIgMTEuMTM2MjMwNSBDIDEyLjM3Njc1
NDcgMTEuMTM2MjMwNSAxMS44ODYwMzcgMTAuOTExMzc5MiAxMS41MTk4MjQyIDEwLjQ2MTY2OTkg
QyAxMS4xNTM2MTE0IDEwLjAxMTk2MDYgMTAuOTcwNTA3OCA5LjQ1MDE5ODY4IDEwLjk3MDUwNzgg
OC43NzYzNjcxOSBDIDEwLjk3MDUwNzggNy45NTAxOTExOCAxMS4xNzExODk0IDcuMzA3MTMxMjEg
MTEuNTcyNTU4NiA2Ljg0NzE2Nzk3IEMgMTEuOTczOTI3OCA2LjM4NzIwNDczIDEyLjQ4NTE1MzEg
Ni4xNTcyMjY1NiAxMy4xMDYyNSA2LjE1NzIyNjU2IEMgMTMuNjM2NTI2MSA2LjE1NzIyNjU2IDE0
LjA2NzkxODIgNi4yODYxMzE1MiAxNC40MDA0Mzk0IDYuNTQzOTQ1MzEgTCAxNC40MDA0Mzk0IDYu
NTQzOTQ1MzEgWiIvPgotPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybVVwcGVyY2FzZS5zdmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybVVwcGVyY2Fz
ZS5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwYzVlY2FkYTBlNDU2MmQ2MDRi
NTU1MTk0ODlkMGY5ZDlmMDUyNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Rl
eHRUcmFuc2Zvcm1VcHBlcmNhc2Uuc3ZnCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgwqkg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgotPHN2ZyB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9
IjAgMCAxNiAxNiI+Ci0gICAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNIDMuNzc2ODU1
NDcgOC4zMDE0NjQ4NCBMIDIuODUxMzE4MzYgNS42MDc4NjEzMyBMIDEuODY3Njc1NzggOC4zMDE0
NjQ4NCBMIDMuNzc2ODU1NDcgOC4zMDE0NjQ4NCBaIE0gMi40MTk2Nzc3MyA0LjcwMzA3NjE3IEwg
My4zNTM1MTU2MiA0LjcwMzA3NjE3IEwgNS41NjU2NzM4MyAxMC44IEwgNC42NjA4ODg2NyAxMC44
IEwgNC4wNDI0ODA0NyA4Ljk3MzgyODEzIEwgMS42MzExMDM1MiA4Ljk3MzgyODEzIEwgMC45NzEx
OTE0MDYgMTAuOCBMIDAuMTI0NTExNzE5IDEwLjggTCAyLjQxOTY3NzczIDQuNzAzMDc2MTcgWiBN
IDguMDU3OTEwMTYgNy4yODA0Njg3NSBDIDguNDA2NTQ0NzEgNy4yODA0Njg3NSA4LjY3NzcwMDg1
IDcuMjMyMDQ4MDEgOC44NzEzODY3MiA3LjEzNTIwNTA4IEMgOS4xNzU3NTAyMiA2Ljk4MzAyMzMz
IDkuMzI3OTI5NjkgNi43MDkxMDAyOSA5LjMyNzkyOTY5IDYuMzEzNDI3NzMgQyA5LjMyNzkyOTY5
IDUuOTE0OTg4MjQgOS4xNjYwNjYwNyA1LjY0NjU5OSA4Ljg0MjMzMzk4IDUuNTA4MjUxOTUgQyA4
LjY1OTcxNTg4IDUuNDMwNzc3NjEgOC4zODg1NTk3NCA1LjM5MjA0MTAyIDguMDI4ODU3NDIgNS4z
OTIwNDEwMiBMIDYuNTU1NDY4NzUgNS4zOTIwNDEwMiBMIDYuNTU1NDY4NzUgNy4yODA0Njg3NSBM
IDguMDU3OTEwMTYgNy4yODA0Njg3NSBaIE0gOC4zMzU5ODYzMyAxMC4wOTQ0MzM2IEMgOC44NDIz
MzY1MiAxMC4wOTQ0MzM2IDkuMjAzNDE2ODkgOS45NDc3ODc5MiA5LjQxOTIzODI4IDkuNjU0NDky
MTkgQyA5LjU1NDgxODM5IDkuNDY5MTA3MTUgOS42MjI2MDc0MiA5LjI0NDk4ODI5IDkuNjIyNjA3
NDIgOC45ODIxMjg5MSBDIDkuNjIyNjA3NDIgOC41Mzk0MTgzNiA5LjQyNDc3NDExIDguMjM3ODI2
MzIgOS4wMjkxMDE1NiA4LjA3NzM0Mzc1IEMgOC44MTg4MTQwNSA3Ljk5MTU2ODU4IDguNTQwNzQw
NjYgNy45NDg2ODE2NCA4LjE5NDg3MzA1IDcuOTQ4NjgxNjQgTCA2LjU1NTQ2ODc1IDcuOTQ4Njgx
NjQgTCA2LjU1NTQ2ODc1IDEwLjA5NDQzMzYgTCA4LjMzNTk4NjMzIDEwLjA5NDQzMzYgWiBNIDUu
NzQ2MTQyNTggNC43MDMwNzYxNyBMIDguMzY1MDM5MDYgNC43MDMwNzYxNyBDIDkuMDc4OTA5ODIg
NC43MDMwNzYxNyA5LjU4NjYzNTg2IDQuOTE2MTI3NDMgOS44ODgyMzI0MiA1LjM0MjIzNjMzIEMg
MTAuMDY1MzE2NiA1LjU5NDAyNzk1IDEwLjE1Mzg1NzQgNS44ODQ1NTIzOSAxMC4xNTM4NTc0IDYu
MjEzODE4MzYgQyAxMC4xNTM4NTc0IDYuNTk4NDIzMTUgMTAuMDQ0NTY0OSA2LjkxMzg0OTY4IDku
ODI1OTc2NTYgNy4xNjAxMDc0MiBDIDkuNzEyNTMxOTggNy4yOTAxNTM2NSA5LjU0OTI4NDkyIDcu
NDA5MTMwMzIgOS4zMzYyMzA0NyA3LjUxNzA0MTAyIEMgOS42NDg4OTQ3OSA3LjYzNjAxOTQ4IDku
ODgyNjk3NzkgNy43NzAyMTQxIDEwLjAzNzY0NjUgNy45MTk2Mjg5MSBDIDEwLjMxMTU3MzYgOC4x
ODUyNTUyMyAxMC40NDg1MzUyIDguNTUxODY5NDEgMTAuNDQ4NTM1MiA5LjAxOTQ4MjQyIEMgMTAu
NDQ4NTM1MiA5LjQxMjM4ODAzIDEwLjMyNTQwODEgOS43Njc5MzQ2MSAxMC4wNzkxNTA0IDEwLjA4
NjEzMjggQyA5LjcxMTE0NzI1IDEwLjU2MjA0NjcgOS4xMjU5NDgwMiAxMC44IDguMzIzNTM1MTYg
MTAuOCBMIDUuNzQ2MTQyNTggMTAuOCBMIDUuNzQ2MTQyNTggNC43MDMwNzYxNyBaIE0gMTUuMjUy
NTM5MSA1LjE0NzE2Nzk3IEMgMTUuNjc4NjQ4IDUuNTUzOTA4MjggMTUuOTE1MjE3OSA2LjAxNTk4
MDQ5IDE1Ljk2MjI1NTkgNi41MzMzOTg0NCBMIDE1LjE1NzA4MDEgNi41MzMzOTg0NCBDIDE1LjA2
NTc3MSA2LjE0MDQ5MjgzIDE0Ljg4Mzg0NzQgNS44MjkyMTY2NCAxNC42MTEzMDM3IDUuNTk5NTYw
NTUgQyAxNC4zMzg3NiA1LjM2OTkwNDQ1IDEzLjk1NjIzNjIgNS4yNTUwNzgxMyAxMy40NjM3MjA3
IDUuMjU1MDc4MTMgQyAxMi44NjMyOTQ1IDUuMjU1MDc4MTMgMTIuMzc4Mzk1NCA1LjQ2NjA1NDIx
IDEyLjAwOTAwODggNS44ODgwMTI3IEMgMTEuNjM5NjIyMiA2LjMwOTk3MTE5IDExLjQ1NDkzMTYg
Ni45NTY3MzM5MiAxMS40NTQ5MzE2IDcuODI4MzIwMzEgQyAxMS40NTQ5MzE2IDguNTQyMTkxMDcg
MTEuNjIxNjM3MyA5LjEyMTE2NDc3IDExLjk1NTA1MzcgOS41NjUyNTg3OSBDIDEyLjI4ODQ3MDEg
MTAuMDA5MzUyOCAxMi43ODU4MjAzIDEwLjIzMTM5NjUgMTMuNDQ3MTE5MSAxMC4yMzEzOTY1IEMg
MTQuMDU1ODQ2MSAxMC4yMzEzOTY1IDE0LjUxOTMwMTggOS45OTc1OTM0OCAxNC44Mzc1IDkuNTI5
OTgwNDcgQyAxNS4wMDYyODM0IDkuMjgzNzIyNzMgMTUuMTMyMTc3MyA4Ljk1OTk5NTUgMTUuMjE1
MTg1NSA4LjU1ODc4OTA2IEwgMTYuMDIwMzYxMyA4LjU1ODc4OTA2IEMgMTUuOTQ4NDIwOSA5LjIw
MDcxOTM2IDE1LjcxMDQ2NzUgOS43Mzg4ODEyOSAxNS4zMDY0OTQxIDEwLjE3MzI5MSBDIDE0Ljgy
MjI3OTUgMTAuNjk2MjQyOCAxNC4xNjkyOTEyIDEwLjk1NzcxNDggMTMuMzQ3NTA5OCAxMC45NTc3
MTQ4IEMgMTIuNjM5MTcyOSAxMC45NTc3MTQ4IDEyLjA0NDI4OTUgMTAuNzQzMjgwMSAxMS41NjI4
NDE4IDEwLjMxNDQwNDMgQyAxMC45MjkyMTIzIDkuNzQ3MTgxNDEgMTAuNjEyNDAyMyA4Ljg3MTQ1
Nzc0IDEwLjYxMjQwMjMgNy42ODcyMDcwMyBDIDEwLjYxMjQwMjMgNi43ODc5NTEyMyAxMC44NTAz
NTU3IDYuMDUwNTcyNTQgMTEuMzI2MjY5NSA1LjQ3NTA0ODgzIEMgMTEuODQwOTIwNSA0Ljg0OTcy
MDE4IDEyLjU1MDYzMDIgNC41MzcwNjA1NSAxMy40NTU0MTk5IDQuNTM3MDYwNTUgQyAxNC4yMjcz
OTY0IDQuNTM3MDYwNTUgMTQuODI2NDMwMiA0Ljc0MDQyNzY1IDE1LjI1MjUzOTEgNS4xNDcxNjc5
NyBMIDE1LjI1MjUzOTEgNS4xNDcxNjc5NyBaIi8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZU5vbmUuc3Zn
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxl
Tm9uZS5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNjU0YjI5ODFiZGZkOTgw
NWQwOGYyNmEyMDM3ZTM0M2FiZjczYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1Zpc3VhbFN0eWxlTm9uZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAw
IDE2IDE2Ij4KLSAgICA8bGluZSBzdHJva2U9ImN1cnJlbnRDb2xvciIgeDE9IjAiIHkxPSI4IiB4
Mj0iMTQiIHkyPSI4Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZVByb3BlcnR5TGlua2VkLnN2ZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZVByb3Bl
cnR5TGlua2VkLnN2ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk2ZGFhMTg1ODgw
MDg0ZDc5YzM3ZWI3ZTZlYzIzOTlkNTMxNmNlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eUxpbmtlZC5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08IS0tIENv
cHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Ci08c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiIHZlcnNpb249IjEu
MSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8Y2lyY2xlIGZpbGw9ImN1cnJlbnRDb2xvciIg
Y3g9IjgiIGN5PSI4IiByPSI0Ii8+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHlsZVByb3BlcnR5VW5saW5rZWQu
c3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0
eWxlUHJvcGVydHlVbmxpbmtlZC5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3
ZGQ2MTE0ZjA4YTNhN2MwNmE2ZGVmMTExYWVkMzVkN2Q2ZDBiYjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlUHJvcGVydHlVbmxpbmtlZC5zdmcKKysrIC9kZXYv
bnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+Ci08IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gLS0+Ci08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3Qi
IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDE2IDE2Ij4KLSAgICA8cGF0aCBmaWxsPSJjdXJy
ZW50Q29sb3IiIGQ9Ik0gNi41IDQgQyAwIDQgMCAxMiA2LjUgMTIiLz4KLSAgICA8cGF0aCBmaWxs
PSJjdXJyZW50Q29sb3IiIGQ9Ik0gOS41IDQgQyAxNiA0IDE2IDEyIDkuNSAxMiIvPgotPC9zdmc+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0
bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXgg
NjZiNzZiMGYxNzUxODY4ZWQ0MDQxMDZiZmJiZGFjMDg4OTU5YjdkOC4uODg0ZWM3NjQyZjg2MzAx
NDk0NGNhMjJiNmFlOWQzOGYxZDQ3ZTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMjE3LDIxICsyMTcsNiBAQAogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVHlwZVRyZWVFbGVtZW50LmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9UeXBlVHJlZVZpZXcuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1ZhcmlhYmxlcy5jc3MiPgotICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlj
a2VyLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9WaXN1YWxT
dHlsZUNvbG9yUGlja2VyLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5jc3MiPgotICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwu
Y3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxl
S2V5d29yZENoZWNrYm94LmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveC5jc3MiPgotICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVk
aXRvci5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFs
U3R5bGVQcm9wZXJ0eUVkaXRvckxpbmsuY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzIj4KLSAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0
aW9uLmNzcyI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9WaXN1YWxT
dHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzIj4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IlZpZXdzL1Zpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5jc3MiPgotICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3Nz
Ij4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Zpc3VhbFN0eWxlVW5p
dFNsaWRlci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvV2Vi
U29ja2V0Q29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL1hIUkJyZWFrcG9pbnRQb3BvdmVyLmNzcyI+CiAKQEAgLTUyNiw3ICs1MTEsNiBAQAog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUnVsZXNTdHlsZURldGFpbHNTaWRl
YmFyUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Db21wdXRlZFN0
eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL1N0eWxlRGV0YWlsc1BhbmVsLmpzIj48L3NjcmlwdD4KIAogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9DYW52YXNUYWJDb250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CkBAIC03
OTUsMjkgKzc3OSw2IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1hIUkJyZWFrcG9pbnRQb3Bv
dmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvWEhSQnJlYWtwb2ludFRy
ZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxT
dHlsZURldGFpbHNQYW5lbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zp
c3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUJhc2ljSW5wdXQuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0
b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZUZvbnRG
YW1pbHlMaXN0RWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlz
dWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJWaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmlld3MvVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJv
eC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVy
dHlDb21iaW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0
eWxlUHJvcGVydHlFZGl0b3JMaW5rLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmll
d3MvVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVl
SXRlbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zpc3VhbFN0eWxlVGFi
YmVkUHJvcGVydGllc1Jvdy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZpZXdzL1Zp
c3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVmll
d3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5qcyI+PC9zY3JpcHQ+Ci0KICAgICA8c2NyaXB0IHNy
Yz0iQ29udHJvbGxlcnMvQW5ub3RhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Q29udHJvbGxlcnMvQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KIApA
QCAtODY1LDcgKzgyNiw2IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL1RhcmdldE1h
bmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UaW1lbGlu
ZU1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9UeXBl
VG9rZW5Bbm5vdGF0b3IuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL1dvcmtlck1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250cm9sbGVycy9YSFJCcmVha3BvaW50VHJlZUNvbnRyb2xsZXIuanMiPjwv
c2NyaXB0PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRWxlbWVudHNUYWJDb250ZW50Vmlldy5qcwppbmRleCAxZTJk
NmMxZmZhYjQ2NjI3MDZiYzRkYjIwZjg2YWY5MWVjNGJjYTgyLi41Mzk2MjliOGU2YmZhYjFkMmU4
NmM1NDBmNjA4NjI3OTIzNTM2ODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9FbGVtZW50c1RhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0VsZW1lbnRzVGFiQ29udGVudFZp
ZXcuanMKQEAgLTMzLDkgKzMzLDYgQEAgV0kuRWxlbWVudHNUYWJDb250ZW50VmlldyA9IGNsYXNz
IEVsZW1lbnRzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3MKICAgICAgICAg
aWYgKHdpbmRvdy5MYXllclRyZWVBZ2VudCAmJiAhV0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsRW5h
YmxlTGF5ZXJzVGFiLnZhbHVlKQogICAgICAgICAgICAgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0
cnVjdG9ycy5wdXNoKFdJLkxheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwpOwogCi0gICAgICAg
IGlmIChXSS5zZXR0aW5ncy5leHBlcmltZW50YWxMZWdhY3lWaXN1YWxTaWRlYmFyLnZhbHVlKQot
ICAgICAgICAgICAgZGV0YWlsc1NpZGViYXJQYW5lbENvbnN0cnVjdG9ycy5wdXNoKFdJLlZpc3Vh
bFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCk7Ci0KICAgICAgICAgc3VwZXIoaWRlbnRpZmllciB8
fCAiZWxlbWVudHMiLCAiZWxlbWVudHMiLCB0YWJCYXJJdGVtLCBudWxsLCBkZXRhaWxzU2lkZWJh
clBhbmVsQ29uc3RydWN0b3JzLCB0cnVlKTsKIAogICAgICAgICBXSS5mcmFtZVJlc291cmNlTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLkV2ZW50Lk1haW5G
cmFtZURpZENoYW5nZSwgdGhpcy5fbWFpbkZyYW1lRGlkQ2hhbmdlLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NldHRpbmdzVGFi
Q29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TZXR0aW5nc1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IGQyZGNlZmZhMzgyMDYxZmU0YjA4MGIy
NjNiZmI4MWJhMTJmNDQ3ZmYuLmM0ZGY2NGVhMTAzNjBiNzk0NzQ2NTg0OTkyMWZiMWE5OTVkMzI5
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NldHRpbmdzVGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2V0dGluZ3NUYWJDb250ZW50Vmlldy5qcwpAQCAtMjQyLDcgKzI0
Miw2IEBAIFdJLlNldHRpbmdzVGFiQ29udGVudFZpZXcgPSBjbGFzcyBTZXR0aW5nc1RhYkNvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuVGFiQ29udGVudFZpCiAgICAgICAgIGlmICh3aW5kb3cuQ1NTQWdl
bnQpIHsKICAgICAgICAgICAgIGxldCBzdHlsZXNHcm91cCA9IGV4cGVyaW1lbnRhbFNldHRpbmdz
Vmlldy5hZGRHcm91cChXSS5VSVN0cmluZygiU3R5bGVzIFNpZGViYXI6IikpOwogICAgICAgICAg
ICAgc3R5bGVzR3JvdXAuYWRkU2V0dGluZyhXSS5zZXR0aW5ncy5leHBlcmltZW50YWxMZWdhY3lT
dHlsZUVkaXRvciwgV0kuVUlTdHJpbmcoIkxlZ2FjeSBTdHlsZSBFZGl0b3IiKSk7Ci0gICAgICAg
ICAgICBzdHlsZXNHcm91cC5hZGRTZXR0aW5nKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbExlZ2Fj
eVZpc3VhbFNpZGViYXIsIFdJLlVJU3RyaW5nKCJMZWdhY3kgVmlzdWFsIFN0eWxlcyBQYW5lbCIp
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh3aW5kb3cuTGF5ZXJUcmVlQWdlbnQpIHsKQEAg
LTI3Nyw3ICsyNzYsNiBAQCBXSS5TZXR0aW5nc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgU2V0dGlu
Z3NUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLlRhYkNvbnRlbnRWaQogICAgICAgICB9CiAKICAg
ICAgICAgbGlzdGVuRm9yQ2hhbmdlKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbExlZ2FjeVN0eWxl
RWRpdG9yKTsKLSAgICAgICAgbGlzdGVuRm9yQ2hhbmdlKFdJLnNldHRpbmdzLmV4cGVyaW1lbnRh
bExlZ2FjeVZpc3VhbFNpZGViYXIpOwogICAgICAgICBsaXN0ZW5Gb3JDaGFuZ2UoV0kuc2V0dGlu
Z3MuZXhwZXJpbWVudGFsRW5hYmxlTGF5ZXJzVGFiKTsKICAgICAgICAgbGlzdGVuRm9yQ2hhbmdl
KFdJLnNldHRpbmdzLmV4cGVyaW1lbnRhbEVuYWJsZVNvdXJjZXNUYWIpOwogICAgICAgICBsaXN0
ZW5Gb3JDaGFuZ2UoV0kuc2V0dGluZ3MuZXhwZXJpbWVudGFsRW5hYmxlTmV3VGFiQmFyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlQmFja2dyb3VuZFBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuY3NzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwZjc4ZmQ1Y2M0MjY2NjVhNmI0OTkzOGY2NmIyNTM0OWM4NGVi
ZTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQmFja2dyb3Vu
ZFBpY2tlci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IERldmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5ncmFkaWVudCB7Ci0gICAgd2lkdGg6IDM4cHg7
Ci0gICAgaGVpZ2h0OiAxOHB4OwotICAgIG1hcmdpbjogMXB4IDAgMDsKLSAgICBib3JkZXI6IDFw
eCBzb2xpZCBoc2xhKDAsIDAlLCAyNSUsIDAuNCk7Ci0gICAgYm9yZGVyLXJhZGl1czogNHB4Owot
fQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5kLXBpY2tlciA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguZ3JhZGllbnQtdmFs
dWUpID4gLmlubGluZS1zd2F0Y2guZ3JhZGllbnQgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0K
LS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5ncmFk
aWVudDpob3ZlciB7Ci0gICAgYm9yZGVyLWNvbG9yOiBoc2xhKDAsIDAlLCAyNSUsIDAuOCk7Ci19
Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5n
cmFkaWVudDphY3RpdmUgewotICAgIGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAyNSUpOwotfQot
Ci0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5kLXBpY2tlciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmlubGluZS1zd2F0Y2guZ3Jh
ZGllbnQgPiBzcGFuIHsKLSAgICBib3JkZXI6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLmJhY2tncm91bmQtcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIuZ3JhZGllbnQtdmFsdWUgPiAuaW5saW5lLXN3YXRjaC5ncmFkaWVu
dCArIC52YWx1ZS1pbnB1dCB7Ci0gICAgbWFyZ2luLWxlZnQ6IC0zcHg7Ci0gICAgcGFkZGluZy1s
ZWZ0OiA1cHg7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsKLSAgICBib3JkZXItYm90
dG9tLWxlZnQtcmFkaXVzOiAwOwotICAgIGJvcmRlci1sZWZ0OiBub25lOwotfQotCi0udmlzdWFs
LXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5iYWNrZ3JvdW5kLXBpY2tlciA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZhbHVlLWlucHV0IHsKLSAgICBtYXJnaW46
IDFweCA0cHggM3B4IDA7Ci0gICAgcGFkZGluZzogMCAzcHg7Ci0gICAgYm9yZGVyLXJhZGl1czog
NHB4OwotICAgIGJvcmRlcjogc29saWQgMXB4IGhzbCgwLCAwJSwgODMlKTsKLSAgICB0ZXh0LWFs
aWduOiBsZWZ0OwotICAgIGZvbnQtc2l6ZTogMTBweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIuYmFja2dyb3VuZC1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC52YWx1ZS1pbnB1dFtkaXNhYmxlZF0gewotICAgIG9wYWNpdHk6
IDAuNzsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIuYmFja2dyb3VuZC1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC52YWx1ZS10eXBlLXBpY2tlci1zZWxlY3QgewotICAgIG1heC13
aWR0aDogMTcwcHg7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNrZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUJhY2tncm91bmRQaWNr
ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMGYzZTFlMGMyNjNkMjVjZTAw
ZDc3M2Y0ODM2MTQ1ZWE1NTRiYjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjI2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgRGV2aW4gUm91c3NvIDx3ZWJraXRAZGV2aW5y
b3Vzc28uY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5
bGVCYWNrZ3JvdW5kUGlja2VyID0gY2xhc3MgVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyIGV4
dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHBy
b3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBudWxs
LCAiYmFja2dyb3VuZC1waWNrZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5f
Z3JhZGllbnRTd2F0Y2ggPSBuZXcgV0kuSW5saW5lU3dhdGNoKFdJLklubGluZVN3YXRjaC5UeXBl
LkdyYWRpZW50KTsKLSAgICAgICAgdGhpcy5fZ3JhZGllbnRTd2F0Y2guYWRkRXZlbnRMaXN0ZW5l
cihXSS5JbmxpbmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl9ncmFkaWVudFN3YXRj
aENvbG9yQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fZ3JhZGllbnRTd2F0Y2guZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fdmFs
dWVJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotICAgICAg
ICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2YWx1ZS1pbnB1dCIpOwot
ICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC50eXBlID0gInVybCI7Ci0gICAgICAgIHRo
aXMuX3ZhbHVlSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIGEg
VVJMIik7Ci0gICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImlucHV0IiwgdGhpcy5kZWJvdW5jZSgyNTApLl92YWx1ZUlucHV0VmFsdWVDaGFuZ2VkKTsKLSAg
ICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl92YWx1ZUlucHV0RWxl
bWVudCk7Ci0KLSAgICAgICAgdGhpcy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwotICAgICAgICB0aGlzLl92YWx1ZVR5cGVQaWNrZXJF
bGVtZW50LmNsYXNzTGlzdC5hZGQoInZhbHVlLXR5cGUtcGlja2VyLXNlbGVjdCIpOwotICAgICAg
ICBpZiAodGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpCi0gICAgICAgICAgICB0aGlzLl92
YWx1ZVR5cGVQaWNrZXJFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIk9wdGlvbi1jbGljayB0
byBzaG93IGFsbCB2YWx1ZXMiKTsKLQotICAgICAgICBsZXQgaW1hZ2VPcHRpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgaW1hZ2VPcHRpb24udmFsdWUgPSAi
dXJsIjsKLSAgICAgICAgaW1hZ2VPcHRpb24udGV4dCA9IFdJLlVJU3RyaW5nKCJJbWFnZSIpOwot
ICAgICAgICB0aGlzLl92YWx1ZVR5cGVQaWNrZXJFbGVtZW50LmFwcGVuZENoaWxkKGltYWdlT3B0
aW9uKTsKLQotICAgICAgICBsZXQgbGluZWFyR3JhZGllbnRPcHRpb24gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgbGluZWFyR3JhZGllbnRPcHRpb24udmFsdWUg
PSAibGluZWFyLWdyYWRpZW50IjsKLSAgICAgICAgbGluZWFyR3JhZGllbnRPcHRpb24udGV4dCA9
IFdJLlVJU3RyaW5nKCJMaW5lYXIgR3JhZGllbnQiKTsKLSAgICAgICAgdGhpcy5fdmFsdWVUeXBl
UGlja2VyRWxlbWVudC5hcHBlbmRDaGlsZChsaW5lYXJHcmFkaWVudE9wdGlvbik7Ci0KLSAgICAg
ICAgbGV0IHJhZGlhbEdyYWRpZW50T3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0
aW9uIik7Ci0gICAgICAgIHJhZGlhbEdyYWRpZW50T3B0aW9uLnZhbHVlID0gInJhZGlhbC1ncmFk
aWVudCI7Ci0gICAgICAgIHJhZGlhbEdyYWRpZW50T3B0aW9uLnRleHQgPSBXSS5VSVN0cmluZygi
UmFkaWFsIEdyYWRpZW50Iik7Ci0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQu
YXBwZW5kQ2hpbGQocmFkaWFsR3JhZGllbnRPcHRpb24pOwotCi0gICAgICAgIGxldCByZXBlYXRp
bmdMaW5lYXJHcmFkaWVudE9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIp
OwotICAgICAgICByZXBlYXRpbmdMaW5lYXJHcmFkaWVudE9wdGlvbi52YWx1ZSA9ICJyZXBlYXRp
bmctbGluZWFyLWdyYWRpZW50IjsKLSAgICAgICAgcmVwZWF0aW5nTGluZWFyR3JhZGllbnRPcHRp
b24udGV4dCA9IFdJLlVJU3RyaW5nKCJSZXBlYXRpbmcgTGluZWFyIEdyYWRpZW50Iik7Ci0gICAg
ICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQocmVwZWF0aW5nTGlu
ZWFyR3JhZGllbnRPcHRpb24pOwotCi0gICAgICAgIGxldCByZXBlYXRpbmdSYWRpYWxHcmFkaWVu
dE9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICByZXBl
YXRpbmdSYWRpYWxHcmFkaWVudE9wdGlvbi52YWx1ZSA9ICJyZXBlYXRpbmctcmFkaWFsLWdyYWRp
ZW50IjsKLSAgICAgICAgcmVwZWF0aW5nUmFkaWFsR3JhZGllbnRPcHRpb24udGV4dCA9IFdJLlVJ
U3RyaW5nKCJSZXBlYXRpbmcgUmFkaWFsIEdyYWRpZW50Iik7Ci0gICAgICAgIHRoaXMuX3ZhbHVl
VHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQocmVwZWF0aW5nUmFkaWFsR3JhZGllbnRPcHRp
b24pOwotCi0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7Ci0KLSAgICAgICAgdGhpcy5fY3JlYXRlVmFs
dWVPcHRpb25zKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljKTsKLSAgICAgICAgdGhpcy5fYWR2
YW5jZWRWYWx1ZXNFbGVtZW50cyA9IG51bGw7Ci0KLSAgICAgICAgdGhpcy5fdmFsdWVUeXBlUGlj
a2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9rZXl3b3JkU2Vs
ZWN0TW91c2VEb3duLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl92YWx1ZVR5cGVQaWNrZXJF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMuX2hhbmRsZUtleXdvcmRDaGFu
Z2VkLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2N1cnJlbnRU
eXBlID0gInVybCI7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgdmFsdWUoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnZhbHVlOwotICAg
IH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghdmFsdWUgfHwg
IXZhbHVlLmxlbmd0aCB8fCB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBjb25zdCBpc0tleXdvcmQgPSB0aGlzLnZhbHVlSXNTdXBwb3J0ZWRLZXl3
b3JkKHZhbHVlKTsKLSAgICAgICAgdGhpcy5fY3VycmVudFR5cGUgPSBpc0tleXdvcmQgPyB2YWx1
ZSA6IHZhbHVlLnN1YnN0cmluZygwLCB2YWx1ZS5pbmRleE9mKCIoIikpOwotICAgICAgICB0aGlz
Ll91cGRhdGVWYWx1ZUlucHV0KCk7Ci0gICAgICAgIGlmICghaXNLZXl3b3JkKQotICAgICAgICAg
ICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcodmFsdWUu
aW5kZXhPZigiKCIpICsgMSwgdmFsdWUubGVuZ3RoIC0gMSk7Ci0KLSAgICAgICAgdGhpcy5fdmFs
dWVUeXBlUGlja2VyRWxlbWVudC52YWx1ZSA9IHRoaXMuX2N1cnJlbnRUeXBlOwotCi0gICAgICAg
IGlmICghdGhpcy5fY3VycmVudFR5cGUuaW5jbHVkZXMoImdyYWRpZW50IikpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlR3JhZGllbnQoKTsKLSAgICB9Ci0KLSAg
ICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICBpZiAodGhpcy52YWx1ZUlz
U3VwcG9ydGVkS2V5d29yZCh0aGlzLl9jdXJyZW50VHlwZSkpCi0gICAgICAgICAgICByZXR1cm4g
dGhpcy5fY3VycmVudFR5cGU7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUeXBlICsg
IigiICsgdGhpcy52YWx1ZSArICIpIjsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAg
IHBhcnNlVmFsdWUodGV4dCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHZhbGlkUHJlZml4ZXMgPSBb
InVybCIsICJsaW5lYXItZ3JhZGllbnQiLCAicmFkaWFsLWdyYWRpZW50IiwgInJlcGVhdGluZy1s
aW5lYXItZ3JhZGllbnQiLCAicmVwZWF0aW5nLXJhZGlhbC1ncmFkaWVudCJdOwotICAgICAgICBy
ZXR1cm4gdmFsaWRQcmVmaXhlcy5zb21lKChpdGVtKSA9PiB0ZXh0LnN0YXJ0c1dpdGgoaXRlbSkp
ID8gW3RleHQsIHRleHRdIDogbnVsbDsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBf
dXBkYXRlVmFsdWVJbnB1dCgpCi0gICAgewotICAgICAgICBjb25zdCBzdXBwb3J0ZWRLZXl3b3Jk
ID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh0aGlzLl9jdXJyZW50VHlwZSk7Ci0gICAg
ICAgIGNvbnN0IGdyYWRpZW50VmFsdWUgPSB0aGlzLl9jdXJyZW50VHlwZS5pbmNsdWRlcygiZ3Jh
ZGllbnQiKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJn
cmFkaWVudC12YWx1ZSIsICFzdXBwb3J0ZWRLZXl3b3JkICYmIGdyYWRpZW50VmFsdWUpOwotICAg
ICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVudC5kaXNhYmxlZCA9IHN1cHBvcnRlZEtleXdvcmQ7
Ci0gICAgICAgIGlmIChzdXBwb3J0ZWRLZXl3b3JkKSB7Ci0gICAgICAgICAgICB0aGlzLl92YWx1
ZUlucHV0RWxlbWVudC52YWx1ZSA9ICIiOwotICAgICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVs
ZW1lbnQucGxhY2Vob2xkZXIgPSBXSS5VSVN0cmluZygiVXNpbmcgS2V5d29yZCBWYWx1ZSIpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRUeXBlID09PSAi
aW1hZ2UiKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVJbnB1dEVsZW1lbnQudHlwZSA9
ICJ1cmwiOwotICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnBsYWNlaG9s
ZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIGEgVVJMIik7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KGdyYWRpZW50VmFsdWUpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZUlucHV0RWxlbWVu
dC50eXBlID0gInRleHQiOwotICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50
LnBsYWNlaG9sZGVyID0gV0kuVUlTdHJpbmcoIkVudGVyIGEgR3JhZGllbnQiKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIF91cGRhdGVHcmFkaWVudCgpCi0gICAgewot
ICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc3ludGhlc2l6ZWRWYWx1ZTsKLSAgICAgICAgaWYg
KCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fY3VycmVudFR5cGUpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgdGhpcy5fZ3JhZGllbnRTd2F0Y2gudmFsdWUgPSBXSS5HcmFkaWVudC5m
cm9tU3RyaW5nKHZhbHVlKTsKLSAgICB9Ci0KLSAgICBfZ3JhZGllbnRTd2F0Y2hDb2xvckNoYW5n
ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuZGF0YS52YWx1ZS50
b1N0cmluZygpOwotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLQotICAg
IF92YWx1ZUlucHV0VmFsdWVDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fdXBk
YXRlR3JhZGllbnQoKTsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0K
LSAgICBfa2V5d29yZFNlbGVjdE1vdXNlRG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChl
dmVudC5hbHRLZXkpCi0gICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFZhbHVlcygpOwotICAg
ICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc1N1cHBvcnRlZEFkdmFuY2VkS2V5d29yZCh0aGlz
LnZhbHVlKSkKLSAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFkdmFuY2VkVmFsdWVzKCk7Ci0gICAg
fQotCi0gICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhp
cy5fY3VycmVudFR5cGUgPSB0aGlzLl92YWx1ZVR5cGVQaWNrZXJFbGVtZW50LnZhbHVlOwotICAg
ICAgICB0aGlzLl91cGRhdGVWYWx1ZUlucHV0KCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUdyYWRp
ZW50KCk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7Ci0gICAgfQotCi0gICAgX2Ny
ZWF0ZVZhbHVlT3B0aW9ucyh2YWx1ZXMpCi0gICAgewotICAgICAgICBsZXQgYWRkZWRFbGVtZW50
cyA9IFtdOwotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7Ci0gICAgICAgICAgICBs
ZXQgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7Ci0gICAgICAgICAg
ICBvcHRpb24udmFsdWUgPSBrZXk7Ci0gICAgICAgICAgICBvcHRpb24udGV4dCA9IHZhbHVlc1tr
ZXldOwotICAgICAgICAgICAgdGhpcy5fdmFsdWVUeXBlUGlja2VyRWxlbWVudC5hcHBlbmRDaGls
ZChvcHRpb24pOwotICAgICAgICAgICAgYWRkZWRFbGVtZW50cy5wdXNoKG9wdGlvbik7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0gICAgX2FkZEFk
dmFuY2VkVmFsdWVzKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9hZHZhbmNlZFZhbHVlc0Vs
ZW1lbnRzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBp
Y2tlckVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7Ci0g
ICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMgPSB0aGlzLl9jcmVhdGVWYWx1ZU9w
dGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpOwotICAgIH0KLQotICAgIF9yZW1v
dmVBZHZhbmNlZFZhbHVlcygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2FkdmFuY2VkVmFs
dWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdmFsdWVU
eXBlUGlja2VyRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRz
WzBdLnByZXZpb3VzU2libGluZyk7Ci0gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgdGhpcy5f
YWR2YW5jZWRWYWx1ZXNFbGVtZW50cykKLSAgICAgICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tl
ckVsZW1lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fYWR2YW5jZWRW
YWx1ZXNFbGVtZW50cyA9IG51bGw7Ci0gICAgfQotCi0gICAgX3RvZ2dsZVRhYmJpbmdPZlNlbGVj
dGFibGVFbGVtZW50cyhkaXNhYmxlZCkKLSAgICB7Ci0gICAgICAgIGxldCB0YWJJbmRleCA9IGRp
c2FibGVkID8gIi0xIiA6IG51bGw7Ci0gICAgICAgIHRoaXMuX3ZhbHVlSW5wdXRFbGVtZW50LnRh
YkluZGV4ID0gdGFiSW5kZXg7Ci0gICAgICAgIHRoaXMuX3ZhbHVlVHlwZVBpY2tlckVsZW1lbnQu
dGFiSW5kZXggPSB0YWJJbmRleDsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYXNpY0lucHV0LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVCYXNp
Y0lucHV0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGJmNmNhNGNmOTBlZjAz
NGNiMWZhMGExOWZiYzVkZGMzMzI2OWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlQmFzaWNJbnB1dC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDx3ZWJraXRAZGV2aW5yb3Vz
c28uY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVC
YXNpY0lucHV0ID0gY2xhc3MgVmlzdWFsU3R5bGVCYXNpY0lucHV0IGV4dGVuZHMgV0kuVmlzdWFs
U3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRl
eHQsIHBsYWNlaG9sZGVyLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKHBy
b3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGwsICJiYXNpYy1pbnB1dCIsIGxheW91dFJldmVy
c2VkKTsKLQotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSB0aGlzLmNvbnRlbnRFbGVtZW50
LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOwotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc3BlbGxj
aGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKCJw
bGFjZWhvbGRlciIsIHBsYWNlaG9sZGVyIHx8ICIiKTsKLSAgICAgICAgdGhpcy5faW5wdXRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5kZWJvdW5jZSgyNTApLl9oYW5kbGVJ
bnB1dEVsZW1lbnRJbnB1dCk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgdmFs
dWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZSB8fCBu
dWxsOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2
YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB0aGlzLl9pbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZSB8fCAiIjsKLSAgICB9Ci0KLSAg
ICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52YWx1
ZTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfaGFuZGxlSW5wdXRFbGVtZW50SW5w
dXQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlOwotICAgICAg
ICBpZiAodmFsdWUgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCkgewotICAgICAgICAgICAgbGV0IHZh
bGlkSXRlbXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdmFsdWUuc3BsaXQo
LyhbXlwiXCdcc10rfFwiW15cIl0qXCJ8XCdbXlwnXSpcJykvKSkgewotICAgICAgICAgICAgICAg
IGlmICghaXRlbS5sZW5ndGggfHwgKCFpdGVtLmhhc01hdGNoaW5nRXNjYXBlZFF1b3RlcygpICYm
ICEvXltcd1xzXC1cLlwoXCldKyQvLnRlc3QoaXRlbSkpKQotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLQotICAgICAgICAgICAgICAgIHZhbGlkSXRlbXMucHVzaChpdGVtKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbGlkSXRlbXMuZmlsdGVyKGl0
ZW0gPT4gaXRlbS50cmltKCkubGVuZ3RoKS5qb2luKCIgIik7Ci0gICAgICAgIH0KLQotICAgICAg
ICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2Vy
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlQ29sb3JQaWNrZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDUwNzk2
M2YxNDhhYTM4MDNkMzhmYTQzNDI5NjZhNGIwNDU3ZDM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3NzCisrKyAvZGV2L251bGwKQEAgLTEs
NzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtc3BlY2lhbC1wcm9wZXJ0eS1wbGFjZWhvbGRlciB7
Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAuaW5saW5lLXN3YXRjaC5jb2xvciB7Ci0gICAgd2lkdGg6IDIycHg7Ci0gICAgaGVp
Z2h0OiAxOHB4OwotICAgIG1hcmdpbi10b3A6IDFweDsKLSAgICBtYXJnaW4tcmlnaHQ6IDA7Ci0g
ICAgYm9yZGVyOiAxcHggc29saWQgaHNsYSgwLCAwJSwgMjUlLCAwLjQpOwotICAgIGJvcmRlci1y
YWRpdXM6IDRweCAwIDAgNHB4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5pbmxpbmUtc3dhdGNoLmNvbG9yOmhvdmVyIHsKLSAgICBib3JkZXItY29sb3I6IGhz
bGEoMCwgMCUsIDI1JSwgMC44KTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAuaW5saW5lLXN3YXRjaC5jb2xvcjphY3RpdmUgewotICAgIGJvcmRlci1jb2xvcjog
aHNsKDAsIDAlLCAyNSUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5p
bnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5pbmxpbmUtc3dhdGNoLmNvbG9yID4gc3BhbiB7Ci0gICAgYm9yZGVyOiBub25lOwotfQot
Ci0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IGlucHV0IHsKLSAgICBtYXJn
aW46IDFweCAwIDNweCAtM3B4OwotICAgIHBhZGRpbmc6IDAgM3B4IDAgNXB4OwotICAgIGJvcmRl
ci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Ci0gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6
IDRweDsKLSAgICBib3JkZXI6IHNvbGlkIDFweCBoc2woMCwgMCUsIDgzJSk7Ci0gICAgYm9yZGVy
LWxlZnQ6IG5vbmU7Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsKLSAgICBmb250LXNpemU6IDEwcHg7
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tl
ci5tdWx0aXBsZSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZp
c3VhbC1zdHlsZS1tdWx0aXBsZS1wcm9wZXJ0eS1wbGFjZWhvbGRlciB7Ci0gICAgd2lkdGg6IGNh
bGMoMTAwJSAtIDIwcHgpOwotICAgIGxlZnQ6IDE4cHg7Ci0gICAgcGFkZGluZy1yaWdodDogM3B4
OwotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBp
Y2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwMGUxMTRlYTg4NTM3YmI0
OGMwZDUyZGQyMjdkMTA2NzNhNjhiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUNvbG9yUGlja2VyID0gY2xhc3MgVmlzdWFsU3R5
bGVDb2xvclBpY2tlciBleHRlbmRzIFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IKLXsKLSAg
ICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGwsICJpbnB1dC1j
b2xvci1waWNrZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5fY29sb3JTd2F0
Y2ggPSBuZXcgV0kuSW5saW5lU3dhdGNoKFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yKTsKLSAg
ICAgICAgdGhpcy5fY29sb3JTd2F0Y2guYWRkRXZlbnRMaXN0ZW5lcihXSS5JbmxpbmVTd2F0Y2gu
RXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl9jb2xvclN3YXRjaENvbG9yQ2hhbmdlZCwgdGhpcyk7
Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY29sb3JTd2F0
Y2guZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX3RleHRJbnB1dEVsZW1lbnQu
c3BlbGxjaGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl90ZXh0SW5wdXRLZXlEb3duLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVw
IiwgdGhpcy5kZWJvdW5jZSgyNTApLl90ZXh0SW5wdXRLZXlVcCk7Ci0gICAgICAgIHRoaXMuX3Rl
eHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2hpZGVDb21wbGV0
aW9ucy5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl90ZXh0SW5wdXRFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29u
dHJvbGxlciA9IG5ldyBXSS5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlcih0aGlzKTsK
LSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5W
aXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlci5FdmVudC5Db21wbGV0aW9uU2VsZWN0ZWQs
IHRoaXMuX2NvbXBsZXRpb25DbGlja2VkLCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9mb3JtYXRD
aGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yU3dhdGNoKCk7Ci0gICAg
ICAgIHRoaXMuX2NvbG9yUHJvcGVydHkgPSB0cnVlOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwot
Ci0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90ZXh0SW5wdXRF
bGVtZW50LnZhbHVlOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAg
ICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5faGFzTXVs
dGlwbGVDb25mbGljdGluZ1ZhbHVlcygpID8gbnVsbCA6IHZhbHVlOwotICAgICAgICB0aGlzLl91
cGRhdGVDb2xvclN3YXRjaCgpOwotICAgIH0KLQotICAgIGdldCBwbGFjZWhvbGRlcigpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dElucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoInBs
YWNlaG9sZGVyIik7Ci0gICAgfQotCi0gICAgc2V0IHBsYWNlaG9sZGVyKHRleHQpCi0gICAgewot
ICAgICAgICBpZiAodGV4dCAmJiB0ZXh0ID09PSB0aGlzLnBsYWNlaG9sZGVyKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl9oYXNNdWx0aXBsZUNvbmZsaWN0aW5nVmFs
dWVzKCkpCi0gICAgICAgICAgICB0ZXh0ID0gdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRl
ckVsZW1lbnQudGV4dENvbnRlbnQ7Ci0KLSAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudC5z
ZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgdGV4dCB8fCAidHJhbnNwYXJlbnQiKTsKLSAgICB9
Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy52YWx1ZSB8fCBudWxsOwotICAgIH0KLQotICAgIGdldCBoYXNDb21wbGV0aW9ucygpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuaGFzQ29tcGxldGlv
bnM7Ci0gICAgfQotCi0gICAgc2V0IGNvbXBsZXRpb25zKGNvbXBsZXRpb25zKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuY29tcGxldGlvbnMgPSBjb21wbGV0aW9u
czsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfY29sb3JTd2F0Y2hDb2xvckNoYW5n
ZWQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgY29sb3JTdHJpbmcgPSBldmVudCAmJiBldmVu
dC5kYXRhICYmIGV2ZW50LmRhdGEudmFsdWUgJiYgZXZlbnQuZGF0YS52YWx1ZS50b1N0cmluZygp
OwotICAgICAgICBpZiAoIWNvbG9yU3RyaW5nKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIHRoaXMudmFsdWUgPSBjb2xvclN0cmluZzsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFu
Z2UoKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlQ29sb3JTd2F0Y2goKQotICAgIHsKLSAgICAgICAg
bGV0IHZhbHVlID0gdGhpcy5fdGV4dElucHV0RWxlbWVudC52YWx1ZTsKLSAgICAgICAgdGhpcy5f
Y29sb3JTd2F0Y2gudmFsdWUgPSBXSS5Db2xvci5mcm9tU3RyaW5nKHZhbHVlKTsKLSAgICB9Ci0K
LSAgICBfY29tcGxldGlvbkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLnZhbHVl
ID0gZXZlbnQuZGF0YS50ZXh0OwotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAg
IH0KLQotICAgIF90ZXh0SW5wdXRLZXlEb3duKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci52aXNpYmxlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGxldCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTsKLSAgICAgICAgbGV0IGVudGVy
S2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LkVudGVyLmtleUNvZGU7Ci0gICAgICAg
IGxldCB0YWJLZXlDb2RlID0gV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuVGFiLmtleUNvZGU7Ci0g
ICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktleUNvZGUgfHwga2V5Q29kZSA9PT0gdGFiS2V5
Q29kZSkgewotICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2NvbXBsZXRpb25Db250cm9s
bGVyLmN1cnJlbnRDb21wbGV0aW9uOwotICAgICAgICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25z
KCk7Ci0gICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGVzY2FwZUtleUNvZGUgPSBXSS5LZXlib2Fy
ZFNob3J0Y3V0LktleS5Fc2NhcGUua2V5Q29kZTsKLSAgICAgICAgaWYgKGtleUNvZGUgPT09IGVz
Y2FwZUtleUNvZGUpIHsKLSAgICAgICAgICAgIHRoaXMuX2hpZGVDb21wbGV0aW9ucygpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50Lmtl
eUlkZW50aWZpZXI7Ci0gICAgICAgIGlmIChrZXkgPT09ICJVcCIpIHsKLSAgICAgICAgICAgIHRo
aXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnByZXZpb3VzKCk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5ID09PSAiRG93biIpIHsKLSAgICAgICAgICAg
IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLm5leHQoKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIF90ZXh0SW5wdXRLZXlVcCgpCi0gICAgewotICAgICAg
ICB0aGlzLl9zaG93Q29tcGxldGlvbnNJZkFibGUoKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlQ29s
b3JTd2F0Y2goKTsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAg
ICBfc2hvd0NvbXBsZXRpb25zSWZBYmxlKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXND
b21wbGV0aW9ucykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVzdWx0ID0g
dGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnVwZGF0
ZSh0aGlzLnZhbHVlKSkgewotICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdJLlJlY3QucmVjdEZy
b21DbGllbnRSZWN0KHRoaXMuX3RleHRJbnB1dEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkpOwotICAgICAgICAgICAgaWYgKCFib3VuZHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5zaG93KGJvdW5kcywgMik7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfaGlkZUNvbXBsZXRpb25zKCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhpZGUoKTsKLSAgICB9Ci0KLSAgICBfdG9n
Z2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsKLSAgICAgICAg
dGhpcy5fdGV4dElucHV0RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7
Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29tbWFT
ZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NGM5OGM1ZDgxMDM5MzkxMDg4ZTIzNzZmNzNhNzdkODA2NDQ4MjJlZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5j
c3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciB7
Ci0gICAgbWFyZ2luLWJvdHRvbTogNXB4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAl
LCA4MyUpOwotICAgIG92ZXJmbG93OiBhdXRvOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVk
LWtleXdvcmQtbGlzdCB7Ci0gICAgbWluLWhlaWdodDogNTFweDsKLSAgICBtYXgtaGVpZ2h0OiA5
NHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAwJSwgOTUlKTsKLX0KLQotLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9y
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxl
LWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFy
YXRlZC1rZXl3b3JkLWl0ZW0gewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICBoZWlnaHQ6
IDE3cHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFy
YXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1saXN0ID4gLnZpc3Vh
bC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVtOm50aC1jaGlsZChvZGQpIHsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1r
ZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0u
c2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdGVkLWJhY2tncm91
bmQtY29sb3IpICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLWZvcmVncm91
bmQtY29sb3IpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5jb21tYS1z
ZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNv
bnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtbGlzdCA+IC52
aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbSA+IDptYXRjaGVzKGJ1dHRv
biwgaW1nKSB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRl
ZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0
ZW0udmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5LWxpc3QtaXRlbS5zZWxlY3RlZDpub3QoLmVkaXRv
ci1oaWRkZW4pID4gLnRpdGxlcyA+ICogewotICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKLX0KLQot
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQt
ZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFs
LXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1h
LXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0udmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5LWxpc3QtaXRl
bSA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbS1lZGl0b3Igewot
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAg
Ym90dG9tOiAwOwotICAgIGxlZnQ6IDVweDsKLSAgICBwYWRkaW5nOiAwOwotICAgIGxpbmUtaGVp
Z2h0OiAxN3B4OwotICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwotICAgIGZvbnQtc2l6ZTogaW5o
ZXJpdDsKLSAgICBjb2xvcjogd2hpdGU7Ci0gICAgYm9yZGVyOiBub25lOwotICAgIGJhY2tncm91
bmQtY29sb3I6IHRyYW5zcGFyZW50OwotICAgIHotaW5kZXg6IDE7Ci19Ci0KLS52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21t
YS1zZXBhcmF0ZWQta2V5d29yZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQt
a2V5d29yZC1pdGVtLnZpc3VhbC1zdHlsZS1mb250LWZhbWlseS1saXN0LWl0ZW0uZWRpdG9yLWhp
ZGRlbiA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbS1lZGl0b3Ig
ewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29y
ZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVtID4gLnRp
dGxlcyB7Ci0gICAgdG9wOiAxcHg7Ci0gICAgbGluZS1oZWlnaHQ6IDE1cHg7Ci19Ci0KLS52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyIC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVk
LWtleXdvcmQtaXRlbS1lZGl0b3I6OnBsYWNlaG9sZGVyLAotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRl
ZC1rZXl3b3JkLWxpc3QgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0
ZW0gPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKLSAgICBmb250LXNpemU6IDEwcHg7Ci0gICAgY29s
b3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuNyk7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQt
a2V5d29yZC1saXN0ID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVt
ID4gLnRpdGxlcyA+IC5zdWJ0aXRsZTo6YmVmb3JlIHsKLSAgICBjb250ZW50OiBub25lOwotfQot
Ci0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29y
ZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1
YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtbGlzdCA+IC52aXN1YWwtc3R5bGUtY29t
bWEtc2VwYXJhdGVkLWtleXdvcmQtaXRlbTpub3QoLm5vLXZhbHVlKSA+IC50aXRsZXMgPiAuc3Vi
dGl0bGUgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQt
a2V5d29yZC1jb250cm9scyB7Ci0gICAgZGlzcGxheTogZmxleDsKLSAgICBib3JkZXItdG9wOiAx
cHggc29saWQgaHNsKDAsIDAlLCA4MyUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtY29tbWEtc2VwYXJhdGVkLWtl
eXdvcmQtY29udHJvbHMgPiBkaXYgewotICAgIHdpZHRoOiAyMHB4OwotICAgIGhlaWdodDogMTlw
eDsKLSAgICBwYWRkaW5nOiAzcHg7Ci0gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgaHNsKDAs
IDAlLCA4MyUpOwotICAgIG9wYWNpdHk6IDAuNzsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuY29tbWEtc2VwYXJhdGVkLWtleXdvcmQtZWRpdG9yID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRl
ZC1rZXl3b3JkLWNvbnRyb2xzID4gLnZpc3VhbC1zdHlsZS1yZW1vdmUtY29tbWEtc2VwYXJhdGVk
LWtleXdvcmQgewotICAgIG9yZGVyOiAyOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdv
cmRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzZlNDM3MmIyYmIwNTZmYzhlZTc5ZWUyMWQ4Njk1YjFmMTZiOGJmOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVk
S2V5d29yZEVkaXRvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IgPSBjbGFzcyBW
aXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvciBleHRlbmRzIFdJLlZpc3VhbFN0
eWxlUHJvcGVydHlFZGl0b3IKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0
LCBsb25naGFuZFByb3BlcnRpZXMsIGluc2VydE5ld0l0ZW1zQmVmb3JlU2VsZWN0ZWQsIGxheW91
dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVs
bCwgbnVsbCwgImNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWVkaXRvciIsIGxheW91dFJldmVyc2Vk
KTsKLQotICAgICAgICB0aGlzLl9pbnNlcnROZXdJdGVtc0JlZm9yZVNlbGVjdGVkID0gaW5zZXJ0
TmV3SXRlbXNCZWZvcmVTZWxlY3RlZCB8fCBmYWxzZTsKLSAgICAgICAgdGhpcy5fbG9uZ2hhbmRQ
cm9wZXJ0aWVzID0gbG9uZ2hhbmRQcm9wZXJ0aWVzIHx8IHt9OwotCi0gICAgICAgIGxldCBsaXN0
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7Ci0gICAgICAgIGxpc3RFbGVt
ZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1s
aXN0Iik7Ci0gICAgICAgIGxpc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0
aGlzLl9saXN0RWxlbWVudEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuY29udGVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGlzdEVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2NvbW1h
U2VwYXJhdGVkS2V5d29yZHMgPSBuZXcgV0kuVHJlZU91dGxpbmUobGlzdEVsZW1lbnQpOwotICAg
ICAgICB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdvcmRzLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJl
ZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2VsZWN0aW9uRGlk
Q2hhbmdlLCB0aGlzKTsKLQotICAgICAgICBsZXQgY29udHJvbENvbnRhaW5lciA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICBjb250cm9sQ29udGFpbmVyLmNsYXNzTGlz
dC5hZGQoInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1jb250cm9scyIpOwot
ICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbnRyb2xDb250YWluZXIp
OwotCi0gICAgICAgIGxldCBhZGRHbHlwaEVsZW1lbnQgPSBXSS5JbWFnZVV0aWxpdGllcy51c2VT
VkdTeW1ib2woIkltYWdlcy9QbHVzMTMuc3ZnIiwgInZpc3VhbC1zdHlsZS1hZGQtY29tbWEtc2Vw
YXJhdGVkLWtleXdvcmQiKTsKLSAgICAgICAgYWRkR2x5cGhFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcy5fYWRkRW1wdHlDb21tYVNlcGFyYXRlZEtleXdvcmQuYmluZCh0aGlz
KSk7Ci0gICAgICAgIGNvbnRyb2xDb250YWluZXIuYXBwZW5kQ2hpbGQoYWRkR2x5cGhFbGVtZW50
KTsKLQotICAgICAgICBsZXQgcmVtb3ZlR2x5cGhFbGVtZW50ID0gV0kuSW1hZ2VVdGlsaXRpZXMu
dXNlU1ZHU3ltYm9sKCJJbWFnZXMvTWludXMuc3ZnIiwgInZpc3VhbC1zdHlsZS1yZW1vdmUtY29t
bWEtc2VwYXJhdGVkLWtleXdvcmQiLCBXSS5VSVN0cmluZygiUmVtb3ZlIHNlbGVjdGVkIGl0ZW0i
KSk7Ci0gICAgICAgIHJlbW92ZUdseXBoRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IHRoaXMuX3JlbW92ZVNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRLZXl3b3JkLmJpbmQodGhpcykpOwot
ICAgICAgICBjb250cm9sQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbW92ZUdseXBoRWxlbWVudCk7
Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQgc2VsZWN0ZWRUcmVlRWxlbWVudFZh
bHVlKHRleHQpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IHRoaXMu
X2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYg
KCFzZWxlY3RlZFRyZWVFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHNl
bGVjdGVkVHJlZUVsZW1lbnQuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJuby12YWx1ZSIsICF0
ZXh0IHx8ICF0ZXh0Lmxlbmd0aCk7Ci0gICAgICAgIHNlbGVjdGVkVHJlZUVsZW1lbnQubWFpblRp
dGxlID0gdGV4dDsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAg
ICBnZXQgdmFsdWUoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jb21tYVNlcGFyYXRlZEtl
eXdvcmRzLmhhc0NoaWxkcmVuKQotICAgICAgICAgICAgcmV0dXJuICIiOwotCi0gICAgICAgIGxl
dCB2YWx1ZSA9ICIiOwotICAgICAgICBmb3IgKGxldCB0cmVlSXRlbSBvZiB0aGlzLl9jb21tYVNl
cGFyYXRlZEtleXdvcmRzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdHJlZUVs
ZW1lbnRJc0VtcHR5KHRyZWVJdGVtKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAg
ICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB2YWx1ZSArPSAiLCAi
OwotCi0gICAgICAgICAgICBsZXQgdGV4dCA9IHRyZWVJdGVtLm1haW5UaXRsZTsKLSAgICAgICAg
ICAgIGlmICh0eXBlb2YgdGhpcy5fbW9kaWZ5Q29tbWFTZXBhcmF0ZWRLZXl3b3JkID09PSAiZnVu
Y3Rpb24iKQotICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLl9tb2RpZnlDb21tYVNlcGFyYXRl
ZEtleXdvcmQodGV4dCk7Ci0KLSAgICAgICAgICAgIHZhbHVlICs9IHRleHQ7Ci0gICAgICAgIH0K
LQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgc2V0IHZhbHVlKGNvbW1hU2Vw
YXJhdGVkVmFsdWUpCi0gICAgewotICAgICAgICBpZiAoY29tbWFTZXBhcmF0ZWRWYWx1ZSAmJiBj
b21tYVNlcGFyYXRlZFZhbHVlID09PSB0aGlzLnZhbHVlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMucmVtb3ZlQ2hpbGRyZW4oKTsK
LSAgICAgICAgaWYgKCFjb21tYVNlcGFyYXRlZFZhbHVlIHx8ICFjb21tYVNlcGFyYXRlZFZhbHVl
Lmxlbmd0aCkgewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0ku
VmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuTm9SZW1haW5pbmdU
cmVlSXRlbXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
SXQgaXMgbmVjZXNzYXJ5IHRvIGFkZCB0aGUgYmVnaW5uaW5nIFwpIHRvIGVuc3VyZSBpbm5lciBw
YXJlbnRoZXNpcyBhcmUgbm90IG1hdGNoZWQuCi0gICAgICAgIGxldCB2YWx1ZXMgPSBjb21tYVNl
cGFyYXRlZFZhbHVlLnNwbGl0KC9cKVxzKixccyooPyFbXlwoXCldKlwpKS8pOwotICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYg
KCF2YWx1ZXNbaV0uaW5jbHVkZXMoIiwiKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQot
ICAgICAgICAgICAgbGV0IG9wZW5QYXJlbnRoZXNlcyA9IHZhbHVlc1tpXS5nZXRNYXRjaGluZ0lu
ZGV4ZXMoIigiKS5sZW5ndGg7Ci0gICAgICAgICAgICBsZXQgY2xvc2VkUGFyZW50aGVzaXMgPSB2
YWx1ZXNbaV0uZ2V0TWF0Y2hpbmdJbmRleGVzKCIpIikubGVuZ3RoOwotICAgICAgICAgICAgdmFs
dWVzW2ldICs9IChvcGVuUGFyZW50aGVzZXMgLSBjbG9zZWRQYXJlbnRoZXNpcyA9PT0gMSkgPyAi
KSIgOiAiIjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEFsbG93IHNwbGl0dGluZyB3aXRoIHBh
cmVudGhlc2lzIGlmIHRoZSBwYXJlbnRoZXNpcyBkb2VzIG5vdCBoYXZlIGFueSBjb21tYXMuCi0g
ICAgICAgIGxldCBoYXNQYXJlbnRoZXNpcyA9IHZhbHVlc1swXSAmJiAodmFsdWVzWzBdLmluY2x1
ZGVzKCIoIikgfHwgdmFsdWVzWzBdLmluY2x1ZGVzKCIpIikpOwotICAgICAgICBpZiAodmFsdWVz
Lmxlbmd0aCA9PT0gMSAmJiAoIWhhc1BhcmVudGhlc2lzIHx8ICEvXChbXlwpXSosW15cKV0qXCkv
LnRlc3QodmFsdWVzWzBdKSkpCi0gICAgICAgICAgICB2YWx1ZXMgPSB2YWx1ZXNbMF0uc3BsaXQo
L1xzKixccyovKTsKLQotICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpCi0gICAgICAg
ICAgICB0aGlzLl9hZGRDb21tYVNlcGFyYXRlZEtleXdvcmQodmFsdWUpOwotCi0gICAgICAgIHRo
aXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuY2hpbGRyZW5bMF0uc2VsZWN0KHRydWUpOwotICAg
IH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLnZhbHVlIHx8IG51bGw7Ci0gICAgfQotCi0gICAgcmVjYWxjdWxhdGVXaWR0aCh2YWx1ZSkK
LSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90aXRsZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIC8v
IDU1cHggd2lkdGggYW5kIDRweCBtYXJnaW4gb24gbGVmdCBhbmQgcmlnaHQgZm9yIHRpdGxlIGVs
ZW1lbnQsCi0gICAgICAgICAgICAvLyBwbHVzIHRoZSAxMXB4IG1hcmdpbiByaWdodCBvbiB0aGUg
Y29udGVudCBlbGVtZW50Ci0gICAgICAgICAgICB2YWx1ZSAtPSA3NDsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIC8vIDExcHggbWFyZ2luIG9uIGxlZnQgYW5kIHJpZ2h0IG9mIHRoZSBj
b250ZW50IGVsZW1lbnQKLSAgICAgICAgICAgIHZhbHVlIC09IDIyOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5zdHlsZS53aWR0aCA9IE1hdGgubWF4KHZhbHVlLCAw
KSArICJweCI7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2dlbmVyYXRlVGV4dEZy
b21Mb25naGFuZFByb3BlcnRpZXMoKQotICAgIHsKLSAgICAgICAgbGV0IHRleHQgPSAiIjsKLSAg
ICAgICAgaWYgKCF0aGlzLl9zdHlsZSkKLSAgICAgICAgICAgIHJldHVybiB0ZXh0OwotCi0gICAg
ICAgIGZ1bmN0aW9uIHByb3BlcnR5VmFsdWUoZXhpc3RpbmdQcm9wZXJ0eSwgcHJvcGVydHlOYW1l
KSB7Ci0gICAgICAgICAgICBpZiAoZXhpc3RpbmdQcm9wZXJ0eSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZXhpc3RpbmdQcm9wZXJ0eS52YWx1ZTsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5
TmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzW3By
b3BlcnR5TmFtZV07Ci0KLSAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgfQotCi0gICAg
ICAgIGxldCBvbmVQcm9wZXJ0eUV4aXN0cyA9IGZhbHNlOwotICAgICAgICBsZXQgdmFsdWVMaXN0
cyA9IFtdOwotICAgICAgICBsZXQgdmFsdWVzQ291bnQgPSAwOwotICAgICAgICBmb3IgKGxldCBw
cm9wZXJ0eU5hbWUgaW4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBs
ZXQgZXhpc3RpbmdQcm9wZXJ0eSA9IHRoaXMuX3N0eWxlLnByb3BlcnR5Rm9yTmFtZShwcm9wZXJ0
eU5hbWUsIHRydWUpOwotICAgICAgICAgICAgaWYgKGV4aXN0aW5nUHJvcGVydHkpCi0gICAgICAg
ICAgICAgICAgb25lUHJvcGVydHlFeGlzdHMgPSB0cnVlOwotCi0gICAgICAgICAgICBsZXQgbWF0
Y2hlcyA9IHByb3BlcnR5VmFsdWUuY2FsbCh0aGlzLCBleGlzdGluZ1Byb3BlcnR5LCBwcm9wZXJ0
eU5hbWUpLnNwbGl0KC9ccyosXHMqKD8hW15cKF0qXCkpLyk7Ci0gICAgICAgICAgICB2YWx1ZXND
b3VudCA9IE1hdGgubWF4KHZhbHVlc0NvdW50LCBtYXRjaGVzLmxlbmd0aCk7Ci0gICAgICAgICAg
ICB2YWx1ZUxpc3RzLnB1c2gobWF0Y2hlcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIW9u
ZVByb3BlcnR5RXhpc3RzKQotICAgICAgICAgICAgcmV0dXJuIHRleHQ7Ci0KLSAgICAgICAgbGV0
IGNvdW50ID0gMDsKLSAgICAgICAgd2hpbGUgKGNvdW50IDwgdmFsdWVzQ291bnQpIHsKLSAgICAg
ICAgICAgIGlmIChjb3VudCA+IDApCi0gICAgICAgICAgICAgICAgdGV4dCArPSAiLCAiOwotCi0g
ICAgICAgICAgICBmb3IgKGxldCB2YWx1ZUxpc3Qgb2YgdmFsdWVMaXN0cykKLSAgICAgICAgICAg
ICAgICB0ZXh0ICs9IHZhbHVlTGlzdFtjb3VudCA+IHZhbHVlTGlzdC5sZW5ndGggLSAxID8gdmFs
dWVMaXN0Lmxlbmd0aCAtIDEgOiBjb3VudF0gKyAiICI7Ci0KLSAgICAgICAgICAgICsrY291bnQ7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRleHQ7Ci0gICAgfQotCi0gICAgbW9kaWZ5UHJv
cGVydHlUZXh0KHRleHQsIHZhbHVlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHkg
aW4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBsZXQgcmVwbGFjZW1l
bnRSZWdFeHAgPSBuZXcgUmVnRXhwKHByb3BlcnR5ICsgIlxzKjpccypbXjtdKig7fCQpIik7Ci0g
ICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlcGxhY2VtZW50UmVnRXhwLCAiIik7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN1cGVyLm1vZGlmeVByb3BlcnR5VGV4dCh0ZXh0LCB2
YWx1ZSk7Ci0gICAgfQotCi0gICAgX2xpc3RFbGVtZW50S2V5RG93bihldmVudCkKLSAgICB7Ci0g
ICAgICAgIGxldCBzZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3
b3Jkcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICBpZiAoIXNlbGVjdGVkVHJlZUVsZW1l
bnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHNlbGVjdGVkVHJlZUVsZW1l
bnQuY3VycmVudGx5RWRpdGluZykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQg
a2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7Ci0gICAgICAgIGxldCBiYWNrc3BhY2VLZXlDb2RlID0g
V0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuQmFja3NwYWNlLmtleUNvZGU7Ci0gICAgICAgIGxldCBk
ZWxldGVLZXlDb2RlID0gV0kuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRGVsZXRlLmtleUNvZGU7Ci0g
ICAgICAgIGlmIChrZXlDb2RlID09PSBiYWNrc3BhY2VLZXlDb2RlIHx8IGtleUNvZGUgPT09IGRl
bGV0ZUtleUNvZGUpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVTZWxlY3RlZENvbW1hU2VwYXJh
dGVkS2V5d29yZCgpOwotICAgIH0KLQotICAgIF90cmVlU2VsZWN0aW9uRGlkQ2hhbmdlKGV2ZW50
KQotICAgIHsKLSAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVs
ZW1lbnQ7Ci0gICAgICAgIGlmICghdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgdGhpcy5fcmVtb3ZlRW1wdHlDb21tYVNlcGFyYXRlZEtleXdvcmRzKCk7Ci0gICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlQ29tbWFTZXBh
cmF0ZWRLZXl3b3JkRWRpdG9yLkV2ZW50LlRyZWVJdGVtU2VsZWN0ZWQsIHt0ZXh0OiB0cmVlRWxl
bWVudC5tYWluVGl0bGV9KTsKLSAgICB9Ci0KLSAgICBfdHJlZUVsZW1lbnRJc0VtcHR5KGl0ZW0p
Ci0gICAgewotICAgICAgICByZXR1cm4gIWl0ZW0uX21haW5UaXRsZSB8fCAhaXRlbS5fbWFpblRp
dGxlLmxlbmd0aDsKLSAgICB9Ci0KLSAgICBfYWRkRW1wdHlDb21tYVNlcGFyYXRlZEtleXdvcmQo
KQotICAgIHsKLSAgICAgICAgbGV0IG5ld1RyZWVFbGVtZW50ID0gdGhpcy5fYWRkQ29tbWFTZXBh
cmF0ZWRLZXl3b3JkKG51bGwsIHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuc2VsZWN0ZWRU
cmVlRWxlbWVudEluZGV4KTsKLSAgICAgICAgbmV3VHJlZUVsZW1lbnQuc3VidGl0bGUgPSBXSS5V
SVN0cmluZygiKG1vZGlmeSB0aGUgYm94ZXMgYmVsb3cgdG8gYWRkIGEgdmFsdWUpIik7Ci0gICAg
ICAgIG5ld1RyZWVFbGVtZW50LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdmFsdWUiKTsKLSAg
ICAgICAgbmV3VHJlZUVsZW1lbnQuc2VsZWN0KHRydWUsIHRydWUpOwotICAgICAgICByZXR1cm4g
bmV3VHJlZUVsZW1lbnQ7Ci0gICAgfQotCi0gICAgX3JlbW92ZVNlbGVjdGVkQ29tbWFTZXBhcmF0
ZWRLZXl3b3JkKCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhp
cy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICB0
aGlzLl9yZW1vdmVDb21tYVNlcGFyYXRlZEtleXdvcmQoc2VsZWN0ZWRUcmVlRWxlbWVudCk7Ci0g
ICAgfQotCi0gICAgX3JlbW92ZUVtcHR5Q29tbWFTZXBhcmF0ZWRLZXl3b3JkcygpCi0gICAgewot
ICAgICAgICBmb3IgKGxldCB0cmVlRWxlbWVudCBvZiB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdv
cmRzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX3RyZWVFbGVtZW50SXNFbXB0
eSh0cmVlRWxlbWVudCkgfHwgdHJlZUVsZW1lbnQuc2VsZWN0ZWQpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgICAgIHRyZWVFbGVtZW50LmRlc2VsZWN0KCk7Ci0gICAgICAg
ICAgICB0aGlzLl9yZW1vdmVDb21tYVNlcGFyYXRlZEtleXdvcmQodHJlZUVsZW1lbnQpOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgX2FkZENvbW1hU2VwYXJhdGVkS2V5d29yZCh2YWx1ZSwgaW5k
ZXgpCi0gICAgewotICAgICAgICBsZXQgdmFsdWVFbGVtZW50ID0gdGhpcy5fY3JlYXRlTmV3VHJl
ZUVsZW1lbnQodmFsdWUpOwotICAgICAgICBpZiAoIWlzTmFOKGluZGV4KSkKLSAgICAgICAgICAg
IHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuaW5zZXJ0Q2hpbGQodmFsdWVFbGVtZW50LCBp
bmRleCArICF0aGlzLl9pbnNlcnROZXdJdGVtc0JlZm9yZVNlbGVjdGVkKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5hcHBlbmRDaGlsZCh2
YWx1ZUVsZW1lbnQpOwotCi0gICAgICAgIHJldHVybiB2YWx1ZUVsZW1lbnQ7Ci0gICAgfQotCi0g
ICAgX3JlbW92ZUNvbW1hU2VwYXJhdGVkS2V5d29yZCh0cmVlRWxlbWVudCkKLSAgICB7Ci0gICAg
ICAgIGlmICghdHJlZUVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhp
cy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7Ci0gICAg
ICAgIGlmICghdGhpcy5fY29tbWFTZXBhcmF0ZWRLZXl3b3Jkcy5jaGlsZHJlbi5sZW5ndGgpCi0g
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1YWxTdHlsZUNv
bW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5FdmVudC5Ob1JlbWFpbmluZ1RyZWVJdGVtcyk7Ci0K
LSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfY3JlYXRlTmV3
VHJlZUVsZW1lbnQodmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFdJLkdlbmVyYWxU
cmVlRWxlbWVudChXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5MaXN0
SXRlbUNsYXNzTmFtZSwgdmFsdWUpOwotICAgIH0KLX07Ci0KLVdJLlZpc3VhbFN0eWxlQ29tbWFT
ZXBhcmF0ZWRLZXl3b3JkRWRpdG9yLkxpc3RJdGVtQ2xhc3NOYW1lID0gInZpc3VhbC1zdHlsZS1j
b21tYS1zZXBhcmF0ZWQta2V5d29yZC1pdGVtIjsKLQotV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IuRXZlbnQgPSB7Ci0gICAgVHJlZUl0ZW1TZWxlY3RlZDogInZpc3Vh
bC1zdHlsZS1jb21tYS1zZXBhcmF0ZWQta2V5d29yZC1lZGl0b3ItdHJlZS1pdGVtLXNlbGVjdGVk
IiwKLSAgICBOb1JlbWFpbmluZ1RyZWVJdGVtczogInZpc3VhbC1zdHlsZS1jb21tYS1zZXBhcmF0
ZWQta2V5d29yZC1lZGl0b3Itbm8tcmVtYWluaW5nLXRyZWUtaXRlbXMiCi19OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVE
ZXRhaWxzUGFuZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkOTcwZDEwMjIyYmNmM2JiNTFiOWFjNWVjMDY4YjE5NjJiY2UyMzZmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLnNpZGViYXIgPiAucGFuZWwu
ZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24gOm1hdGNoZXMoLmRl
dGFpbHMtc2VjdGlvbiwgLmdyb3VwKS5pbmFjdGl2ZSB7Ci0gICAgYm9yZGVyLWJvdHRvbTogbm9u
ZTsKLX0KLQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5k
ZXRhaWxzLXNlY3Rpb24gOm1hdGNoZXMoLmRldGFpbHMtc2VjdGlvbiwgLmdyb3VwKS5pbmFjdGl2
ZSA+ICogewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFp
bHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24g
PiAuaGVhZGVyIHsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotfQotCi0uc2lkZWJhciA+IC5w
YW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWls
cy1zZWN0aW9uID4gLmhlYWRlciA+IC5vcHRpb25zIHsKLSAgICB3aWR0aDogMTVweDsKLSAgICBo
ZWlnaHQ6IDE1cHg7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL0ltYWdlcy9OYXZpZ2F0
aW9uSXRlbVRyYXNoLnN2Zyk7Ci0gICAgYmFja2dyb3VuZC1zaXplOiAxNXB4IDE1cHg7Ci0gICAg
b3BhY2l0eTogMC43OwotfQotCi0uc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAu
dmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWlscy1zZWN0aW9uID4gLmhlYWRlciA+IHNw
YW4gewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMu
Y3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24uaGFz
LXNldC1wcm9wZXJ0eSA+IC5oZWFkZXIgPiBzcGFuOjphZnRlciB7Ci0gICAgd2lkdGg6IDdweDsK
LSAgICBoZWlnaHQ6IDdweDsKLSAgICBtYXJnaW46IDRweCA2cHg7Ci0gICAgYm9yZGVyLXJhZGl1
czogNTAlOwotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdGVkLWJhY2tncm91bmQt
Y29sb3IpOwotICAgIG9wYWNpdHk6IDAuNTsKLSAgICBjb250ZW50OiAiIjsKLX0KLQotLnNpZGVi
YXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24g
LmRldGFpbHMtc2VjdGlvbiA+IC5jb250ZW50IHsKLSAgICBtYXJnaW4tdG9wOiA1cHg7Ci19Ci0K
LS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1z
ZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAucm93IHsKLSAgICBk
aXNwbGF5OiBmbGV4OwotICAgIGZsZXgtd3JhcDogd3JhcDsKLX0KLQotLnNpZGViYXIgPiAucGFu
ZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbCA+IC5kZXRhaWxzLXNlY3Rpb24gLmRldGFpbHMt
c2VjdGlvbiA+IC5jb250ZW50IC5ncm91cCA+IC5tZXRyaWMtc2VjdGlvbi1yb3cgewotICAgIGZs
ZXgtd3JhcDogbm93cmFwOwotfQotCi0uc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHls
ZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWlscy1zZWN0aW9uID4gLmNvbnRlbnQg
PiAuZ3JvdXAgKyAuZ3JvdXAgPiAucm93OmZpcnN0LWNoaWxkIHsKLSAgICBwYWRkaW5nLXRvcDog
N3B4OwotICAgIGJvcmRlci10b3A6IG5vbmU7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFp
bHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24g
PiAuY29udGVudCAuZ3JvdXAgPiAucm93Omxhc3QtY2hpbGQgewotICAgIHBhZGRpbmctYm90dG9t
OiAzcHg7Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwg
PiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAu
cm93LnZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93IHsKLSAgICBib3JkZXItYm90dG9tOiAxcHgg
c29saWQgaHNsKDAsIDAlLCA4MyUpOwotICAgIG1hcmdpbi1ib3R0b206IDVweDsKLSAgICBwYWRk
aW5nLWJvdHRvbTogMnB4OwotfQotCi1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1y
YXRpbzogMikgewotICAgIC5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1
YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNlY3Rpb24gPiAuY29udGVudCAuZ3JvdXAg
PiAucm93LnZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93IHsKLSAgICAgICAgYm9yZGVyLWJvdHRv
bS13aWR0aDogMC41cHggIWltcG9ydGFudDsKLSAgICB9Ci19Ci0KLS5zaWRlYmFyID4gLnBhbmVs
LmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0aW9uIC5kZXRhaWxzLXNl
Y3Rpb24gPiAuY29udGVudCAuZ3JvdXAgPiAucm93ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXRpdGxlIHsKLSAgICB3aWR0aDogNTVw
eDsKLX0KLQotLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbC5kaXNh
YmxlZCA+IC5kZXRhaWxzLXNlY3Rpb246bm90KC52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlv
bikgewotICAgIG9wYWNpdHk6IDAuNTsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLX0KLQot
LnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnZpc3VhbC5kaXNhYmxlZCA+IC5k
ZXRhaWxzLXNlY3Rpb246bm90KC52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbikgaW5wdXQg
ewotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwotfQotCi0uc2lkZWJhciA+IC5wYW5lbC5kZXRh
aWxzLmNzcy1zdHlsZSAudmlzdWFsID4gLmRldGFpbHMtc2VjdGlvbiAuZGV0YWlscy1zZWN0aW9u
ID4gLmNvbnRlbnQgLmdyb3VwID4gLnJvdyArIC5yb3cudmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9w
ZXJ0aWVzLXJvdywKLS5zaWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwg
PiAuZGV0YWlscy1zZWN0aW9uLmJhY2tncm91bmQgLmRldGFpbHMtc2VjdGlvbi5iYWNrZ3JvdW5k
LXN0eWxlIC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmNvbW1hLXNlcGFyYXRlZC1r
ZXl3b3JkLWVkaXRvci5iYWNrZ3JvdW5kIHsKLSAgICBtYXJnaW4tdG9wOiAzcHg7Ci19Ci0KLS5z
aWRlYmFyID4gLnBhbmVsLmRldGFpbHMuY3NzLXN0eWxlIC52aXN1YWwgPiAuZGV0YWlscy1zZWN0
aW9uLmJhY2tncm91bmQgLmRldGFpbHMtc2VjdGlvbi5ib3JkZXIgLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIua2V5d29yZC1jaGVja2JveC5ib3JkZXItaW1hZ2Utc2xpY2UgewotICAg
IGZsZXg6IDE7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDBmMmMwMmRmMzkzMjE3NmIyOWM2MjQxMjIwYmE1
ODBhY2NjN2JjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0
YWlsc1BhbmVsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYxMCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotV0kuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQ
YW5lbCBleHRlbmRzIFdJLlN0eWxlRGV0YWlsc1BhbmVsCi17Ci0gICAgY29uc3RydWN0b3IoZGVs
ZWdhdGUpCi0gICAgewotICAgICAgICBzdXBlcihkZWxlZ2F0ZSwgInZpc3VhbCIsICJ2aXN1YWwi
LCBXSS5VSVN0cmluZygiU3R5bGVzIFx1MjAxNCBWaXN1YWwiKSk7Ci0KLSAgICAgICAgdGhpcy5f
Y3VycmVudFN0eWxlID0gbnVsbDsKLQotICAgICAgICB0aGlzLl9zZWN0aW9ucyA9IHt9OwotICAg
ICAgICB0aGlzLl9ncm91cHMgPSB7fTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMgPSB7fTsKLSAg
ICAgICAgdGhpcy5fdW5pdHMgPSB7fTsKLQotICAgICAgICAvLyBUaGVzZSBrZXl3b3JkcywgYXMg
d2VsbCBhcyB0aGUgdmFsdWVzIGJlbG93LCBhcmUgbm90IGxvY2FsaXplZCBhcyB0aGV5IG11c3Qg
bWF0Y2ggdGhlIENTUyBzcGVjLgotICAgICAgICB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cyA9IFsi
SW5oZXJpdCIsICJJbml0aWFsIiwgIlVuc2V0IiwgIlJldmVydCJdOwotICAgICAgICB0aGlzLl9r
ZXl3b3Jkcy5ub3JtYWwgPSB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJOb3JtYWwi
XSk7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsID0gdGhpcy5fa2V5d29yZHMuZGVm
YXVsdHMuY29uY2F0KFsiQXV0byJdKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMuYm9yZGVyU3R5
bGUgPSB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0
KFsiTm9uZSIsICJIaWRkZW4iLCAiU29saWQiXSksCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJE
YXNoZWQiLCAiRG90dGVkIiwgIkRvdWJsZSIsICJHcm9vdmUiLCAiSW5zZXQiLCAiT3V0c2V0Iiwg
IlJpZGdlIl0KLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgg
PSB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJNZWRpdW0iLCAiVGhpY2siLCAiVGhp
biJdKTsKLQotICAgICAgICB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50ID0gewotICAg
ICAgICAgICAgYmFzaWM6IFsicHgiLCAiZW0iXSwKLSAgICAgICAgICAgIGFkdmFuY2VkOiBbImNo
IiwgImNtIiwgImV4IiwgImluIiwgIm1tIiwgInBjIiwgInB0IiwgInJlbSIsICJ2aCIsICJ2dyIs
ICJ2bWF4IiwgInZtaW4iXQotICAgICAgICB9OwotICAgICAgICB0aGlzLl91bml0cy5kZWZhdWx0
cyA9IHsKLSAgICAgICAgICAgIGJhc2ljOiBbIiUiXS5jb25jYXQodGhpcy5fdW5pdHMuZGVmYXVs
dHNTYW5zUGVyY2VudC5iYXNpYyksCi0gICAgICAgICAgICBhZHZhbmNlZDogdGhpcy5fdW5pdHMu
ZGVmYXVsdHNTYW5zUGVyY2VudC5hZHZhbmNlZAotICAgICAgICB9OwotICAgIH0KLQotICAgIC8v
IFB1YmxpYwotCi0gICAgcmVmcmVzaChzaWduaWZpY2FudENoYW5nZSkKLSAgICB7Ci0gICAgICAg
IGlmIChzaWduaWZpY2FudENoYW5nZSkKLSAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9yU2VjdGlv
bi51cGRhdGUodGhpcy5fbm9kZVN0eWxlcyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVNlY3Rpb25zKCk7Ci0KLSAgICAgICAgc3VwZXIucmVmcmVzaCgpOwotICAgIH0K
LQotICAgIC8vIFByb3RlY3RlZAotCi0gICAgaW5pdGlhbExheW91dCgpCi0gICAgewotICAgICAg
ICAvLyBTZWxlY3RvciBTZWN0aW9uCi0gICAgICAgIHRoaXMuX3NlbGVjdG9yU2VjdGlvbiA9IG5l
dyBXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbjsKLSAgICAgICAgdGhpcy5fc2VsZWN0b3JT
ZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uRXZl
bnQuU2VsZWN0b3JDaGFuZ2VkLCB0aGlzLl91cGRhdGVTZWN0aW9ucywgdGhpcyk7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWxlY3RvclNlY3Rpb24uZWxlbWVudCk7
Ci0KLSAgICAgICAgLy8gTGF5b3V0IFNlY3Rpb24KLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0
aW9uKCJkaXNwbGF5IiwgV0kuVUlTdHJpbmcoIkRpc3BsYXkiKSk7Ci0gICAgICAgIHRoaXMuX2dl
bmVyYXRlU2VjdGlvbigicG9zaXRpb24iLCBXSS5VSVN0cmluZygiUG9zaXRpb24iKSk7Ci0gICAg
ICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZmxvYXQiLCBXSS5VSVN0cmluZygiRmxvYXQgYW5k
IENsZWFyIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oImRpbWVuc2lvbnMiLCBX
SS5VSVN0cmluZygiRGltZW5zaW9ucyIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9u
KCJtYXJnaW4iLCBXSS5VSVN0cmluZygiTWFyZ2luIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0
ZVNlY3Rpb24oInBhZGRpbmciLCBXSS5VSVN0cmluZygiUGFkZGluZyIpKTsKLSAgICAgICAgdGhp
cy5fZ2VuZXJhdGVTZWN0aW9uKCJmbGV4Ym94IiwgV0kuVUlTdHJpbmcoIkZsZXhib3giKSk7Ci0g
ICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYWxpZ25tZW50IiwgV0kuVUlTdHJpbmcoIkFs
aWdubWVudCIpKTsKLQotICAgICAgICB0aGlzLl9zZWN0aW9ucy5sYXlvdXQgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb24oImxheW91dCIsIFdJLlVJU3RyaW5nKCJMYXlvdXQiKSwgW3RoaXMuX2dyb3Vw
cy5kaXNwbGF5LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5zZWN0aW9uLCB0aGlzLl9n
cm91cHMuZmxvYXQuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMuc2VjdGlvbiwgdGhp
cy5fZ3JvdXBzLm1hcmdpbi5zZWN0aW9uLCB0aGlzLl9ncm91cHMucGFkZGluZy5zZWN0aW9uLCB0
aGlzLl9ncm91cHMuZmxleGJveC5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYWxpZ25tZW50LnNlY3Rp
b25dKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLmxh
eW91dC5lbGVtZW50KTsKLQotICAgICAgICAvLyBUZXh0IFNlY3Rpb24KLSAgICAgICAgdGhpcy5f
Z2VuZXJhdGVTZWN0aW9uKCJjb250ZW50IiwgV0kuVUlTdHJpbmcoIkNvbnRlbnQiKSk7Ci0gICAg
ICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigidGV4dC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHls
ZSIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJmb250IiwgV0kuVUlTdHJpbmco
IkZvbnQiKSk7Ci0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZm9udC12YXJpYW50cyIs
IFdJLlVJU3RyaW5nKCJWYXJpYW50cyIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9u
KCJ0ZXh0LXNwYWNpbmciLCBXSS5VSVN0cmluZygiU3BhY2luZyIpKTsKLSAgICAgICAgdGhpcy5f
Z2VuZXJhdGVTZWN0aW9uKCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJTaGFkb3ciKSk7Ci0K
LSAgICAgICAgdGhpcy5fc2VjdGlvbnMudGV4dCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbigidGV4
dCIsIFdJLlVJU3RyaW5nKCJUZXh0IiksIFt0aGlzLl9ncm91cHMuY29udGVudC5zZWN0aW9uLCB0
aGlzLl9ncm91cHMudGV4dFN0eWxlLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5mb250LnNlY3Rpb24s
IHRoaXMuX2dyb3Vwcy5mb250VmFyaWFudHMuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLnRleHRTcGFj
aW5nLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy50ZXh0U2hhZG93LnNlY3Rpb25dKTsKLSAgICAgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLnRleHQuZWxlbWVudCk7Ci0K
LSAgICAgICAgLy8gQmFja2dyb3VuZCBTZWN0aW9uCi0gICAgICAgIHRoaXMuX2dlbmVyYXRlU2Vj
dGlvbigiZmlsbCIsIFdJLlVJU3RyaW5nKCJGaWxsIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0
ZVNlY3Rpb24oInN0cm9rZSIsIFdJLlVJU3RyaW5nKCJTdHJva2UiKSk7Ci0gICAgICAgIHRoaXMu
X2dlbmVyYXRlU2VjdGlvbigiYmFja2dyb3VuZC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIp
KTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3JkZXIiLCBXSS5VSVN0cmluZygi
Qm9yZGVyIikpOwotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oIm91dGxpbmUiLCBXSS5V
SVN0cmluZygiT3V0bGluZSIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3gt
c2hhZG93IiwgV0kuVUlTdHJpbmcoIkJveCBTaGFkb3ciKSk7Ci0gICAgICAgIHRoaXMuX2dlbmVy
YXRlU2VjdGlvbigibGlzdC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJMaXN0IFN0eWxlcyIpKTsKLQot
ICAgICAgICB0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
KCJiYWNrZ3JvdW5kIiwgV0kuVUlTdHJpbmcoIkJhY2tncm91bmQiKSwgW3RoaXMuX2dyb3Vwcy5m
aWxsLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5zdHJva2Uuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJh
Y2tncm91bmRTdHlsZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rpb24sIHRoaXMu
X2dyb3Vwcy5vdXRsaW5lLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cuc2VjdGlvbiwg
dGhpcy5fZ3JvdXBzLmxpc3RTdHlsZS5zZWN0aW9uXSk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kLmVsZW1lbnQpOwotCi0gICAgICAg
IC8vIEVmZmVjdHMgU2VjdGlvbgotICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oInRyYW5z
aXRpb24iLCBXSS5VSVN0cmluZygiVHJhbnNpdGlvbiIpKTsKLSAgICAgICAgdGhpcy5fZ2VuZXJh
dGVTZWN0aW9uKCJhbmltYXRpb24iLCBXSS5VSVN0cmluZygiQW5pbWF0aW9uIikpOwotCi0gICAg
ICAgIHRoaXMuX3NlY3Rpb25zLmVmZmVjdHMgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oImVmZmVj
dHMiLCBXSS5VSVN0cmluZygiRWZmZWN0cyIpLCBbdGhpcy5fZ3JvdXBzLnRyYW5zaXRpb24uc2Vj
dGlvbiwgdGhpcy5fZ3JvdXBzLmFuaW1hdGlvbi5zZWN0aW9uXSk7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWN0aW9ucy5lZmZlY3RzLmVsZW1lbnQpOwotICAgIH0K
LQotICAgIHNpemVEaWRDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgc3VwZXIuc2l6ZURpZENoYW5n
ZSgpOwotCi0gICAgICAgIGxldCBzaWRlYmFyV2lkdGggPSB0aGlzLmVsZW1lbnQucmVhbE9mZnNl
dFdpZHRoOwotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZ3JvdXBzKSB7Ci0gICAgICAg
ICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHNba2V5XTsKLSAgICAgICAgICAgIGlmICghZ3Jv
dXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2YgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9w
ZXJ0aWVzKQotICAgICAgICAgICAgICAgIGVkaXRvci5yZWNhbGN1bGF0ZVdpZHRoKHNpZGViYXJX
aWR0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfZ2VuZXJh
dGVTZWN0aW9uKGlkLCBkaXNwbGF5TmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICghaWQgfHwgIWRp
c3BsYXlOYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBjYW1lbENhc2VJ
ZCA9IGlkLnRvQ2FtZWxDYXNlKCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uc0Vs
ZW1lbnQoKSB7Ci0gICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgICAgICAgICBjb250YWluZXIudGl0bGUgPSBXSS5VSVN0cmluZygi
Q2xlYXIgbW9kaWZpZWQgcHJvcGVydGllcyIpOwotICAgICAgICAgICAgY29udGFpbmVyLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY2xlYXJNb2RpZmllZFNlY3Rpb24uYmluZCh0aGlz
LCBjYW1lbENhc2VJZCkpOwotICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjsKLSAgICAgICAg
fQotCi0gICAgICAgIHRoaXMuX2dyb3Vwc1tjYW1lbENhc2VJZF0gPSB7Ci0gICAgICAgICAgICBz
ZWN0aW9uOiBuZXcgV0kuRGV0YWlsc1NlY3Rpb24oaWQsIGRpc3BsYXlOYW1lLCBbXSwgY3JlYXRl
T3B0aW9uc0VsZW1lbnQuY2FsbCh0aGlzKSksCi0gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7fQot
ICAgICAgICB9OwotCi0gICAgICAgIGxldCBwb3B1bGF0ZUZ1bmN0aW9uID0gdGhpc1siX3BvcHVs
YXRlIiArIGNhbWVsQ2FzZUlkLmNhcGl0YWxpemUoKSArICJTZWN0aW9uIl07Ci0gICAgICAgIHBv
cHVsYXRlRnVuY3Rpb24uY2FsbCh0aGlzKTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlU2VjdGlvbnMo
ZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl9jdXJyZW50U3R5bGUgPSB0aGlzLl9zZWxlY3Rv
clNlY3Rpb24uY3VycmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghdGhpcy5fY3VycmVudFN0eWxl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBkaXNhYmxlZCA9IHRoaXMuX2N1
cnJlbnRTdHlsZVtXSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5TdHlsZURpc2FibGVkU3ltYm9s
XTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIiwgISFk
aXNhYmxlZCk7Ci0gICAgICAgIGlmIChkaXNhYmxlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZ3JvdXBzKQotICAgICAgICAgICAgdGhpcy5f
dXBkYXRlUHJvcGVydGllcyh0aGlzLl9ncm91cHNba2V5XSwgISFldmVudCk7Ci0KLSAgICAgICAg
aWYgKGV2ZW50KSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fc2VjdGlvbnMp
IHsKLSAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2tleV07Ci0g
ICAgICAgICAgICAgICAgbGV0IG9uZVNlY3Rpb25FeHBhbmRlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIGZvciAobGV0IGdyb3VwIG9mIHNlY3Rpb24uZ3JvdXBzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGxldCBjYW1lbENhc2VJZCA9IGdyb3VwLmlkZW50aWZpZXIudG9DYW1lbENhc2UoKTsK
LSAgICAgICAgICAgICAgICAgICAgZ3JvdXAuY29sbGFwc2VkID0gIWdyb3VwLmV4cGFuZGVkQnlV
c2VyICYmICF0aGlzLl9ncm91cEhhc1NldFByb3BlcnR5KHRoaXMuX2dyb3Vwc1tjYW1lbENhc2VJ
ZF0pOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwLmNvbGxhcHNlZCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG9uZVNlY3Rpb25FeHBhbmRlZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChvbmVTZWN0aW9uRXhwYW5kZWQpCi0gICAgICAgICAg
ICAgICAgICAgIHNlY3Rpb24uY29sbGFwc2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLQotICAgICAgICBsZXQgaGFzTWF0Y2hlZEVsZW1lbnRQc2V1ZG9TZWxlY3RvciA9IHRo
aXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUgJiYgdGhpcy5fY3VycmVudFN0eWxlLm93bmVyUnVs
ZS5oYXNNYXRjaGVkUHNldWRvRWxlbWVudFNlbGVjdG9yKCk7Ci0gICAgICAgIHRoaXMuX2dyb3Vw
cy5jb250ZW50LnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFo
YXNNYXRjaGVkRWxlbWVudFBzZXVkb1NlbGVjdG9yKTsKLSAgICAgICAgdGhpcy5fZ3JvdXBzLmxp
c3RTdHlsZS5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBoYXNN
YXRjaGVkRWxlbWVudFBzZXVkb1NlbGVjdG9yKTsKLQotICAgICAgICBsZXQgbm9kZSA9IHRoaXMu
X25vZGVTdHlsZXMubm9kZTsKLSAgICAgICAgbGV0IGlzU1ZHRWxlbWVudCA9IG5vZGUuaXNTVkdF
bGVtZW50KCk7Ci0KLSAgICAgICAgdGhpcy5fZ3JvdXBzLmZsb2F0LnNlY3Rpb24uZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7Ci0gICAgICAgIHRoaXMu
X2dyb3Vwcy5ib3JkZXIuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZl
IiwgaXNTVkdFbGVtZW50KTsKLSAgICAgICAgdGhpcy5fZ3JvdXBzLmJveFNoYWRvdy5zZWN0aW9u
LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOwotICAg
ICAgICB0aGlzLl9ncm91cHMubGlzdFN0eWxlLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fZ3JvdXBzLmZp
bGwuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHRWxl
bWVudCk7Ci0gICAgICAgIHRoaXMuX2dyb3Vwcy5zdHJva2Uuc2VjdGlvbi5lbGVtZW50LmNsYXNz
TGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHRWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGlz
U1ZHQ2lyY2xlID0gbm9kZS5ub2RlTmFtZSgpID09PSAiY2lyY2xlIjsKLSAgICAgICAgbGV0IGlz
U1ZHRWxsaXBzZSA9IG5vZGUubm9kZU5hbWUoKSA9PT0gImVsbGlwc2UiOwotICAgICAgICBsZXQg
aXNTVkdSYWRpYWxHcmFkaWVudCA9IG5vZGUubm9kZU5hbWUoKSA9PT0gInJhZGlhbEdyYWRpZW50
IjsKLSAgICAgICAgbGV0IGlzU1ZHUmVjdCA9IG5vZGUubm9kZU5hbWUoKSA9PT0gInJlY3QiOwot
ICAgICAgICBsZXQgaXNTVkdMaW5lID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGluZSI7Ci0gICAg
ICAgIGxldCBpc1NWR0xpbmVhckdyYWRpZW50ID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGluZWFy
R3JhZGllbnQiOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgZGltZW5zaW9ucyBzZWN0aW9u
IGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIFNWRyBlbGVtZW50IG9yIGlzIDxlbGxp
cHNlPiwgPHJlY3Q+LCA8Y2lyY2xlPiwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KLSAgICAgICAgdGhp
cy5fZ3JvdXBzLmRpbWVuc2lvbnMuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImlu
YWN0aXZlIiwgISghaXNTVkdFbGVtZW50IHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JlY3QgfHwg
aXNTVkdDaXJjbGUgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwotCi0gICAgICAgIC8vIE9ubHkg
c2hvdyB0aGUgbm9uLVNWRyBkaW1lbnNpb25zIGdyb3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQg
aXMgbm90IGFuIFNWRyBlbGVtZW50IG9yIGlzIDxyZWN0Pi4KLSAgICAgICAgdGhpcy5fZ3JvdXBz
LmRpbWVuc2lvbnMuZGVmYXVsdEdyb3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCAhKCFpc1NWR0VsZW1lbnQgfHwgaXNTVkdSZWN0KSk7Ci0KLSAgICAgICAgLy8gT25seSBz
aG93IHRoZSBTVkcgZGltZW5zaW9ucyBncm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIGFu
IFNWRyBlbGVtZW50LCA8cmVjdD4sIDxjaXJjbGU+LCBvciA8cmFkaWFsR3JhZGllbnQ+LgotICAg
ICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5zdmdHcm91cC5lbGVtZW50LmNsYXNzTGlzdC50
b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0IHx8IGlzU1ZHQ2ly
Y2xlIHx8IGlzU1ZHUmFkaWFsR3JhZGllbnQpKTsKLQotICAgICAgICAvLyBPbmx5IHNob3cgZWRp
dG9yIGZvciAiciIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8Y2lyY2xlPiBvciA8cmFkaWFs
R3JhZGllbnQ+LgotICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnIu
ZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdDaXJjbGUgfHwgaXNT
VkdSYWRpYWxHcmFkaWVudCkpOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyBlZGl0b3JzIGZvciAi
cngiIGFuZCAicnkiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPGVsbGlwc2U+IG9yIDxyZWN0
Pi4KLSAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5yeC5lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0
KSk7Ci0gICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLnByb3BlcnRpZXMucnkuZWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdFbGxpcHNlIHx8IGlzU1ZHUmVj
dCkpOwotCi0gICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgU1ZHIHBvc2l0aW9uIGdyb3VwIGlmIHRo
ZSBjdXJyZW50IGVsZW1lbnQgaXMgPHJlY3Q+LCA8Y2lyY2xlPiwgPGVsbGlwc2U+LCA8bGluZT4s
IDxyYWRpYWxHcmFkaWVudD4sIG9yIDxsaW5lYXJHcmFkaWVudD4uCi0gICAgICAgIHRoaXMuX2dy
b3Vwcy5wb3NpdGlvbi5zdmdHcm91cC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZl
IiwgIShpc1NWR1JlY3QgfHwgaXNTVkdDaXJjbGUgfHwgaXNTVkdFbGxpcHNlIHx8IGlzU1ZHTGlu
ZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50IHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKLQotICAg
ICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgIngiIGFuZCAieSIgaWYgdGhlIGN1cnJlbnQg
ZWxlbWVudCBpcyA8cmVjdD4uCi0gICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0
aWVzLnguZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR1JlY3QpOwot
ICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy55LmVsZW1lbnQuY2xhc3NM
aXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdSZWN0KTsKLQotICAgICAgICAvLyBPbmx5IHNo
b3cgZWRpdG9ycyBmb3IgIngxIiwgInkxIiwgIngyIiwgYW5kICJ5MiIgaWYgdGhlIGN1cnJlbnQg
ZWxlbWVudCBpcyA8bGluZT4gb3IgPGxpbmVhckdyYWRpZW50Pi4KLSAgICAgICAgdGhpcy5fZ3Jv
dXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueDEuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKLSAgICAgICAgdGhp
cy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueTEuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xl
KCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKLSAgICAg
ICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueDIuZWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsK
LSAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueTIuZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGll
bnQpKTsKLQotICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgImN4IiBhbmQgImN5IiBp
ZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIDxjaXJjbGU+LCA8ZWxsaXBzZT4sIG9yIDxyYWRpYWxH
cmFkaWVudD4uCi0gICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLmN4LmVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZH
RWxsaXBzZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50KSk7Ci0gICAgICAgIHRoaXMuX2dyb3Vwcy5w
b3NpdGlvbi5wcm9wZXJ0aWVzLmN5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUi
LCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50KSk7
Ci0gICAgfQotCi0gICAgX3VwZGF0ZVByb3BlcnRpZXMoZ3JvdXAsIGZvcmNlU3R5bGVVcGRhdGUp
Ci0gICAgewotICAgICAgICBpZiAoIWdyb3VwLnNlY3Rpb24pCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKGZvcmNlU3R5bGVVcGRhdGUgJiYgZ3JvdXAubGlua3MpIHsKLSAgICAg
ICAgICAgIGZvciAobGV0IGtleSBpbiBncm91cC5saW5rcykKLSAgICAgICAgICAgICAgICBncm91
cC5saW5rc1trZXldLmxpbmtlZCA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGlu
aXRpYWxUZXh0TGlzdCA9IHRoaXMuX2luaXRpYWxUZXh0TGlzdDsKLSAgICAgICAgaWYgKCFpbml0
aWFsVGV4dExpc3QpCi0gICAgICAgICAgICB0aGlzLl9jdXJyZW50U3R5bGVbV0kuVmlzdWFsU3R5
bGVEZXRhaWxzUGFuZWwuSW5pdGlhbFByb3BlcnR5U2VjdGlvblRleHRMaXN0U3ltYm9sXSA9IGlu
aXRpYWxUZXh0TGlzdCA9IG5ldyBXZWFrTWFwOwotCi0gICAgICAgIGxldCBpbml0aWFsUHJvcGVy
dHlUZXh0ID0ge307Ci0gICAgICAgIGxldCBpbml0aWFsUHJvcGVydHlUZXh0TWlzc2luZyA9ICFp
bml0aWFsVGV4dExpc3QuaGFzKGdyb3VwKTsKLSAgICAgICAgZm9yIChsZXQga2V5IGluIGdyb3Vw
LnByb3BlcnRpZXMpIHsKLSAgICAgICAgICAgIGxldCBwcm9wZXJ0eUVkaXRvciA9IGdyb3VwLnBy
b3BlcnRpZXNba2V5XTsKLSAgICAgICAgICAgIHByb3BlcnR5RWRpdG9yLnVwZGF0ZSghcHJvcGVy
dHlFZGl0b3Iuc3R5bGUgfHwgZm9yY2VTdHlsZVVwZGF0ZSA/IHRoaXMuX2N1cnJlbnRTdHlsZSA6
IG51bGwpOwotCi0gICAgICAgICAgICBsZXQgdmFsdWUgPSBwcm9wZXJ0eUVkaXRvci5zeW50aGVz
aXplZFZhbHVlOwotICAgICAgICAgICAgaWYgKHZhbHVlICYmICFwcm9wZXJ0eUVkaXRvci5wcm9w
ZXJ0eU1pc3NpbmcgJiYgaW5pdGlhbFByb3BlcnR5VGV4dE1pc3NpbmcpCi0gICAgICAgICAgICAg
ICAgaW5pdGlhbFByb3BlcnR5VGV4dFtrZXldID0gdmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoaW5pdGlhbFByb3BlcnR5VGV4dE1pc3NpbmcpCi0gICAgICAgICAgICBpbml0aWFsVGV4
dExpc3Quc2V0KGdyb3VwLCBpbml0aWFsUHJvcGVydHlUZXh0KTsKLQotICAgICAgICB0aGlzLl9z
ZWN0aW9uTW9kaWZpZWQoZ3JvdXApOwotCi0gICAgICAgIGlmIChncm91cC5hdXRvY29tcGxldGVD
b21wYXRpYmxlUHJvcGVydGllcykgewotICAgICAgICAgICAgZm9yIChsZXQgZWRpdG9yIG9mIGdy
b3VwLmF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZUF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0eUVkaXRvcihlZGl0b3IsIGZv
cmNlU3R5bGVVcGRhdGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdyb3VwLnNwZWNpZmll
ZFdpZHRoUHJvcGVydGllcykgewotICAgICAgICAgICAgbGV0IHNpZGViYXJXaWR0aCA9IHRoaXMu
ZWxlbWVudC5yZWFsT2Zmc2V0V2lkdGg7Ci0gICAgICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2Yg
Z3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzKQotICAgICAgICAgICAgICAgIGVkaXRvci5y
ZWNhbGN1bGF0ZVdpZHRoKHNpZGViYXJXaWR0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBf
dXBkYXRlQXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnR5RWRpdG9yKGVkaXRvciwgZm9yY2Up
Ci0gICAgewotICAgICAgICBpZiAoIWVkaXRvciB8fCAoZWRpdG9yLmhhc0NvbXBsZXRpb25zICYm
ICFmb3JjZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZWRpdG9yLmNvbXBsZXRp
b25zID0gV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmZvclByb3BlcnR5KGVkaXRvci5wcm9wZXJ0
eVJlZmVyZW5jZU5hbWUpOwotICAgIH0KLQotICAgIF9zZWN0aW9uTW9kaWZpZWQoZ3JvdXApCi0g
ICAgewotICAgICAgICBncm91cC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibW9k
aWZpZWQiLCB0aGlzLl9pbml0aWFsUHJvcGVydHlUZXh0TW9kaWZpZWQoZ3JvdXApKTsKLSAgICAg
ICAgZ3JvdXAuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhhcy1zZXQtcHJvcGVy
dHkiLCB0aGlzLl9ncm91cEhhc1NldFByb3BlcnR5KGdyb3VwKSk7Ci0gICAgfQotCi0gICAgX2Ns
ZWFyTW9kaWZpZWRTZWN0aW9uKGdyb3VwSWQpCi0gICAgewotICAgICAgICBsZXQgZ3JvdXAgPSB0
aGlzLl9ncm91cHNbZ3JvdXBJZF07Ci0gICAgICAgIGdyb3VwLnNlY3Rpb24uZWxlbWVudC5jbGFz
c0xpc3QucmVtb3ZlKCJtb2RpZmllZCIpOwotICAgICAgICBsZXQgaW5pdGlhbFByb3BlcnR5VGV4
dExpc3QgPSB0aGlzLl9jdXJyZW50U3R5bGVbV0kuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuSW5p
dGlhbFByb3BlcnR5U2VjdGlvblRleHRMaXN0U3ltYm9sXS5nZXQoZ3JvdXApOwotICAgICAgICBp
ZiAoIWluaXRpYWxQcm9wZXJ0eVRleHRMaXN0KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGxldCBuZXdTdHlsZVRleHQgPSB0aGlzLl9jdXJyZW50U3R5bGUudGV4dDsKLSAgICAgICAg
Zm9yIChsZXQga2V5IGluIGdyb3VwLnByb3BlcnRpZXMpIHsKLSAgICAgICAgICAgIGxldCBwcm9w
ZXJ0eUVkaXRvciA9IGdyb3VwLnByb3BlcnRpZXNba2V5XTsKLSAgICAgICAgICAgIGxldCBpbml0
aWFsVmFsdWUgPSBpbml0aWFsUHJvcGVydHlUZXh0TGlzdFtrZXldIHx8IG51bGw7Ci0gICAgICAg
ICAgICBuZXdTdHlsZVRleHQgPSBwcm9wZXJ0eUVkaXRvci5tb2RpZnlQcm9wZXJ0eVRleHQobmV3
U3R5bGVUZXh0LCBpbml0aWFsVmFsdWUpOwotICAgICAgICAgICAgcHJvcGVydHlFZGl0b3IucmVz
ZXRFZGl0b3JWYWx1ZXMoaW5pdGlhbFZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMu
X2N1cnJlbnRTdHlsZS50ZXh0ID0gbmV3U3R5bGVUZXh0OwotICAgICAgICBncm91cC5zZWN0aW9u
LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXNldC1wcm9wZXJ0eSIsIHRoaXMuX2dyb3Vw
SGFzU2V0UHJvcGVydHkoZ3JvdXApKTsKLSAgICB9Ci0KLSAgICBnZXQgX2luaXRpYWxUZXh0TGlz
dCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFN0eWxlW1dJLlZpc3VhbFN0
eWxlRGV0YWlsc1BhbmVsLkluaXRpYWxQcm9wZXJ0eVNlY3Rpb25UZXh0TGlzdFN5bWJvbF07Ci0g
ICAgfQotCi0gICAgX2luaXRpYWxQcm9wZXJ0eVRleHRNb2RpZmllZChncm91cCkKLSAgICB7Ci0g
ICAgICAgIGlmICghZ3JvdXAucHJvcGVydGllcykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICBsZXQgaW5pdGlhbFByb3BlcnR5VGV4dExpc3QgPSB0aGlzLl9pbml0aWFsVGV4
dExpc3QuZ2V0KGdyb3VwKTsKLSAgICAgICAgaWYgKCFpbml0aWFsUHJvcGVydHlUZXh0TGlzdCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBmb3IgKGxldCBrZXkgaW4gZ3Jv
dXAucHJvcGVydGllcykgewotICAgICAgICAgICAgbGV0IHByb3BlcnR5RWRpdG9yID0gZ3JvdXAu
cHJvcGVydGllc1trZXldOwotICAgICAgICAgICAgaWYgKHByb3BlcnR5RWRpdG9yLnByb3BlcnR5
TWlzc2luZykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgbGV0IHZh
bHVlID0gcHJvcGVydHlFZGl0b3Iuc3ludGhlc2l6ZWRWYWx1ZTsKLSAgICAgICAgICAgIGlmICh2
YWx1ZSAmJiBpbml0aWFsUHJvcGVydHlUZXh0TGlzdFtrZXldICE9PSB2YWx1ZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0KLSAgICBfZ3JvdXBIYXNTZXRQcm9wZXJ0eShncm91cCkKLSAgICB7Ci0gICAgICAg
IGZvciAobGV0IGtleSBpbiBncm91cC5wcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBsZXQgcHJv
cGVydHlFZGl0b3IgPSBncm91cC5wcm9wZXJ0aWVzW2tleV07Ci0gICAgICAgICAgICBsZXQgdmFs
dWUgPSBwcm9wZXJ0eUVkaXRvci5zeW50aGVzaXplZFZhbHVlOwotICAgICAgICAgICAgaWYgKHZh
bHVlICYmICFwcm9wZXJ0eUVkaXRvci5wcm9wZXJ0eU1pc3NpbmcpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQot
ICAgIF9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIGdyb3VwcykKLSAgICB7Ci0gICAgICAgIGlmICgh
Z3JvdXAgfHwgIWdyb3VwcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBncm91cC5z
ZWN0aW9uLmdyb3VwcyA9IGdyb3VwczsKLSAgICAgICAgZm9yIChsZXQga2V5IGluIGdyb3VwLnBy
b3BlcnRpZXMpCi0gICAgICAgICAgICBncm91cC5wcm9wZXJ0aWVzW2tleV0uYWRkRXZlbnRMaXN0
ZW5lcihXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLkV2ZW50LlZhbHVlRGlkQ2hhbmdlLCB0
aGlzLl9zZWN0aW9uTW9kaWZpZWQuYmluZCh0aGlzLCBncm91cCkpOwotICAgIH0KLQotICAgIF9w
b3B1bGF0ZURpc3BsYXlTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMu
X2dyb3Vwcy5kaXNwbGF5OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRp
ZXM7Ci0KLSAgICAgICAgbGV0IGRpc3BsYXlSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0KLSAgICAgICAgcHJvcGVydGllcy5kaXNwbGF5ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlcigiZGlzcGxheSIsIFdJLlVJU3RyaW5nKCJUeXBlIiksIHsKLSAgICAgICAgICAgIGJh
c2ljOiBbIk5vbmUiLCAiQmxvY2siLCAiRmxleCIsICJJbmxpbmUiLCAiSW5saW5lIEJsb2NrIl0s
Ci0gICAgICAgICAgICBhZHZhbmNlZDogWyJDb21wYWN0IiwgIklubGluZSBGbGV4IiwgIklubGlu
ZSBUYWJsZSIsICJMaXN0IEl0ZW0iLCAiVGFibGUiLCAiVGFibGUgQ2FwdGlvbiIsICJUYWJsZSBD
ZWxsIiwgIlRhYmxlIENvbHVtbiIsICJUYWJsZSBDb2x1bW4gR3JvdXAiLCAiVGFibGUgRm9vdGVy
IEdyb3VwIiwgIlRhYmxlIEhlYWRlciBHcm91cCIsICJUYWJsZSBSb3ciLCAiVGFibGUgUm93IEdy
b3VwIiwgIiBXQVAgTWFycXVlZSIsICIgV2ViS2l0IEJveCIsICIgV2ViS2l0IEdyaWQiLCAiIFdl
YktpdCBJbmxpbmUgQm94IiwgIiBXZWJLaXQgSW5saW5lIEdyaWQiXQotICAgICAgICB9KTsKLSAg
ICAgICAgcHJvcGVydGllcy52aXNpYmlsaXR5ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBp
Y2tlcigidmlzaWJpbGl0eSIsIFdJLlVJU3RyaW5nKCJWaXNpYmlsaXR5IiksIHsKLSAgICAgICAg
ICAgIGJhc2ljOiBbIkhpZGRlbiIsICJWaXNpYmxlIl0sCi0gICAgICAgICAgICBhZHZhbmNlZDog
WyJDb2xsYXBzZSJdCi0gICAgICAgIH0pOwotCi0gICAgICAgIGRpc3BsYXlSb3cuZWxlbWVudC5h
cHBlbmRDaGlsZChwcm9wZXJ0aWVzLmRpc3BsYXkuZWxlbWVudCk7Ci0gICAgICAgIGRpc3BsYXlS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnZpc2liaWxpdHkuZWxlbWVudCk7Ci0K
LSAgICAgICAgbGV0IHNpemluZ1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBwcm9wZXJ0aWVzLmJveFNpemluZyA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNr
ZXIoImJveC1zaXppbmciLCBXSS5VSVN0cmluZygiU2l6aW5nIiksIHRoaXMuX2tleXdvcmRzLmRl
ZmF1bHRzLmNvbmNhdChbIkJvcmRlciBCb3giLCAiQ29udGVudCBCb3giXSkpOwotICAgICAgICBw
cm9wZXJ0aWVzLmN1cnNvciA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImN1cnNv
ciIsIFdJLlVJU3RyaW5nKCJDdXJzb3IiKSwgewotICAgICAgICAgICAgYmFzaWM6IFsiQXV0byIs
ICJEZWZhdWx0IiwgIk5vbmUiLCAiUG9pbnRlciIsICJDcm9zc2hhaXIiLCAiVGV4dCJdLAotICAg
ICAgICAgICAgYWR2YW5jZWQ6IFsiQ29udGV4dCBNZW51IiwgIkhlbHAiLCAiUHJvZ3Jlc3MiLCAi
V2FpdCIsICJDZWxsIiwgIlZlcnRpY2FsIFRleHQiLCAiQWxpYXMiLCAiQ29weSIsICJNb3ZlIiwg
Ik5vIERyb3AiLCAiTm90IEFsbG93ZWQiLCAiQWxsIFNjcm9sbCIsICJDb2wgUmVzaXplIiwgIlJv
dyBSZXNpemUiLCAiTiBSZXNpemUiLCAiRSBSZXNpemUiLCAiUyBSZXNpemUiLCAiVyBSZXNpemUi
LCAiTlMgUmVzaXplIiwgIkVXIFJlc2l6ZSIsICJORSBSZXNpemUiLCAiTlcgUmVzaXplIiwgIlNF
IFJlc2l6ZSIsICJzVyBSZXNpemUiLCAiTkVTVyBSZXNpemUiLCAiTldTRSBSZXNpemUiXQotICAg
ICAgICB9KTsKLQotICAgICAgICBzaXppbmdSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLmJveFNpemluZy5lbGVtZW50KTsKLSAgICAgICAgc2l6aW5nUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5jdXJzb3IuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IG92ZXJmbG93
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMub3Bh
Y2l0eSA9IG5ldyBXSS5WaXN1YWxTdHlsZVVuaXRTbGlkZXIoIm9wYWNpdHkiLCBXSS5VSVN0cmlu
ZygiT3BhY2l0eSIpKTsKLSAgICAgICAgcHJvcGVydGllcy5vdmVyZmxvdyA9IG5ldyBXSS5WaXN1
YWxTdHlsZUtleXdvcmRQaWNrZXIoWyJvdmVyZmxvdy14IiwgIm92ZXJmbG93LXkiXSwgV0kuVUlT
dHJpbmcoIk92ZXJmbG93IiksIHsKLSAgICAgICAgICAgIGJhc2ljOiBbIkluaXRpYWwiLCAiVW5z
ZXQiLCAiUmV2ZXJ0IiwgIkF1dG8iLCAiSGlkZGVuIiwgIlNjcm9sbCIsICJWaXNpYmxlIl0sCi0g
ICAgICAgICAgICBhZHZhbmNlZDogWyJNYXJxdWVlIiwgIk92ZXJsYXkiLCAiIFdlYktpdCBQYWdl
ZCBYIiwgIiBXZWJLaXQgUGFnZWQgWSJdCi0gICAgICAgIH0pOwotCi0gICAgICAgIG92ZXJmbG93
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5vcGFjaXR5LmVsZW1lbnQpOwotICAg
ICAgICBvdmVyZmxvd1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMub3ZlcmZsb3cu
ZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3By
b3BlcnRpZXMub3BhY2l0eV07Ci0KLSAgICAgICAgbGV0IGRpc3BsYXlHcm91cCA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvbkdyb3VwKFtkaXNwbGF5Um93LCBzaXppbmdSb3csIG92ZXJmbG93Um93XSk7
Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2Rpc3BsYXlHcm91cF0pOwot
ICAgIH0KLQotICAgIF9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZWRpdG9yLCBtb2RlKQotICAg
IHsKLSAgICAgICAgZnVuY3Rpb24gZWRpdG9yTW91c2VvdmVyKCkgewotICAgICAgICAgICAgaWYg
KCF0aGlzLl9jdXJyZW50U3R5bGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
ICAgICBpZiAoIXRoaXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAgICAg
ICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKHRoaXMuX2N1cnJlbnRTdHlsZS5u
b2RlLmlkLCBtb2RlKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmhpZ2hsaWdodFNlbGVjdG9yKHRoaXMuX2N1
cnJlbnRTdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0LCB0aGlzLl9jdXJyZW50U3R5bGUubm9k
ZS5vd25lckRvY3VtZW50LmZyYW1lSWRlbnRpZmllciwgbW9kZSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBmdW5jdGlvbiBlZGl0b3JNb3VzZW91dCgpIHsKLSAgICAgICAgICAgIFdJLmRvbVRyZWVN
YW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBlZGl0
b3IuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBlZGl0b3JNb3VzZW92ZXIu
YmluZCh0aGlzKSk7Ci0gICAgICAgIGVkaXRvci5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNlb3V0IiwgZWRpdG9yTW91c2VvdXQpOwotICAgIH0KLQotICAgIF9nZW5lcmF0ZU1ldHJpY1Nl
Y3Rpb25Sb3dzKGdyb3VwLCBwcmVmaXgsIGFsbG93TmVnYXRpdmVzLCBoaWdobGlnaHRPbkhvdmVy
KQotICAgIHsKLSAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotICAg
ICAgICBsZXQgbGlua3MgPSBncm91cC5saW5rcyA9IHt9OwotCi0gICAgICAgIGxldCBoYXNQcmVm
aXggPSBwcmVmaXggJiYgcHJlZml4Lmxlbmd0aDsKLSAgICAgICAgbGV0IHByb3BlcnR5TmFtZVBy
ZWZpeCA9IGhhc1ByZWZpeCA/IHByZWZpeCArICItIiA6ICIiOwotCi0gICAgICAgIGxldCB0b3Ag
PSBoYXNQcmVmaXggPyBwcmVmaXggKyAiVG9wIiA6ICJ0b3AiOwotICAgICAgICBsZXQgYm90dG9t
ID0gaGFzUHJlZml4ID8gcHJlZml4ICsgIkJvdHRvbSIgOiAiYm90dG9tIjsKLSAgICAgICAgbGV0
IGxlZnQgPSBoYXNQcmVmaXggPyBwcmVmaXggKyAiTGVmdCIgOiAibGVmdCI7Ci0gICAgICAgIGxl
dCByaWdodCA9IGhhc1ByZWZpeCA/IHByZWZpeCArICJSaWdodCIgOiAicmlnaHQiOwotCi0gICAg
ICAgIGxldCB2ZXJ0aWNhbCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBw
cm9wZXJ0aWVzW3RvcF0gPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChwcm9wZXJ0
eU5hbWVQcmVmaXggKyAidG9wIiwgV0kuVUlTdHJpbmcoIlRvcCIpLCB0aGlzLl9rZXl3b3Jkcy5i
b3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIGFsbG93TmVnYXRpdmVzKTsKLSAgICAgICAg
cHJvcGVydGllc1tib3R0b21dID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3gocHJv
cGVydHlOYW1lUHJlZml4ICsgImJvdHRvbSIsIFdJLlVJU3RyaW5nKCJCb3R0b20iKSwgdGhpcy5f
a2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCBhbGxvd05lZ2F0aXZlcywg
dHJ1ZSk7Ci0gICAgICAgIGxpbmtzWyJ2ZXJ0aWNhbCJdID0gbmV3IFdJLlZpc3VhbFN0eWxlUHJv
cGVydHlFZGl0b3JMaW5rKFtwcm9wZXJ0aWVzW3RvcF0sIHByb3BlcnRpZXNbYm90dG9tXV0sICJs
aW5rLXZlcnRpY2FsIik7Ci0KLSAgICAgICAgdmVydGljYWwuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzW3RvcF0uZWxlbWVudCk7Ci0gICAgICAgIHZlcnRpY2FsLmVsZW1lbnQuYXBwZW5k
Q2hpbGQobGlua3NbInZlcnRpY2FsIl0uZWxlbWVudCk7Ci0gICAgICAgIHZlcnRpY2FsLmVsZW1l
bnQuYXBwZW5kQ2hpbGQocHJvcGVydGllc1tib3R0b21dLmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBob3Jpem9udGFsID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3Bl
cnRpZXNbbGVmdF0gPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChwcm9wZXJ0eU5h
bWVQcmVmaXggKyAibGVmdCIsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIHRoaXMuX2tleXdvcmRzLmJv
eE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgYWxsb3dOZWdhdGl2ZXMpOwotICAgICAgICBw
cm9wZXJ0aWVzW3JpZ2h0XSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KHByb3Bl
cnR5TmFtZVByZWZpeCArICJyaWdodCIsIFdJLlVJU3RyaW5nKCJSaWdodCIpLCB0aGlzLl9rZXl3
b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIGFsbG93TmVnYXRpdmVzLCB0cnVl
KTsKLSAgICAgICAgbGlua3NbImhvcml6b250YWwiXSA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3Bl
cnR5RWRpdG9yTGluayhbcHJvcGVydGllc1tsZWZ0XSwgcHJvcGVydGllc1tyaWdodF1dLCAibGlu
ay1ob3Jpem9udGFsIik7Ci0KLSAgICAgICAgaG9yaXpvbnRhbC5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXNbbGVmdF0uZWxlbWVudCk7Ci0gICAgICAgIGhvcml6b250YWwuZWxlbWVudC5h
cHBlbmRDaGlsZChsaW5rc1siaG9yaXpvbnRhbCJdLmVsZW1lbnQpOwotICAgICAgICBob3Jpem9u
dGFsLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllc1tyaWdodF0uZWxlbWVudCk7Ci0KLSAg
ICAgICAgbGV0IGFsbExpbmtSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0gICAgICAg
IGxpbmtzWyJhbGwiXSA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluayhbcHJv
cGVydGllc1t0b3BdLCBwcm9wZXJ0aWVzW2JvdHRvbV0sIHByb3BlcnRpZXNbbGVmdF0sIHByb3Bl
cnRpZXNbcmlnaHRdXSwgImxpbmstYWxsIiwgW2xpbmtzWyJ2ZXJ0aWNhbCJdLCBsaW5rc1siaG9y
aXpvbnRhbCJdXSk7Ci0gICAgICAgIGFsbExpbmtSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChsaW5r
c1siYWxsIl0uZWxlbWVudCk7Ci0KLSAgICAgICAgaWYgKGhpZ2hsaWdodE9uSG92ZXIpIHsKLSAg
ICAgICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhwcm9wZXJ0aWVzW3RvcF0s
IHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMobGlu
a3NbInZlcnRpY2FsIl0sIHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91
c2VMaXN0ZW5lcnMocHJvcGVydGllc1tib3R0b21dLCBwcmVmaXgpOwotICAgICAgICAgICAgdGhp
cy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGxpbmtzWyJhbGwiXSwgcHJlZml4KTsKLSAgICAg
ICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhwcm9wZXJ0aWVzW2xlZnRdLCBw
cmVmaXgpOwotICAgICAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGxpbmtz
WyJob3Jpem9udGFsIl0sIHByZWZpeCk7Ci0gICAgICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91
c2VMaXN0ZW5lcnMocHJvcGVydGllc1tyaWdodF0sIHByZWZpeCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2ZXJ0aWNhbC5lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1ldHJpYy1zZWN0aW9uLXJvdyIp
OwotICAgICAgICBob3Jpem9udGFsLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibWV0cmljLXNlY3Rp
b24tcm93Iik7Ci0gICAgICAgIGFsbExpbmtSb3cuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtZXRy
aWMtc2VjdGlvbi1yb3ciKTsKLQotICAgICAgICByZXR1cm4gW3ZlcnRpY2FsLCBhbGxMaW5rUm93
LCBob3Jpem9udGFsXTsKLSAgICB9Ci0KLSAgICBfcG9wdWxhdGVQb3NpdGlvblNlY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLnBvc2l0aW9uOwotICAgICAg
ICBsZXQgcm93cyA9IHRoaXMuX2dlbmVyYXRlTWV0cmljU2VjdGlvblJvd3MoZ3JvdXAsIG51bGws
IHRydWUpOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAg
ICAgICAgbGV0IHBvc2l0aW9uVHlwZSA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBwcm9wZXJ0aWVzLnBvc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
cigicG9zaXRpb24iLCBXSS5VSVN0cmluZygiVHlwZSIpLCB7Ci0gICAgICAgICAgICBiYXNpYzog
WyJTdGF0aWMiLCAiUmVsYXRpdmUiLCAiQWJzb2x1dGUiLCAiRml4ZWQiXSwKLSAgICAgICAgICAg
IGFkdmFuY2VkOiBbIiBXZWJLaXQgU3RpY2t5Il0KLSAgICAgICAgfSk7Ci0gICAgICAgIHByb3Bl
cnRpZXMuekluZGV4ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInotaW5kZXgi
LCBXSS5VSVN0cmluZygiWi1JbmRleCIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgbnVsbCwg
dHJ1ZSk7Ci0KLSAgICAgICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy5wb3NpdGlvbi5lbGVtZW50KTsKLSAgICAgICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy56SW5kZXguZWxlbWVudCk7Ci0gICAgICAgIHBvc2l0aW9uVHlw
ZS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93Iik7Ci0K
LSAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0aW9uVHlwZSk7Ci0KLSAgICAgICAgZ3JvdXAuZGVm
YXVsdEdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyk7Ci0KLSAgICAgICAg
bGV0IHh5Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRp
ZXMueCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4IiwgV0kuVUlTdHJpbmco
IlgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVl
KTsKLSAgICAgICAgcHJvcGVydGllcy55ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRC
b3goInkiLCBXSS5VSVN0cmluZygiWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5f
dW5pdHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIHh5Um93LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy54LmVsZW1lbnQpOwotICAgICAgICB4eVJvdy5lbGVtZW50LmFwcGVuZENo
aWxkKHByb3BlcnRpZXMueS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgeDF5MVJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLngxID0gbmV3IFdJLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIngxIiwgV0kuVUlTdHJpbmcoIlgxIiksIHRoaXMuX2tl
eXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7Ci0gICAgICAgIHBy
b3BlcnRpZXMueTEgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieTEiLCBXSS5V
SVN0cmluZygiWTEiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1
bHRzLCB0cnVlKTsKLQotICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy54MS5lbGVtZW50KTsKLSAgICAgICAgeDF5MVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMueTEuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHgyeTJSb3cgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy54MiA9IG5ldyBXSS5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KCJ4MiIsIFdJLlVJU3RyaW5nKCJYMiIpLCB0aGlzLl9rZXl3b3Jk
cy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwotICAgICAgICBwcm9wZXJ0
aWVzLnkyID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkyIiwgV0kuVUlTdHJp
bmcoIlkyIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywg
dHJ1ZSk7Ci0KLSAgICAgICAgeDJ5MlJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
eDIuZWxlbWVudCk7Ci0gICAgICAgIHgyeTJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLnkyLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBjeGN5Um93ID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuY3ggPSBuZXcgV0kuVmlzdWFsU3R5bGVO
dW1iZXJJbnB1dEJveCgiY3giLCBXSS5VSVN0cmluZygiQ2VudGVyIFgiKSwgdGhpcy5fa2V5d29y
ZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKLSAgICAgICAgcHJvcGVy
dGllcy5jeSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJjeSIsIFdJLlVJU3Ry
aW5nKCJDZW50ZXIgWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVm
YXVsdHMsIHRydWUpOwotCi0gICAgICAgIGN4Y3lSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLmN4LmVsZW1lbnQpOwotICAgICAgICBjeGN5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
cHJvcGVydGllcy5jeS5lbGVtZW50KTsKLQotICAgICAgICBncm91cC5zdmdHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt4eVJvdywgeDF5MVJvdywgeDJ5MlJvdywgY3hjeVJvd10p
OwotCi0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2dyb3VwLmRlZmF1bHRH
cm91cCwgZ3JvdXAuc3ZnR3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZFBvc2l0aW9uVmFs
dWVzID0gWyJyZWxhdGl2ZSIsICJhYnNvbHV0ZSIsICJmaXhlZCIsICItd2Via2l0LXN0aWNreSJd
OwotICAgICAgICBwcm9wZXJ0aWVzLnpJbmRleC5hZGREZXBlbmRlbmN5KCJwb3NpdGlvbiIsIGFs
bG93ZWRQb3NpdGlvblZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMudG9wLmFkZERlcGVuZGVu
Y3koInBvc2l0aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGll
cy5yaWdodC5hZGREZXBlbmRlbmN5KCJwb3NpdGlvbiIsIGFsbG93ZWRQb3NpdGlvblZhbHVlcyk7
Ci0gICAgICAgIHByb3BlcnRpZXMuYm90dG9tLmFkZERlcGVuZGVuY3koInBvc2l0aW9uIiwgYWxs
b3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5sZWZ0LmFkZERlcGVuZGVu
Y3koInBvc2l0aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVzKTsKLSAgICB9Ci0KLSAgICBfcG9w
dWxhdGVGbG9hdFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3Jv
dXBzLmZsb2F0OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0K
LSAgICAgICAgbGV0IGZsb2F0Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAg
ICAgIHByb3BlcnRpZXMuZmxvYXQgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3Qo
ImZsb2F0IiwgV0kuVUlTdHJpbmcoIkZsb2F0IiksIFsiTGVmdCIsICJSaWdodCIsICJOb25lIl0p
OwotICAgICAgICBmbG9hdFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmxvYXQu
ZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGNsZWFyUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93OwotCi0gICAgICAgIHByb3BlcnRpZXMuY2xlYXIgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3
b3JkSWNvbkxpc3QoImNsZWFyIiwgV0kuVUlTdHJpbmcoIkNsZWFyIiksIFsiTGVmdCIsICJSaWdo
dCIsICJCb3RoIiwgIk5vbmUiXSk7Ci0gICAgICAgIGNsZWFyUm93LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5jbGVhci5lbGVtZW50KTsKLQotICAgICAgICBsZXQgZmxvYXRHcm91cCA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtmbG9hdFJvdywgY2xlYXJSb3ddKTsKLSAgICAg
ICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmxvYXRHcm91cF0pOwotICAgIH0KLQot
ICAgIF9wb3B1bGF0ZURpbWVuc2lvbnNTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91
cCA9IHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdy
b3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNXaWR0aCA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLndpZHRoID0gbmV3IFdJLlZp
c3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoIndpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRo
IiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAg
ICAgICAgZGltZW5zaW9uc1dpZHRoLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy53aWR0
aC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgZGltZW5zaW9uc0hlaWdodCA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmhlaWdodCA9IG5ldyBXSS5WaXN1
YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJoZWlnaHQiLCBXSS5VSVN0cmluZygiSGVpZ2h0
IiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7
Ci0KLSAgICAgICAgZGltZW5zaW9uc0hlaWdodC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMuaGVpZ2h0LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zUHJvcGVydGllcyA9
IFtwcm9wZXJ0aWVzLndpZHRoLCBwcm9wZXJ0aWVzLmhlaWdodF07Ci0gICAgICAgIGxldCBkaW1l
bnNpb25zUmVndWxhckdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2RpbWVuc2lv
bnNXaWR0aCwgZGltZW5zaW9uc0hlaWdodF0pOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zTWlu
V2lkdGggPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5t
aW5XaWR0aCA9IG5ldyBXSS5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJtaW4td2lk
dGgiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBkaW1lbnNpb25zTWluV2lkdGguZWxlbWVudC5h
cHBlbmRDaGlsZChwcm9wZXJ0aWVzLm1pbldpZHRoLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBk
aW1lbnNpb25zTWluSGVpZ2h0ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAg
IHByb3BlcnRpZXMubWluSGVpZ2h0ID0gbmV3IFdJLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJT
bGlkZXIoIm1pbi1oZWlnaHQiLCBXSS5VSVN0cmluZygiSGVpZ2h0IiksIHRoaXMuX2tleXdvcmRz
LmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgZGltZW5zaW9uc01p
bkhlaWdodC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubWluSGVpZ2h0LmVsZW1lbnQp
OwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zTWluUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLm1p
bldpZHRoLCBwcm9wZXJ0aWVzLm1pbkhlaWdodF07Ci0gICAgICAgIGxldCBkaW1lbnNpb25zTWlu
R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGltZW5zaW9uc01pbldpZHRoLCBk
aW1lbnNpb25zTWluSGVpZ2h0XSk7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNNYXhLZXl3b3Jk
cyA9IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdCgiTm9uZSIpOwotICAgICAgICBsZXQg
ZGltZW5zaW9uc01heFdpZHRoID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAg
IHByb3BlcnRpZXMubWF4V2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNs
aWRlcigibWF4LXdpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIGRpbWVuc2lvbnNNYXhLZXl3
b3JkcywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIGRpbWVuc2lvbnNNYXhXaWR0
aC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubWF4V2lkdGguZWxlbWVudCk7Ci0KLSAg
ICAgICAgbGV0IGRpbWVuc2lvbnNNYXhIZWlnaHQgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7
Ci0KLSAgICAgICAgcHJvcGVydGllcy5tYXhIZWlnaHQgPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxh
dGl2ZU51bWJlclNsaWRlcigibWF4LWhlaWdodCIsIFdJLlVJU3RyaW5nKCJIZWlnaHQiKSwgZGlt
ZW5zaW9uc01heEtleXdvcmRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgZGlt
ZW5zaW9uc01heEhlaWdodC5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubWF4SGVpZ2h0
LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBkaW1lbnNpb25zTWF4UHJvcGVydGllcyA9IFtwcm9w
ZXJ0aWVzLm1heFdpZHRoLCBwcm9wZXJ0aWVzLm1heEhlaWdodF07Ci0gICAgICAgIGxldCBkaW1l
bnNpb25zTWF4R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGltZW5zaW9uc01h
eFdpZHRoLCBkaW1lbnNpb25zTWF4SGVpZ2h0XSk7Ci0KLSAgICAgICAgbGV0IGRpbWVuc2lvbnNU
YWJDb250cm9sbGVyID0gbmV3IFdJLlZpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdyh7Ci0g
ICAgICAgICAgICAiZGVmYXVsdCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIkRlZmF1bHQiKSwgZWxl
bWVudDogZGltZW5zaW9uc1JlZ3VsYXJHcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBkaW1lbnNp
b25zUHJvcGVydGllc30sCi0gICAgICAgICAgICAibWluIjoge3RpdGxlOiBXSS5VSVN0cmluZygi
TWluIiksIGVsZW1lbnQ6IGRpbWVuc2lvbnNNaW5Hcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBk
aW1lbnNpb25zTWluUHJvcGVydGllc30sCi0gICAgICAgICAgICAibWF4Ijoge3RpdGxlOiBXSS5V
SVN0cmluZygiTWF4IiksIGVsZW1lbnQ6IGRpbWVuc2lvbnNNYXhHcm91cC5lbGVtZW50LCBwcm9w
ZXJ0aWVzOiBkaW1lbnNpb25zTWF4UHJvcGVydGllc30KLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
bGV0IGhpZ2hsaWdodE1vZGUgPSAiY29udGVudCI7Ci0gICAgICAgIHRoaXMuX2FkZE1ldHJpY3NN
b3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLndpZHRoLCBoaWdobGlnaHRNb2RlKTsKLSAg
ICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMuaGVp
Z2h0LCBoaWdobGlnaHRNb2RlKTsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVu
ZXJzKGdyb3VwLnByb3BlcnRpZXMubWluV2lkdGgsIGhpZ2hsaWdodE1vZGUpOwotICAgICAgICB0
aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5taW5IZWlnaHQs
IGhpZ2hsaWdodE1vZGUpOwotICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMo
Z3JvdXAucHJvcGVydGllcy5tYXhXaWR0aCwgaGlnaGxpZ2h0TW9kZSk7Ci0gICAgICAgIHRoaXMu
X2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLm1heEhlaWdodCwgaGln
aGxpZ2h0TW9kZSk7Ci0KLSAgICAgICAgZ3JvdXAuZGVmYXVsdEdyb3VwID0gbmV3IFdJLkRldGFp
bHNTZWN0aW9uR3JvdXAoW2RpbWVuc2lvbnNUYWJDb250cm9sbGVyLCBkaW1lbnNpb25zUmVndWxh
ckdyb3VwLCBkaW1lbnNpb25zTWluR3JvdXAsIGRpbWVuc2lvbnNNYXhHcm91cF0pOwotCi0gICAg
ICAgIGxldCByUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3Bl
cnRpZXMuciA9IG5ldyBXSS5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyIiwgV0ku
VUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMu
ZGVmYXVsdHMpOwotCi0gICAgICAgIHJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LnIuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHJ4Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93OwotCi0gICAgICAgIHByb3BlcnRpZXMucnggPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2
ZU51bWJlclNsaWRlcigicngiLCBXSS5VSVN0cmluZygiUmFkaXVzIFgiKSwgdGhpcy5fa2V5d29y
ZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICByeFJvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMucnguZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHJ5
Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMucnkg
PSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigicnkiLCBXSS5VSVN0cmlu
ZygiUmFkaXVzIFkiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1
bHRzKTsKLQotICAgICAgICByeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMucnku
ZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rp
b25Hcm91cChbclJvdywgcnhSb3csIHJ5Um93XSk7Ci0KLSAgICAgICAgdGhpcy5fcG9wdWxhdGVT
ZWN0aW9uKGdyb3VwLCBbZ3JvdXAuZGVmYXVsdEdyb3VwLCBncm91cC5zdmdHcm91cF0pOwotICAg
IH0KLQotICAgIF9wb3B1bGF0ZU1hcmdpblNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdy
b3VwID0gdGhpcy5fZ3JvdXBzLm1hcmdpbjsKLSAgICAgICAgbGV0IHJvd3MgPSB0aGlzLl9nZW5l
cmF0ZU1ldHJpY1NlY3Rpb25Sb3dzKGdyb3VwLCAibWFyZ2luIiwgdHJ1ZSwgdHJ1ZSk7Ci0gICAg
ICAgIGxldCBtYXJnaW5Hcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpOwot
ICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFttYXJnaW5Hcm91cF0pOwotICAg
IH0KLQotICAgIF9wb3B1bGF0ZVBhZGRpbmdTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBn
cm91cCA9IHRoaXMuX2dyb3Vwcy5wYWRkaW5nOwotICAgICAgICBsZXQgcm93cyA9IHRoaXMuX2dl
bmVyYXRlTWV0cmljU2VjdGlvblJvd3MoZ3JvdXAsICJwYWRkaW5nIiwgZmFsc2UsIHRydWUpOwot
ICAgICAgICBsZXQgcGFkZGluZ0dyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAocm93
cyk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3BhZGRpbmdHcm91cF0p
OwotICAgIH0KLQotICAgIF9wb3B1bGF0ZUZsZXhib3hTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5mbGV4Ym94OwotICAgICAgICBsZXQgcHJvcGVydGll
cyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGZsZXhPcmRlclJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLm9yZGVyID0gbmV3IFdJ
LlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm9yZGVyIiwgV0kuVUlTdHJpbmcoIk9yZGVyIiks
IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy5mbGV4QmFzaXMg
PSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgiZmxleC1iYXNpcyIsIFdJLlVJU3Ry
aW5nKCJCYXNpcyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVs
dHMsIHRydWUpOwotCi0gICAgICAgIGZsZXhPcmRlclJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMub3JkZXIuZWxlbWVudCk7Ci0gICAgICAgIGZsZXhPcmRlclJvdy5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMuZmxleEJhc2lzLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBm
bGV4U2l6ZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0
aWVzLmZsZXhHcm93ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImZsZXgtZ3Jv
dyIsIFdJLlVJU3RyaW5nKCJHcm93IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzKTsKLSAgICAg
ICAgcHJvcGVydGllcy5mbGV4U2hyaW5rID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRC
b3goImZsZXgtc2hyaW5rIiwgV0kuVUlTdHJpbmcoIlNocmluayIpLCB0aGlzLl9rZXl3b3Jkcy5k
ZWZhdWx0cyk7Ci0KLSAgICAgICAgZmxleFNpemVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLmZsZXhHcm93LmVsZW1lbnQpOwotICAgICAgICBmbGV4U2l6ZVJvdy5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMuZmxleFNocmluay5lbGVtZW50KTsKLQotICAgICAgICBsZXQg
ZmxleEZsb3dSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVy
dGllcy5mbGV4RGlyZWN0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiZmxl
eC1kaXJlY3Rpb24iLCBXSS5VSVN0cmluZygiRGlyZWN0aW9uIiksIHRoaXMuX2tleXdvcmRzLmRl
ZmF1bHRzLmNvbmNhdChbIlJvdyIsICJSb3cgUmV2ZXJzZSIsICJDb2x1bW4iLCAiQ29sdW1uIFJl
dmVyc2UiXSkpOwotICAgICAgICBwcm9wZXJ0aWVzLmZsZXhXcmFwID0gbmV3IFdJLlZpc3VhbFN0
eWxlS2V5d29yZFBpY2tlcigiZmxleC13cmFwIiwgV0kuVUlTdHJpbmcoIldyYXAiKSwgdGhpcy5f
a2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiV3JhcCIsICJXcmFwIFJldmVyc2UiLCAiTm93cmFw
Il0pKTsKLQotICAgICAgICBmbGV4Rmxvd1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMuZmxleERpcmVjdGlvbi5lbGVtZW50KTsKLSAgICAgICAgZmxleEZsb3dSb3cuZWxlbWVudC5h
cHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZsZXhXcmFwLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBm
bGV4Ym94R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmxleE9yZGVyUm93LCBm
bGV4U2l6ZVJvdywgZmxleEZsb3dSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9u
KGdyb3VwLCBbZmxleGJveEdyb3VwXSk7Ci0KLSAgICAgICAgbGV0IGFsbG93ZWREaXNwbGF5VmFs
dWVzID0gWyJmbGV4IiwgImlubGluZS1mbGV4IiwgIi13ZWJraXQtYm94IiwgIi13ZWJraXQtaW5s
aW5lLWJveCJdOwotICAgICAgICBwcm9wZXJ0aWVzLm9yZGVyLmFkZERlcGVuZGVuY3koImRpc3Bs
YXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuZmxleEJhc2lz
LmFkZERlcGVuZGVuY3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAg
IHByb3BlcnRpZXMuZmxleEdyb3cuYWRkRGVwZW5kZW5jeSgiZGlzcGxheSIsIGFsbG93ZWREaXNw
bGF5VmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5mbGV4U2hyaW5rLmFkZERlcGVuZGVuY3ko
ImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuZmxl
eERpcmVjdGlvbi5hZGREZXBlbmRlbmN5KCJkaXNwbGF5IiwgYWxsb3dlZERpc3BsYXlWYWx1ZXMp
OwotICAgICAgICBwcm9wZXJ0aWVzLmZsZXhXcmFwLmFkZERlcGVuZGVuY3koImRpc3BsYXkiLCBh
bGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlQWxpZ25tZW50U2Vj
dGlvbigpCi0gICAgewotICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMuYWxpZ25tZW50
OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0gICAgICAgIGxl
dCBhbGlnbm1lbnRLZXl3b3JkcyA9IFsiSW5pdGlhbCIsICJVbnNldCIsICJSZXZlcnQiLCAiQXV0
byIsICJGbGV4IFN0YXJ0IiwgIkZsZXggRW5kIiwgIkNlbnRlciIsICJTdHJldGNoIl07Ci0gICAg
ICAgIGxldCBhZHZhbmNlZEFsaWdubWVudEtleXdvcmRzID0gWyJTdGFydCIsICJFbmQiLCAiTGVm
dCIsICJSaWdodCIsICJCYXNlbGluZSIsICJMYXN0IEJhc2VsaW5lIl07Ci0KLSAgICAgICAgbGV0
IGNvbnRlbnRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0gICAgICAgIGxldCBjb250
ZW50S2V5d29yZHMgPSB7Ci0gICAgICAgICAgICBiYXNpYzogYWxpZ25tZW50S2V5d29yZHMuY29u
Y2F0KFsiU3BhY2UgQmV0d2VlbiIsICJTcGFjZSBBcm91bmQiXSksCi0gICAgICAgICAgICBhZHZh
bmNlZDogYWR2YW5jZWRBbGlnbm1lbnRLZXl3b3Jkcy5jb25jYXQoWyJTcGFjZSBFdmVubHkiXSkK
LSAgICAgICAgfTsKLQotICAgICAgICBwcm9wZXJ0aWVzLmp1c3RpZnlDb250ZW50ID0gbmV3IFdJ
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigianVzdGlmeS1jb250ZW50IiwgV0kuVUlTdHJpbmco
Ikhvcml6b250YWwiKSwgY29udGVudEtleXdvcmRzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbGln
bkNvbnRlbnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbGlnbi1jb250ZW50
IiwgV0kuVUlTdHJpbmcoIlZlcnRpY2FsIiksIGNvbnRlbnRLZXl3b3Jkcyk7Ci0KLSAgICAgICAg
Y29udGVudFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuanVzdGlmeUNvbnRlbnQu
ZWxlbWVudCk7Ci0gICAgICAgIGNvbnRlbnRSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLmFsaWduQ29udGVudC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgaXRlbXNSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0gICAgICAgIGxldCBpdGVtS2V5d29yZHMgPSB7Ci0gICAg
ICAgICAgICBiYXNpYzogYWxpZ25tZW50S2V5d29yZHMsCi0gICAgICAgICAgICBhZHZhbmNlZDog
WyJTZWxmIFN0YXJ0IiwgIlNlbGYgRW5kIl0uY29uY2F0KGFkdmFuY2VkQWxpZ25tZW50S2V5d29y
ZHMpCi0gICAgICAgIH07Ci0KLSAgICAgICAgcHJvcGVydGllcy5hbGlnbkl0ZW1zID0gbmV3IFdJ
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiYWxpZ24taXRlbXMiLCBXSS5VSVN0cmluZygiQ2hp
bGRyZW4iKSwgaXRlbUtleXdvcmRzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbGlnblNlbGYgPSBu
ZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbGlnbi1zZWxmIiwgV0kuVUlTdHJpbmco
IlNlbGYiKSwgaXRlbUtleXdvcmRzKTsKLQotICAgICAgICBpdGVtc1Jvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMuYWxpZ25JdGVtcy5lbGVtZW50KTsKLSAgICAgICAgaXRlbXNSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmFsaWduU2VsZi5lbGVtZW50KTsKLQotICAg
ICAgICBsZXQgYWxpZ25tZW50R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbY29u
dGVudFJvdywgaXRlbXNSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3Vw
LCBbYWxpZ25tZW50R3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZERpc3BsYXlWYWx1ZXMg
PSBbImZsZXgiLCAiaW5saW5lLWZsZXgiLCAiLXdlYmtpdC1ib3giLCAiLXdlYmtpdC1pbmxpbmUt
Ym94Il07Ci0gICAgICAgIHByb3BlcnRpZXMuanVzdGlmeUNvbnRlbnQuYWRkRGVwZW5kZW5jeSgi
ZGlzcGxheSIsIGFsbG93ZWREaXNwbGF5VmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbGln
bkNvbnRlbnQuYWRkRGVwZW5kZW5jeSgiZGlzcGxheSIsIGFsbG93ZWREaXNwbGF5VmFsdWVzKTsK
LSAgICAgICAgcHJvcGVydGllcy5hbGlnbkl0ZW1zLmFkZERlcGVuZGVuY3koImRpc3BsYXkiLCBh
bGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYWxpZ25TZWxmLmFkZERl
cGVuZGVuY3koImRpc3BsYXkiLCBhbGxvd2VkRGlzcGxheVZhbHVlcyk7Ci0gICAgfQotCi0gICAg
X3BvcHVsYXRlQ29udGVudFNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhp
cy5fZ3JvdXBzLmNvbnRlbnQ7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVy
dGllczsKLQotICAgICAgICBsZXQgY29udGVudFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmNvbnRlbnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVCYXNp
Y0lucHV0KCJjb250ZW50IiwgbnVsbCwgV0kuVUlTdHJpbmcoIkVudGVyIHZhbHVlIikpOwotCi0g
ICAgICAgIGNvbnRlbnRSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmNvbnRlbnQu
ZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGNvbnRlbnRHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvbkdyb3VwKFtjb250ZW50Um93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihn
cm91cCwgW2NvbnRlbnRHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRleHRTdHlsZVNl
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLnRleHRTdHls
ZTsKLSAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAg
IGxldCB0ZXh0QXBwZWFyYW5jZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAg
ICAgICBwcm9wZXJ0aWVzLmNvbG9yID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIoImNv
bG9yIiwgV0kuVUlTdHJpbmcoIkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVzLnRleHREaXJl
Y3Rpb24gPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJkaXJlY3Rpb24iLCBXSS5V
SVN0cmluZygiRGlyZWN0aW9uIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIkxU
UiIsICJSVEwiXSkpOwotCi0gICAgICAgIHRleHRBcHBlYXJhbmNlUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5jb2xvci5lbGVtZW50KTsKLSAgICAgICAgdGV4dEFwcGVhcmFuY2VS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnRleHREaXJlY3Rpb24uZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IHRleHRBbGlnblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsK
LQotICAgICAgICBwcm9wZXJ0aWVzLnRleHRBbGlnbiA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdv
cmRJY29uTGlzdCgidGV4dC1hbGlnbiIsIFdJLlVJU3RyaW5nKCJBbGlnbiIpLCBbIkxlZnQiLCAi
Q2VudGVyIiwgIlJpZ2h0IiwgIkp1c3RpZnkiXSk7Ci0KLSAgICAgICAgdGV4dEFsaWduUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy50ZXh0QWxpZ24uZWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IHRleHRUcmFuc2Zvcm1Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAg
ICAgICAgcHJvcGVydGllcy50ZXh0VHJhbnNmb3JtID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29y
ZEljb25MaXN0KCJ0ZXh0LXRyYW5zZm9ybSIsIFdJLlVJU3RyaW5nKCJUcmFuc2Zvcm0iKSwgWyJD
YXBpdGFsaXplIiwgIlVwcGVyY2FzZSIsICJMb3dlcmNhc2UiLCAiTm9uZSJdKTsKLQotICAgICAg
ICB0ZXh0VHJhbnNmb3JtUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy50ZXh0VHJh
bnNmb3JtLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCB0ZXh0RGVjb3JhdGlvblJvdyA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnRleHREZWNvcmF0aW9u
ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0KCJ0ZXh0LWRlY29yYXRpb24iLCBX
SS5VSVN0cmluZygiRGVjb3JhdGlvbiIpLCBbIlVuZGVybGluZSIsICJMaW5lIFRocm91Z2giLCAi
T3ZlcmxpbmUiLCAiTm9uZSJdKTsKLQotICAgICAgICB0ZXh0RGVjb3JhdGlvblJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMudGV4dERlY29yYXRpb24uZWxlbWVudCk7Ci0KLSAgICAg
ICAgZ3JvdXAuYXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5j
b2xvcl07Ci0KLSAgICAgICAgbGV0IHRleHRTdHlsZUdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uR3JvdXAoW3RleHRBcHBlYXJhbmNlUm93LCB0ZXh0QWxpZ25Sb3csIHRleHRUcmFuc2Zvcm1S
b3csIHRleHREZWNvcmF0aW9uUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihn
cm91cCwgW3RleHRTdHlsZUdyb3VwXSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlRm9udFNlY3Rp
b24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZvbnQ7Ci0gICAg
ICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAgICAgICBsZXQgZm9u
dEZhbWlseVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0
aWVzLmZvbnRGYW1pbHkgPSBuZXcgV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5TGlzdEVkaXRvcigi
Zm9udC1mYW1pbHkiLCBXSS5VSVN0cmluZygiRmFtaWx5IikpOwotCi0gICAgICAgIGZvbnRGYW1p
bHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRGYW1pbHkuZWxlbWVudCk7
Ci0KLSAgICAgICAgbGV0IGZvbnRTaXplUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93Owot
Ci0gICAgICAgIHByb3BlcnRpZXMuZm9udFNpemUgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJ
bnB1dEJveCgiZm9udC1zaXplIiwgV0kuVUlTdHJpbmcoIlNpemUiKSwgdGhpcy5fa2V5d29yZHMu
ZGVmYXVsdHMuY29uY2F0KFsiTGFyZ2VyIiwgIlhYIExhcmdlIiwgIlggTGFyZ2UiLCAiTGFyZ2Ui
LCAiTWVkaXVtIiwgIlNtYWxsIiwgIlggU21hbGwiLCAiWFggU21hbGwiLCAiU21hbGxlciJdKSwg
dGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIHByb3BlcnRpZXMuZm9udFdlaWdodCA9
IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImZvbnQtd2VpZ2h0IiwgV0kuVUlTdHJp
bmcoIldlaWdodCIpLCB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29yZHMuZGVmYXVs
dHMuY29uY2F0KFsiQm9sZGVyIiwgIkJvbGQiLCAiTm9ybWFsIiwgIkxpZ2h0ZXIiXSksCi0gICAg
ICAgICAgICBhZHZhbmNlZDogWyIxMDAiLCAiMjAwIiwgIjMwMCIsICI0MDAiLCAiNTAwIiwgIjYw
MCIsICI3MDAiLCAiODAwIiwgIjkwMCJdCi0gICAgICAgIH0pOwotCi0gICAgICAgIGZvbnRTaXpl
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5mb250U2l6ZS5lbGVtZW50KTsKLSAg
ICAgICAgZm9udFNpemVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRXZWln
aHQuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGZvbnRTdHlsZVJvdyA9IG5ldyBXSS5EZXRhaWxz
U2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmZvbnRTdHlsZSA9IG5ldyBXSS5WaXN1
YWxTdHlsZUtleXdvcmRJY29uTGlzdCgiZm9udC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIp
LCBbIkl0YWxpYyIsICJOb3JtYWwiXSk7Ci0gICAgICAgIHByb3BlcnRpZXMuZm9udEZlYXR1cmVT
ZXR0aW5ncyA9IG5ldyBXSS5WaXN1YWxTdHlsZUJhc2ljSW5wdXQoImZvbnQtZmVhdHVyZS1zZXR0
aW5ncyIsIFdJLlVJU3RyaW5nKCJGZWF0dXJlcyIpLCBXSS5VSVN0cmluZygiRW50ZXIgVGFnIikp
OwotCi0gICAgICAgIGZvbnRTdHlsZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
Zm9udFN0eWxlLmVsZW1lbnQpOwotICAgICAgICBmb250U3R5bGVSb3cuZWxlbWVudC5hcHBlbmRD
aGlsZChwcm9wZXJ0aWVzLmZvbnRGZWF0dXJlU2V0dGluZ3MuZWxlbWVudCk7Ci0KLSAgICAgICAg
Z3JvdXAuYXV0b2NvbXBsZXRlQ29tcGF0aWJsZVByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5mb250
RmFtaWx5XTsKLSAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3Bl
cnRpZXMuZm9udEZhbWlseV07Ci0KLSAgICAgICAgbGV0IGZvbnRHcm91cCA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvbkdyb3VwKFtmb250RmFtaWx5Um93LCBmb250U2l6ZVJvdywgZm9udFN0eWxlUm93
XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2ZvbnRHcm91cF0pOwot
ICAgIH0KLQotICAgIF9wb3B1bGF0ZUZvbnRWYXJpYW50c1NlY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZvbnRWYXJpYW50czsKLSAgICAgICAgbGV0IHBy
b3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBhbHRlcm5hdGVzUm93
ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuZm9udFZh
cmlhbnRBbHRlcm5hdGVzID0gbmV3IFdJLlZpc3VhbFN0eWxlQmFzaWNJbnB1dCgiZm9udC12YXJp
YW50LWFsdGVybmF0ZXMiLCBXSS5VSVN0cmluZygiQWx0ZXJuYXRlcyIpLCBXSS5VSVN0cmluZygi
RW50ZXIgVmFsdWUiKSk7Ci0KLSAgICAgICAgYWx0ZXJuYXRlc1Jvdy5lbGVtZW50LmFwcGVuZENo
aWxkKHByb3BlcnRpZXMuZm9udFZhcmlhbnRBbHRlcm5hdGVzLmVsZW1lbnQpOwotCi0gICAgICAg
IGxldCBwb3NpdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBw
cm9wZXJ0aWVzLmZvbnRWYXJpYW50UG9zaXRpb24gPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3Jk
UGlja2VyKCJmb250LXZhcmlhbnQtcG9zaXRpb24iLCBXSS5VSVN0cmluZygiUG9zaXRpb24iKSwg
dGhpcy5fa2V5d29yZHMubm9ybWFsLmNvbmNhdChbIlN1YiIsICJTdXBlciJdKSk7Ci0KLSAgICAg
ICAgcG9zaXRpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRWYXJpYW50
UG9zaXRpb24uZWxlbWVudCk7Ci0KLSAgICAgICAgcHJvcGVydGllcy5mb250VmFyaWFudENhcHMg
PSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJmb250LXZhcmlhbnQtY2FwcyIsIFdJ
LlVJU3RyaW5nKCJDYXBzIiksIHRoaXMuX2tleXdvcmRzLm5vcm1hbC5jb25jYXQoWyJOb25lIiwg
IlNtYWxsIENhcHMiLCAiQWxsIFNtYWxsIENhcHMiLCAiUGV0aXRlIENhcHMiLCAiQWxsIFBldGl0
ZSBDYXBzIiwgIlVuaWNhc2UiLCAiVGl0bGluZyBDYXBzIl0pKTsKLQotICAgICAgICBwb3NpdGlv
blJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZm9udFZhcmlhbnRDYXBzLmVsZW1l
bnQpOwotCi0gICAgICAgIGxldCBsaWdhdHVyZXNSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25S
b3c7Ci0KLSAgICAgICAgLy8gRklYTUUgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTUzNjQ1PiBBZGQg
dG9rZW4gYmFzZWQgZWRpdG9yIGZvciBWaXN1YWwgU2lkZWJhcgotICAgICAgICBwcm9wZXJ0aWVz
LmZvbnRWYXJpYW50TGlnYXR1cmVzID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigi
Zm9udC12YXJpYW50LWxpZ2F0dXJlcyIsIFdJLlVJU3RyaW5nKCJMaWdhdHVyZXMiKSwgdGhpcy5f
a2V5d29yZHMubm9ybWFsLmNvbmNhdChbIk5vbmUiLCAiQ29tbW9uIExpZ2F0dXJlcyIsICJObyBD
b21tb24gTGlnYXR1cmVzIiwgIkRpc2NyZXRpb25hcnkgTGlnYXR1cmVzIiwgIk5vIERpc2NyZXRp
b25hcnkgTGlnYXR1cmVzIiwgIkhpc3RvcmljYWwgTGlnYXR1cmVzIiwgIk5vIEhpc3RvcmljYWwg
TGlnYXR1cmVzIiwgIkNvbnRleHR1YWwiLCAiTm8gQ29udGV4dHVhbCJdKSk7Ci0KLSAgICAgICAg
bGlnYXR1cmVzUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5mb250VmFyaWFudExp
Z2F0dXJlcy5lbGVtZW50KTsKLQotICAgICAgICBwcm9wZXJ0aWVzLmZvbnRWYXJpYW50TnVtZXJp
YyA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImZvbnQtdmFyaWFudC1udW1lcmlj
IiwgV0kuVUlTdHJpbmcoIk51bWVyaWMiKSwgdGhpcy5fa2V5d29yZHMubm9ybWFsLmNvbmNhdChb
Ik5vbmUiLCAiT3JkaW5hbCIsICJTbGFzaGVkIFplcm8iLCAiTGluaW5nIE51bXMiLCAiT2xkc3R5
bGUgTnVtcyIsICJQcm9wb3J0aW9uYWwgTnVtcyIsICJUYWJ1bGFyIE51bXMiLCAiRGlhZ29uYWwg
RnJhY3Rpb25zIiwgIlN0YWNrZWQgRnJhY3Rpb25zIl0pKTsKLQotICAgICAgICBsaWdhdHVyZXNS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZvbnRWYXJpYW50TnVtZXJpYy5lbGVt
ZW50KTsKLQotICAgICAgICBsZXQgdmFyaWFudHNHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
bkdyb3VwKFthbHRlcm5hdGVzUm93LCBwb3NpdGlvblJvdywgbGlnYXR1cmVzUm93XSk7Ci0gICAg
ICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3ZhcmlhbnRzR3JvdXBdKTsKLSAgICB9
Ci0KLSAgICBfcG9wdWxhdGVUZXh0U3BhY2luZ1NlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0
IGdyb3VwID0gdGhpcy5fZ3JvdXBzLnRleHRTcGFjaW5nOwotICAgICAgICBsZXQgcHJvcGVydGll
cyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IHRleHRMYXlvdXRSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5saW5lSGVpZ2h0ID0g
bmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImxpbmUtaGVpZ2h0IiwgV0kuVUlTdHJp
bmcoIkhlaWdodCIpLCB0aGlzLl9rZXl3b3Jkcy5ub3JtYWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRz
KTsKLSAgICAgICAgcHJvcGVydGllcy52ZXJ0aWNhbEFsaWduID0gbmV3IFdJLlZpc3VhbFN0eWxl
TnVtYmVySW5wdXRCb3goInZlcnRpY2FsLWFsaWduIiwgV0kuVUlTdHJpbmcoIkFsaWduIiksIFsi
QmFzZWxpbmUiLCAiQm90dG9tIl0uY29uY2F0KHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCBbIk1p
ZGRsZSIsICJTdWIiLCAiU3VwZXIiLCAiVGV4dCBCb3R0b20iLCAiVGV4dCBUb3AiLCAiVG9wIl0p
LCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgdGV4dExheW91dFJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubGluZUhlaWdodC5lbGVtZW50KTsKLSAgICAgICAgdGV4
dExheW91dFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMudmVydGljYWxBbGlnbi5l
bGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNwYWNpbmdSb3cgPSBuZXcgV0kuRGV0YWlsc1Nl
Y3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5sZXR0ZXJTcGFjaW5nID0gbmV3IFdJLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImxldHRlci1zcGFjaW5nIiwgV0kuVUlTdHJpbmcoIkxl
dHRlciIpLCB0aGlzLl9rZXl3b3Jkcy5ub3JtYWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLSAg
ICAgICAgcHJvcGVydGllcy53b3JkU3BhY2luZyA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklu
cHV0Qm94KCJ3b3JkLXNwYWNpbmciLCBXSS5VSVN0cmluZygiV29yZCIpLCB0aGlzLl9rZXl3b3Jk
cy5ub3JtYWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICB0ZXh0U3BhY2luZ1Jv
dy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMubGV0dGVyU3BhY2luZy5lbGVtZW50KTsK
LSAgICAgICAgdGV4dFNwYWNpbmdSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLndv
cmRTcGFjaW5nLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCB0ZXh0V2hpdGVzcGFjZVJvdyA9IG5l
dyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnRleHRJbmRlbnQg
PSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgidGV4dC1pbmRlbnQiLCBXSS5VSVN0
cmluZygiSW5kZW50IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCB0aGlzLl91bml0cy5kZWZh
dWx0cyk7Ci0gICAgICAgIHByb3BlcnRpZXMud2hpdGVTcGFjZSA9IG5ldyBXSS5WaXN1YWxTdHls
ZUtleXdvcmRQaWNrZXIoIndoaXRlLXNwYWNlIiwgV0kuVUlTdHJpbmcoIldoaXRlc3BhY2UiKSwg
dGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9ybWFsIiwgIk5vd3JhcCIsICJQcmUi
LCAiUHJlIExpbmUiLCAiUHJlIFdyYXAiXSkpOwotCi0gICAgICAgIHRleHRXaGl0ZXNwYWNlUm93
LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy50ZXh0SW5kZW50LmVsZW1lbnQpOwotICAg
ICAgICB0ZXh0V2hpdGVzcGFjZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMud2hp
dGVTcGFjZS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNwYWNpbmdHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0ZXh0TGF5b3V0Um93LCB0ZXh0U3BhY2luZ1JvdywgdGV4
dFdoaXRlc3BhY2VSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBb
dGV4dFNwYWNpbmdHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRleHRTaGFkb3dTZWN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy50ZXh0U2hhZG93
OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAg
bGV0IHRleHRTaGFkb3dTaXppbmcgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAg
ICAgbGV0IHRleHRTaGFkb3dIID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInRl
eHQtc2hhZG93IiwgV0kuVUlTdHJpbmcoIkhvcml6b250YWwiKSwgbnVsbCwgdGhpcy5fdW5pdHMu
ZGVmYXVsdHNTYW5zUGVyY2VudCk7Ci0gICAgICAgIGxldCB0ZXh0U2hhZG93ViA9IG5ldyBXSS5W
aXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJWZXJ0
aWNhbCIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50KTsKLQotICAgICAg
ICB0ZXh0U2hhZG93U2l6aW5nLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGV4dFNoYWRvd0guZWxlbWVu
dCk7Ci0gICAgICAgIHRleHRTaGFkb3dTaXppbmcuZWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0U2hh
ZG93Vi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdGV4dFNoYWRvd1N0eWxlID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCB0ZXh0U2hhZG93Q29sb3IgPSBuZXcgV0ku
VmlzdWFsU3R5bGVDb2xvclBpY2tlcigidGV4dC1zaGFkb3ciLCBXSS5VSVN0cmluZygiQ29sb3Ii
KSk7Ci0gICAgICAgIGxldCB0ZXh0U2hhZG93Qmx1ciA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJl
cklucHV0Qm94KCJ0ZXh0LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJCbHVyIiksIG51bGwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzU2Fuc1BlcmNlbnQpOwotICAgICAgICB0ZXh0U2hhZG93Qmx1ci5vcHRp
b25hbFByb3BlcnR5ID0gdHJ1ZTsKLQotICAgICAgICB0ZXh0U2hhZG93U3R5bGUuZWxlbWVudC5h
cHBlbmRDaGlsZCh0ZXh0U2hhZG93Q29sb3IuZWxlbWVudCk7Ci0gICAgICAgIHRleHRTaGFkb3dT
dHlsZS5lbGVtZW50LmFwcGVuZENoaWxkKHRleHRTaGFkb3dCbHVyLmVsZW1lbnQpOwotCi0gICAg
ICAgIHByb3BlcnRpZXMudGV4dFNoYWRvdyA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5Q29t
YmluZXIoInRleHQtc2hhZG93IiwgW3RleHRTaGFkb3dILCB0ZXh0U2hhZG93ViwgdGV4dFNoYWRv
d0JsdXIsIHRleHRTaGFkb3dDb2xvcl0pOwotCi0gICAgICAgIGdyb3VwLmF1dG9jb21wbGV0ZUNv
bXBhdGlibGVQcm9wZXJ0aWVzID0gW3RleHRTaGFkb3dDb2xvcl07Ci0KLSAgICAgICAgbGV0IHRl
eHRTaGFkb3dHcm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFt0ZXh0U2hhZG93U2l6
aW5nLCB0ZXh0U2hhZG93U3R5bGVdKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdy
b3VwLCBbdGV4dFNoYWRvd0dyb3VwXSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlRmlsbFNlY3Rp
b24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZpbGw7Ci0gICAg
ICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAgICAgICBsZXQgZmls
bFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmZp
bGwgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiZmlsbCIsIFdJLlVJU3RyaW5nKCJD
b2xvciIpKTsKLSAgICAgICAgcHJvcGVydGllcy5maWxsUnVsZSA9IG5ldyBXSS5WaXN1YWxTdHls
ZUtleXdvcmRQaWNrZXIoImZpbGwtcnVsZSIsIFdJLlVJU3RyaW5nKCJSdWxlIiksIHRoaXMuX2tl
eXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk5vbnplcm8iLCAiRXZlbm9kZCJdKSk7Ci0KLSAgICAg
ICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmlsbC5lbGVtZW50KTsK
LSAgICAgICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmlsbFJ1bGUu
ZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGZpbGxPcGFjaXR5Um93ID0gbmV3IFdJLkRldGFpbHNT
ZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuZmlsbE9wYWNpdHkgPSBuZXcgV0kuVmlz
dWFsU3R5bGVVbml0U2xpZGVyKCJmaWxsLW9wYWNpdHkiLCBXSS5VSVN0cmluZygiT3BhY2l0eSIp
KTsKLQotICAgICAgICBmaWxsT3BhY2l0eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMuZmlsbE9wYWNpdHkuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQ
cm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuZmlsbE9wYWNpdHldOwotCi0gICAgICAgIGxldCBmaWxs
R3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmlsbFJvdywgZmlsbE9wYWNpdHlS
b3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmlsbEdyb3VwXSk7
Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlU3Ryb2tlU2VjdGlvbigpCi0gICAgewotICAgICAgICBs
ZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMuc3Ryb2tlOwotICAgICAgICBsZXQgcHJvcGVydGllcyA9
IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IHN0cm9rZVJvdyA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZSA9IG5ldyBXSS5WaXN1
YWxTdHlsZUNvbG9yUGlja2VyKCJzdHJva2UiLCBXSS5VSVN0cmluZygiQ29sb3IiKSk7Ci0gICAg
ICAgIHByb3BlcnRpZXMuc3Ryb2tlV2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1
dEJveCgic3Ryb2tlLXdpZHRoIiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRz
LmRlZmF1bHRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgc3Ryb2tlUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2UuZWxlbWVudCk7Ci0gICAgICAgIHN0
cm9rZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlV2lkdGguZWxlbWVu
dCk7Ci0KLSAgICAgICAgbGV0IHN0cm9rZU9wYWNpdHkgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25S
b3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5zdHJva2VPcGFjaXR5ID0gbmV3IFdJLlZpc3VhbFN0
eWxlVW5pdFNsaWRlcigic3Ryb2tlLW9wYWNpdHkiLCBXSS5VSVN0cmluZygiT3BhY2l0eSIpKTsK
LQotICAgICAgICBzdHJva2VPcGFjaXR5LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5z
dHJva2VPcGFjaXR5LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBzdHJva2VEYXNoYXJyYXlSb3cg
PSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5zdHJva2VE
YXNoYXJyYXkgPSBuZXcgV0kuVmlzdWFsU3R5bGVCYXNpY0lucHV0KCJzdHJva2UtZGFzaGFycmF5
IiwgV0kuVUlTdHJpbmcoIkRhc2ggQXJyYXkiKSwgV0kuVUlTdHJpbmcoIkVudGVyIGFuIGFycmF5
IHZhbHVlIikpOwotCi0gICAgICAgIHN0cm9rZURhc2hhcnJheVJvdy5lbGVtZW50LmFwcGVuZENo
aWxkKHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFycmF5LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBz
dHJva2VEYXNoYXJyYXlPcHRpb25zUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0g
ICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlRGFzaG9mZnNldCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51
bWJlcklucHV0Qm94KCJzdHJva2UtZGFzaG9mZnNldCIsIFdJLlVJU3RyaW5nKCJPZmZzZXQiKSwg
dGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLSAgICAgICAg
cHJvcGVydGllcy5zdHJva2VNaXRlcmxpbWl0ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5w
dXRCb3goInN0cm9rZS1taXRlcmxpbWl0IiwgV0kuVUlTdHJpbmcoIk1pdGVyIiksIHRoaXMuX2tl
eXdvcmRzLmRlZmF1bHRzKTsKLQotICAgICAgICBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VEYXNob2Zmc2V0LmVsZW1lbnQpOwot
ICAgICAgICBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJv
cGVydGllcy5zdHJva2VNaXRlcmxpbWl0LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBzdHJva2VM
aW5lT3B0aW9uc1JvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9w
ZXJ0aWVzLnN0cm9rZUxpbmVjYXAgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJz
dHJva2UtbGluZWNhcCIsIFdJLlVJU3RyaW5nKCJDYXAiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVs
dHMuY29uY2F0KFsiQnV0dCIsICJSb3VuZCIsICJTcXVhcmUiXSkpOwotICAgICAgICBwcm9wZXJ0
aWVzLnN0cm9rZUxpbmVqb2luID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigic3Ry
b2tlLWxpbmVqb2luIiwgV0kuVUlTdHJpbmcoIkpvaW4iKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVs
dHMuY29uY2F0KFsiTWl0ZXIiLCAiUm91bmQiLCAiQmV2ZWwiXSkpOwotCi0gICAgICAgIHN0cm9r
ZUxpbmVPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VMaW5l
Y2FwLmVsZW1lbnQpOwotICAgICAgICBzdHJva2VMaW5lT3B0aW9uc1Jvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlTGluZWpvaW4uZWxlbWVudCk7Ci0KLSAgICAgICAgZ3Jv
dXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuc3Ryb2tlT3BhY2l0eV07
Ci0KLSAgICAgICAgbGV0IHN0cm9rZUdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAo
W3N0cm9rZVJvdywgc3Ryb2tlT3BhY2l0eSwgc3Ryb2tlRGFzaGFycmF5Um93LCBzdHJva2VEYXNo
YXJyYXlPcHRpb25zUm93LCBzdHJva2VMaW5lT3B0aW9uc1Jvd10pOwotICAgICAgICB0aGlzLl9w
b3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtzdHJva2VHcm91cF0pOwotICAgIH0KLQotICAgIF9wb3B1
bGF0ZUJhY2tncm91bmRTdHlsZVNlY3Rpb24oKQotICAgIHsKLSAgICAgICAgbGV0IGdyb3VwID0g
dGhpcy5fZ3JvdXBzLmJhY2tncm91bmRTdHlsZTsKLSAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBn
cm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU3R5bGVSb3cgPSBuZXcg
V0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kQ29s
b3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYmFja2dyb3VuZC1jb2xvciIsIFdJ
LlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kQmxlbmRN
b2RlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiYmFja2dyb3VuZC1ibGVuZC1t
b2RlIiwgV0kuVUlTdHJpbmcoIkJsZW5kIiksIFsiTm9ybWFsIiwgIk11bHRpcGx5IiwgIlNjcmVl
biIsICJPdmVybGF5IiwgIkRhcmtlbiIsICJMaWdodGVuIiwgIkNvbG9yIiwgIkNvbG9yIERvZGdl
IiwgIlNhdHVyYXRpb24iLCAiTHVtaW5vc2l0eSJdKTsKLQotICAgICAgICBiYWNrZ3JvdW5kU3R5
bGVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJhY2tncm91bmRDb2xvci5lbGVt
ZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFN0eWxlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJv
cGVydGllcy5iYWNrZ3JvdW5kQmxlbmRNb2RlLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBiYWNr
Z3JvdW5kQ2xpcFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQg
YmFja2dyb3VuZENsaXBLZXl3b3JkcyA9IFsiSW5pdGlhbCIsICJCb3JkZXIgQm94IiwgIlBhZGRp
bmcgQm94IiwgIkNvbnRlbnQgQm94Il07Ci0gICAgICAgIHByb3BlcnRpZXMuYmFja2dyb3VuZENs
aXAgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJiYWNrZ3JvdW5kLWNsaXAiLCBX
SS5VSVN0cmluZygiQ2xpcCIpLCBiYWNrZ3JvdW5kQ2xpcEtleXdvcmRzKTsKLSAgICAgICAgcHJv
cGVydGllcy5iYWNrZ3JvdW5kT3JpZ2luID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
cigiYmFja2dyb3VuZC1vcmlnaW4iLCBXSS5VSVN0cmluZygiT3JpZ2luIiksIGJhY2tncm91bmRD
bGlwS2V5d29yZHMpOwotCi0gICAgICAgIGJhY2tncm91bmRDbGlwUm93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5iYWNrZ3JvdW5kQ2xpcC5lbGVtZW50KTsKLSAgICAgICAgYmFja2dy
b3VuZENsaXBSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJhY2tncm91bmRPcmln
aW4uZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGJhY2tncm91bmRTaXplUm93ID0gbmV3IFdJLkRl
dGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU2l6ZUtleXdvcmRzID0g
dGhpcy5fa2V5d29yZHMuYm94TW9kZWwuY29uY2F0KFsiQ29udGFpbiIsICJDb3ZlciJdKTsKLSAg
ICAgICAgbGV0IGJhY2tncm91bmRTaXplWCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0
Qm94KCJiYWNrZ3JvdW5kLXNpemUiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgYmFja2dyb3VuZFNp
emVLZXl3b3JkcywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotICAgICAgICBiYWNrZ3JvdW5kU2l6
ZVgubWFzdGVyUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYmFja2dyb3VuZFNpemVZID0g
bmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImJhY2tncm91bmQtc2l6ZSIsIFdJLlVJ
U3RyaW5nKCJIZWlnaHQiKSwgYmFja2dyb3VuZFNpemVLZXl3b3JkcywgdGhpcy5fdW5pdHMuZGVm
YXVsdHMpOwotICAgICAgICBiYWNrZ3JvdW5kU2l6ZVkubWFzdGVyUHJvcGVydHkgPSB0cnVlOwot
Ci0gICAgICAgIHByb3BlcnRpZXMuYmFja2dyb3VuZFNpemUgPSBuZXcgV0kuVmlzdWFsU3R5bGVQ
cm9wZXJ0eUNvbWJpbmVyKCJiYWNrZ3JvdW5kLXNpemUiLCBbYmFja2dyb3VuZFNpemVYLCBiYWNr
Z3JvdW5kU2l6ZVldKTsKLQotICAgICAgICBiYWNrZ3JvdW5kU2l6ZVJvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKGJhY2tncm91bmRTaXplWC5lbGVtZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFNpemVS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChiYWNrZ3JvdW5kU2l6ZVkuZWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IGJhY2tncm91bmRSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAg
ICAgcHJvcGVydGllcy5iYWNrZ3JvdW5kID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0
ZWRLZXl3b3JkRWRpdG9yKCJiYWNrZ3JvdW5kIiwgbnVsbCwgewotICAgICAgICAgICAgImJhY2tn
cm91bmQtaW1hZ2UiOiAibm9uZSIsCi0gICAgICAgICAgICAiYmFja2dyb3VuZC1wb3NpdGlvbiI6
ICIwJSAwJSIsCi0gICAgICAgICAgICAiYmFja2dyb3VuZC1yZXBlYXQiOiAicmVwZWF0IiwKLSAg
ICAgICAgICAgICJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiAic2Nyb2xsIiwKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgYmFja2dyb3VuZFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
YmFja2dyb3VuZC5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYmFja2dyb3VuZEltYWdlUm93ID0g
bmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kSW1hZ2Ug
PSBuZXcgV0kuVmlzdWFsU3R5bGVCYWNrZ3JvdW5kUGlja2VyKCJiYWNrZ3JvdW5kLWltYWdlIiwg
V0kuVUlTdHJpbmcoIlR5cGUiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9u
ZSJdKSk7Ci0KLSAgICAgICAgYmFja2dyb3VuZEltYWdlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
YmFja2dyb3VuZEltYWdlLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kUG9zaXRp
b25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0IGJhY2tncm91
bmRQb3NpdGlvblggPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgiYmFja2dyb3Vu
ZC1wb3NpdGlvbiIsIFdJLlVJU3RyaW5nKCJQb3NpdGlvbiBYIiksIFsiQ2VudGVyIiwgIkxlZnQi
LCAiUmlnaHQiXSwgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotICAgICAgICBiYWNrZ3JvdW5kUG9z
aXRpb25YLm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYmFja2dyb3VuZFBv
c2l0aW9uWSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJiYWNrZ3JvdW5kLXBv
c2l0aW9uIiwgV0kuVUlTdHJpbmcoIlBvc2l0aW9uIFkiKSwgWyJCb3R0b20iLCAiQ2VudGVyIiwg
IlRvcCJdLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0gICAgICAgIGJhY2tncm91bmRQb3NpdGlv
blkub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9u
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2dyb3VuZFBvc2l0aW9uWC5lbGVtZW50KTsKLSAg
ICAgICAgYmFja2dyb3VuZFBvc2l0aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2dyb3Vu
ZFBvc2l0aW9uWS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYmFja2dyb3VuZFJlcGVhdFJvdyA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQgYmFja2dyb3VuZFJlcGVh
dCA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJhY2tncm91bmQtcmVwZWF0Iiwg
V0kuVUlTdHJpbmcoIlJlcGVhdCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJO
byBSZXBlYXQiLCAiUmVwZWF0IiwgIlJlcGVhdCBYIiwgIlJlcGVhdCBZIl0pKTsKLSAgICAgICAg
YmFja2dyb3VuZFJlcGVhdC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgbGV0IGJh
Y2tncm91bmRBdHRhY2htZW50ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigiYmFj
a2dyb3VuZC1hdHRhY2htZW50IiwgV0kuVUlTdHJpbmcoIkF0dGFjaCIpLCB0aGlzLl9rZXl3b3Jk
cy5kZWZhdWx0cy5jb25jYXQoWyJGaXhlZCIsICJMb2NhbCIsICJTY3JvbGwiXSkpOwotICAgICAg
ICBiYWNrZ3JvdW5kQXR0YWNobWVudC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLQotICAgICAg
ICBiYWNrZ3JvdW5kUmVwZWF0Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFja2dyb3VuZFJlcGVh
dC5lbGVtZW50KTsKLSAgICAgICAgYmFja2dyb3VuZFJlcGVhdFJvdy5lbGVtZW50LmFwcGVuZENo
aWxkKGJhY2tncm91bmRBdHRhY2htZW50LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBiYWNrZ3Jv
dW5kUHJvcGVydGllcyA9IFtiYWNrZ3JvdW5kSW1hZ2UsIGJhY2tncm91bmRQb3NpdGlvblgsIGJh
Y2tncm91bmRQb3NpdGlvblksIGJhY2tncm91bmRSZXBlYXQsIGJhY2tncm91bmRBdHRhY2htZW50
XTsKLSAgICAgICAgbGV0IGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyID0gbmV3IFdJLlZpc3Vh
bFN0eWxlUHJvcGVydHlDb21iaW5lcigiYmFja2dyb3VuZCIsIGJhY2tncm91bmRQcm9wZXJ0aWVz
KTsKLQotICAgICAgICBsZXQgbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zID0g
dGhpcy5fbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zLmJpbmQodGhpcywgYmFj
a2dyb3VuZFByb3BlcnR5Q29tYmluZXIsIGJhY2tncm91bmRQcm9wZXJ0aWVzKTsKLSAgICAgICAg
cHJvcGVydGllcy5iYWNrZ3JvdW5kLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21t
YVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuTm9SZW1haW5pbmdUcmVlSXRlbXMsIG5vUmVt
YWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcywgdGhpcyk7Ci0KLSAgICAgICAgbGV0IHNl
bGVjdGVkQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkID0gdGhpcy5fc2VsZWN0
ZWRDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQuYmluZCh0aGlzLCBwcm9wZXJ0
aWVzLmJhY2tncm91bmQsIGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgYmFj
a2dyb3VuZFByb3BlcnR5Q29tYmluZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZVBy
b3BlcnR5RWRpdG9yLkV2ZW50LlZhbHVlRGlkQ2hhbmdlLCBzZWxlY3RlZENvbW1hU2VwYXJhdGVk
RWRpdG9ySXRlbVZhbHVlQ2hhbmdlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNvbW1hU2VwYXJh
dGVkRWRpdG9yVHJlZUl0ZW1TZWxlY3RlZCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkRWRpdG9yVHJl
ZUl0ZW1TZWxlY3RlZC5iaW5kKGJhY2tncm91bmRQcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAg
cHJvcGVydGllcy5iYWNrZ3JvdW5kLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21t
YVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwgY29tbWFTZXBh
cmF0ZWRFZGl0b3JUcmVlSXRlbVNlbGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBncm91cC5hdXRv
Y29tcGxldGVDb21wYXRpYmxlUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJhY2tncm91bmRDb2xv
cl07Ci0gICAgICAgIGdyb3VwLnNwZWNpZmllZFdpZHRoUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVz
LmJhY2tncm91bmRdOwotCi0gICAgICAgIGxldCBiYWNrZ3JvdW5kU3R5bGVHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtiYWNrZ3JvdW5kU3R5bGVSb3csIGJhY2tncm91bmRDbGlw
Um93LCBiYWNrZ3JvdW5kU2l6ZVJvdywgYmFja2dyb3VuZFJvdywgYmFja2dyb3VuZEltYWdlUm93
LCBiYWNrZ3JvdW5kUG9zaXRpb25Sb3csIGJhY2tncm91bmRSZXBlYXRSb3ddKTsKLSAgICAgICAg
dGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbYmFja2dyb3VuZFN0eWxlR3JvdXBdKTsKLSAg
ICB9Ci0KLSAgICBfcG9wdWxhdGVCb3JkZXJTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBn
cm91cCA9IHRoaXMuX2dyb3Vwcy5ib3JkZXI7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3Jv
dXAucHJvcGVydGllczsKLQotICAgICAgICBsZXQgYm9yZGVyQWxsU2l6ZSA9IG5ldyBXSS5EZXRh
aWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclN0eWxlID0gbmV3IFdJ
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcihbImJvcmRlci10b3Atc3R5bGUiLCAiYm9yZGVyLXJp
Z2h0LXN0eWxlIiwgImJvcmRlci1ib3R0b20tc3R5bGUiLCAiYm9yZGVyLWxlZnQtc3R5bGUiXSwg
V0kuVUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxlKTsKLSAgICAg
ICAgcHJvcGVydGllcy5ib3JkZXJTdHlsZS5wcm9wZXJ0eVJlZmVyZW5jZU5hbWUgPSAiYm9yZGVy
LXN0eWxlIjsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aCA9IG5ldyBXSS5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KFsiYm9yZGVyLXRvcC13aWR0aCIsICJib3JkZXItcmlnaHQtd2lk
dGgiLCAiYm9yZGVyLWJvdHRvbS13aWR0aCIsICJib3JkZXItbGVmdC13aWR0aCJdLCBXSS5VSVN0
cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRl
ZmF1bHRzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJXaWR0aC5wcm9wZXJ0eVJlZmVyZW5j
ZU5hbWUgPSAiYm9yZGVyLXdpZHRoIjsKLQotICAgICAgICBib3JkZXJBbGxTaXplLmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJTdHlsZS5lbGVtZW50KTsKLSAgICAgICAgYm9y
ZGVyQWxsU2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyV2lkdGguZWxl
bWVudCk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckFsbFN0eWxlID0gbmV3IFdJLkRldGFpbHNTZWN0
aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyQ29sb3IgPSBuZXcgV0kuVmlzdWFs
U3R5bGVDb2xvclBpY2tlcihbImJvcmRlci10b3AtY29sb3IiLCAiYm9yZGVyLXJpZ2h0LWNvbG9y
IiwgImJvcmRlci1ib3R0b20tY29sb3IiLCAiYm9yZGVyLWxlZnQtY29sb3IiXSwgV0kuVUlTdHJp
bmcoIkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckNvbG9yLnByb3BlcnR5UmVm
ZXJlbmNlTmFtZSA9ICJib3JkZXItY29sb3IiOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJh
ZGl1cyA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KFsiYm9yZGVyLXRvcC1sZWZ0
LXJhZGl1cyIsICJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLWxlZnQt
cmFkaXVzIiwgImJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIl0sIFdJLlVJU3RyaW5nKCJSYWRp
dXMiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLSAg
ICAgICAgcHJvcGVydGllcy5ib3JkZXJSYWRpdXMucHJvcGVydHlSZWZlcmVuY2VOYW1lID0gImJv
cmRlci1yYWRpdXMiOwotCi0gICAgICAgIGJvcmRlckFsbFN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5ib3JkZXJDb2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyQWxsU3R5
bGUuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlclJhZGl1cy5lbGVtZW50KTsK
LQotICAgICAgICBsZXQgYm9yZGVyQWxsUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJvcmRlclN0
eWxlLCBwcm9wZXJ0aWVzLmJvcmRlcldpZHRoLCBwcm9wZXJ0aWVzLmJvcmRlckNvbG9yLCBwcm9w
ZXJ0aWVzLmJvcmRlclJhZGl1c107Ci0gICAgICAgIGxldCBib3JkZXJBbGxHcm91cCA9IG5ldyBX
SS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtib3JkZXJBbGxTaXplLCBib3JkZXJBbGxTdHlsZV0pOwot
Ci0gICAgICAgIGxldCBib3JkZXJUb3BTaXplID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93Owot
Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyVG9wU3R5bGUgPSBuZXcgV0kuVmlzdWFsU3R5bGVL
ZXl3b3JkUGlja2VyKCJib3JkZXItdG9wLXN0eWxlIiwgV0kuVUlTdHJpbmcoIlN0eWxlIiksIHRo
aXMuX2tleXdvcmRzLmJvcmRlclN0eWxlKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJUb3BX
aWR0aCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJib3JkZXItdG9wLXdpZHRo
IiwgV0kuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlcldpZHRoLCB0aGlz
Ll91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgYm9yZGVyVG9wU2l6ZS5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyVG9wU3R5bGUuZWxlbWVudCk7Ci0gICAgICAgIGJvcmRl
clRvcFNpemUuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJvcmRlclRvcFdpZHRoLmVs
ZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJUb3BTdHlsZSA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclRvcENvbG9yID0gbmV3IFdJLlZp
c3VhbFN0eWxlQ29sb3JQaWNrZXIoImJvcmRlci10b3AtY29sb3IiLCBXSS5VSVN0cmluZygiQ29s
b3IiKSk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyVG9wUmFkaXVzID0gbmV3IFdJLlZpc3Vh
bFN0eWxlTnVtYmVySW5wdXRCb3goWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiwgImJvcmRlci10
b3AtcmlnaHQtcmFkaXVzIl0sIFdJLlVJU3RyaW5nKCJSYWRpdXMiKSwgdGhpcy5fa2V5d29yZHMu
ZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBib3JkZXJUb3BTdHls
ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyVG9wQ29sb3IuZWxlbWVudCk7
Ci0gICAgICAgIGJvcmRlclRvcFN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5i
b3JkZXJUb3BSYWRpdXMuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGJvcmRlclRvcFByb3BlcnRp
ZXMgPSBbcHJvcGVydGllcy5ib3JkZXJUb3BTdHlsZSwgcHJvcGVydGllcy5ib3JkZXJUb3BXaWR0
aCwgcHJvcGVydGllcy5ib3JkZXJUb3BDb2xvciwgcHJvcGVydGllcy5ib3JkZXJUb3BSYWRpdXNd
OwotICAgICAgICBsZXQgYm9yZGVyVG9wR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91
cChbYm9yZGVyVG9wU2l6ZSwgYm9yZGVyVG9wU3R5bGVdKTsKLQotICAgICAgICBsZXQgYm9yZGVy
UmlnaHRTaXplID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIHByb3BlcnRp
ZXMuYm9yZGVyUmlnaHRTdHlsZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJv
cmRlci1yaWdodC1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIpLCB0aGlzLl9rZXl3b3Jkcy5i
b3JkZXJTdHlsZSk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aCA9IG5ldyBX
SS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJib3JkZXItcmlnaHQtd2lkdGgiLCBXSS5VSVN0
cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRl
ZmF1bHRzKTsKLQotICAgICAgICBib3JkZXJSaWdodFNpemUuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzLmJvcmRlclJpZ2h0U3R5bGUuZWxlbWVudCk7Ci0gICAgICAgIGJvcmRlclJpZ2h0
U2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aC5lbGVt
ZW50KTsKLQotICAgICAgICBsZXQgYm9yZGVyUmlnaHRTdHlsZSA9IG5ldyBXSS5EZXRhaWxzU2Vj
dGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0Q29sb3IgPSBuZXcgV0ku
VmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYm9yZGVyLXJpZ2h0LWNvbG9yIiwgV0kuVUlTdHJpbmco
IkNvbG9yIikpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0UmFkaXVzID0gbmV3IFdJ
LlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goWyJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsICJi
b3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyJdLCBXSS5VSVN0cmluZygiUmFkaXVzIiksIHRoaXMu
X2tleXdvcmRzLmRlZmF1bHRzLCB0aGlzLl91bml0cy5kZWZhdWx0cyk7Ci0KLSAgICAgICAgYm9y
ZGVyUmlnaHRTdHlsZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyUmlnaHRD
b2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyUmlnaHRTdHlsZS5lbGVtZW50LmFwcGVuZENo
aWxkKHByb3BlcnRpZXMuYm9yZGVyUmlnaHRSYWRpdXMuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0
IGJvcmRlclJpZ2h0UHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0U3R5bGUsIHBy
b3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aCwgcHJvcGVydGllcy5ib3JkZXJSaWdodENvbG9yLCBw
cm9wZXJ0aWVzLmJvcmRlclJpZ2h0UmFkaXVzXTsKLSAgICAgICAgbGV0IGJvcmRlclJpZ2h0R3Jv
dXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbYm9yZGVyUmlnaHRTaXplLCBib3JkZXJS
aWdodFN0eWxlXSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckJvdHRvbVNpemUgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJCb3R0b21TdHlsZSA9
IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJvcmRlci1ib3R0b20tc3R5bGUiLCBX
SS5VSVN0cmluZygiU3R5bGUiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyU3R5bGUpOwotICAgICAg
ICBwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVy
SW5wdXRCb3goImJvcmRlci1ib3R0b20td2lkdGgiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhp
cy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAg
ICBib3JkZXJCb3R0b21TaXplLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJC
b3R0b21TdHlsZS5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyQm90dG9tU2l6ZS5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyQm90dG9tV2lkdGguZWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IGJvcmRlckJvdHRvbVN0eWxlID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0g
ICAgICAgIHByb3BlcnRpZXMuYm9yZGVyQm90dG9tQ29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVD
b2xvclBpY2tlcigiYm9yZGVyLWJvdHRvbS1jb2xvciIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsK
LSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJCb3R0b21SYWRpdXMgPSBuZXcgV0kuVmlzdWFsU3R5
bGVOdW1iZXJJbnB1dEJveChbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCAiYm9yZGVyLWJv
dHRvbS1yaWdodC1yYWRpdXMiXSwgV0kuVUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlzLl9rZXl3b3Jk
cy5kZWZhdWx0cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOwotCi0gICAgICAgIGJvcmRlckJvdHRv
bVN0eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJCb3R0b21Db2xvci5l
bGVtZW50KTsKLSAgICAgICAgYm9yZGVyQm90dG9tU3R5bGUuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzLmJvcmRlckJvdHRvbVJhZGl1cy5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYm9y
ZGVyQm90dG9tUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVN0eWxlLCBwcm9w
ZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoLCBwcm9wZXJ0aWVzLmJvcmRlckJvdHRvbUNvbG9yLCBw
cm9wZXJ0aWVzLmJvcmRlckJvdHRvbVJhZGl1c107Ci0gICAgICAgIGxldCBib3JkZXJCb3R0b21H
cm91cCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFtib3JkZXJCb3R0b21TaXplLCBib3Jk
ZXJCb3R0b21TdHlsZV0pOwotCi0gICAgICAgIGxldCBib3JkZXJMZWZ0U2l6ZSA9IG5ldyBXSS5E
ZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckxlZnRTdHlsZSA9
IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoImJvcmRlci1sZWZ0LXN0eWxlIiwgV0ku
VUlTdHJpbmcoIlN0eWxlIiksIHRoaXMuX2tleXdvcmRzLmJvcmRlclN0eWxlKTsKLSAgICAgICAg
cHJvcGVydGllcy5ib3JkZXJMZWZ0V2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1
dEJveCgiYm9yZGVyLWxlZnQtd2lkdGgiLCBXSS5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5
d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKLQotICAgICAgICBib3Jk
ZXJMZWZ0U2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuYm9yZGVyTGVmdFN0eWxl
LmVsZW1lbnQpOwotICAgICAgICBib3JkZXJMZWZ0U2l6ZS5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMuYm9yZGVyTGVmdFdpZHRoLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJM
ZWZ0U3R5bGUgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGll
cy5ib3JkZXJMZWZ0Q29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYm9yZGVy
LWxlZnQtY29sb3IiLCBXSS5VSVN0cmluZygiQ29sb3IiKSk7Ci0gICAgICAgIHByb3BlcnRpZXMu
Ym9yZGVyTGVmdFJhZGl1cyA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KFsiYm9y
ZGVyLXRvcC1sZWZ0LXJhZGl1cyIsICJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl0sIFdJLlVJ
U3RyaW5nKCJSYWRpdXMiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRl
ZmF1bHRzKTsKLQotICAgICAgICBib3JkZXJMZWZ0U3R5bGUuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzLmJvcmRlckxlZnRDb2xvci5lbGVtZW50KTsKLSAgICAgICAgYm9yZGVyTGVmdFN0
eWxlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJMZWZ0UmFkaXVzLmVsZW1l
bnQpOwotCi0gICAgICAgIGxldCBib3JkZXJMZWZ0UHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLmJv
cmRlckxlZnRTdHlsZSwgcHJvcGVydGllcy5ib3JkZXJMZWZ0V2lkdGgsIHByb3BlcnRpZXMuYm9y
ZGVyTGVmdENvbG9yLCBwcm9wZXJ0aWVzLmJvcmRlckxlZnRSYWRpdXNdOwotICAgICAgICBsZXQg
Ym9yZGVyTGVmdEdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2JvcmRlckxlZnRT
aXplLCBib3JkZXJMZWZ0U3R5bGVdKTsKLQotICAgICAgICBsZXQgYm9yZGVyVGFiQ29udHJvbGxl
ciA9IG5ldyBXSS5WaXN1YWxTdHlsZVRhYmJlZFByb3BlcnRpZXNSb3coewotICAgICAgICAgICAg
ImFsbCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIkFsbCIpLCBlbGVtZW50OiBib3JkZXJBbGxHcm91
cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBib3JkZXJBbGxQcm9wZXJ0aWVzfSwKLSAgICAgICAgICAg
ICJ0b3AiOiB7dGl0bGU6IFdJLlVJU3RyaW5nKCJUb3AiKSwgZWxlbWVudDogYm9yZGVyVG9wR3Jv
dXAuZWxlbWVudCwgcHJvcGVydGllczogYm9yZGVyVG9wUHJvcGVydGllc30sCi0gICAgICAgICAg
ICAicmlnaHQiOiB7dGl0bGU6IFdJLlVJU3RyaW5nKCJSaWdodCIpLCBlbGVtZW50OiBib3JkZXJS
aWdodEdyb3VwLmVsZW1lbnQsIHByb3BlcnRpZXM6IGJvcmRlclJpZ2h0UHJvcGVydGllc30sCi0g
ICAgICAgICAgICAiYm90dG9tIjoge3RpdGxlOiBXSS5VSVN0cmluZygiQm90dG9tIiksIGVsZW1l
bnQ6IGJvcmRlckJvdHRvbUdyb3VwLmVsZW1lbnQsIHByb3BlcnRpZXM6IGJvcmRlckJvdHRvbVBy
b3BlcnRpZXN9LAotICAgICAgICAgICAgImxlZnQiOiB7dGl0bGU6IFdJLlVJU3RyaW5nKCJMZWZ0
IiksIGVsZW1lbnQ6IGJvcmRlckxlZnRHcm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBib3JkZXJM
ZWZ0UHJvcGVydGllc30KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbGV0IGhpZ2hsaWdodE1vZGUg
PSAiYm9yZGVyIjsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3Vw
LnByb3BlcnRpZXMuYm9yZGVyV2lkdGgsIGhpZ2hsaWdodE1vZGUpOwotICAgICAgICB0aGlzLl9h
ZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5ib3JkZXJUb3BXaWR0aCwg
aGlnaGxpZ2h0TW9kZSk7Ci0gICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhn
cm91cC5wcm9wZXJ0aWVzLmJvcmRlckJvdHRvbVdpZHRoLCBoaWdobGlnaHRNb2RlKTsKLSAgICAg
ICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMuYm9yZGVy
TGVmdFdpZHRoLCBoaWdobGlnaHRNb2RlKTsKLSAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNl
TGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMuYm9yZGVyUmlnaHRXaWR0aCwgaGlnaGxpZ2h0TW9k
ZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3Jv
dXAoW2JvcmRlclRhYkNvbnRyb2xsZXIsIGJvcmRlckFsbEdyb3VwLCBib3JkZXJUb3BHcm91cCwg
Ym9yZGVyUmlnaHRHcm91cCwgYm9yZGVyQm90dG9tR3JvdXAsIGJvcmRlckxlZnRHcm91cF0pOwot
Ci0gICAgICAgIGxldCBib3JkZXJJbWFnZVNvdXJjZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlv
blJvdzsKLQotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckltYWdlU291cmNlID0gbmV3IFdJLlZp
c3VhbFN0eWxlVVJMSW5wdXQoImJvcmRlci1pbWFnZS1zb3VyY2UiLCBXSS5VSVN0cmluZygiSW1h
Z2UiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9uZSJdKSk7Ci0KLSAgICAg
ICAgYm9yZGVySW1hZ2VTb3VyY2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmJv
cmRlckltYWdlU291cmNlLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3JkZXJJbWFnZVJlcGVh
dFJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQgYm9yZGVySW1h
Z2VTbGljZUZpbGwgPSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3goImJvcmRlci1p
bWFnZS1zbGljZSIsIFdJLlVJU3RyaW5nKCJGaWxsIiksICJGaWxsIik7Ci0gICAgICAgIGJvcmRl
ckltYWdlU2xpY2VGaWxsLm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBwcm9wZXJ0
aWVzLmJvcmRlckltYWdlUmVwZWF0ID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigi
Ym9yZGVyLWltYWdlLXJlcGVhdCIsIFdJLlVJU3RyaW5nKCJSZXBlYXQiKSwgdGhpcy5fa2V5d29y
ZHMuZGVmYXVsdHMuY29uY2F0KFsiU3RyZXRjaCIsICJSZXBlYXQiLCAiUm91bmQiLCAiU3BhY2Ui
XSkpOwotCi0gICAgICAgIGJvcmRlckltYWdlUmVwZWF0Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
Ym9yZGVySW1hZ2VTbGljZUZpbGwuZWxlbWVudCk7Ci0gICAgICAgIGJvcmRlckltYWdlUmVwZWF0
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3JkZXJJbWFnZVJlcGVhdC5lbGVt
ZW50KTsKLQotICAgICAgICBmdW5jdGlvbiBnZW5lcmF0ZUJvcmRlckltYWdlUHJvcGVydHlFZGl0
b3JzKHByb3BlcnR5TmFtZSwga2V5d29yZHMsIHVuaXRzKSB7Ci0gICAgICAgICAgICBsZXQgdmVy
dGljYWwgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgICAgIGxldCB0b3Ag
PSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveChwcm9wZXJ0eU5hbWUsIFdJLlVJU3Ry
aW5nKCJUb3AiKSwga2V5d29yZHMsIHVuaXRzKTsKLSAgICAgICAgICAgIHRvcC5tYXN0ZXJQcm9w
ZXJ0eSA9IHRydWU7Ci0gICAgICAgICAgICBsZXQgYm90dG9tID0gbmV3IFdJLlZpc3VhbFN0eWxl
TnVtYmVySW5wdXRCb3gocHJvcGVydHlOYW1lLCBXSS5VSVN0cmluZygiQm90dG9tIiksIGtleXdv
cmRzLCB1bml0cyk7Ci0gICAgICAgICAgICBib3R0b20ubWFzdGVyUHJvcGVydHkgPSB0cnVlOwot
Ci0gICAgICAgICAgICB2ZXJ0aWNhbC5lbGVtZW50LmFwcGVuZENoaWxkKHRvcC5lbGVtZW50KTsK
LSAgICAgICAgICAgIHZlcnRpY2FsLmVsZW1lbnQuYXBwZW5kQ2hpbGQoYm90dG9tLmVsZW1lbnQp
OwotCi0gICAgICAgICAgICBsZXQgaG9yaXpvbnRhbCA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJv
dzsKLQotICAgICAgICAgICAgbGV0IGxlZnQgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1
dEJveChwcm9wZXJ0eU5hbWUsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIGtleXdvcmRzLCB1bml0cyk7
Ci0gICAgICAgICAgICBsZWZ0Lm1hc3RlclByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgICAgIGxl
dCByaWdodCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KHByb3BlcnR5TmFtZSwg
V0kuVUlTdHJpbmcoIlJpZ2h0IiksIGtleXdvcmRzLCB1bml0cyk7Ci0gICAgICAgICAgICByaWdo
dC5tYXN0ZXJQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgICAgIGhvcml6b250YWwuZWxlbWVu
dC5hcHBlbmRDaGlsZChsZWZ0LmVsZW1lbnQpOwotICAgICAgICAgICAgaG9yaXpvbnRhbC5lbGVt
ZW50LmFwcGVuZENoaWxkKHJpZ2h0LmVsZW1lbnQpOwotCi0gICAgICAgICAgICByZXR1cm4ge2dy
b3VwOiBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbdmVydGljYWwsIGhvcml6b250YWxdKSwg
cHJvcGVydGllczogW3RvcCwgYm90dG9tLCBsZWZ0LCByaWdodF19OwotICAgICAgICB9Ci0KLSAg
ICAgICAgbGV0IG5vbktleXdvcmRVbml0cyA9IFtXSS5VSVN0cmluZygiTnVtYmVyIildOwotCi0g
ICAgICAgIGxldCBib3JkZXJJbWFnZVVuaXRzID0gT2JqZWN0LnNoYWxsb3dDb3B5KHRoaXMuX3Vu
aXRzLmRlZmF1bHRzKTsKLSAgICAgICAgYm9yZGVySW1hZ2VVbml0cy5iYXNpYyA9IG5vbktleXdv
cmRVbml0cy5jb25jYXQoYm9yZGVySW1hZ2VVbml0cy5iYXNpYyk7Ci0gICAgICAgIGxldCBib3Jk
ZXJJbWFnZVdpZHRoID0gZ2VuZXJhdGVCb3JkZXJJbWFnZVByb3BlcnR5RWRpdG9ycygiYm9yZGVy
LWltYWdlLXdpZHRoIiwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIGJvcmRlckltYWdlVW5pdHMp
OwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckltYWdlV2lkdGggPSBuZXcgV0kuVmlzdWFsU3R5
bGVQcm9wZXJ0eUNvbWJpbmVyKCJib3JkZXItaW1hZ2Utd2lkdGgiLCBib3JkZXJJbWFnZVdpZHRo
LnByb3BlcnRpZXMsIHRydWUpOwotCi0gICAgICAgIGxldCBib3JkZXJPdXRzZXRVbml0cyA9IE9i
amVjdC5zaGFsbG93Q29weSh0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50KTsKLSAgICAg
ICAgYm9yZGVyT3V0c2V0VW5pdHMuYmFzaWMgPSBub25LZXl3b3JkVW5pdHMuY29uY2F0KGJvcmRl
ck91dHNldFVuaXRzLmJhc2ljKTsKLSAgICAgICAgbGV0IGJvcmRlckltYWdlT3V0c2V0ID0gZ2Vu
ZXJhdGVCb3JkZXJJbWFnZVByb3BlcnR5RWRpdG9ycygiYm9yZGVyLWltYWdlLW91dHNldCIsIHRo
aXMuX2tleXdvcmRzLmRlZmF1bHRzLCBib3JkZXJPdXRzZXRVbml0cyk7Ci0gICAgICAgIHByb3Bl
cnRpZXMuYm9yZGVySW1hZ2VPdXRzZXQgPSBuZXcgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUNvbWJp
bmVyKCJib3JkZXItaW1hZ2Utb3V0c2V0IiwgYm9yZGVySW1hZ2VPdXRzZXQucHJvcGVydGllcywg
dHJ1ZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlU2xpY2UgPSBnZW5lcmF0ZUJvcmRlcklt
YWdlUHJvcGVydHlFZGl0b3JzKCJib3JkZXItaW1hZ2Utc2xpY2UiLCB0aGlzLl9rZXl3b3Jkcy5k
ZWZhdWx0cywgWyIlIl0uY29uY2F0KG5vbktleXdvcmRVbml0cykpOwotICAgICAgICBib3JkZXJJ
bWFnZVNsaWNlLnByb3BlcnRpZXMucHVzaChib3JkZXJJbWFnZVNsaWNlRmlsbCk7Ci0gICAgICAg
IHByb3BlcnRpZXMuYm9yZGVySW1hZ2VTbGljZSA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5
Q29tYmluZXIoImJvcmRlci1pbWFnZS1zbGljZSIsIGJvcmRlckltYWdlU2xpY2UucHJvcGVydGll
cywgdHJ1ZSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlUHJvcGVydGllc1RhYkNvbnRyb2xs
ZXIgPSBuZXcgV0kuVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93KHsKLSAgICAgICAgICAg
ICJ3aWR0aCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIldpZHRoIiksIGVsZW1lbnQ6IGJvcmRlcklt
YWdlV2lkdGguZ3JvdXAuZWxlbWVudCwgcHJvcGVydGllczogW3Byb3BlcnRpZXMuYm9yZGVySW1h
Z2VXaWR0aF19LAotICAgICAgICAgICAgIm91dHNldCI6IHt0aXRsZTogV0kuVUlTdHJpbmcoIk91
dHNldCIpLCBlbGVtZW50OiBib3JkZXJJbWFnZU91dHNldC5ncm91cC5lbGVtZW50LCBwcm9wZXJ0
aWVzOiBbcHJvcGVydGllcy5ib3JkZXJJbWFnZU91dHNldF19LAotICAgICAgICAgICAgInNsaWNl
Ijoge3RpdGxlOiBXSS5VSVN0cmluZygiU2xpY2UiKSwgZWxlbWVudDogYm9yZGVySW1hZ2VTbGlj
ZS5ncm91cC5lbGVtZW50LCBwcm9wZXJ0aWVzOiBbcHJvcGVydGllcy5ib3JkZXJJbWFnZVNsaWNl
XX0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbGV0IGJvcmRlckltYWdlR3JvdXAgPSBuZXcgV0ku
RGV0YWlsc1NlY3Rpb25Hcm91cChbYm9yZGVySW1hZ2VTb3VyY2VSb3csIGJvcmRlckltYWdlUmVw
ZWF0Um93LCBib3JkZXJJbWFnZVByb3BlcnRpZXNUYWJDb250cm9sbGVyLCBib3JkZXJJbWFnZVdp
ZHRoLmdyb3VwLCBib3JkZXJJbWFnZU91dHNldC5ncm91cCwgYm9yZGVySW1hZ2VTbGljZS5ncm91
cF0pOwotCi0gICAgICAgIGdyb3VwLmF1dG9jb21wbGV0ZUNvbXBhdGlibGVQcm9wZXJ0aWVzID0g
W3Byb3BlcnRpZXMuYm9yZGVyQ29sb3IsIHByb3BlcnRpZXMuYm9yZGVyVG9wQ29sb3IsIHByb3Bl
cnRpZXMuYm9yZGVyQm90dG9tQ29sb3IsIHByb3BlcnRpZXMuYm9yZGVyTGVmdENvbG9yLCBwcm9w
ZXJ0aWVzLmJvcmRlclJpZ2h0Q29sb3JdOwotCi0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlv
bihncm91cCwgW2JvcmRlckdyb3VwLCBib3JkZXJJbWFnZUdyb3VwXSk7Ci0KLSAgICAgICAgbGV0
IGFsbG93ZWRCb3JkZXJWYWx1ZXMgPSBbInNvbGlkIiwgImRhc2hlZCIsICJkb3R0ZWQiLCAiZG91
YmxlIiwgImdyb292ZSIsICJpbnNldCIsICJvdXRzZXQiLCAicmlkZ2UiXTsKLSAgICAgICAgcHJv
cGVydGllcy5ib3JkZXJXaWR0aC5hZGREZXBlbmRlbmN5KFsiYm9yZGVyLXRvcC1zdHlsZSIsICJi
b3JkZXItcmlnaHQtc3R5bGUiLCAiYm9yZGVyLWJvdHRvbS1zdHlsZSIsICJib3JkZXItbGVmdC1z
dHlsZSJdLCBhbGxvd2VkQm9yZGVyVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJD
b2xvci5hZGREZXBlbmRlbmN5KFsiYm9yZGVyLXRvcC1zdHlsZSIsICJib3JkZXItcmlnaHQtc3R5
bGUiLCAiYm9yZGVyLWJvdHRvbS1zdHlsZSIsICJib3JkZXItbGVmdC1zdHlsZSJdLCBhbGxvd2Vk
Qm9yZGVyVmFsdWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5ib3JkZXJUb3BXaWR0aC5hZGREZXBl
bmRlbmN5KCJib3JkZXItdG9wLXN0eWxlIiwgYWxsb3dlZEJvcmRlclZhbHVlcyk7Ci0gICAgICAg
IHByb3BlcnRpZXMuYm9yZGVyVG9wQ29sb3IuYWRkRGVwZW5kZW5jeSgiYm9yZGVyLXRvcC1zdHls
ZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlclJpZ2h0
V2lkdGguYWRkRGVwZW5kZW5jeSgiYm9yZGVyLXJpZ2h0LXN0eWxlIiwgYWxsb3dlZEJvcmRlclZh
bHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyUmlnaHRDb2xvci5hZGREZXBlbmRlbmN5
KCJib3JkZXItcmlnaHQtc3R5bGUiLCBhbGxvd2VkQm9yZGVyVmFsdWVzKTsKLSAgICAgICAgcHJv
cGVydGllcy5ib3JkZXJCb3R0b21XaWR0aC5hZGREZXBlbmRlbmN5KCJib3JkZXItYm90dG9tLXN0
eWxlIiwgYWxsb3dlZEJvcmRlclZhbHVlcyk7Ci0gICAgICAgIHByb3BlcnRpZXMuYm9yZGVyQm90
dG9tQ29sb3IuYWRkRGVwZW5kZW5jeSgiYm9yZGVyLWJvdHRvbS1zdHlsZSIsIGFsbG93ZWRCb3Jk
ZXJWYWx1ZXMpOwotICAgICAgICBwcm9wZXJ0aWVzLmJvcmRlckxlZnRXaWR0aC5hZGREZXBlbmRl
bmN5KCJib3JkZXItbGVmdC1zdHlsZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgICAgICBw
cm9wZXJ0aWVzLmJvcmRlckxlZnRDb2xvci5hZGREZXBlbmRlbmN5KCJib3JkZXItbGVmdC1zdHls
ZSIsIGFsbG93ZWRCb3JkZXJWYWx1ZXMpOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZU91dGxpbmVT
ZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5vdXRsaW5l
OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAg
bGV0IG91dGxpbmVTaXplUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAg
IHByb3BlcnRpZXMub3V0bGluZVN0eWxlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
cigib3V0bGluZS1zdHlsZSIsIFdJLlVJU3RyaW5nKCJTdHlsZSIpLCB0aGlzLl9rZXl3b3Jkcy5i
b3JkZXJTdHlsZSk7Ci0gICAgICAgIHByb3BlcnRpZXMub3V0bGluZVdpZHRoID0gbmV3IFdJLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm91dGxpbmUtd2lkdGgiLCBXSS5VSVN0cmluZygiV2lk
dGgiKSwgdGhpcy5fa2V5d29yZHMuYm9yZGVyV2lkdGgsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsK
LQotICAgICAgICBvdXRsaW5lU2l6ZVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
b3V0bGluZVN0eWxlLmVsZW1lbnQpOwotICAgICAgICBvdXRsaW5lU2l6ZVJvdy5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMub3V0bGluZVdpZHRoLmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCBvdXRsaW5lU3R5bGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
cHJvcGVydGllcy5vdXRsaW5lQ29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigi
b3V0bGluZS1jb2xvciIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgcHJvcGVydGll
cy5vdXRsaW5lT2Zmc2V0ID0gbmV3IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIm91dGxp
bmUtb2Zmc2V0IiwgV0kuVUlTdHJpbmcoIk9mZnNldCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0
cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwotCi0gICAgICAgIG91dGxpbmVTdHlsZVJv
dy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMub3V0bGluZUNvbG9yLmVsZW1lbnQpOwot
ICAgICAgICBvdXRsaW5lU3R5bGVSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLm91
dGxpbmVPZmZzZXQuZWxlbWVudCk7Ci0KLSAgICAgICAgZ3JvdXAuYXV0b2NvbXBsZXRlQ29tcGF0
aWJsZVByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5vdXRsaW5lQ29sb3JdOwotCi0gICAgICAgIGxl
dCBvdXRsaW5lR3JvdXAgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Hcm91cChbb3V0bGluZVNpemVS
b3csIG91dGxpbmVTdHlsZVJvd10pOwotICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3Jv
dXAsIFtvdXRsaW5lR3JvdXBdKTsKLQotICAgICAgICBsZXQgYWxsb3dlZE91dGxpbmVWYWx1ZXMg
PSBbInNvbGlkIiwgImRhc2hlZCIsICJkb3R0ZWQiLCAiZG91YmxlIiwgImdyb292ZSIsICJpbnNl
dCIsICJvdXRzZXQiLCAicmlkZ2UiXTsKLSAgICAgICAgcHJvcGVydGllcy5vdXRsaW5lV2lkdGgu
YWRkRGVwZW5kZW5jeSgib3V0bGluZS1zdHlsZSIsIGFsbG93ZWRPdXRsaW5lVmFsdWVzKTsKLSAg
ICAgICAgcHJvcGVydGllcy5vdXRsaW5lQ29sb3IuYWRkRGVwZW5kZW5jeSgib3V0bGluZS1zdHls
ZSIsIGFsbG93ZWRPdXRsaW5lVmFsdWVzKTsKLSAgICB9Ci0KLSAgICBfcG9wdWxhdGVCb3hTaGFk
b3dTZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy5ib3hT
aGFkb3c7Ci0gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKLQotICAg
ICAgICBsZXQgYm94U2hhZG93Um93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAg
ICAgIHByb3BlcnRpZXMuYm94U2hhZG93ID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0
ZWRLZXl3b3JkRWRpdG9yKCJib3gtc2hhZG93Iik7Ci0KLSAgICAgICAgYm94U2hhZG93Um93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5ib3hTaGFkb3cuZWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IGJveFNoYWRvd0hSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAg
ICAgbGV0IGJveFNoYWRvd0ggPSBuZXcgV0kuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRl
cigiYm94LXNoYWRvdyIsIFdJLlVJU3RyaW5nKCJMZWZ0IiksIG51bGwsIHRoaXMuX3VuaXRzLmRl
ZmF1bHRzU2Fuc1BlcmNlbnQsIHRydWUpOwotCi0gICAgICAgIGJveFNoYWRvd0hSb3cuZWxlbWVu
dC5hcHBlbmRDaGlsZChib3hTaGFkb3dILmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3hTaGFk
b3dWUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBib3hTaGFk
b3dWID0gbmV3IFdJLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoImJveC1zaGFkb3ci
LCBXSS5VSVN0cmluZygiVG9wIiksIG51bGwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzU2Fuc1BlcmNl
bnQsIHRydWUpOwotCi0gICAgICAgIGJveFNoYWRvd1ZSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChi
b3hTaGFkb3dWLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3hTaGFkb3dCbHVyUm93ID0gbmV3
IFdJLkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCBib3hTaGFkb3dCbHVyID0gbmV3
IFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goImJveC1zaGFkb3ciLCBXSS5VSVN0cmluZygi
Qmx1ciIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQZXJjZW50KTsKLSAgICAgICAg
Ym94U2hhZG93Qmx1ci5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgbGV0IGJveFNo
YWRvd1NwcmVhZCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJib3gtc2hhZG93
IiwgV0kuVUlTdHJpbmcoIlNwcmVhZCIpLCBudWxsLCB0aGlzLl91bml0cy5kZWZhdWx0c1NhbnNQ
ZXJjZW50LCB0cnVlKTsKLSAgICAgICAgYm94U2hhZG93U3ByZWFkLm9wdGlvbmFsUHJvcGVydHkg
PSB0cnVlOwotCi0gICAgICAgIGJveFNoYWRvd0JsdXJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChi
b3hTaGFkb3dCbHVyLmVsZW1lbnQpOwotICAgICAgICBib3hTaGFkb3dCbHVyUm93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQoYm94U2hhZG93U3ByZWFkLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBib3hT
aGFkb3dDb2xvclJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQg
Ym94U2hhZG93Q29sb3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigiYm94LXNoYWRv
dyIsIFdJLlVJU3RyaW5nKCJDb2xvciIpKTsKLSAgICAgICAgbGV0IGJveFNoYWRvd0luc2V0ID0g
bmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94KCJib3gtc2hhZG93IiwgV0kuVUlTdHJp
bmcoIkluc2V0IiksICJJbnNldCIpOwotICAgICAgICBib3hTaGFkb3dJbnNldC5vcHRpb25hbFBy
b3BlcnR5ID0gdHJ1ZTsKLQotICAgICAgICBib3hTaGFkb3dDb2xvclJvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKGJveFNoYWRvd0NvbG9yLmVsZW1lbnQpOwotICAgICAgICBib3hTaGFkb3dDb2xvclJv
dy5lbGVtZW50LmFwcGVuZENoaWxkKGJveFNoYWRvd0luc2V0LmVsZW1lbnQpOwotCi0gICAgICAg
IGxldCBib3hTaGFkb3dQcm9wZXJ0aWVzID0gW2JveFNoYWRvd0gsIGJveFNoYWRvd1YsIGJveFNo
YWRvd0JsdXIsIGJveFNoYWRvd1NwcmVhZCwgYm94U2hhZG93Q29sb3IsIGJveFNoYWRvd0luc2V0
XTsKLSAgICAgICAgbGV0IGJveFNoYWRvd1Byb3BlcnR5Q29tYmluZXIgPSBuZXcgV0kuVmlzdWFs
U3R5bGVQcm9wZXJ0eUNvbWJpbmVyKCJib3gtc2hhZG93IiwgYm94U2hhZG93UHJvcGVydGllcyk7
Ci0KLSAgICAgICAgbGV0IG5vUmVtYWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcyA9IHRo
aXMuX25vUmVtYWluaW5nQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtcy5iaW5kKHRoaXMsIGJveFNo
YWRvd1Byb3BlcnR5Q29tYmluZXIsIGJveFNoYWRvd1Byb3BlcnRpZXMpOwotICAgICAgICBwcm9w
ZXJ0aWVzLmJveFNoYWRvdy5hZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlQ29tbWFTZXBh
cmF0ZWRLZXl3b3JkRWRpdG9yLkV2ZW50Lk5vUmVtYWluaW5nVHJlZUl0ZW1zLCBub1JlbWFpbmlu
Z0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMsIHRoaXMpOwotCi0gICAgICAgIGxldCBzZWxlY3Rl
ZENvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbVZhbHVlQ2hhbmdlZCA9IHRoaXMuX3NlbGVjdGVkQ29t
bWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkLmJpbmQodGhpcywgcHJvcGVydGllcy5i
b3hTaGFkb3csIGJveFNoYWRvd1Byb3BlcnR5Q29tYmluZXIpOwotICAgICAgICBib3hTaGFkb3dQ
cm9wZXJ0eUNvbWJpbmVyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVk
aXRvci5FdmVudC5WYWx1ZURpZENoYW5nZSwgc2VsZWN0ZWRDb21tYVNlcGFyYXRlZEVkaXRvckl0
ZW1WYWx1ZUNoYW5nZWQsIHRoaXMpOwotCi0gICAgICAgIGxldCBjb21tYVNlcGFyYXRlZEVkaXRv
clRyZWVJdGVtU2VsZWN0ZWQgPSB0aGlzLl9jb21tYVNlcGFyYXRlZEVkaXRvclRyZWVJdGVtU2Vs
ZWN0ZWQuYmluZChib3hTaGFkb3dQcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgcHJvcGVydGll
cy5ib3hTaGFkb3cuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVk
S2V5d29yZEVkaXRvci5FdmVudC5UcmVlSXRlbVNlbGVjdGVkLCBjb21tYVNlcGFyYXRlZEVkaXRv
clRyZWVJdGVtU2VsZWN0ZWQsIHRoaXMpOwotCi0gICAgICAgIGdyb3VwLmF1dG9jb21wbGV0ZUNv
bXBhdGlibGVQcm9wZXJ0aWVzID0gW2JveFNoYWRvd0NvbG9yXTsKLSAgICAgICAgZ3JvdXAuc3Bl
Y2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuYm94U2hhZG93XTsKLQotICAgICAg
ICBsZXQgYm94U2hhZG93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2JveFNoYWRvd1Jv
dywgYm94U2hhZG93SFJvdywgYm94U2hhZG93VlJvdywgYm94U2hhZG93Qmx1clJvdywgYm94U2hh
ZG93Q29sb3JSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbYm94
U2hhZG93XSk7Ci0gICAgfQotCi0gICAgX3BvcHVsYXRlTGlzdFN0eWxlU2VjdGlvbigpCi0gICAg
ewotICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMubGlzdFN0eWxlOwotICAgICAgICBs
ZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAgbGV0IGxpc3RTdHls
ZVR5cGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGll
cy5saXN0U3R5bGVUeXBlID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigibGlzdC1z
dHlsZS10eXBlIiwgV0kuVUlTdHJpbmcoIlR5cGUiKSwgewotICAgICAgICAgICAgYmFzaWM6IHRo
aXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk5vbmUiLCAiQ2lyY2xlIiwgIkRpc2MiLCAi
U3F1YXJlIiwgIkRlY2ltYWwiLCAiTG93ZXIgQWxwaGEiLCAiVXBwZXIgQWxwaGEiLCAiTG93ZXIg
Um9tYW4iLCAiVXBwZXIgUm9tYW4iXSksCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJEZWNpbWFs
IExlYWRpbmcgWmVybyIsICJBc3Rlcmlza3MiLCAiRm9vdG5vdGVzIiwgIkJpbmFyeSIsICJPY3Rh
bCIsICJMb3dlciBIZXhhZGVjaW1hbCIsICJVcHBlciBIZXhhZGVjaW1hbCIsICJMb3dlciBMYXRp
biIsICJVcHBlciBMYXRpbiIsICJMb3dlciBHcmVlayIsICJVcHBlciBHcmVlayIsICJBcmFiaWMg
SW5kaWMiLCAiSGVicmV3IiwgIkhpcmFnYW5hIiwgIkthdGFrYW5hIiwgIkhpcmFnYW5hIElyb2hh
IiwgIkthdGFrYW5hIElyb2hhIiwgIkNKSyBFYXJ0aGx5IEJyYW5jaCIsICJDSksgSGVhdmVubHkg
U3RlbSIsICJDSksgSWRlb2dyYXBoaWMiLCAiQmVuZ2FsaSIsICJDYW1ib2RpYW4iLCAiS2htZXIi
LCAiRGV2YW5hZ2FyaSIsICJHdWphcmF0aSIsICJHdXJtdWtoaSIsICJLYW5uYWRhIiwgIkxhbyIs
ICJNYWxheWFsYW0iLCAiTW9uZ29saWFuIiwgIk15YW5tYXIiLCAiT3JpeWEiLCAiUGVyc2lhbiIs
ICJVcmR1IiwgIlRlbHVndSIsICJBcm1lbmlhbiIsICJMb3dlciBBcm1lbmlhbiIsICJVcHBlciBB
cm1lbmlhbiIsICJHZW9yZ2lhbiIsICJUaWJldGFuIiwgIlRoYWkiLCAiQWZhciIsICJIYW5ndWwg
Q29uc29uYW50IiwgIkhhbmd1bCIsICJMb3dlciBOb3J3ZWdpYW4iLCAiVXBwZXIgTm9yd2VnaWFu
IiwgIkV0aGlvcGljIiwgIkV0aGlvcGljIEhhbGVoYW1lIEdleiIsICJFdGhpb3BpYyBIYWxlaGFt
ZSBBYSBFdCIsICJFdGhpb3BpYyBIYWxlaGFtZSBBYSBFciIsICJPcm9tbyIsICJFdGhpb3BpYyBI
YWxlaGFtZSBPbSBFdCIsICJTaWRhbWEiLCAiRXRoaW9waWMgSGFsZWhhbWUgU2lkIEV0IiwgIlNv
bWFsaSIsICJFdGhpb3BpYyBIYWxlaGFtZSBTbyBFdCIsICJBbWhhcmljIiwgIkV0aGlvcGljIEhh
bGVoYW1lIEFtIEV0IiwgIlRpZ3JlIiwgIkV0aGlvcGljIEhhbGVoYW1lIFRpZyIsICJUaWdyaW55
YSBFciIsICJFdGhpb3BpYyBIYWxlaGFtZSBUaSBFciIsICJUaWdyaW55YSBFdCIsICJFdGhpb3Bp
YyBIYWxlaGFtZSBUaSBFdCIsICJFdGhpb3BpYyBBYmVnZWRlIiwgIkV0aGlvcGljIEFiZWdlZGUg
R2V6IiwgIkFtaGFyaWMgQWJlZ2VkZSIsICJFdGhpb3BpYyBBYmVnZWRlIEFtIEV0IiwgIlRpZ3Jp
bnlhIEVyIEFiZWdlZGUiLCAiRXRoaW9waWMgQWJlZ2VkZSBUaSBFciIsICJUaWdyaW55YSBFdCBB
YmVnZWRlIiwgIkV0aGlvcGljIEFiZWdlZGUgVGkgRXQiXQotICAgICAgICB9KTsKLQotICAgICAg
ICBwcm9wZXJ0aWVzLmxpc3RTdHlsZVBvc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlS2V5d29y
ZEljb25MaXN0KCJsaXN0LXN0eWxlLXBvc2l0aW9uIiwgV0kuVUlTdHJpbmcoIlBvc2l0aW9uIiks
IFsiT3V0c2lkZSIsICJJbnNpZGUiLCAiSW5pdGlhbCJdKTsKLQotICAgICAgICBsaXN0U3R5bGVU
eXBlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5saXN0U3R5bGVUeXBlLmVsZW1l
bnQpOwotICAgICAgICBsaXN0U3R5bGVUeXBlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy5saXN0U3R5bGVQb3NpdGlvbi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgbGlzdFN0eWxl
SW1hZ2VSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGll
cy5saXN0U3R5bGVJbWFnZSA9IG5ldyBXSS5WaXN1YWxTdHlsZVVSTElucHV0KCJsaXN0LXN0eWxl
LWltYWdlIiwgV0kuVUlTdHJpbmcoIkltYWdlIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNv
bmNhdChbIk5vbmUiXSkpOwotCi0gICAgICAgIGxpc3RTdHlsZUltYWdlUm93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy5saXN0U3R5bGVJbWFnZS5lbGVtZW50KTsKLQotICAgICAgICBs
ZXQgbGlzdFN0eWxlID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW2xpc3RTdHlsZVR5cGVS
b3csIGxpc3RTdHlsZUltYWdlUm93XSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihn
cm91cCwgW2xpc3RTdHlsZV0pOwotICAgIH0KLQotICAgIF9wb3B1bGF0ZVRyYW5zaXRpb25TZWN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dyb3Vwcy50cmFuc2l0aW9u
OwotICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7Ci0KLSAgICAgICAg
bGV0IHRyYW5zaXRpb25Sb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAg
cHJvcGVydGllcy50cmFuc2l0aW9uID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tbWFTZXBhcmF0ZWRL
ZXl3b3JkRWRpdG9yKCJ0cmFuc2l0aW9uIiwgbnVsbCwgewotICAgICAgICAgICAgInRyYW5zaXRp
b24tcHJvcGVydHkiOiAiYWxsIiwKLSAgICAgICAgICAgICJ0cmFuc2l0aW9uLXRpbWluZy1mdW5j
dGlvbiI6ICJlYXNlIiwKLSAgICAgICAgICAgICJ0cmFuc2l0aW9uLWR1cmF0aW9uIjogIjAiLAot
ICAgICAgICAgICAgInRyYW5zaXRpb24tZGVsYXkiOiAiMCIKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgdHJhbnNpdGlvblJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMudHJhbnNpdGlv
bi5lbGVtZW50KTsKLQotICAgICAgICBsZXQgdHJhbnNpdGlvblByb3BlcnR5Um93ID0gbmV3IFdJ
LkRldGFpbHNTZWN0aW9uUm93OwotCi0gICAgICAgIGxldCB0cmFuc2l0aW9uUHJvcGVydHkgPSBu
ZXcgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dCgidHJhbnNpdGlvbi1wcm9wZXJ0eSIs
IFdJLlVJU3RyaW5nKCJQcm9wZXJ0eSIpKTsKLSAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5Lm1h
c3RlclByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgbGV0IHRyYW5zaXRpb25UaW1pbmcgPSBuZXcg
V0kuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IoInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIiwg
V0kuVUlTdHJpbmcoIlRpbWluZyIpLCBbIkxpbmVhciIsICJFYXNlIiwgIkVhc2UgSW4iLCAiRWFz
ZSBPdXQiLCAiRWFzZSBJbiBPdXQiXSk7Ci0gICAgICAgIHRyYW5zaXRpb25UaW1pbmcub3B0aW9u
YWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5Um93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQodHJhbnNpdGlvblByb3BlcnR5LmVsZW1lbnQpOwotICAgICAgICB0cmFu
c2l0aW9uUHJvcGVydHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZCh0cmFuc2l0aW9uVGltaW5nLmVs
ZW1lbnQpOwotCi0gICAgICAgIGxldCB0cmFuc2l0aW9uRHVyYXRpb25Sb3cgPSBuZXcgV0kuRGV0
YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0IHRyYW5zaXRpb25UaW1lS2V5d29yZHMgPSBb
InMiLCAibXMiXTsKLSAgICAgICAgbGV0IHRyYW5zaXRpb25EdXJhdGlvbiA9IG5ldyBXSS5WaXN1
YWxTdHlsZU51bWJlcklucHV0Qm94KCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiwgV0kuVUlTdHJpbmco
IkR1cmF0aW9uIiksIG51bGwsIHRyYW5zaXRpb25UaW1lS2V5d29yZHMpOwotICAgICAgICB0cmFu
c2l0aW9uRHVyYXRpb24ub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0gICAgICAgIGxldCB0cmFu
c2l0aW9uRGVsYXkgPSBuZXcgV0kuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgidHJhbnNpdGlv
bi1kZWxheSIsIFdJLlVJU3RyaW5nKCJEZWxheSIpLCBudWxsLCB0cmFuc2l0aW9uVGltZUtleXdv
cmRzKTsKLSAgICAgICAgdHJhbnNpdGlvbkRlbGF5Lm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwot
Ci0gICAgICAgIHRyYW5zaXRpb25EdXJhdGlvblJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHRyYW5z
aXRpb25EdXJhdGlvbi5lbGVtZW50KTsKLSAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQodHJhbnNpdGlvbkRlbGF5LmVsZW1lbnQpOwotCi0gICAgICAgIGxl
dCB0cmFuc2l0aW9uUHJvcGVydGllcyA9IFt0cmFuc2l0aW9uUHJvcGVydHksIHRyYW5zaXRpb25E
dXJhdGlvbiwgdHJhbnNpdGlvblRpbWluZywgdHJhbnNpdGlvbkRlbGF5XTsKLSAgICAgICAgbGV0
IHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyID0gbmV3IFdJLlZpc3VhbFN0eWxlUHJvcGVydHlD
b21iaW5lcigidHJhbnNpdGlvbiIsIHRyYW5zaXRpb25Qcm9wZXJ0aWVzKTsKLQotICAgICAgICBs
ZXQgbm9SZW1haW5pbmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zID0gdGhpcy5fbm9SZW1haW5p
bmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zLmJpbmQodGhpcywgdHJhbnNpdGlvblByb3BlcnR5
Q29tYmluZXIsIHRyYW5zaXRpb25Qcm9wZXJ0aWVzKTsKLSAgICAgICAgcHJvcGVydGllcy50cmFu
c2l0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdv
cmRFZGl0b3IuRXZlbnQuTm9SZW1haW5pbmdUcmVlSXRlbXMsIG5vUmVtYWluaW5nQ29tbWFTZXBh
cmF0ZWRFZGl0b3JJdGVtcywgdGhpcyk7Ci0KLSAgICAgICAgbGV0IHNlbGVjdGVkQ29tbWFTZXBh
cmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFuZ2VkID0gdGhpcy5fc2VsZWN0ZWRDb21tYVNlcGFyYXRl
ZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQuYmluZCh0aGlzLCBwcm9wZXJ0aWVzLnRyYW5zaXRpb24s
IHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5
Q29tYmluZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLkV2
ZW50LlZhbHVlRGlkQ2hhbmdlLCBzZWxlY3RlZENvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbVZhbHVl
Q2hhbmdlZCwgdGhpcyk7Ci0KLSAgICAgICAgbGV0IGNvbW1hU2VwYXJhdGVkRWRpdG9yVHJlZUl0
ZW1TZWxlY3RlZCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkRWRpdG9yVHJlZUl0ZW1TZWxlY3RlZC5i
aW5kKHRyYW5zaXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgcHJvcGVydGllcy50cmFu
c2l0aW9uLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdv
cmRFZGl0b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwgY29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVl
SXRlbVNlbGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBncm91cC5hdXRvY29tcGxldGVDb21wYXRp
YmxlUHJvcGVydGllcyA9IFt0cmFuc2l0aW9uUHJvcGVydHldOwotICAgICAgICBncm91cC5zcGVj
aWZpZWRXaWR0aFByb3BlcnRpZXMgPSBbcHJvcGVydGllcy50cmFuc2l0aW9uXTsKLQotICAgICAg
ICBsZXQgdHJhbnNpdGlvbkdyb3VwID0gbmV3IFdJLkRldGFpbHNTZWN0aW9uR3JvdXAoW3RyYW5z
aXRpb25Sb3csIHRyYW5zaXRpb25Qcm9wZXJ0eVJvdywgdHJhbnNpdGlvbkR1cmF0aW9uUm93XSk7
Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3RyYW5zaXRpb25Hcm91cF0p
OwotICAgIH0KLQotICAgIF9wb3B1bGF0ZUFuaW1hdGlvblNlY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmFuaW1hdGlvbjsKLSAgICAgICAgbGV0IHByb3Bl
cnRpZXMgPSBncm91cC5wcm9wZXJ0aWVzOwotCi0gICAgICAgIGxldCBhbmltYXRpb25Sb3cgPSBu
ZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgcHJvcGVydGllcy5hbmltYXRpb24g
PSBuZXcgV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IoImFuaW1hdGlv
biIsIG51bGwsIHsKLSAgICAgICAgICAgICJhbmltYXRpb24tbmFtZSI6ICJub25lIiwKLSAgICAg
ICAgICAgICJhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIjogImVhc2UiLAotICAgICAgICAgICAg
ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOiAiMSIsCi0gICAgICAgICAgICAiYW5pbWF0aW9u
LWR1cmF0aW9uIjogIjAiLAotICAgICAgICAgICAgImFuaW1hdGlvbi1kZWxheSI6ICIwIiwKLSAg
ICAgICAgICAgICJhbmltYXRpb24tZGlyZWN0aW9uIjogIm5vcm1hbCIsCi0gICAgICAgICAgICAi
YW5pbWF0aW9uLWZpbGwtbW9kZSI6ICJub25lIiwKLSAgICAgICAgICAgICJhbmltYXRpb24tcGxh
eS1zdGF0ZSI6ICJydW5uaW5nIgotICAgICAgICB9KTsKLQotICAgICAgICBhbmltYXRpb25Sb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmFuaW1hdGlvbi5lbGVtZW50KTsKLQotICAg
ICAgICBsZXQgYW5pbWF0aW9uTmFtZVJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQot
ICAgICAgICBsZXQgYW5pbWF0aW9uTmFtZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUJhc2ljSW5wdXQo
ImFuaW1hdGlvbi1uYW1lIiwgV0kuVUlTdHJpbmcoIk5hbWUiKSwgV0kuVUlTdHJpbmcoIkVudGVy
IHRoZSBuYW1lIG9mIGEgS2V5ZnJhbWUiKSk7Ci0gICAgICAgIGFuaW1hdGlvbk5hbWUubWFzdGVy
UHJvcGVydHkgPSB0cnVlOwotCi0gICAgICAgIGFuaW1hdGlvbk5hbWVSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChhbmltYXRpb25OYW1lLmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBhbmltYXRpb25U
aW1pbmdSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0IGFuaW1h
dGlvblRpbWluZyA9IG5ldyBXSS5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvcigiYW5pbWF0aW9uLXRp
bWluZy1mdW5jdGlvbiIsIFdJLlVJU3RyaW5nKCJUaW1pbmciKSwgWyJMaW5lYXIiLCAiRWFzZSIs
ICJFYXNlIEluIiwgIkVhc2UgT3V0IiwgIkVhc2UgSW4gT3V0Il0pOwotICAgICAgICBhbmltYXRp
b25UaW1pbmcub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0gICAgICAgIGxldCBhbmltYXRpb25J
dGVyYXRpb25Db3VudCA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJhbmltYXRp
b24taXRlcmF0aW9uLWNvdW50IiwgV0kuVUlTdHJpbmcoIkl0ZXJhdGlvbnMiKSwgdGhpcy5fa2V5
d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiSW5maW5pdGUiXSksIG51bGwpOwotICAgICAgICBhbmlt
YXRpb25JdGVyYXRpb25Db3VudC5vcHRpb25hbFByb3BlcnR5ID0gdHJ1ZTsKLQotICAgICAgICBh
bmltYXRpb25UaW1pbmdSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25UaW1pbmcuZWxl
bWVudCk7Ci0gICAgICAgIGFuaW1hdGlvblRpbWluZ1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKGFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50LmVsZW1lbnQpOwotCi0gICAgICAgIGxldCBhbmltYXRpb25E
dXJhdGlvblJvdyA9IG5ldyBXSS5EZXRhaWxzU2VjdGlvblJvdzsKLQotICAgICAgICBsZXQgYW5p
bWF0aW9uVGltZUtleXdvcmRzID0gWyJzIiwgIm1zIl07Ci0gICAgICAgIGxldCBhbmltYXRpb25E
dXJhdGlvbiA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJhbmltYXRpb24tZHVy
YXRpb24iLCBXSS5VSVN0cmluZygiRHVyYXRpb24iKSwgbnVsbCwgYW5pbWF0aW9uVGltZUtleXdv
cmRzKTsKLSAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24ub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7
Ci0gICAgICAgIGxldCBhbmltYXRpb25EZWxheSA9IG5ldyBXSS5WaXN1YWxTdHlsZU51bWJlcklu
cHV0Qm94KCJhbmltYXRpb24tZGVsYXkiLCBXSS5VSVN0cmluZygiRGVsYXkiKSwgbnVsbCwgYW5p
bWF0aW9uVGltZUtleXdvcmRzKTsKLSAgICAgICAgYW5pbWF0aW9uRGVsYXkub3B0aW9uYWxQcm9w
ZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYW5pbWF0aW9uRHVyYXRpb25Sb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChhbmltYXRpb25EdXJhdGlvbi5lbGVtZW50KTsKLSAgICAgICAgYW5pbWF0aW9uRHVy
YXRpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGlsZChhbmltYXRpb25EZWxheS5lbGVtZW50KTsKLQot
ICAgICAgICBsZXQgYW5pbWF0aW9uRGlyZWN0aW9uUm93ID0gbmV3IFdJLkRldGFpbHNTZWN0aW9u
Um93OwotCi0gICAgICAgIGxldCBhbmltYXRpb25EaXJlY3Rpb24gPSBuZXcgV0kuVmlzdWFsU3R5
bGVLZXl3b3JkUGlja2VyKCJhbmltYXRpb24tZGlyZWN0aW9uIiwgV0kuVUlTdHJpbmcoIkRpcmVj
dGlvbiIpLCB7Ci0gICAgICAgICAgICBiYXNpYzogdGhpcy5fa2V5d29yZHMubm9ybWFsLmNvbmNh
dChbIlJldmVyc2UiXSksCi0gICAgICAgICAgICBhZHZhbmNlZDogWyJBbHRlcm5hdGUiLCAiQWx0
ZXJuYXRlIFJldmVyc2UiXQotICAgICAgICB9KTsKLSAgICAgICAgYW5pbWF0aW9uRGlyZWN0aW9u
Lm9wdGlvbmFsUHJvcGVydHkgPSB0cnVlOwotICAgICAgICBsZXQgYW5pbWF0aW9uRmlsbE1vZGUg
PSBuZXcgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJhbmltYXRpb24tZmlsbC1tb2RlIiwg
V0kuVUlTdHJpbmcoIkZpbGwgTW9kZSIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQo
WyJOb25lIiwgIkZvcndhcmRzIiwgIkJhY2t3YXJkcyIsICJCb3RoIl0pKTsKLSAgICAgICAgYW5p
bWF0aW9uRmlsbE1vZGUub3B0aW9uYWxQcm9wZXJ0eSA9IHRydWU7Ci0KLSAgICAgICAgYW5pbWF0
aW9uRGlyZWN0aW9uUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQoYW5pbWF0aW9uRGlyZWN0aW9uLmVs
ZW1lbnQpOwotICAgICAgICBhbmltYXRpb25EaXJlY3Rpb25Sb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChhbmltYXRpb25GaWxsTW9kZS5lbGVtZW50KTsKLQotICAgICAgICBsZXQgYW5pbWF0aW9uU3Rh
dGVSb3cgPSBuZXcgV0kuRGV0YWlsc1NlY3Rpb25Sb3c7Ci0KLSAgICAgICAgbGV0IGFuaW1hdGlv
blBsYXlTdGF0ZSA9IG5ldyBXSS5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCgiYW5pbWF0aW9u
LXBsYXktc3RhdGUiLCBXSS5VSVN0cmluZygiU3RhdGUiKSwgWyJSdW5uaW5nIiwgIlBhdXNlZCIs
ICJJbml0aWFsIl0pOwotICAgICAgICBhbmltYXRpb25QbGF5U3RhdGUub3B0aW9uYWxQcm9wZXJ0
eSA9IHRydWU7Ci0KLSAgICAgICAgYW5pbWF0aW9uU3RhdGVSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChhbmltYXRpb25QbGF5U3RhdGUuZWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IGFuaW1hdGlvblBy
b3BlcnRpZXMgPSBbYW5pbWF0aW9uTmFtZSwgYW5pbWF0aW9uRHVyYXRpb24sIGFuaW1hdGlvblRp
bWluZywgYW5pbWF0aW9uRGVsYXksIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50LCBhbmltYXRpb25E
aXJlY3Rpb24sIGFuaW1hdGlvbkZpbGxNb2RlLCBhbmltYXRpb25QbGF5U3RhdGVdOwotICAgICAg
ICBsZXQgYW5pbWF0aW9uUHJvcGVydHlDb21iaW5lciA9IG5ldyBXSS5WaXN1YWxTdHlsZVByb3Bl
cnR5Q29tYmluZXIoImFuaW1hdGlvbiIsIGFuaW1hdGlvblByb3BlcnRpZXMpOwotCi0gICAgICAg
IGxldCBub1JlbWFpbmluZ0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMgPSB0aGlzLl9ub1JlbWFp
bmluZ0NvbW1hU2VwYXJhdGVkRWRpdG9ySXRlbXMuYmluZCh0aGlzLCBhbmltYXRpb25Qcm9wZXJ0
eUNvbWJpbmVyLCBhbmltYXRpb25Qcm9wZXJ0aWVzKTsKLSAgICAgICAgcHJvcGVydGllcy5hbmlt
YXRpb24uYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29y
ZEVkaXRvci5FdmVudC5Ob1JlbWFpbmluZ1RyZWVJdGVtcywgbm9SZW1haW5pbmdDb21tYVNlcGFy
YXRlZEVkaXRvckl0ZW1zLCB0aGlzKTsKLQotICAgICAgICBsZXQgc2VsZWN0ZWRDb21tYVNlcGFy
YXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQgPSB0aGlzLl9zZWxlY3RlZENvbW1hU2VwYXJhdGVk
RWRpdG9ySXRlbVZhbHVlQ2hhbmdlZC5iaW5kKHRoaXMsIHByb3BlcnRpZXMuYW5pbWF0aW9uLCBh
bmltYXRpb25Qcm9wZXJ0eUNvbWJpbmVyKTsKLSAgICAgICAgYW5pbWF0aW9uUHJvcGVydHlDb21i
aW5lci5hZGRFdmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuRXZlbnQu
VmFsdWVEaWRDaGFuZ2UsIHNlbGVjdGVkQ29tbWFTZXBhcmF0ZWRFZGl0b3JJdGVtVmFsdWVDaGFu
Z2VkLCB0aGlzKTsKLQotICAgICAgICBsZXQgY29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVlSXRlbVNl
bGVjdGVkID0gdGhpcy5fY29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVlSXRlbVNlbGVjdGVkLmJpbmQo
YW5pbWF0aW9uUHJvcGVydHlDb21iaW5lcik7Ci0gICAgICAgIHByb3BlcnRpZXMuYW5pbWF0aW9u
LmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0
b3IuRXZlbnQuVHJlZUl0ZW1TZWxlY3RlZCwgY29tbWFTZXBhcmF0ZWRFZGl0b3JUcmVlSXRlbVNl
bGVjdGVkLCB0aGlzKTsKLQotICAgICAgICBncm91cC5zcGVjaWZpZWRXaWR0aFByb3BlcnRpZXMg
PSBbcHJvcGVydGllcy5hbmltYXRpb25dOwotCi0gICAgICAgIGxldCBhbmltYXRpb25Hcm91cCA9
IG5ldyBXSS5EZXRhaWxzU2VjdGlvbkdyb3VwKFthbmltYXRpb25Sb3csIGFuaW1hdGlvbk5hbWVS
b3csIGFuaW1hdGlvblRpbWluZ1JvdywgYW5pbWF0aW9uRHVyYXRpb25Sb3csIGFuaW1hdGlvbkRp
cmVjdGlvblJvdywgYW5pbWF0aW9uU3RhdGVSb3ddKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVT
ZWN0aW9uKGdyb3VwLCBbYW5pbWF0aW9uR3JvdXBdKTsKLSAgICB9Ci0KLSAgICBfbm9SZW1haW5p
bmdDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1zKHByb3BlcnR5Q29tYmluZXIsIHByb3BlcnR5RWRp
dG9ycykKLSAgICB7Ci0gICAgICAgIGlmICghcHJvcGVydHlDb21iaW5lciB8fCAhcHJvcGVydHlF
ZGl0b3JzKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHByb3BlcnR5Q29tYmluZXIu
dXBkYXRlVmFsdWVzRnJvbVRleHQoIiIpOwotICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2YgcHJv
cGVydHlFZGl0b3JzKQotICAgICAgICAgICAgZWRpdG9yLmRpc2FibGVkID0gdHJ1ZTsKLSAgICB9
Ci0KLSAgICBfc2VsZWN0ZWRDb21tYVNlcGFyYXRlZEVkaXRvckl0ZW1WYWx1ZUNoYW5nZWQocHJv
cGVydHlFZGl0b3IsIHByb3BlcnR5Q29tYmluZXIpCi0gICAgewotICAgICAgICBwcm9wZXJ0eUVk
aXRvci5zZWxlY3RlZFRyZWVFbGVtZW50VmFsdWUgPSBwcm9wZXJ0eUNvbWJpbmVyLnN5bnRoZXNp
emVkVmFsdWU7Ci0gICAgfQotCi0gICAgX2NvbW1hU2VwYXJhdGVkRWRpdG9yVHJlZUl0ZW1TZWxl
Y3RlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRhdGVWYWx1ZXNG
cm9tVGV4dCA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVzRnJv
bVRleHQoZXZlbnQuZGF0YS50ZXh0IHx8ICIiKTsKLSAgICB9Ci19OwotCi1XSS5WaXN1YWxTdHls
ZURldGFpbHNQYW5lbC5TdHlsZURpc2FibGVkU3ltYm9sID0gU3ltYm9sKCJ2aXN1YWwtc3R5bGUt
c3R5bGUtZGlzYWJsZWQiKTsKLVdJLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLkluaXRpYWxQcm9w
ZXJ0eVNlY3Rpb25UZXh0TGlzdFN5bWJvbCA9IFN5bWJvbCgidmlzdWFsLXN0eWxlLWluaXRpYWwt
cHJvcGVydHktc2VjdGlvbi10ZXh0Iik7Ci0KLS8vIEZJWE1FOiBBZGQgaW5mb3JtYXRpb24gYWJv
dXQgZWFjaCBwcm9wZXJ0eSBhcyBhIGZvcm0gb2YgZG9jdW1lbnRhdGlvbi4gIFRoaXMgaXMgY3Vy
cmVudGx5IGVtcHR5IGFzCi0vLyB3ZSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGUg
aW5mbyBvbiBzaXRlcyBsaWtlIE1ETiBhbmQgaGF2ZSBub3Qgd3JpdHRlbiBhbnl0aGluZyBvdXJz
ZWx2ZXMuCi1XSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm9wZXJ0eVJlZmVyZW5jZUluZm8g
PSB7fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAwZTU0NDhlMmU4NjU3ZTA5ZDA2ZjVk
MGM1NDFiNzdhYmVlOTExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3Mg
VmlzdWFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuR2VuZXJhbFN0eWxlRGV0
YWlsc1NpZGViYXJQYW5lbAotewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKCJzdHlsZS12aXN1YWwiLCBXSS5VSVN0cmluZygiVmlzdWFsIiksIFdJLlZpc3VhbFN0eWxl
RGV0YWlsc1BhbmVsKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVGb250RmFtaWx5TGlzdEVkaXRvci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
Rm9udEZhbWlseUxpc3RFZGl0b3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZm
MTFjNTljZTMwNTQ0MDZmMjU0OTY2MDYzZGI0OGU5MDRhODRiNjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVGb250RmFtaWx5TGlzdEVkaXRvci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVGb250
RmFtaWx5TGlzdEVkaXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlRm9udEZhbWlseUxpc3RFZGl0b3Ig
ZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvcgotewotICAg
IGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIGxvbmdoYW5kUHJvcGVydGllcywgbGF5
b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBs
b25naGFuZFByb3BlcnRpZXMsIHRydWUsIGxheW91dFJldmVyc2VkKTsKLQotICAgICAgICB0aGlz
Ll9jb21tYVNlcGFyYXRlZEtleXdvcmRzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xs
IiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhpcykpOwotCi0gICAgICAgIHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyID0gbmV3IFdJLlZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9s
bGVyKHRoaXMpOwotICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5hZGRFdmVudExp
c3RlbmVyKFdJLlZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLkV2ZW50LkNvbXBsZXRp
b25TZWxlY3RlZCwgdGhpcy5fY29tcGxldGlvbkNsaWNrZWQsIHRoaXMpOwotCi0gICAgICAgIHRo
aXMuX3dyYXBXaXRoUXVvdGVzUmVnRXhwID0gL15bYS16QS1aXC1dKyQvOwotICAgICAgICB0aGlz
Ll9yZW1vdmVXcmFwcGVkUXVvdGVzUmVnRXhwID0gL1tcIlwnXS9nOwotICAgIH0KLQotICAgIC8v
IFB1YmxpYwotCi0gICAgdmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXJDdXN0b21pemVD
b21wbGV0aW9uRWxlbWVudChzdWdnZXN0aW9uc1ZpZXcsIGVsZW1lbnQsIGl0ZW0pCi0gICAgewot
ICAgICAgICBlbGVtZW50LnN0eWxlLmZvbnRGYW1pbHkgPSBpdGVtOwotICAgIH0KLQotICAgIGdl
dCBoYXNDb21wbGV0aW9ucygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlv
bkNvbnRyb2xsZXIuaGFzQ29tcGxldGlvbnM7Ci0gICAgfQotCi0gICAgc2V0IGNvbXBsZXRpb25z
KGNvbXBsZXRpb25zKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIu
Y29tcGxldGlvbnMgPSBjb21wbGV0aW9uczsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfbW9kaWZ5Q29tbWFTZXBhcmF0ZWRLZXl3b3JkKHRleHQpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMuX3dyYXBXaXRoUXVvdGVzUmVnRXhwLnRlc3QodGV4dCkpCi0gICAgICAgICAgICB0ZXh0
ID0gIlwiIiArIHRleHQgKyAiXCIiOwotCi0gICAgICAgIHJldHVybiB0ZXh0OwotICAgIH0KLQot
ICAgIF9hZGRDb21tYVNlcGFyYXRlZEtleXdvcmQodmFsdWUsIGluZGV4KQotICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlKQotICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuX3Jl
bW92ZVdyYXBwZWRRdW90ZXNSZWdFeHAsICIiKTsKLQotICAgICAgICBsZXQgdmFsdWVFbGVtZW50
ID0gc3VwZXIuX2FkZENvbW1hU2VwYXJhdGVkS2V5d29yZCh2YWx1ZSwgaW5kZXgpOwotICAgICAg
ICB2YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlU
cmVlRWxlbWVudC5FdmVudC5FZGl0b3JLZXlEb3duLCB0aGlzLl90cmVlRWxlbWVudEtleURvd24s
IHRoaXMpOwotICAgICAgICB2YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5WaXN1YWxT
dHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5FdmVudC5LZXl3b3JkQ2hhbmdlZCwgdGhpcy5fdHJl
ZUVsZW1lbnRLZXl3b3JkQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgIHZhbHVlRWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKFdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkV2ZW50LkVk
aXRvckJsdXJyZWQsIHRoaXMuX2hpZGVDb21wbGV0aW9ucywgdGhpcyk7Ci0gICAgICAgIHJldHVy
biB2YWx1ZUVsZW1lbnQ7Ci0gICAgfQotCi0gICAgX2FkZEVtcHR5Q29tbWFTZXBhcmF0ZWRLZXl3
b3JkKCkKLSAgICB7Ci0gICAgICAgIGxldCBuZXdJdGVtID0gc3VwZXIuX2FkZEVtcHR5Q29tbWFT
ZXBhcmF0ZWRLZXl3b3JkKCk7Ci0gICAgICAgIG5ld0l0ZW0uc2hvd0tleXdvcmRFZGl0b3IoKTsK
LSAgICB9Ci0KLSAgICBfY29tcGxldGlvbkNsaWNrZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0
aGlzLnZhbHVlID0gZXZlbnQuZGF0YS50ZXh0OwotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5n
ZSgpOwotICAgIH0KLQotICAgIF90cmVlRWxlbWVudEtleURvd24oZXZlbnQpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnZpc2libGUpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgZXZl
bnQuZGF0YS5rZXk7Ci0gICAgICAgIGlmICgha2V5KQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGlmIChrZXkgPT09ICJFbnRlciIgfHwga2V5ID09PSAiVGFiIikgewotICAgICAgICAg
ICAgbGV0IHNlbGVjdGVkVHJlZUVsZW1lbnQgPSB0aGlzLl9jb21tYVNlcGFyYXRlZEtleXdvcmRz
LnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgICAgICBpZiAoIXNlbGVjdGVkVHJlZUVsZW1l
bnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBzZWxlY3RlZFRyZWVF
bGVtZW50LnVwZGF0ZU1haW5UaXRsZSh0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5jdXJyZW50
Q29tcGxldGlvbik7Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5oaWRl
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5ID09
PSAiRXNjYXBlIikgewotICAgICAgICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25zKCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5ID09PSAiVXAiKSB7
Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5wcmV2aW91cygpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGtleSA9PT0gIkRvd24i
KSB7Ci0gICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5uZXh0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfdHJlZUVsZW1lbnRLZXl3
b3JkQ2hhbmdlZCgpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuaGFzQ29tcGxldGlvbnMpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlRGlk
Q2hhbmdlKCk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMuX2NvbW1hU2VwYXJhdGVkS2V5d29yZHMuc2Vs
ZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIudXBkYXRl
KHRyZWVFbGVtZW50Lm1haW5UaXRsZSkpIHsKLSAgICAgICAgICAgIGxldCBib3VuZHMgPSB0cmVl
RWxlbWVudC5lZGl0b3JCb3VuZHMoMik7Ci0gICAgICAgICAgICBpZiAoIWJvdW5kcykKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9s
bGVyLnNob3coYm91bmRzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9oaWRlQ29tcGxldGlv
bnMoKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuaGlkZSgpOwot
ICAgIH0KLQotICAgIF9jcmVhdGVOZXdUcmVlRWxlbWVudCh2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBuZXcgV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQodmFsdWUpOwot
ICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVF
bGVtZW50LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzJkNDVkNTRkNDQzYWE1
ZjMwNTI0ZjYzNmJlOTkxZGZkZWM0OGQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxl
bWVudCA9IGNsYXNzIFZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50IGV4dGVuZHMgV0ku
R2VuZXJhbFRyZWVFbGVtZW50Ci17Ci0gICAgY29uc3RydWN0b3IodGV4dCkKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKFtXSS5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5MaXN0
SXRlbUNsYXNzTmFtZSwgInZpc3VhbC1zdHlsZS1mb250LWZhbWlseS1saXN0LWl0ZW0iXSwgdGV4
dCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZEVkaXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRFZGl0b3IuY2xhc3NMaXN0LmFkZCgi
dmlzdWFsLXN0eWxlLWNvbW1hLXNlcGFyYXRlZC1rZXl3b3JkLWl0ZW0tZWRpdG9yIik7Ci0gICAg
ICAgIHRoaXMuX2tleXdvcmRFZGl0b3IucGxhY2Vob2xkZXIgPSBXSS5VSVN0cmluZygiKG1vZGlm
eSB0aGUgYm94ZXMgYmVsb3cgdG8gYWRkIGEgdmFsdWUpIik7Ci0gICAgICAgIHRoaXMuX2tleXdv
cmRFZGl0b3Iuc3BlbGxjaGVjayA9IGZhbHNlOwotICAgICAgICB0aGlzLl9rZXl3b3JkRWRpdG9y
LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9rZXl3b3JkRWRpdG9yS2V5RG93bi5i
aW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZEVkaXRvci5hZGRFdmVudExpc3RlbmVy
KCJrZXl1cCIsIHRoaXMuX2tleXdvcmRFZGl0b3JLZXlVcC5iaW5kKHRoaXMpKTsKLSAgICAgICAg
dGhpcy5fa2V5d29yZEVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fa2V5d29y
ZEVkaXRvckJsdXJyZWQuYmluZCh0aGlzKSk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAg
ICBlZGl0b3JCb3VuZHMocGFkZGluZykKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLmtleXdvcmRF
ZGl0b3JIaWRkZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbGV0IGJvdW5kcyA9
IFdJLlJlY3QucmVjdEZyb21DbGllbnRSZWN0KHRoaXMuX2tleXdvcmRFZGl0b3IuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkpOwotICAgICAgICByZXR1cm4gYm91bmRzLnBhZChwYWRkaW5nIHx8IDAp
OwotICAgIH0KLQotICAgIHVwZGF0ZU1haW5UaXRsZSh0ZXh0KQotICAgIHsKLSAgICAgICAgdGhp
cy5tYWluVGl0bGUgPSB0aGlzLl9rZXl3b3JkRWRpdG9yLnZhbHVlID0gdGV4dDsKLSAgICAgICAg
dGhpcy5fbGlzdEl0ZW1Ob2RlLnN0eWxlLmZvbnRGYW1pbHkgPSB0ZXh0ICsgIiwgIiArIFdJLlZp
c3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkZvbnRGYW1pbHlGYWxsYmFjazsKLQotICAg
ICAgICBsZXQgaGFzVGV4dCA9IHRleHQgJiYgdGV4dC5sZW5ndGg7Ci0gICAgICAgIHRoaXMuX2xp
c3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJuby12YWx1ZSIsICFoYXNUZXh0KTsKLSAgICAg
ICAgaWYgKCFoYXNUZXh0KQotICAgICAgICAgICAgdGhpcy5zdWJ0aXRsZSA9IHRoaXMuX2tleXdv
cmRFZGl0b3IucGxhY2Vob2xkZXI7Ci0KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVsZW1lbnQuRXZlbnQuS2V5d29yZENo
YW5nZWQpOwotICAgIH0KLQotICAgIGdldCBjdXJyZW50bHlFZGl0aW5nKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAhdGhpcy5rZXl3b3JkRWRpdG9ySGlkZGVuOwotICAgIH0KLQotICAgIHNob3dL
ZXl3b3JkRWRpdG9yKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5rZXl3b3JkRWRpdG9ySGlk
ZGVuKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuc3VidGl0bGUgPSAiIjsK
LSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRvci1oaWRk
ZW4iKTsKLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnNjcm9sbEludG9WaWV3SWZOZWVkZWQo
KTsKLQotICAgICAgICB0aGlzLl9rZXl3b3JkRWRpdG9yLnZhbHVlID0gdGhpcy5fbWFpblRpdGxl
OwotICAgICAgICB0aGlzLl9rZXl3b3JkRWRpdG9yLnNlbGVjdCgpOwotICAgIH0KLQotICAgIGhp
ZGVLZXl3b3JkRWRpdG9yKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLmtleXdvcmRFZGl0b3JI
aWRkZW4pCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy51cGRhdGVNYWluVGl0
bGUodGhpcy5fa2V5d29yZEVkaXRvci52YWx1ZSk7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9k
ZS5jbGFzc0xpc3QuYWRkKCJlZGl0b3ItaGlkZGVuIik7Ci0gICAgfQotCi0gICAgZ2V0IGtleXdv
cmRFZGl0b3JIaWRkZW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xpc3RJdGVtTm9k
ZS5jbGFzc0xpc3QuY29udGFpbnMoImVkaXRvci1oaWRkZW4iKTsKLSAgICB9Ci0KLSAgICAvLyBQ
cm90ZWN0ZWQKLQotICAgIG9uYXR0YWNoKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLm9uYXR0YWNo
KCk7Ci0KLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLnN0eWxlLmZvbnRGYW1pbHkgPSB0aGlz
Ll9tYWluVGl0bGU7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QuYWRkKCJl
ZGl0b3ItaGlkZGVuIik7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5hcHBlbmRDaGlsZCh0
aGlzLl9rZXl3b3JkRWRpdG9yKTsKLSAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5zaG93S2V5d29yZEVkaXRvci5iaW5kKHRoaXMpKTsKLSAg
ICB9Ci0KLSAgICBvbmRlc2VsZWN0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuaGlkZUtleXdvcmRF
ZGl0b3IoKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfa2V5d29yZEVkaXRvcktl
eURvd24oZXZlbnQpCi0gICAgewotICAgICAgICBpZiAodGhpcy5rZXl3b3JkRWRpdG9ySGlkZGVu
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBrZXlDb2RlID0gZXZlbnQua2V5
Q29kZTsKLSAgICAgICAgbGV0IGVudGVyS2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5
LkVudGVyLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktleUNvZGUpIHsK
LSAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QuYWRkKCJlZGl0b3ItaGlk
ZGVuIik7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1
YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5FdmVudC5FZGl0b3JLZXlEb3duLCB7a2V5OiAi
RW50ZXIifSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQg
ZXNjYXBlS2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQuS2V5LkVzY2FwZS5rZXlDb2RlOwot
ICAgICAgICBpZiAoa2V5Q29kZSA9PT0gZXNjYXBlS2V5Q29kZSkgewotICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJlZUVs
ZW1lbnQuRXZlbnQuRWRpdG9yS2V5RG93biwge2tleTogIkVzY2FwZSJ9KTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCB0YWJLZXlDb2RlID0gV0kuS2V5Ym9h
cmRTaG9ydGN1dC5LZXkuVGFiLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSB0YWJL
ZXlDb2RlKSB7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAg
ICAgdGhpcy5fZG9udEZpcmVLZXlVcCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1YWxTdHlsZUZvbnRGYW1pbHlUcmVlRWxlbWVudC5FdmVu
dC5FZGl0b3JLZXlEb3duLCB7a2V5OiAiVGFiIn0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgICAg
IGlmIChrZXkgPT09ICJVcCIgfHwga2V5ID09PSAiRG93biIpIHsKLSAgICAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICB0aGlzLl9kb250RmlyZUtleVVwID0gdHJ1
ZTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0
eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkV2ZW50LkVkaXRvcktleURvd24sIHtrZXl9KTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkV2ZW50LkVk
aXRvcktleURvd24pOwotICAgIH0KLQotICAgIF9rZXl3b3JkRWRpdG9yS2V5VXAoKQotICAgIHsK
LSAgICAgICAgaWYgKHRoaXMua2V5d29yZEVkaXRvckhpZGRlbiB8fCB0aGlzLl9kb250RmlyZUtl
eVVwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMudXBkYXRlTWFpblRpdGxl
KHRoaXMuX2tleXdvcmRFZGl0b3IudmFsdWUpOwotICAgIH0KLQotICAgIF9rZXl3b3JkRWRpdG9y
Qmx1cnJlZCgpCi0gICAgewotICAgICAgICB0aGlzLmhpZGVLZXl3b3JkRWRpdG9yKCk7Ci0gICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlRm9udEZhbWls
eVRyZWVFbGVtZW50LkV2ZW50LkVkaXRvckJsdXJyZWQpOwotICAgIH0KLX07Ci0KLVdJLlZpc3Vh
bFN0eWxlRm9udEZhbWlseVRyZWVFbGVtZW50LkZvbnRGYW1pbHlGYWxsYmFjayA9ICItd2Via2l0
LXN5c3RlbS1mb250LCBzYW5zLXNlcmlmIjsKLQotV0kuVmlzdWFsU3R5bGVGb250RmFtaWx5VHJl
ZUVsZW1lbnQuRXZlbnQgPSB7Ci0gICAgS2V5d29yZENoYW5nZWQ6ICJ2aXN1YWwtc3R5bGUtZm9u
dC1mYW1pbHktdHJlZS1lbGVtZW50LWtleXdvcmQtY2hhbmdlZCIsCi0gICAgRWRpdG9yS2V5RG93
bjogInZpc3VhbC1zdHlsZS1mb250LWZhbWlseS10cmVlLWVsZW1lbnQtZWRpdG9yLWtleS1kb3du
IiwKLSAgICBFZGl0b3JCbHVycmVkOiAidmlzdWFsLXN0eWxlLWZvbnQtZmFtaWx5LXRyZWUtZWxl
bWVudC1lZGl0b3ItYmx1cnJlZCIKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5jc3MgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdv
cmRDaGVja2JveC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1MmNmMGQ5ZDdm
YjJiMmRhY2E2ZThhNTEwZDZkYjIwOGUwNzZmNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guY3NzCisrKyAvZGV2L251bGwKQEAgLTEs
MzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmtleXdvcmQtY2hlY2tib3ggPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciB7Ci0gICAgZGlzcGxheTogZmxleDsKLSAgICBhbGlnbi1pdGVtczogY2VudGVyOwotfQotCi0u
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiBpbnB1dCB7Ci0gICAgd2lkdGg6IGF1
dG87Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWY2ZDNkYzg1YjVjZGJjNDdiYzkxOGQ0ZDc0ZTUx
YmZhYjdjYTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5
d29yZENoZWNrYm94LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLVdJLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94ID0gY2xhc3MgVmlzdWFsU3R5bGVLZXl3
b3JkQ2hlY2tib3ggZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCi17Ci0gICAg
Y29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgdmFsdWUsIGxheW91dFJldmVyc2VkKQot
ICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVsbCwgbnVsbCwgImtl
eXdvcmQtY2hlY2tib3giLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5fY2hlY2ti
b3hFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLSAgICAgICAgdGhp
cy5fY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICB0aGlzLl9jaGVj
a2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fdmFsdWVEaWRDaGFu
Z2UuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fY2hlY2tib3hFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlLnRv
TG93ZXJDYXNlKCkucmVwbGFjZSgvXHMvZywgIi0iKSB8fCBudWxsOwotICAgIH0KLQotICAgIC8v
IFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9j
aGVja2JveEVsZW1lbnQuY2hlY2tlZCA/IHRoaXMuX3ZhbHVlIDogbnVsbDsKLSAgICB9Ci0KLSAg
ICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQu
Y2hlY2tlZCA9IHZhbHVlID09PSB0aGlzLl92YWx1ZTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhl
c2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKLSAgICB9Ci0K
LSAgICAvLyBQcml2YXRlCi0KLSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRz
KGRpc2FibGVkKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LnRhYkluZGV4
ID0gZGlzYWJsZWQgPyAiLTEiIDogbnVsbDsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNv
bkxpc3QuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZTllMmQwZjI4MmFhZWY3NTZkZDgzMWFjZGIzMGE4NTA1OGMwODI5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNzcworKysgL2Rl
di9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0udmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
dmFsdWUtY29udGFpbmVyIHsKLSAgICBtYXJnaW46IDFweCAwIDJweDsKLX0KLQotLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIg
ewotICAgIGRpc3BsYXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbiB7Ci0g
ICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHdpZHRoOiAyNnB4OwotICAgIGhlaWdodDogMThw
eDsKLSAgICBjb2xvcjogYmxhY2s7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDEwMCUs
IDEwMCUpOwotICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMlKTsKLSAgICBib3Jk
ZXItcmlnaHQ6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtl
eXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIg
PiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpmaXJzdC1jaGls
ZCB7Ci0gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OwotICAgIGJvcmRlci1ib3R0b20t
bGVmdC1yYWRpdXM6IDRweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
a2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOmxhc3QtY2hp
bGQgewotICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMlKTsKLSAgICBi
b3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OwotICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFk
aXVzOiA0cHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQt
aWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5
d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjptYXRjaGVzKC5jb21wdXRl
ZCwgLnNlbGVjdGVkKSB7Ci0gICAgd2lkdGg6IDI3cHg7Ci0gICAgYm9yZGVyLXJpZ2h0OiAxcHgg
c29saWQ7Ci0gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9y
KTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxp
c3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWlj
b24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yKTsKLSAgICBjb2xvcjog
aHNsKDAsIDEwMCUsIDEwMCUpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bWF0Y2hl
cyguY29tcHV0ZWQsIC5zZWxlY3RlZCkgKyAua2V5d29yZC1pY29uIHsKLSAgICB3aWR0aDogMjVw
eDsKLSAgICBib3JkZXItbGVmdDogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29u
ID4gZGl2IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6
IDVweDsKLSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgcG9pbnRlci1l
dmVudHM6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdv
cmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAu
a2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpub3QoLnNlbGVjdGVk
KSA+IGRpdiB7Ci0gICAgb3BhY2l0eTogMC43OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3Qu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZUtleXdvcmRJY29uTGlzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAzMDM5
OWIwYzYzNDk1N2U3NjEwYzc1NzJiOTlhOWU5ZWEyNmEyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxp
c3QgPSBjbGFzcyBWaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCBleHRlbmRzIFdJLlZpc3VhbFN0
eWxlUHJvcGVydHlFZGl0b3IKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0
LCBwb3NzaWJsZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAgICBzdXBlcihw
cm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbnVsbCwgImtleXdvcmQtaWNvbi1s
aXN0IiwgbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX2ljb25MaXN0Q29udGFpbmVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRoaXMuX2ljb25MaXN0
Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciIpOwot
Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50cyA9IFtdOwotICAgICAgICB0aGlzLl9jb21wdXRl
ZEljb24gPSBudWxsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBudWxsOwotCi0gICAg
ICAgIGxldCBwcmV0dHlQcm9wZXJ0eVJlZmVyZW5jZU5hbWUgPSB0aGlzLl9wcm9wZXJ0eVJlZmVy
ZW5jZU5hbWUuY2FwaXRhbGl6ZSgpLnJlcGxhY2UoLygtLikvZywgKG1hdGNoKSA9PiBtYXRjaFsx
XS50b1VwcGVyQ2FzZSgpKTsKLQotICAgICAgICBmdW5jdGlvbiBjcmVhdGVMaXN0SXRlbSh2YWx1
ZSwgdGl0bGUpIHsKLSAgICAgICAgICAgIGxldCBpY29uQnV0dG9uRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQu
aWQgPSB2YWx1ZTsKLSAgICAgICAgICAgIGljb25CdXR0b25FbGVtZW50LnRpdGxlID0gdGl0bGU7
Ci0gICAgICAgICAgICBpY29uQnV0dG9uRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJrZXl3b3JkLWlj
b24iKTsKLSAgICAgICAgICAgIGljb25CdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgdGhpcy5faGFuZGxlS2V5d29yZENoYW5nZWQuYmluZCh0aGlzKSk7Ci0KLSAgICAgICAg
ICAgIGxldCBpbWFnZU5hbWUgPSAodmFsdWUgPT09ICJub25lIiB8fCB2YWx1ZSA9PT0gImluaXRp
YWwiKSA/ICJWaXN1YWxTdHlsZU5vbmUiIDogcHJldHR5UHJvcGVydHlSZWZlcmVuY2VOYW1lICsg
dGl0bGUucmVwbGFjZSgvXHMvZywgIiIpOwotICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQu
YXBwZW5kQ2hpbGQoV0kuSW1hZ2VVdGlsaXRpZXMudXNlU1ZHU3ltYm9sKCJJbWFnZXMvIiArIGlt
YWdlTmFtZSArICIuc3ZnIikpOwotCi0gICAgICAgICAgICByZXR1cm4gaWNvbkJ1dHRvbkVsZW1l
bnQ7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fcG9zc2libGVW
YWx1ZXMuYmFzaWMpIHsKLSAgICAgICAgICAgIGxldCBpY29uRWxlbWVudCA9IGNyZWF0ZUxpc3RJ
dGVtLmNhbGwodGhpcywga2V5LCB0aGlzLl9wb3NzaWJsZVZhbHVlcy5iYXNpY1trZXldKTsKLSAg
ICAgICAgICAgIHRoaXMuX2ljb25MaXN0Q29udGFpbmVyLmFwcGVuZENoaWxkKGljb25FbGVtZW50
KTsKLSAgICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50cy5wdXNoKGljb25FbGVtZW50KTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
aWNvbkxpc3RDb250YWluZXIpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHZh
bHVlKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWRJY29uKQotICAgICAgICAg
ICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSWNvbi5pZDsK
LSAgICB9Ci0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl9jb21w
dXRlZEljb24gPSBudWxsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBudWxsOwotICAg
ICAgICBmb3IgKGxldCBpY29uIG9mIHRoaXMuX2ljb25FbGVtZW50cykgewotICAgICAgICAgICAg
aWNvbi5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIsICJjb21wdXRlZCIpOwotCi0gICAgICAg
ICAgICBpZiAoaWNvbi5pZCA9PT0gdGhpcy5fdXBkYXRlZFZhbHVlcy5wbGFjZWhvbGRlcikKLSAg
ICAgICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24gPSBpY29uOwotCi0gICAgICAgICAgICBp
ZiAoaWNvbi5pZCA9PT0gdmFsdWUgJiYgIXRoaXMuX3Byb3BlcnR5TWlzc2luZykKLSAgICAgICAg
ICAgICAgICB0aGlzLl9zZWxlY3RlZEljb24gPSBpY29uOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKCF0aGlzLl9jb21wdXRlZEljb24pCi0gICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24g
PSB0aGlzLl9pY29uRWxlbWVudHNbMF07Ci0KLSAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkSWNv
bikKLSAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSWNvbi5jbGFzc0xpc3QuYWRkKCJzZWxlY3Rl
ZCIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24uY2xhc3NM
aXN0LmFkZCgiY29tcHV0ZWQiKTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKLSAgICB9Ci0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfaGFuZGxlS2V5d29yZENoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICBs
ZXQgdG9nZ2xlT2ZmID0gdGhpcy52YWx1ZSA9PT0gZXZlbnQudGFyZ2V0LmlkOwotICAgICAgICB0
aGlzLl9wcm9wZXJ0eU1pc3NpbmcgPSB0b2dnbGVPZmY7Ci0gICAgICAgIHRoaXMudmFsdWUgPSB0
b2dnbGVPZmYgPyBudWxsIDogZXZlbnQudGFyZ2V0LmlkOwotICAgICAgICB0aGlzLl92YWx1ZURp
ZENoYW5nZSgpOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRQaWNr
ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OGM4NzQ4ZDc2NWM1OTg5ZDk2
MDgxOTRkOWU2ZmNiZmQ5ZTQ2NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTU3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIgPSBjbGFzcyBWaXN1YWxT
dHlsZUtleXdvcmRQaWNrZXIgZXh0ZW5kcyBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCi17
Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIGxh
eW91dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwg
cG9zc2libGVWYWx1ZXMsIG51bGwsICJrZXl3b3JkLXBpY2tlciIsIGxheW91dFJldmVyc2VkKTsK
LQotICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNlbGVjdCIpOwotICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJrZXl3b3JkLXBpY2tlci1zZWxlY3QiKTsKLSAgICAgICAgaWYgKHRoaXMuX3Bv
c3NpYmxlVmFsdWVzLmFkdmFuY2VkKQotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHZhbHVl
cyIpOwotCi0gICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxl
bWVudC52YWx1ZSA9ICIiOwotICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnRl
eHQgPSBXSS5VSVN0cmluZygiVW5jaGFuZ2VkIik7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxl
Y3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQpOwotCi0g
ICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImhyIikpOwotCi0gICAgICAgIHRoaXMuX2NyZWF0ZVZhbHVlT3B0aW9ucyh0
aGlzLl9wb3NzaWJsZVZhbHVlcy5iYXNpYyk7Ci0gICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVz
RWxlbWVudHMgPSBudWxsOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2tleXdvcmRTZWxlY3RNb3VzZURvd24u
YmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMuX2hhbmRsZUtleXdvcmRDaGFuZ2VkLmJpbmQodGhpcykp
OwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2tleXdvcmRT
ZWxlY3RFbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIGdldCB2YWx1
ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudmFs
dWU7Ci0gICAgfQotCi0gICAgc2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCF2
YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKSB7Ci0gICAgICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRp
b25FbGVtZW50LnNlbGVjdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuc3BlY2lhbFByb3Bl
cnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5TWlzc2luZyB8fCAhdGhp
cy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fdmFsdWVJc1N1cHBvcnRl
ZEFkdmFuY2VkS2V5d29yZCh2YWx1ZSkpCi0gICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFZh
bHVlcygpOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlID0gdmFs
dWU7Ci0gICAgfQotCi0gICAgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX3VwZGF0ZWRWYWx1ZXMuY29uZmxpY3RpbmdWYWx1ZXMpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVs
ZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9jYW5vbmljYWxpemVkS2V5d29yZEZvcktleShwbGFj
ZWhvbGRlcikgfHwgcGxhY2Vob2xkZXI7Ci0gICAgfQotCi0gICAgZ2V0IHN5bnRoZXNpemVkVmFs
dWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQu
c2VsZWN0ZWQgPyBudWxsIDogdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudmFsdWU7Ci0gICAg
fQotCi0gICAgdXBkYXRlRWRpdG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCi0gICAgewotICAgICAg
ICBpZiAoIXVwZGF0ZWRWYWx1ZXMuY29uZmxpY3RpbmdWYWx1ZXMpIHsKLSAgICAgICAgICAgIGxl
dCBtaXNzaW5nID0gdGhpcy5fcHJvcGVydHlNaXNzaW5nIHx8ICF1cGRhdGVkVmFsdWVzLnZhbHVl
OwotICAgICAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudC5zZWxlY3RlZCA9IG1p
c3Npbmc7Ci0gICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVu
dC5oaWRkZW4gPSAhbWlzc2luZzsKLSAgICAgICAgfQotCi0gICAgICAgIHN1cGVyLnVwZGF0ZUVk
aXRvclZhbHVlcyh1cGRhdGVkVmFsdWVzKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfaGFuZGxlS2V5d29yZENoYW5nZWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRD
aGFuZ2UoKTsKLSAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQu
aGlkZGVuID0gIXRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7Ci0gICAgfQot
Ci0gICAgX2tleXdvcmRTZWxlY3RNb3VzZURvd24oZXZlbnQpCi0gICAgewotICAgICAgICBpZiAo
ZXZlbnQuYWx0S2V5KQotICAgICAgICAgICAgdGhpcy5fYWRkQWR2YW5jZWRWYWx1ZXMoKTsKLSAg
ICAgICAgZWxzZSBpZiAoIXRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRBZHZhbmNlZEtleXdvcmQodGhp
cy52YWx1ZSkpCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVBZHZhbmNlZFZhbHVlcygpOwotICAg
IH0KLQotICAgIF9jcmVhdGVWYWx1ZU9wdGlvbnModmFsdWVzKQotICAgIHsKLSAgICAgICAgbGV0
IGFkZGVkRWxlbWVudHMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQga2V5IGluIHZhbHVlcykgewot
ICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIp
OwotICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0ga2V5OwotICAgICAgICAgICAgb3B0aW9uLnRl
eHQgPSB2YWx1ZXNba2V5XTsKLSAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50
LmFwcGVuZENoaWxkKG9wdGlvbik7Ci0gICAgICAgICAgICBhZGRlZEVsZW1lbnRzLnB1c2gob3B0
aW9uKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gYWRkZWRFbGVtZW50czsKLSAgICB9Ci0K
LSAgICBfYWRkQWR2YW5jZWRWYWx1ZXMoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FkdmFu
Y2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5f
a2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aHIiKSk7Ci0gICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMgPSB0aGlzLl9jcmVh
dGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpOwotICAgIH0KLQot
ICAgIF9yZW1vdmVBZHZhbmNlZFZhbHVlcygpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2Fk
dmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhp
cy5fa2V5d29yZFNlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fYWR2YW5jZWRWYWx1ZXNF
bGVtZW50c1swXS5wcmV2aW91c1NpYmxpbmcpOwotICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9m
IHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMpCi0gICAgICAgICAgICB0aGlzLl9rZXl3b3Jk
U2VsZWN0RWxlbWVudC5yZW1vdmVDaGlsZChlbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9hZHZh
bmNlZFZhbHVlc0VsZW1lbnRzID0gbnVsbDsKLSAgICB9Ci0KLSAgICBfdG9nZ2xlVGFiYmluZ09m
U2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsKLSAgICAgICAgdGhpcy5fa2V5d29y
ZFNlbGVjdEVsZW1lbnQudGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIgOiBudWxsOwotICAgIH0K
LX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3guY3NzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2E0Njk4MjdlNDFlY2UxNDc5NGNjMTM3NGUyNjcwZmVi
NmI3YmQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlTnVtYmVy
SW5wdXRCb3guY3NzCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIuZm9jdXNlZCA+IC5mb2N1cy1yaW5nIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAycHg7Ci0gICAgbGVmdDogMXB4OwotICAgIHdpZHRoOiBjYWxj
KDEwMCUgLSAycHgpOwotICAgIGhlaWdodDogMTZweDsKLSAgICBib3JkZXItcmFkaXVzOiAzcHg7
Ci0gICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMTUpIDAgMXB4IDAsIDAgMCAwIDNw
eCBoc2xhKDIxMSwgOTYlLCA0OCUsIDAuMjUpOwotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwot
fQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJv
cGVydHktdmFsdWUtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1rZXl3b3JkLXNlbGVjdCB7Ci0g
ICAgb3V0bGluZTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQt
Y29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBmbGV4OwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
LSAgICB0b3A6IDJweDsKLSAgICBsZWZ0OiAxcHg7Ci0gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIw
cHgpOwotICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotICAg
IGJvcmRlci1yYWRpdXM6IDRweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICBw
b2ludGVyLWV2ZW50czogbm9uZTsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotICAgIHdoaXRlLXNw
YWNlOiBub3dyYXA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5udW1iZXItaW5wdXQtZWRp
dGFibGUpID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19
Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5lciA+IC5udW1iZXIt
aW5wdXQtdmFsdWUgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTZweDsKLSAgICBt
YXJnaW4tcmlnaHQ6IDFweDsKLSAgICBwYWRkaW5nOiAwIDAgMXB4IDNweDsKLSAgICBib3JkZXIt
Ym90dG9tLWxlZnQtcmFkaXVzOiAzcHg7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgYm9y
ZGVyOiBub25lOwotICAgIG91dGxpbmU6IG5vbmU7Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXNwZWNpYWwtcHJvcGVydHkt
cGxhY2Vob2xkZXJbaGlkZGVuXSB+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1p
bnB1dC12YWx1ZSB7Ci0gICAgcG9pbnRlci1ldmVudHM6IGFsbDsKLX0KLQotLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gc3BhbiB7Ci0gICAgbWluLXdpZHRoOiAt
d2Via2l0LWZpdC1jb250ZW50OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLm51bWJlci1pbnB1
dC1jb250YWluZXI6bm90KC5oYXMtdmFsdWUpID4gc3BhbiB7Ci0gICAgY29sb3I6IGhzbCgwLCAw
JSwgNjAlKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3guanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGVlMDY1M2FkNjAzZjc4NDE5NzA2MTdlNzI0
Y2I1YmUxN2M3ODliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
TnVtYmVySW5wdXRCb3guanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MDggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLVdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3ggPSBjbGFzcyBWaXN1YWxTdHlsZU51
bWJlcklucHV0Qm94IGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgotewotICAg
IGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBwb3NzaWJs
ZVVuaXRzLCBhbGxvd05lZ2F0aXZlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7Ci0gICAg
ICAgIGxldCB1bml0bGVzc051bWJlclVuaXQgPSBXSS5VSVN0cmluZygiTnVtYmVyIik7Ci0KLSAg
ICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIHBvc3NpYmxl
VW5pdHMgfHwgW3VuaXRsZXNzTnVtYmVyVW5pdF0sICJudW1iZXItaW5wdXQtYm94IiwgbGF5b3V0
UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX3VuaXRsZXNzTnVtYmVyVW5pdCA9IHVuaXRsZXNz
TnVtYmVyVW5pdDsKLQotICAgICAgICB0aGlzLl9oYXNVbml0cyA9IHRoaXMuX3Bvc3NpYmxlVW5p
dHMuYmFzaWMuc29tZSgodW5pdCkgPT4gdW5pdCAhPT0gdW5pdGxlc3NOdW1iZXJVbml0KTsKLSAg
ICAgICAgdGhpcy5fYWxsb3dOZWdhdGl2ZVZhbHVlcyA9ICEhYWxsb3dOZWdhdGl2ZVZhbHVlcyB8
fCBmYWxzZTsKLQotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
Im5vLXZhbHVlcyIsICFwb3NzaWJsZVZhbHVlcyB8fCAhcG9zc2libGVWYWx1ZXMubGVuZ3RoKTsK
LSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJuby11bml0cyIs
ICF0aGlzLl9oYXNVbml0cyk7Ci0KLSAgICAgICAgbGV0IGZvY3VzUmluZ0VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgZm9jdXNSaW5nRWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJmb2N1cy1yaW5nIik7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZm9jdXNSaW5nRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVj
dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKLSAgICAgICAgdGhp
cy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibnVtYmVyLWlucHV0LWtleXdv
cmQtc2VsZWN0Iik7Ci0gICAgICAgIGlmICh0aGlzLl9wb3NzaWJsZVVuaXRzLmFkdmFuY2VkKQot
ICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmlu
ZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHVuaXRzIik7Ci0KLSAgICAgICAgdGhpcy5fdW5j
aGFuZ2VkT3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwot
ICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnZhbHVlID0gIiI7Ci0gICAgICAg
IHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQudGV4dCA9IFdJLlVJU3RyaW5nKCJVbmNoYW5n
ZWQiKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVj
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7Ci0KLSAg
ICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVmFsdWVzKSB7Ci0gICAgICAgICAgICB0aGlzLl9jcmVh
dGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMpOwotICAgICAgICAgICAg
dGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaHIiKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5fcG9zc2libGVVbml0
cykKLSAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVuaXRPcHRpb25zKHRoaXMuX3Bvc3NpYmxlVW5p
dHMuYmFzaWMpOwotCi0gICAgICAgIHRoaXMuX2FkdmFuY2VkVW5pdHNFbGVtZW50cyA9IG51bGw7
Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Zm9jdXMiLCB0aGlzLl9mb2N1c0NvbnRlbnRFbGVtZW50LmJpbmQodGhpcykpOwotICAgICAgICB0
aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0
aGlzLl9rZXl3b3JkU2VsZWN0TW91c2VEb3duLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9r
ZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9rZXl3
b3JkQ2hhbmdlZC5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2JsdXJDb250ZW50RWxlbWVudC5iaW5k
KHRoaXMpKTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9r
ZXl3b3JkU2VsZWN0RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fbnVtYmVyVW5pdHNDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgdGhpcy5fbnVtYmVy
VW5pdHNDb250YWluZXIuY2xhc3NMaXN0LmFkZCgibnVtYmVyLWlucHV0LWNvbnRhaW5lciIpOwot
Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW5wdXQiKTsKLSAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgibnVtYmVyLWlucHV0LXZhbHVlIik7Ci0gICAgICAgIHRoaXMuX3ZhbHVl
TnVtYmVySW5wdXRFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5fdmFs
dWVOdW1iZXJJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9mb2N1
c0NvbnRlbnRFbGVtZW50LmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklu
cHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fdmFsdWVOdW1iZXJJ
bnB1dEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5kZWJvdW5jZSgyNTApLl92YWx1
ZU51bWJlcklucHV0S2V5VXApOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklucHV0RWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fYmx1ckNvbnRlbnRFbGVtZW50LmJpbmQo
dGhpcykpOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklucHV0RWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJjaGFuZ2UiLCB0aGlzLmRlYm91bmNlKDI1MCkuX3ZhbHVlTnVtYmVySW5wdXRDaGFu
Z2VkKTsKLSAgICAgICAgdGhpcy5fbnVtYmVyVW5pdHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGhp
cy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX3VuaXRzRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgdGhpcy5fbnVtYmVy
VW5pdHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fdW5pdHNFbGVtZW50KTsKLQotICAgICAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX251bWJlclVuaXRzQ29udGFp
bmVyKTsKLQotICAgICAgICB0aGlzLl9zZXROdW1iZXJJbnB1dElzRWRpdGFibGUodHJ1ZSk7Ci0g
ICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnZhbHVlID0gbnVsbDsKLSAgICAg
ICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRl
ciIsIDApOwotICAgICAgICB0aGlzLl91bml0c0VsZW1lbnRUZXh0Q29udGVudCA9IHRoaXMuX2tl
eXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVkVW5pdCgicHgi
KSA/ICJweCIgOiB0aGlzLl9wb3NzaWJsZVVuaXRzLmJhc2ljWzBdOwotICAgIH0KLQotICAgIC8v
IFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9udW1i
ZXJJbnB1dElzRWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aGlzLl92
YWx1ZU51bWJlcklucHV0RWxlbWVudC52YWx1ZSk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9rZXl3
b3JkU2VsZWN0RWxlbWVudC52YWx1ZSB8fCBudWxsOwotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2
YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5fcHJvcGVydHlNaXNzaW5n
KSB7Ci0gICAgICAgICAgICBpZiAodmFsdWUgfHwgdGhpcy5fdXBkYXRlZFZhbHVlcy5wbGFjZWhv
bGRlcikKLSAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxl
bWVudC50ZXh0Q29udGVudCA9ICh2YWx1ZSB8fCB0aGlzLl91cGRhdGVkVmFsdWVzLnBsYWNlaG9s
ZGVyKSArICh0aGlzLl91cGRhdGVkVmFsdWVzLnVuaXRzIHx8ICIiKTsKLQotICAgICAgICAgICAg
aWYgKGlzTmFOKHZhbHVlKSkgewotICAgICAgICAgICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlv
bkVsZW1lbnQuc2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHRoaXMuX3NldE51bWJl
cklucHV0SXNFZGl0YWJsZSgpOwotICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5
UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuc3BlY2lhbFByb3Bl
cnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9IHRydWU7Ci0KLSAgICAgICAgaWYgKCF2YWx1
ZSkgewotICAgICAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWUgPSBu
dWxsOwotICAgICAgICAgICAgdGhpcy5fbWFya1VuaXRzQ29udGFpbmVySWZJbnB1dEhhc1ZhbHVl
KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWlzTmFO
KHZhbHVlKSkgewotICAgICAgICAgICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0VkaXRhYmxlKHRy
dWUpOwotICAgICAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWUgPSBN
YXRoLnJvdW5kKHZhbHVlICogMTAwKSAvIDEwMDsKLSAgICAgICAgICAgIHRoaXMuX21hcmtVbml0
c0NvbnRhaW5lcklmSW5wdXRIYXNWYWx1ZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7
Ci0gICAgICAgICAgICB0aGlzLl9zZXROdW1iZXJJbnB1dElzRWRpdGFibGUoKTsKLSAgICAgICAg
ICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBnZXQgdW5pdHMoKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICBsZXQga2V5d29yZCA9IHRoaXMuX2tleXdvcmRT
ZWxlY3RFbGVtZW50LnZhbHVlOwotICAgICAgICBpZiAoIXRoaXMudmFsdWVJc1N1cHBvcnRlZFVu
aXQoa2V5d29yZCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4g
a2V5d29yZDsKLSAgICB9Ci0KLSAgICBzZXQgdW5pdHModW5pdCkKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkIHx8IHVuaXQgPT09IHRoaXMu
dW5pdHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKCF1bml0ICYmICF0aGlz
Ll9wb3NzaWJsZVVuaXRzLmJhc2ljLmluY2x1ZGVzKHRoaXMuX3VuaXRsZXNzTnVtYmVyVW5pdCkg
JiYgIXRoaXMudmFsdWVJc1N1cHBvcnRlZFVuaXQodW5pdCkpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRBZHZhbmNlZFVuaXQodW5pdCkp
Ci0gICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFVuaXRzKCk7Ci0KLSAgICAgICAgdGhpcy5f
c2V0TnVtYmVySW5wdXRJc0VkaXRhYmxlKHRydWUpOwotICAgICAgICB0aGlzLl9rZXl3b3JkU2Vs
ZWN0RWxlbWVudC52YWx1ZSA9IHVuaXQgfHwgdGhpcy5fdW5pdGxlc3NOdW1iZXJVbml0OwotICAg
ICAgICB0aGlzLl91bml0c0VsZW1lbnRUZXh0Q29udGVudCA9IHVuaXQ7Ci0gICAgfQotCi0gICAg
Z2V0IHBsYWNlaG9sZGVyKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZU51bWJl
cklucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIik7Ci0gICAgfQotCi0gICAg
c2V0IHBsYWNlaG9sZGVyKHRleHQpCi0gICAgewotICAgICAgICBpZiAodGV4dCA9PT0gdGhpcy5w
bGFjZWhvbGRlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgb25seU51bWVy
aWNhbFRleHQgPSB0ZXh0ICYmICFpc05hTih0ZXh0KSAmJiAoTWF0aC5yb3VuZCh0ZXh0ICogMTAw
KSAvIDEwMCk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnNldEF0dHJp
YnV0ZSgicGxhY2Vob2xkZXIiLCBvbmx5TnVtZXJpY2FsVGV4dCB8fCAwKTsKLQotICAgICAgICBp
ZiAoIW9ubHlOdW1lcmljYWxUZXh0KQotICAgICAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQ
bGFjZWhvbGRlckVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9jYW5vbmljYWxpemVkS2V5d29y
ZEZvcktleSh0ZXh0KSB8fCB0ZXh0OwotICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVl
KCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVj
dGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgbGV0IHZhbHVlID0gdGhp
cy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWU7Ci0gICAgICAgIGlmICh0aGlzLl9udW1i
ZXJJbnB1dElzRWRpdGFibGUgJiYgIXZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0K
LSAgICAgICAgbGV0IGtleXdvcmQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZTsK
LSAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVJc1N1cHBvcnRlZFVuaXQoa2V5d29yZCkgPyB2YWx1
ZSArIChrZXl3b3JkID09PSB0aGlzLl91bml0bGVzc051bWJlclVuaXQgPyAiIiA6IGtleXdvcmQp
IDoga2V5d29yZDsKLSAgICB9Ci0KLSAgICB1cGRhdGVWYWx1ZUZyb21UZXh0KHRleHQsIHZhbHVl
KQotICAgIHsKLSAgICAgICAgbGV0IG1hdGNoID0gdGhpcy5wYXJzZVZhbHVlKHZhbHVlKTsKLSAg
ICAgICAgdGhpcy52YWx1ZSA9IG1hdGNoID8gbWF0Y2hbMV0gOiB2YWx1ZTsKLSAgICAgICAgdGhp
cy51bml0cyA9IG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwotICAgICAgICByZXR1cm4gdGhpcy5t
b2RpZnlQcm9wZXJ0eVRleHQodGV4dCwgdmFsdWUpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3Rl
ZAotCi0gICAgc2V0IHNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudFRleHQodGV4dCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSB0
cnVlOwotCi0gICAgICAgIHN1cGVyLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudFRl
eHQgPSB0ZXh0OwotICAgIH0KLQotICAgIHBhcnNlVmFsdWUodGV4dCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiAvXigtP1tcZC5dKykoW15cc1xkXXswLDR9KSg/OlxzKjs/KSQvLmV4ZWModGV4dCk7
Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgc2V0IF91bml0c0VsZW1lbnRUZXh0Q29u
dGVudCh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9oYXNVbml0cykKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl91bml0c0VsZW1lbnQudGV4dENvbnRlbnQgPSB0
ZXh0ID09PSB0aGlzLl91bml0bGVzc051bWJlclVuaXQgPyAiIiA6IHRleHQ7Ci0gICAgICAgIHRo
aXMuX21hcmtVbml0c0NvbnRhaW5lcklmSW5wdXRIYXNWYWx1ZSgpOwotICAgIH0KLQotICAgIF9z
ZXROdW1iZXJJbnB1dElzRWRpdGFibGUoZmxhZykKLSAgICB7Ci0gICAgICAgIHRoaXMuX251bWJl
cklucHV0SXNFZGl0YWJsZSA9IGZsYWcgfHwgZmFsc2U7Ci0gICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgibnVtYmVyLWlucHV0LWVkaXRhYmxlIiwgdGhpcy5fbnVt
YmVySW5wdXRJc0VkaXRhYmxlKTsKLSAgICB9Ci0KLSAgICBfbWFya1VuaXRzQ29udGFpbmVySWZJ
bnB1dEhhc1ZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxldCBudW1iZXJJbnB1dFZhbHVlID0gdGhp
cy5fdmFsdWVOdW1iZXJJbnB1dEVsZW1lbnQudmFsdWU7Ci0gICAgICAgIHRoaXMuX251bWJlclVu
aXRzQ29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoImhhcy12YWx1ZSIsIG51bWJlcklucHV0VmFs
dWUgJiYgbnVtYmVySW5wdXRWYWx1ZS5sZW5ndGgpOwotICAgIH0KLQotICAgIF9rZXl3b3JkQ2hh
bmdlZCgpCi0gICAgewotICAgICAgICBsZXQgdW5jaGFuZ2VkT3B0aW9uU2VsZWN0ZWQgPSB0aGlz
Ll91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkOwotICAgICAgICBpZiAoIXVuY2hhbmdl
ZE9wdGlvblNlbGVjdGVkKSB7Ci0gICAgICAgICAgICBsZXQgc2VsZWN0ZWRLZXl3b3JkSXNVbml0
ID0gdGhpcy52YWx1ZUlzU3VwcG9ydGVkVW5pdCh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52
YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX251bWJlcklucHV0SXNFZGl0YWJsZSAmJiBz
ZWxlY3RlZEtleXdvcmRJc1VuaXQpCi0gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVOdW1iZXJJ
bnB1dEVsZW1lbnQudmFsdWUgPSBudWxsOwotCi0gICAgICAgICAgICB0aGlzLl91bml0c0VsZW1l
bnRUZXh0Q29udGVudCA9IHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlOwotICAgICAg
ICAgICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0VkaXRhYmxlKHNlbGVjdGVkS2V5d29yZElzVW5p
dCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdGhpcy5fc2V0TnVtYmVySW5wdXRJc0Vk
aXRhYmxlKGZhbHNlKTsKLQotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgICAg
ICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAhdW5jaGFu
Z2VkT3B0aW9uU2VsZWN0ZWQ7Ci0gICAgfQotCi0gICAgX3ZhbHVlTnVtYmVySW5wdXRLZXlEb3du
KGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9udW1iZXJJbnB1dElzRWRpdGFibGUp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gYWRqdXN0VmFsdWUoZGVs
dGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxldCBuZXdWYWx1ZTsKLSAgICAgICAgICAgIGxl
dCB2YWx1ZSA9IHRoaXMudmFsdWU7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlICYmIGlzTmFOKHZh
bHVlKSkgewotICAgICAgICAgICAgICAgIGxldCBwbGFjZWhvbGRlclZhbHVlID0gdGhpcy5wbGFj
ZWhvbGRlciAmJiAhaXNOYU4odGhpcy5wbGFjZWhvbGRlcikgPyBwYXJzZUZsb2F0KHRoaXMucGxh
Y2Vob2xkZXIpIDogMDsKLSAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHBsYWNlaG9sZGVyVmFs
dWUgKyBkZWx0YTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG5ld1ZhbHVl
ID0gdmFsdWUgKyBkZWx0YTsKLQotICAgICAgICAgICAgaWYgKCF0aGlzLl9hbGxvd05lZ2F0aXZl
VmFsdWVzICYmIG5ld1ZhbHVlIDwgMCkKLSAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IDA7Ci0K
LSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5TWlzc2luZyA9IGZhbHNlOwotICAgICAgICAgICAg
dGhpcy52YWx1ZSA9IE1hdGgucm91bmQobmV3VmFsdWUgKiAxMDApIC8gMTAwOwotICAgICAgICAg
ICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBzaGlm
dCA9IDE7Ci0gICAgICAgIGlmIChldmVudC5jdHJsS2V5KQotICAgICAgICAgICAgc2hpZnQgLz0g
MTA7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5KQotICAgICAgICAgICAgc2hpZnQg
Kj0gMTA7Ci0KLSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgICAg
IGlmIChrZXkuc3RhcnRzV2l0aCgiUGFnZSIpKQotICAgICAgICAgICAgc2hpZnQgKj0gMTA7Ci0K
LSAgICAgICAgaWYgKGtleSA9PT0gIlVwIiB8fCBrZXkgPT09ICJQYWdlVXAiKSB7Ci0gICAgICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgYWRqdXN0VmFsdWUuY2Fs
bCh0aGlzLCBzaGlmdCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoa2V5ID09PSAiRG93biIgfHwga2V5ID09PSAiUGFnZURvd24iKSB7Ci0gICAgICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgYWRqdXN0VmFsdWUuY2FsbCh0
aGlzLCAtc2hpZnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
dGhpcy5fbWFya1VuaXRzQ29udGFpbmVySWZJbnB1dEhhc1ZhbHVlKCk7Ci0gICAgICAgIHRoaXMu
ZGVib3VuY2UoMjUwKS5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfdmFsdWVOdW1i
ZXJJbnB1dEtleVVwKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9udW1iZXJJbnB1
dElzRWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fbWFya1Vu
aXRzQ29udGFpbmVySWZJbnB1dEhhc1ZhbHVlKCk7Ci0gICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hh
bmdlKCk7Ci0gICAgfQotCi0gICAgX2tleXdvcmRTZWxlY3RNb3VzZURvd24oZXZlbnQpCi0gICAg
ewotICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KQotICAgICAgICAgICAgdGhpcy5fYWRkQWR2YW5j
ZWRVbml0cygpOwotICAgICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc1N1cHBvcnRlZEFkdmFu
Y2VkVW5pdCh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1ZSkpCi0gICAgICAgICAgICB0
aGlzLl9yZW1vdmVBZHZhbmNlZFVuaXRzKCk7Ci0gICAgfQotCi0gICAgX2NyZWF0ZVZhbHVlT3B0
aW9ucyh2YWx1ZXMpCi0gICAgewotICAgICAgICBsZXQgYWRkZWRFbGVtZW50cyA9IFtdOwotICAg
ICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7Ci0gICAgICAgICAgICBsZXQgb3B0aW9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7Ci0gICAgICAgICAgICBvcHRpb24udmFs
dWUgPSBrZXk7Ci0gICAgICAgICAgICBvcHRpb24udGV4dCA9IHZhbHVlc1trZXldOwotICAgICAg
ICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQob3B0aW9uKTsKLSAg
ICAgICAgICAgIGFkZGVkRWxlbWVudHMucHVzaChvcHRpb24pOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0gICAgX2NyZWF0ZVVuaXRPcHRpb25z
KHVuaXRzKQotICAgIHsKLSAgICAgICAgbGV0IGFkZGVkRWxlbWVudHMgPSBbXTsKLSAgICAgICAg
Zm9yIChsZXQgdW5pdCBvZiB1bml0cykgewotICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICAgICAgb3B0aW9uLnRleHQgPSB1
bml0OwotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQo
b3B0aW9uKTsKLSAgICAgICAgICAgIGFkZGVkRWxlbWVudHMucHVzaChvcHRpb24pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7Ci0gICAgfQotCi0gICAgX2FkZEFk
dmFuY2VkVW5pdHMoKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2FkdmFuY2VkVW5pdHNFbGVt
ZW50cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0
RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIpKTsKLSAgICAg
ICAgdGhpcy5fYWR2YW5jZWRVbml0c0VsZW1lbnRzID0gdGhpcy5fY3JlYXRlVW5pdE9wdGlvbnMo
dGhpcy5fcG9zc2libGVVbml0cy5hZHZhbmNlZCk7Ci0gICAgfQotCi0gICAgX3JlbW92ZUFkdmFu
Y2VkVW5pdHMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9hZHZhbmNlZFVuaXRzRWxlbWVu
dHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fYWR2YW5jZWRVbml0c0VsZW1lbnRzWzBdLnByZXZpb3Vz
U2libGluZyk7Ci0gICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgdGhpcy5fYWR2YW5jZWRVbml0
c0VsZW1lbnRzKQotICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQucmVtb3Zl
Q2hpbGQoZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fYWR2YW5jZWRVbml0c0VsZW1lbnRzID0g
bnVsbDsKLSAgICB9Ci0KLSAgICBfZm9jdXNDb250ZW50RWxlbWVudChldmVudCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZm9jdXNlZCIpOwotICAg
IH0KLQotICAgIF9ibHVyQ29udGVudEVsZW1lbnQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlz
LmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKTsKLSAgICB9Ci0KLSAg
ICBfdmFsdWVOdW1iZXJJbnB1dENoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICBsZXQgbmV3
VmFsdWUgPSB0aGlzLnZhbHVlOwotICAgICAgICBpZiAoIW5ld1ZhbHVlICYmIGlzTmFOKG5ld1Zh
bHVlKSkKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5wbGFjZWhvbGRlciAmJiAhaXNOYU4o
dGhpcy5wbGFjZWhvbGRlcikgPyBwYXJzZUZsb2F0KHRoaXMucGxhY2Vob2xkZXIpIDogMDsKLQot
ICAgICAgICBpZiAoIXRoaXMuX2FsbG93TmVnYXRpdmVWYWx1ZXMgJiYgbmV3VmFsdWUgPCAwKQot
ICAgICAgICAgICAgbmV3VmFsdWUgPSAwOwotCi0gICAgICAgIHRoaXMudmFsdWUgPSBNYXRoLnJv
dW5kKG5ld1ZhbHVlICogMTAwKSAvIDEwMDsKLSAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2Uo
KTsKLSAgICB9Ci0KLSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2Fi
bGVkKQotICAgIHsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudGFiSW5kZXgg
PSBkaXNhYmxlZCA/ICItMSIgOiBudWxsOwotICAgICAgICB0aGlzLl92YWx1ZU51bWJlcklucHV0
RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7Ci0gICAgfQotfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlUHJvcGVydHlDb21iaW5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lci5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjMxNTNjYzQ2ZDg2ZTQ4ZGQ4Nzg0ZjJjMDNlNmZkNDQ2ODY3OWMy
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5Q29t
YmluZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJ
LlZpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lciA9IGNsYXNzIFZpc3VhbFN0eWxlUHJvcGVydHlD
b21iaW5lciBleHRlbmRzIFdJLk9iamVjdAotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFt
ZSwgcHJvcGVydHlFZGl0b3JzLCBzcHJlYWROdW1iZXJWYWx1ZXMpCi0gICAgewotICAgICAgICBz
dXBlcigpOwotCi0gICAgICAgIHRoaXMuX3N0eWxlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fcHJv
cGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwotICAgICAgICB0aGlzLl9wcm9wZXJ0eU1pc3Npbmcg
PSBmYWxzZTsKLSAgICAgICAgdGhpcy5fcHJvcGVydHlFZGl0b3JzID0gcHJvcGVydHlFZGl0b3Jz
IHx8IFtdOwotICAgICAgICB0aGlzLl9zcHJlYWROdW1iZXJWYWx1ZXMgPSAhIXNwcmVhZE51bWJl
clZhbHVlcyAmJiB0aGlzLl9wcm9wZXJ0eUVkaXRvcnMubGVuZ3RoID49IDQ7Ci0KLSAgICAgICAg
Zm9yIChsZXQgZWRpdG9yIG9mIHRoaXMuX3Byb3BlcnR5RWRpdG9ycykgewotICAgICAgICAgICAg
ZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5FdmVu
dC5WYWx1ZURpZENoYW5nZSwgdGhpcy5faGFuZGxlUHJvcGVydHlFZGl0b3JWYWx1ZUNoYW5nZWQs
IHRoaXMpOwotICAgICAgICAgICAgZWRpdG9yLnN1cHByZXNzU3R5bGVUZXh0VXBkYXRlID0gdHJ1
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3RleHRDb250YWluc05hbWVSZWdFeHAgPSBu
ZXcgUmVnRXhwKCIoPzooPzpefDspXFxzKiIgKyB0aGlzLl9wcm9wZXJ0eU5hbWUgKyAiXFxzKjop
Iik7Ci0gICAgICAgIHRoaXMuX3JlcGxhY2VtZW50UmVnRXhwID0gbmV3IFJlZ0V4cCgiKCg/Ol58
OylcXHMqKSgiICsgdGhpcy5fcHJvcGVydHlOYW1lICsgIikoLis/KD86O3wkKSkiKTsKLSAgICAg
ICAgdGhpcy5fdmFsdWVSZWdFeHAgPSAvKFteXHNdK1woLitcKXxbXlxzXSspKD86Oz8pL2c7Ci0g
ICAgfQotCi0gICAgZ2V0IHN0eWxlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdHls
ZTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICBs
ZXQgdmFsdWUgPSAiIjsKLSAgICAgICAgbGV0IG9uZUVkaXRvckhhc1ZhbHVlID0gZmFsc2U7Ci0g
ICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlzLl9wcm9wZXJ0eUVkaXRvcnMpIHsKLSAgICAg
ICAgICAgIGxldCBlZGl0b3JWYWx1ZSA9IGVkaXRvci5zeW50aGVzaXplZFZhbHVlOwotICAgICAg
ICAgICAgaWYgKGVkaXRvclZhbHVlICYmIGVkaXRvclZhbHVlLmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICBvbmVFZGl0b3JIYXNWYWx1ZSA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChlZGl0
b3Iub3B0aW9uYWxQcm9wZXJ0eSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAg
ICAgICAgaWYgKGVkaXRvci5tYXN0ZXJQcm9wZXJ0eSAmJiBlZGl0b3IudmFsdWVJc1N1cHBvcnRl
ZEtleXdvcmQoZWRpdG9yLnZhbHVlKSkgewotICAgICAgICAgICAgICAgIHRoaXMuX21hcmtFZGl0
b3JzKGVkaXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRvclZhbHVlOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZWRpdG9yICE9PSB0aGlzLl9wcm9wZXJ0
eUVkaXRvcnNbMF0pCi0gICAgICAgICAgICAgICAgdmFsdWUgKz0gIiAiOwotCi0gICAgICAgICAg
ICB2YWx1ZSArPSBlZGl0b3JWYWx1ZSB8fCAoZWRpdG9yLmNvbG9yUHJvcGVydHkgPyAidHJhbnNw
YXJlbnQiIDogMCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9tYXJrRWRpdG9ycygpOwot
ICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoICYmIG9uZUVkaXRvckhhc1ZhbHVlID8gdmFsdWUg
OiBudWxsOwotICAgIH0KLQotICAgIG1vZGlmeVByb3BlcnR5VGV4dCh0ZXh0LCB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZXh0Q29udGFpbnNOYW1lUmVnRXhwLnRlc3QodGV4dCkp
Ci0gICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKHRoaXMuX3JlcGxhY2VtZW50UmVnRXhw
LCB2YWx1ZSAhPT0gbnVsbCA/ICIkMSQyOiAiICsgdmFsdWUgKyAiOyIgOiAiJDEiKTsKLSAgICAg
ICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpCi0gICAgICAgICAgICB0ZXh0ICs9IFdJLlZpc3Vh
bFN0eWxlUHJvcGVydHlFZGl0b3IuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Rm9yTmV3UHJvcGVydHko
dGV4dCwgdGhpcy5fcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci0KLSAgICAgICAgcmV0dXJuIHRleHQ7
Ci0gICAgfQotCi0gICAgdXBkYXRlKHN0eWxlKQotICAgIHsKLSAgICAgICAgaWYgKHN0eWxlKQot
ICAgICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy5f
aWdub3JlTmV4dFVwZGF0ZSkgewotICAgICAgICAgICAgdGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9
IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCF0
aGlzLl9zdHlsZSB8fCAhdGhpcy5fdmFsdWVSZWdFeHApCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbGV0IHByb3BlcnR5ID0gdGhpcy5fc3R5bGUucHJvcGVydHlGb3JOYW1lKHRoaXMu
X3Byb3BlcnR5TmFtZSwgdHJ1ZSk7Ci0gICAgICAgIGxldCBwcm9wZXJ0eU1pc3NpbmcgPSAhcHJv
cGVydHk7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU1pc3NpbmcgJiYgdGhpcy5fc3R5bGUubm9kZVN0
eWxlcykKLSAgICAgICAgICAgIHByb3BlcnR5ID0gdGhpcy5fc3R5bGUubm9kZVN0eWxlcy5jb21w
dXRlZFN0eWxlLnByb3BlcnR5Rm9yTmFtZSh0aGlzLl9wcm9wZXJ0eU5hbWUpOwotCi0gICAgICAg
IGlmICghcHJvcGVydHkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy51cGRh
dGVWYWx1ZXNGcm9tVGV4dChwcm9wZXJ0eS52YWx1ZSwgcHJvcGVydHlNaXNzaW5nKTsKLSAgICAg
ICAgdGhpcy5fcHJvcGVydHlNaXNzaW5nID0gcHJvcGVydHlNaXNzaW5nOwotICAgIH0KLQotICAg
IHVwZGF0ZVZhbHVlc0Zyb21UZXh0KHN0eWxlVGV4dCwgcHJvcGVydHlNaXNzaW5nKQotICAgIHsK
LSAgICAgICAgaWYgKHN0eWxlVGV4dCA9PT0gdGhpcy5zeW50aGVzaXplZFZhbHVlKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlzLl9wcm9wZXJ0
eUVkaXRvcnMpCi0gICAgICAgICAgICBlZGl0b3JbV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUNvbWJp
bmVyLkVkaXRvclVwZGF0ZWRTeW1ib2xdID0gZmFsc2U7Ci0KLSAgICAgICAgZnVuY3Rpb24gdXBk
YXRlRWRpdG9yKGVkaXRvciwgdmFsdWUpIHsKLSAgICAgICAgICAgIGxldCB1cGRhdGVkVmFsdWVz
ID0gZWRpdG9yLmdldFZhbHVlc0Zyb21UZXh0KHZhbHVlIHx8ICIiLCBwcm9wZXJ0eU1pc3Npbmcp
OwotICAgICAgICAgICAgaWYgKCF1cGRhdGVkVmFsdWVzKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAgICAgZWRpdG9yLnVwZGF0ZUVkaXRvclZhbHVlcyh1cGRhdGVkVmFsdWVz
KTsKLSAgICAgICAgICAgIGVkaXRvcltXSS5WaXN1YWxTdHlsZVByb3BlcnR5Q29tYmluZXIuRWRp
dG9yVXBkYXRlZFN5bWJvbF0gPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRoaXMu
X3NwcmVhZE51bWJlclZhbHVlcykgewotICAgICAgICAgICAgbGV0IG51bWJlclZhbHVlcyA9IHN0
eWxlVGV4dC5tYXRjaCgvXGQrW1x3JV0qL2cpOwotICAgICAgICAgICAgbGV0IGNvdW50ID0gbnVt
YmVyVmFsdWVzICYmIG51bWJlclZhbHVlcy5sZW5ndGg7Ci0gICAgICAgICAgICBpZiAoY291bnQg
PT09IDEpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBlZGl0b3Igb2YgdGhpcy5fcHJvcGVy
dHlFZGl0b3JzKQotICAgICAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IoZWRpdG9yLCBudW1i
ZXJWYWx1ZXNbMF0pOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PT0gMikgewotICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhpcy5fcHJvcGVydHlFZGl0b3JzW2ldLCBudW1iZXJW
YWx1ZXNbaV0pOwotICAgICAgICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhpcy5fcHJvcGVy
dHlFZGl0b3JzW2kgKyAyXSwgbnVtYmVyVmFsdWVzW2ldKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09PSAzKSB7Ci0gICAgICAgICAgICAgICAgdXBk
YXRlRWRpdG9yKHRoaXMuX3Byb3BlcnR5RWRpdG9yc1swXSwgbnVtYmVyVmFsdWVzWzBdKTsKLSAg
ICAgICAgICAgICAgICB1cGRhdGVFZGl0b3IodGhpcy5fcHJvcGVydHlFZGl0b3JzWzFdLCBudW1i
ZXJWYWx1ZXNbMV0pOwotICAgICAgICAgICAgICAgIHVwZGF0ZUVkaXRvcih0aGlzLl9wcm9wZXJ0
eUVkaXRvcnNbMl0sIG51bWJlclZhbHVlc1syXSk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlRWRp
dG9yKHRoaXMuX3Byb3BlcnR5RWRpdG9yc1szXSwgbnVtYmVyVmFsdWVzWzFdKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbXBhdGlibGVFZGl0
b3IodmFsdWUpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGVkaXRvciBvZiB0aGlzLl9wcm9wZXJ0
eUVkaXRvcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgIWVkaXRvci52YWx1ZUlz
Q29tcGF0aWJsZSh2YWx1ZSkgfHwgZWRpdG9yW1dJLlZpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5l
ci5FZGl0b3JVcGRhdGVkU3ltYm9sXSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0K
LSAgICAgICAgICAgICAgICBpZiAodGhpcy5fY3VycmVudFZhbHVlSXNLZXl3b3JkICYmIGVkaXRv
ci5kaXNhYmxlZCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAg
ICAgICB1cGRhdGVFZGl0b3IoZWRpdG9yLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHZh
bHVlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLQotICAgICAgICBsZXQgbWF0Y2hlcyA9IHN0eWxlVGV4dC5tYXRjaCh0aGlzLl92YWx1ZVJl
Z0V4cCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcHJvcGVydHlFZGl0b3Jz
Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdXBkYXRlQ29tcGF0aWJsZUVkaXRvci5jYWxsKHRo
aXMsIG1hdGNoZXMgJiYgbWF0Y2hlc1tpXSk7Ci0gICAgfQotCi0gICAgZ2V0IHByb3BlcnR5TWlz
c2luZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHlNaXNzaW5nOwotICAg
IH0KLQotICAgIHJlc2V0RWRpdG9yVmFsdWVzKHZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
aWdub3JlTmV4dFVwZGF0ZSA9IGZhbHNlOwotICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlc0Zyb21U
ZXh0KHZhbHVlIHx8ICIiKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfbWFya0Vk
aXRvcnMoaWdub3JlZEVkaXRvciwgZGlzYWJsZWQpCi0gICAgewotICAgICAgICB0aGlzLl9jdXJy
ZW50VmFsdWVJc0tleXdvcmQgPSBkaXNhYmxlZCB8fCBmYWxzZTsKLSAgICAgICAgZm9yIChsZXQg
ZWRpdG9yIG9mIHRoaXMuX3Byb3BlcnR5RWRpdG9ycykgewotICAgICAgICAgICAgaWYgKGlnbm9y
ZWRFZGl0b3IgJiYgZWRpdG9yID09PSBpZ25vcmVkRWRpdG9yKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotCi0gICAgICAgICAgICBlZGl0b3IuZGlzYWJsZWQgPSB0aGlzLl9jdXJyZW50VmFs
dWVJc0tleXdvcmQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBfaGFuZGxlUHJvcGVydHlFZGl0
b3JWYWx1ZUNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgdGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9
IHRydWU7Ci0gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuc3ludGhlc2l6ZWRWYWx1ZTsKLSAgICAg
ICAgaWYgKHRoaXMuX3N0eWxlKQotICAgICAgICAgICAgdGhpcy5fc3R5bGUudGV4dCA9IHRoaXMu
bW9kaWZ5UHJvcGVydHlUZXh0KHRoaXMuX3N0eWxlLnRleHQsIHZhbHVlKTsKLQotICAgICAgICB0
aGlzLl9wcm9wZXJ0eU1pc3NpbmcgPSAhdmFsdWU7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuRXZlbnQuVmFsdWVEaWRD
aGFuZ2UpOwotICAgIH0KLX07Ci0KLVdJLlZpc3VhbFN0eWxlUHJvcGVydHlDb21iaW5lci5FZGl0
b3JVcGRhdGVkU3ltYm9sID0gU3ltYm9sKCJ2aXN1YWwtc3R5bGUtcHJvcGVydHktY29tYmluZXIt
ZWRpdG9yLXVwZGF0ZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRv
ci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmNjhkMjdmN2EyZTY2NDlhNzRl
Mjk2ZDJiNjI3NzBlZGFhMmU0MDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyIHsKLSAgICBk
aXNwbGF5OiBmbGV4OwotICAgIG1pbi1oZWlnaHQ6IDIycHg7Ci0gICAgbWFyZ2luOiAwIDZweDsK
LQotICAgIGZsZXgtYmFzaXM6IDE2MHB4OwotICAgIGZsZXgtZ3JvdzogMTsKLX0KLQotLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5hY3RpdmUgewotICAgIGRpc3BsYXk6IG5vbmU7
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS10aXRsZSB7Ci0gICAgbWFyZ2luOiA0cHg7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7
Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIubGF5b3V0LXJldmVyc2VkID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS10aXRsZSB7Ci0gICAgb3JkZXI6IDI7Ci0gICAgdGV4dC1hbGln
bjogbGVmdDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXRpdGxlID4gLnByb3BlcnR5LXJlZmVyZW5jZS1pbmZvIHsKLSAgICBj
dXJzb3I6IGhlbHA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmRpc2Fi
bGVkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS10aXRsZSA+IDpub3QoLnByb3BlcnR5LXJlZmVy
ZW5jZS1pbmZvKSB7Ci0gICAgb3BhY2l0eTogMC43OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLXdhcm5pbmcgewot
ICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIG9yZGVyOiAx
OwotICAgIHRvcDogNXB4OwotICAgIHdpZHRoOiAxMHB4OwotICAgIGhlaWdodDogMTBweDsKLSAg
ICBtYXJnaW4tcmlnaHQ6IDRweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIubGF5b3V0LXJldmVyc2VkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3Itd2Fybmlu
ZyB7Ci0gICAgbWFyZ2luLXJpZ2h0OiAwOwotICAgIG1hcmdpbi1sZWZ0OiA0cHg7Ci19Ci0KLS52
aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm1pc3NpbmctZGVwZW5kZW5jeSA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLXdhcm5pbmcgewotICAgIGRpc3BsYXk6IGJsb2NrOwot
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvV2FybmluZy5zdmcpOwotfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnZhbGlkLXZhbHVlID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1lZGl0b3Itd2FybmluZyB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgY29udGVudDog
dXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyIHsKLSAgICBm
bGV4OiAxOwotICAgIG9yZGVyOiAyOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIubGF5b3V0LXJldmVyc2VkID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgewotICAgIG9yZGVyOiAwOwotfQotCi0udmlz
dWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5kaXNhYmxlZCA+IC52aXN1YWwtc3R5bGUtcHJv
cGVydHktdmFsdWUtY29udGFpbmVyIHsKLSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLSAgICBv
cGFjaXR5OiAwLjQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyOm1hdGNo
ZXMoLm1pc3NpbmctZGVwZW5kZW5jeSwgLmludmFsaWQtdmFsdWUpID4gKjpmaXJzdC1jaGlsZDpt
YXRjaGVzKC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyKSB7Ci0gICAgbWFy
Z2luLWxlZnQ6IDJweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciBzZWxlY3QgewotICAgIHdpZHRo
OiAxMDAlOwotICAgIG1hcmdpbjogMXB4IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgaW5wdXQg
ewotICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpOwotICAgIG1hcmdpbjogMDsKLSAgICBvdXRs
aW5lOiBub25lOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5kaXNhYmxl
ZCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyIGlucHV0IHsKLSAgICBw
b2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4g
LnZpc3VhbC1zdHlsZS1zcGVjaWFsLXByb3BlcnR5LXBsYWNlaG9sZGVyIHsKLSAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgdG9wOiAycHg7Ci0gICAgbGVmdDogMXB4OwotICAgIHdpZHRoOiBj
YWxjKDEwMCUgLSAyMHB4KTsKLSAgICBsaW5lLWhlaWdodDogMTZweDsKLSAgICB0ZXh0LWluZGVu
dDogN3B4OwotICAgIGJvcmRlci1yYWRpdXM6IDRweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3
aGl0ZTsKLSAgICBjb2xvcjogaHNsKDAsIDAlLCA1MCUpOwotICAgIGZvbnQtc2l6ZTogMTFweDsK
LSAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgei1pbmRleDogMTsKLX0KLQotLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS1jb250YWluZXIgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIpID4gLnZpc3VhbC1zdHlsZS1zcGVjaWFsLXByb3BlcnR5
LXBsYWNlaG9sZGVyIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWluZm8tcG9wb3ZlciB7Ci0gICAgd2lkdGg6IDE5MHB4OwotICAgIG1hcmdpbjogMCA1
cHggM3B4OwotICAgIHBhZGRpbmc6IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktaW5m
by1wb3BvdmVyID4gaDMgewotICAgIG1hcmdpbjogNnB4IDNweDsKLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVy
dHlFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhZjlhODM1ZTk3MzVmZTQ5MWJlMjhlZWZkMWRkZDZmNjFhMWRmMzUwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw2MTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0eWxlUHJvcGVy
dHlFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yIGV4dGVuZHMgV0kuT2Jq
ZWN0Ci17Ci0gICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgbGFiZWwsIHBvc3NpYmxlVmFs
dWVzLCBwb3NzaWJsZVVuaXRzLCBjbGFzc05hbWUsIGxheW91dFJldmVyc2VkKQotICAgIHsKLSAg
ICAgICAgc3VwZXIoKTsKLQotICAgICAgICB0aGlzLl9wcm9wZXJ0eUluZm9MaXN0ID0gW107Ci0g
ICAgICAgIHRoaXMuX3N0eWxlID0gbnVsbDsKLQotICAgICAgICBmdW5jdGlvbiBjYW5vbmljYWxp
emVWYWx1ZXModmFsdWVzKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXZhbHVlcykKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGxldCBjYW5vbmljYWxpemVkVmFs
dWVzID0ge307Ci0gICAgICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpCi0gICAgICAg
ICAgICAgICAgY2Fub25pY2FsaXplZFZhbHVlc1t2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2Uo
L1xzL2csICItIildID0gdmFsdWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBjYW5vbmljYWxpemVk
VmFsdWVzOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1ZXMgPSBudWxs
OwotICAgICAgICBpZiAocG9zc2libGVWYWx1ZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX3Bvc3Np
YmxlVmFsdWVzID0ge307Ci0gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwb3NzaWJsZVZh
bHVlcykpCi0gICAgICAgICAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMgPSBjYW5v
bmljYWxpemVWYWx1ZXMocG9zc2libGVWYWx1ZXMpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMgPSBjYW5vbmljYWxpemVWYWx1
ZXMocG9zc2libGVWYWx1ZXMuYmFzaWMpOwotICAgICAgICAgICAgICAgIHRoaXMuX3Bvc3NpYmxl
VmFsdWVzLmFkdmFuY2VkID0gY2Fub25pY2FsaXplVmFsdWVzKHBvc3NpYmxlVmFsdWVzLmFkdmFu
Y2VkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0aGlzLl9wb3NzaWJsZVVu
aXRzID0gbnVsbDsKLSAgICAgICAgaWYgKHBvc3NpYmxlVW5pdHMpIHsKLSAgICAgICAgICAgIHRo
aXMuX3Bvc3NpYmxlVW5pdHMgPSB7fTsKLSAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBv
c3NpYmxlVW5pdHMpKQotICAgICAgICAgICAgICAgIHRoaXMuX3Bvc3NpYmxlVW5pdHMuYmFzaWMg
PSBwb3NzaWJsZVVuaXRzOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRoaXMu
X3Bvc3NpYmxlVW5pdHMgPSBwb3NzaWJsZVVuaXRzOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMu
X2RlcGVuZGVuY2llcyA9IG5ldyBNYXA7Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlz
dC5hZGQoInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIiLCBjbGFzc05hbWUpOwotICAg
ICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImxheW91dC1yZXZlcnNlZCIsICEh
bGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIGlmIChsYWJlbCAmJiBsYWJlbC5sZW5ndGgpIHsK
LSAgICAgICAgICAgIGxldCB0aXRsZUNvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hp
bGQoImRpdiIsICJ2aXN1YWwtc3R5bGUtcHJvcGVydHktdGl0bGUiKTsKLQotICAgICAgICAgICAg
dGhpcy5fdGl0bGVFbGVtZW50ID0gdGl0bGVDb250YWluZXIuY3JlYXRlQ2hpbGQoInNwYW4iKTsK
LSAgICAgICAgICAgIHRoaXMuX3RpdGxlRWxlbWVudC5hcHBlbmQobGFiZWwpOwotICAgICAgICAg
ICAgdGhpcy5fdGl0bGVFbGVtZW50LnRpdGxlID0gbGFiZWw7Ci0gICAgICAgICAgICB0aGlzLl90
aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5fdGl0bGVFbGVt
ZW50TW91c2VPdmVyLmJpbmQodGhpcykpOwotICAgICAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5fdGl0bGVFbGVtZW50TW91c2VPdXQu
YmluZCh0aGlzKSk7Ci0gICAgICAgICAgICB0aGlzLl90aXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl90aXRsZUVsZW1lbnRDbGljay5iaW5kKHRoaXMpKTsKLQotICAg
ICAgICAgICAgdGhpcy5fYm91bmRUaXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2sgPSB0aGlzLl90
aXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2suYmluZCh0aGlzKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2
IiwgInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIiKTsKLQotICAgICAgICB0
aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQgPSB0aGlzLl9jb250ZW50RWxl
bWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJ2aXN1YWwtc3R5bGUtc3BlY2lhbC1wcm9wZXJ0eS1w
bGFjZWhvbGRlciIpOwotICAgICAgICB0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVs
ZW1lbnQuaGlkZGVuID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl93YXJuaW5nRWxlbWVudCA9IHRo
aXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJ2aXN1YWwtc3R5bGUtcHJvcGVydHktZWRp
dG9yLXdhcm5pbmciKTsKLQotICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzID0ge307Ci0gICAg
ICAgIHRoaXMuX2xhc3RWYWx1ZSA9IG51bGw7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TWlzc2lu
ZyA9IGZhbHNlOwotCi0gICAgICAgIGlmICh0eXBlb2YgcHJvcGVydHlOYW1lcyA9PT0gInN0cmlu
ZyIpCi0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzID0gW3Byb3BlcnR5TmFtZXNdOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX2hhc011bHRpcGxlUHJvcGVydGllcyA9IHRydWU7
Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm11bHRpcGxlIik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHByb3BlcnR5TmFtZXMpIHsKLSAg
ICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChuYW1lKTsKLSAgICAgICAgICAg
IHRoaXMuX3Byb3BlcnR5SW5mb0xpc3QucHVzaCh7Ci0gICAgICAgICAgICAgICAgbmFtZSwKLSAg
ICAgICAgICAgICAgICB0ZXh0Q29udGFpbnNOYW1lUmVnRXhwOiBuZXcgUmVnRXhwKCIoPzooPzpe
fDspXFxzKiIgKyBuYW1lICsgIlxccyo6KSIpLAotICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50
UmVnRXhwOiBuZXcgUmVnRXhwKCIoKD86Xnw7KVxccyopKCIgKyBuYW1lICsgIikoLis/KD86O3wk
KSkiKQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9wcm9wZXJ0
eVJlZmVyZW5jZU5hbWUgPSBwcm9wZXJ0eU5hbWVzWzBdOwotICAgICAgICB0aGlzLl9wcm9wZXJ0
eVJlZmVyZW5jZVRleHQgPSBXSS5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm9wZXJ0eVJlZmVy
ZW5jZUluZm9bdGhpcy5fcHJvcGVydHlSZWZlcmVuY2VOYW1lXTsKLSAgICAgICAgdGhpcy5faGFz
UHJvcGVydHlSZWZlcmVuY2UgPSB0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZVRleHQgJiYgISF0aGlz
Ll9wcm9wZXJ0eVJlZmVyZW5jZVRleHQudHJpbSgpLmxlbmd0aDsKLSAgICAgICAgdGhpcy5fcmVw
cmVzZW50ZWRQcm9wZXJ0eSA9IG51bGw7Ci0gICAgfQotCi0gICAgLy8gU3RhdGljCi0KLSAgICBz
dGF0aWMgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Rm9yTmV3UHJvcGVydHkoc3R5bGVUZXh0LCBwcm9w
ZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWUgfHwg
IXByb3BlcnR5VmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gIiI7Ci0KLSAgICAgICAgc3R5bGVU
ZXh0ID0gc3R5bGVUZXh0IHx8ICIiOwotCi0gICAgICAgIGxldCBsaW5lUHJlZml4VGV4dCA9IFdJ
LmluZGVudFN0cmluZygpOwotICAgICAgICBsZXQgbGluZVN1ZmZpeFdoaXRlc3BhY2UgPSAiXG4i
OwotICAgICAgICBsZXQgdHJpbW1lZFRleHQgPSBzdHlsZVRleHQudHJpbVJpZ2h0KCk7Ci0gICAg
ICAgIGxldCB0ZXh0SGFzTmV3bGluZXMgPSB0cmltbWVkVGV4dC5pbmNsdWRlcygiXG4iKTsKLQot
ICAgICAgICBpZiAodHJpbW1lZFRleHQudHJpbUxlZnQoKS5sZW5ndGgpIHsKLSAgICAgICAgICAg
IGxldCBzdHlsZVRleHRQcmVmaXhXaGl0ZXNwYWNlID0gdHJpbW1lZFRleHQubWF0Y2goL15ccyov
KTsKLSAgICAgICAgICAgIGlmIChzdHlsZVRleHRQcmVmaXhXaGl0ZXNwYWNlKSB7Ci0gICAgICAg
ICAgICAgICAgbGV0IGxpbmVQcmVmaXhXaGl0ZXNwYWNlTWF0Y2ggPSBzdHlsZVRleHRQcmVmaXhX
aGl0ZXNwYWNlWzBdLm1hdGNoKC9bXlxTXG5dKyQvKTsKLSAgICAgICAgICAgICAgICBpZiAobGlu
ZVByZWZpeFdoaXRlc3BhY2VNYXRjaCAmJiB0ZXh0SGFzTmV3bGluZXMpCi0gICAgICAgICAgICAg
ICAgICAgIGxpbmVQcmVmaXhUZXh0ID0gbGluZVByZWZpeFdoaXRlc3BhY2VNYXRjaFswXTsKLSAg
ICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbGluZVByZWZpeFRleHQg
PSAiIjsKLSAgICAgICAgICAgICAgICAgICAgbGluZVN1ZmZpeFdoaXRlc3BhY2UgPSBzdHlsZVRl
eHRQcmVmaXhXaGl0ZXNwYWNlWzBdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgaWYgKCF0cmltbWVkVGV4dC5lbmRzV2l0aCgiOyIpKQotICAgICAgICAg
ICAgICAgIGxpbmVQcmVmaXhUZXh0ID0gIjsiICsgbGluZVByZWZpeFRleHQ7Ci0gICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgbGluZVByZWZpeFRleHQgPSAiXG4iICsgbGluZVByZWZpeFRleHQ7
Ci0KLSAgICAgICAgcmV0dXJuIGxpbmVQcmVmaXhUZXh0ICsgcHJvcGVydHlOYW1lICsgIjogIiAr
IHByb3BlcnR5VmFsdWUgKyAiOyIgKyBsaW5lU3VmZml4V2hpdGVzcGFjZTsKLSAgICB9Ci0KLSAg
ICAvLyBQdWJsaWMKLQotICAgIGdldCBlbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9lbGVtZW50OwotICAgIH0KLQotICAgIGdldCBzdHlsZSgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fc3R5bGU7Ci0gICAgfQotCi0gICAgZ2V0IHZhbHVlKCkKLSAgICB7Ci0gICAg
ICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIHNldCB2YWx1ZSh2
YWx1ZSkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0K
LQotICAgIGdldCB1bml0cygpCi0gICAgewotICAgICAgICAvLyBJbXBsZW1lbnRlZCBieSBzdWJj
bGFzcy4KLSAgICB9Ci0KLSAgICBzZXQgdW5pdHModW5pdCkKLSAgICB7Ci0gICAgICAgIC8vIElt
cGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIGdldCBwbGFjZWhvbGRlcigpCi0g
ICAgewotICAgICAgICAvLyBJbXBsZW1lbnRlZCBieSBzdWJjbGFzcy4KLSAgICB9Ci0KLSAgICBz
ZXQgcGxhY2Vob2xkZXIodGV4dCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1
YmNsYXNzLgotICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAg
ICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNzLgotICAgIH0KLQotICAgIHNldCBzdXBwcmVz
c1N0eWxlVGV4dFVwZGF0ZShmbGFnKQotICAgIHsKLSAgICAgICAgdGhpcy5fc3VwcHJlc3NTdHls
ZVRleHRVcGRhdGUgPSBmbGFnOwotICAgIH0KLQotICAgIHNldCBtYXN0ZXJQcm9wZXJ0eShmbGFn
KQotICAgIHsKLSAgICAgICAgdGhpcy5fbWFzdGVyUHJvcGVydHkgPSBmbGFnOwotICAgIH0KLQot
ICAgIGdldCBtYXN0ZXJQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbWFz
dGVyUHJvcGVydHk7Ci0gICAgfQotCi0gICAgc2V0IG9wdGlvbmFsUHJvcGVydHkoZmxhZykKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX29wdGlvbmFsUHJvcGVydHkgPSBmbGFnOwotICAgIH0KLQotICAg
IGdldCBvcHRpb25hbFByb3BlcnR5KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9vcHRp
b25hbFByb3BlcnR5OwotICAgIH0KLQotICAgIHNldCBjb2xvclByb3BlcnR5KGZsYWcpCi0gICAg
ewotICAgICAgICB0aGlzLl9jb2xvclByb3BlcnR5ID0gZmxhZzsKLSAgICB9Ci0KLSAgICBnZXQg
Y29sb3JQcm9wZXJ0eSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29sb3JQcm9wZXJ0
eTsKLSAgICB9Ci0KLSAgICBnZXQgcHJvcGVydHlSZWZlcmVuY2VOYW1lKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZU5hbWU7Ci0gICAgfQotCi0gICAgc2V0
IHByb3BlcnR5UmVmZXJlbmNlTmFtZShuYW1lKQotICAgIHsKLSAgICAgICAgaWYgKCFuYW1lIHx8
ICFuYW1lLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9wcm9w
ZXJ0eVJlZmVyZW5jZU5hbWUgPSBuYW1lOwotICAgIH0KLQotICAgIHNldCBkaXNhYmxlZChmbGFn
KQotICAgIHsKLSAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBmbGFnOwotICAgICAgICB0aGlzLl9l
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIiwgdGhpcy5fZGlzYWJsZWQpOwotICAg
ICAgICB0aGlzLl90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxlRWxlbWVudHModGhpcy5fZGlzYWJs
ZWQpOwotICAgIH0KLQotICAgIGdldCBkaXNhYmxlZCgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fZGlzYWJsZWQ7Ci0gICAgfQotCi0gICAgdXBkYXRlKHN0eWxlKQotICAgIHsKLSAgICAg
ICAgaWYgKHN0eWxlKQotICAgICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsKLSAgICAgICAg
ZWxzZSBpZiAodGhpcy5faWdub3JlTmV4dFVwZGF0ZSkgewotICAgICAgICAgICAgdGhpcy5faWdu
b3JlTmV4dFVwZGF0ZSA9IGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKCF0aGlzLl9zdHlsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl91cGRhdGVkVmFsdWVzID0ge307Ci0gICAgICAgIGxldCBwcm9wZXJ0eVZhbHVlc0Nv
bmZsaWN0ID0gZmFsc2U7Ci0gICAgICAgIGxldCBwcm9wZXJ0eU1pc3NpbmcgPSBmYWxzZTsKLSAg
ICAgICAgZm9yIChsZXQgcHJvcGVydHlJbmZvIG9mIHRoaXMuX3Byb3BlcnR5SW5mb0xpc3QpIHsK
LSAgICAgICAgICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX3N0eWxlLnByb3BlcnR5Rm9yTmFtZShw
cm9wZXJ0eUluZm8ubmFtZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBwcm9wZXJ0eU1pc3NpbmcgPSAh
cHJvcGVydHk7Ci0gICAgICAgICAgICBpZiAocHJvcGVydHlNaXNzaW5nICYmIHRoaXMuX3N0eWxl
Lm5vZGVTdHlsZXMpCi0gICAgICAgICAgICAgICAgcHJvcGVydHkgPSB0aGlzLl9zdHlsZS5ub2Rl
U3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JOYW1lKHByb3BlcnR5SW5mby5uYW1lKTsK
LQotICAgICAgICAgICAgbGV0IGxvbmdoYW5kUHJvcGVydHlWYWx1ZSA9IG51bGw7Ci0gICAgICAg
ICAgICBpZiAodHlwZW9mIHRoaXMuX2dlbmVyYXRlVGV4dEZyb21Mb25naGFuZFByb3BlcnRpZXMg
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgbG9uZ2hhbmRQcm9wZXJ0eVZhbHVlID0g
dGhpcy5fZ2VuZXJhdGVUZXh0RnJvbUxvbmdoYW5kUHJvcGVydGllcygpOwotCi0gICAgICAgICAg
ICBpZiAobG9uZ2hhbmRQcm9wZXJ0eVZhbHVlKQotICAgICAgICAgICAgICAgIHByb3BlcnR5TWlz
c2luZyA9IGZhbHNlOwotCi0gICAgICAgICAgICBsZXQgcHJvcGVydHlUZXh0ID0gKHByb3BlcnR5
ICYmIHByb3BlcnR5LnZhbHVlKSB8fCBsb25naGFuZFByb3BlcnR5VmFsdWU7Ci0gICAgICAgICAg
ICBpZiAoIXByb3BlcnR5VGV4dCB8fCAhcHJvcGVydHlUZXh0Lmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU1pc3NpbmcgJiYgcHJv
cGVydHkgJiYgcHJvcGVydHkuYW5vbnltb3VzKQotICAgICAgICAgICAgICAgIHRoaXMuX3JlcHJl
c2VudGVkUHJvcGVydHkgPSBwcm9wZXJ0eTsKLQotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU1p
c3NpbmcgJiYgcHJvcGVydHkgJiYgIXByb3BlcnR5LnZhbGlkKSB7Ci0gICAgICAgICAgICAgICAg
dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpbnZhbGlkLXZhbHVlIik7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fd2FybmluZ0VsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiVGhlIHZhbHVl
IOKAnCVz4oCdIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuIikuZm9ybWF0KHBy
b3BlcnR5VGV4dCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhv
bGRlckVsZW1lbnRUZXh0ID0gcHJvcGVydHlUZXh0OwotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IG5ld1ZhbHVlcyA9IHRoaXMuZ2V0VmFs
dWVzRnJvbVRleHQocHJvcGVydHlUZXh0LCBwcm9wZXJ0eU1pc3NpbmcpOwotICAgICAgICAgICAg
aWYgKHRoaXMuX3VwZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXIgJiYgdGhpcy5fdXBkYXRlZFZhbHVl
cy5wbGFjZWhvbGRlciAhPT0gbmV3VmFsdWVzLnBsYWNlaG9sZGVyKQotICAgICAgICAgICAgICAg
IHByb3BlcnR5VmFsdWVzQ29uZmxpY3QgPSB0cnVlOwotCi0gICAgICAgICAgICBpZiAoIXRoaXMu
X3VwZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXIpCi0gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRl
ZFZhbHVlcyA9IG5ld1ZhbHVlczsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWVzQ29u
ZmxpY3QpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzLmNvbmZsaWN0aW5n
VmFsdWVzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNl
aG9sZGVyRWxlbWVudFRleHQgPSBXSS5VSVN0cmluZygiKG11bHRpcGxlKSIpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRo
aXMuX2hhc011bHRpcGxlUHJvcGVydGllcykKLSAgICAgICAgICAgIHRoaXMuX3NwZWNpYWxQcm9w
ZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAhcHJvcGVydHlWYWx1ZXNDb25mbGljdDsK
LQotICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvclZhbHVlcyh0aGlzLl91cGRhdGVkVmFsdWVzKTsK
LSAgICB9Ci0KLSAgICB1cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcykKLSAgICB7Ci0g
ICAgICAgIHRoaXMudmFsdWUgPSB1cGRhdGVkVmFsdWVzLnZhbHVlOwotICAgICAgICB0aGlzLnVu
aXRzID0gdXBkYXRlZFZhbHVlcy51bml0czsKLSAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHVw
ZGF0ZWRWYWx1ZXMucGxhY2Vob2xkZXI7Ci0KLSAgICAgICAgdGhpcy5fbGFzdFZhbHVlID0gdGhp
cy5zeW50aGVzaXplZFZhbHVlOwotICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7Ci0KLSAg
ICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkLXZhbHVlIik7Ci0g
ICAgICAgIHRoaXMuX2NoZWNrRGVwZW5kZW5jaWVzKCk7Ci0gICAgfQotCi0gICAgcmVzZXRFZGl0
b3JWYWx1ZXModmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl9pZ25vcmVOZXh0VXBkYXRlID0g
ZmFsc2U7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmxlbmd0aCkgewotICAgICAgICAg
ICAgdGhpcy52YWx1ZSA9IG51bGw7Ci0gICAgICAgICAgICB0aGlzLl9zcGVjaWFsUHJvcGVydHlQ
bGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBsZXQgdXBkYXRlZFZhbHVlcyA9IHRoaXMuZ2V0VmFsdWVzRnJv
bVRleHQodmFsdWUpOwotICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvclZhbHVlcyh1cGRhdGVkVmFs
dWVzKTsKLSAgICB9Ci0KLSAgICBtb2RpZnlQcm9wZXJ0eVRleHQodGV4dCwgdmFsdWUpCi0gICAg
ewotICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiB0aGlzLl9wcm9wZXJ0eUluZm9MaXN0KSB7
Ci0gICAgICAgICAgICBpZiAocHJvcGVydHkudGV4dENvbnRhaW5zTmFtZVJlZ0V4cC50ZXN0KHRl
eHQpKQotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UocHJvcGVydHkucmVwbGFj
ZW1lbnRSZWdFeHAsIHZhbHVlICE9PSBudWxsID8gIiQxJDI6ICIgKyB2YWx1ZSArICI7IiA6ICIk
MSIpOwotICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpCi0gICAgICAgICAgICAg
ICAgdGV4dCArPSBXSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dEZvck5ld1Byb3BlcnR5KHRleHQsIHByb3BlcnR5Lm5hbWUsIHZhbHVlKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gdGV4dDsKLSAgICB9Ci0KLSAgICBnZXRWYWx1ZXNGcm9tVGV4dCh0
ZXh0LCBwcm9wZXJ0eU1pc3NpbmcpCi0gICAgewotICAgICAgICBsZXQgbWF0Y2ggPSB0aGlzLnBh
cnNlVmFsdWUodGV4dCk7Ci0gICAgICAgIGxldCBwbGFjZWhvbGRlciA9IG1hdGNoID8gbWF0Y2hb
MV0gOiB0ZXh0OwotICAgICAgICBsZXQgdW5pdHMgPSBtYXRjaCA/IG1hdGNoWzJdIDogbnVsbDsK
LSAgICAgICAgbGV0IHZhbHVlID0gcGxhY2Vob2xkZXI7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU1p
c3NpbmcpCi0gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQo
dGV4dCkgPyB0ZXh0IDogbnVsbDsKLQotICAgICAgICB0aGlzLl9wcm9wZXJ0eU1pc3NpbmcgPSBw
cm9wZXJ0eU1pc3NpbmcgfHwgZmFsc2U7Ci0gICAgICAgIHJldHVybiB7dmFsdWUsIHVuaXRzLCBw
bGFjZWhvbGRlcn07Ci0gICAgfQotCi0gICAgZ2V0IHByb3BlcnR5TWlzc2luZygpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlZFZhbHVlcyAmJiB0aGlzLl9wcm9wZXJ0eU1pc3Np
bmc7Ci0gICAgfQotCi0gICAgdmFsdWVJc0NvbXBhdGlibGUodmFsdWUpCi0gICAgewotICAgICAg
ICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpIHx8
ICEhdGhpcy5wYXJzZVZhbHVlKHZhbHVlKTsKLSAgICB9Ci0KLSAgICB2YWx1ZUlzU3VwcG9ydGVk
S2V5d29yZCh2YWx1ZSkgewotICAgICAgICBpZiAoIXRoaXMuX3Bvc3NpYmxlVmFsdWVzKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLl9w
b3NzaWJsZVZhbHVlcy5iYXNpYykuaW5jbHVkZXModmFsdWUpKQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSXNTdXBwb3J0ZWRBZHZhbmNlZEtl
eXdvcmQodmFsdWUpOwotICAgIH0KLQotICAgIHZhbHVlSXNTdXBwb3J0ZWRVbml0KHVuaXQpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX3Bvc3NpYmxlVW5pdHMpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVW5pdHMuYmFzaWMuaW5jbHVk
ZXModW5pdCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICByZXR1cm4gdGhp
cy5fdmFsdWVJc1N1cHBvcnRlZEFkdmFuY2VkVW5pdCh1bml0KTsKLSAgICB9Ci0KLSAgICBhZGRE
ZXBlbmRlbmN5KHByb3BlcnR5TmFtZXMsIHByb3BlcnR5VmFsdWVzKQotICAgIHsKLSAgICAgICAg
aWYgKCFwcm9wZXJ0eU5hbWVzIHx8ICFwcm9wZXJ0eU5hbWVzLmxlbmd0aCB8fCAhcHJvcGVydHlW
YWx1ZXMgfHwgIXByb3BlcnR5VmFsdWVzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJvcGVydHlOYW1lcykpCi0gICAgICAgICAgICBw
cm9wZXJ0eU5hbWVzID0gW3Byb3BlcnR5TmFtZXNdOwotCi0gICAgICAgIGZvciAobGV0IHByb3Bl
cnR5IG9mIHByb3BlcnR5TmFtZXMpCi0gICAgICAgICAgICB0aGlzLl9kZXBlbmRlbmNpZXMuc2V0
KHByb3BlcnR5LCBwcm9wZXJ0eVZhbHVlcyk7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0K
LSAgICBnZXQgY29udGVudEVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Nv
bnRlbnRFbGVtZW50OwotICAgIH0KLQotICAgIGdldCBzcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRl
ckVsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxQcm9wZXJ0eVBs
YWNlaG9sZGVyRWxlbWVudDsKLSAgICB9Ci0KLSAgICBzZXQgc3BlY2lhbFByb3BlcnR5UGxhY2Vo
b2xkZXJFbGVtZW50VGV4dCh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0ZXh0IHx8ICF0ZXh0
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9zcGVjaWFsUHJv
cGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX3Nw
ZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC50ZXh0Q29udGVudCA9IHRleHQ7Ci0gICAg
fQotCi0gICAgcGFyc2VWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIC9eKFteO10r
KVxzKjs/JC8uZXhlYyh0ZXh0KTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfdmFs
dWVJc1N1cHBvcnRlZEFkdmFuY2VkS2V5d29yZCh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCAmJiBPYmplY3Qua2V5cyh0aGlzLl9wb3Nz
aWJsZVZhbHVlcy5hZHZhbmNlZCkuaW5jbHVkZXModmFsdWUpOwotICAgIH0KLQotICAgIF92YWx1
ZUlzU3VwcG9ydGVkQWR2YW5jZWRVbml0KHVuaXQpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fcG9zc2libGVVbml0cy5hZHZhbmNlZCAmJiB0aGlzLl9wb3NzaWJsZVVuaXRzLmFkdmFuY2Vk
LmluY2x1ZGVzKHVuaXQpOwotICAgIH0KLQotICAgIF9jYW5vbmljYWxpemVkS2V5d29yZEZvcktl
eSh2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXRoaXMuX3Bvc3NpYmxlVmFs
dWVzKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3Bv
c3NpYmxlVmFsdWVzLmJhc2ljW3ZhbHVlXSB8fCAodGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5j
ZWQgJiYgdGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWRbdmFsdWVdKSB8fCBudWxsOwotICAg
IH0KLQotICAgIF9rZXlGb3JLZXl3b3JkKGtleXdvcmQpCi0gICAgewotICAgICAgICBpZiAoIWtl
eXdvcmQgfHwgIWtleXdvcmQubGVuZ3RoIHx8ICF0aGlzLl9wb3NzaWJsZVZhbHVlcykKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGZvciAobGV0IGJhc2ljS2V5IGluIHRoaXMu
X3Bvc3NpYmxlVmFsdWVzLmJhc2ljKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fcG9zc2libGVW
YWx1ZXMuYmFzaWNbYmFzaWNLZXldID09PSBrZXl3b3JkKQotICAgICAgICAgICAgICAgIHJldHVy
biBiYXNpY0tleTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghdGhpcy5fcG9zc2libGVWYWx1
ZXMuYWR2YW5jZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICBmb3IgKGxl
dCBhZHZhbmNlZEtleSBpbiB0aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCkgewotICAgICAg
ICAgICAgaWYgKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmFkdmFuY2VkW2FkdmFuY2VkS2V5XSA9PT0g
a2V5d29yZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gYWR2YW5jZWRLZXk7Ci0gICAgICAgIH0K
LQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBfdmFsdWVEaWRDaGFuZ2UoKQot
ICAgIHsKLSAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5zeW50aGVzaXplZFZhbHVlOwotICAgICAg
ICBpZiAodmFsdWUgPT09IHRoaXMuX2xhc3RWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgICAgICBpZiAodGhpcy5fc3R5bGUgJiYgIXRoaXMuX3N1cHByZXNzU3R5bGVUZXh0
VXBkYXRlKSB7Ci0gICAgICAgICAgICBsZXQgbmV3VGV4dCA9IHRoaXMuX3N0eWxlLnRleHQ7Ci0g
ICAgICAgICAgICBuZXdUZXh0ID0gdGhpcy5fcmVwbGFjZVNob3J0aGFuZFByb3BlcnR5V2l0aExv
bmdoYW5kUHJvcGVydGllcyhuZXdUZXh0KTsKLSAgICAgICAgICAgIG5ld1RleHQgPSB0aGlzLm1v
ZGlmeVByb3BlcnR5VGV4dChuZXdUZXh0LCB2YWx1ZSk7Ci0gICAgICAgICAgICB0aGlzLl9zdHls
ZS50ZXh0ID0gbmV3VGV4dDsKLSAgICAgICAgICAgIGlmICghbmV3VGV4dC5sZW5ndGgpCi0gICAg
ICAgICAgICAgICAgdGhpcy5fc3R5bGUudXBkYXRlKG51bGwsIG51bGwsIHRoaXMuX3N0eWxlLnN0
eWxlU2hlZXRUZXh0UmFuZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fbGFzdFZhbHVl
ID0gdmFsdWU7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TWlzc2luZyA9ICF2YWx1ZTsKLSAgICAg
ICAgdGhpcy5faWdub3JlTmV4dFVwZGF0ZSA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3NwZWNpYWxQ
cm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSB0cnVlOwotCi0gICAgICAgIHRoaXMu
X2NoZWNrRGVwZW5kZW5jaWVzKCk7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJl
bW92ZSgiaW52YWxpZC12YWx1ZSIpOwotCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdJLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuRXZlbnQuVmFsdWVEaWRDaGFuZ2Up
OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBfcmVwbGFjZVNob3J0aGFuZFBy
b3BlcnR5V2l0aExvbmdoYW5kUHJvcGVydGllcyh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLl9yZXByZXNlbnRlZFByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuIHRleHQ7Ci0KLSAg
ICAgICAgbGV0IHNob3J0aGFuZCA9IHRoaXMuX3JlcHJlc2VudGVkUHJvcGVydHkucmVsYXRlZFNo
b3J0aGFuZFByb3BlcnR5OwotICAgICAgICBpZiAoIXNob3J0aGFuZCkKLSAgICAgICAgICAgIHJl
dHVybiB0ZXh0OwotCi0gICAgICAgIGxldCBsb25naGFuZFRleHQgPSAiIjsKLSAgICAgICAgZm9y
IChsZXQgbG9uZ2hhbmRQcm9wZXJ0eSBvZiBzaG9ydGhhbmQucmVsYXRlZExvbmdoYW5kUHJvcGVy
dGllcykgewotICAgICAgICAgICAgaWYgKGxvbmdoYW5kUHJvcGVydHkuYW5vbnltb3VzKQotICAg
ICAgICAgICAgICAgIGxvbmdoYW5kVGV4dCArPSBsb25naGFuZFByb3BlcnR5LnN5bnRoZXNpemVk
VGV4dDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbG9uZ2hhbmRUZXh0ID8gdGV4dC5yZXBs
YWNlKHNob3J0aGFuZC50ZXh0LCBsb25naGFuZFRleHQpIDogdGV4dDsKLSAgICB9Ci0KLSAgICBf
aGFzTXVsdGlwbGVDb25mbGljdGluZ1ZhbHVlcygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5faGFzTXVsdGlwbGVQcm9wZXJ0aWVzICYmICF0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhv
bGRlckVsZW1lbnQuaGlkZGVuOwotICAgIH0KLQotICAgIF9jaGVja0RlcGVuZGVuY2llcygpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX2RlcGVuZGVuY2llcy5zaXplIHx8ICF0aGlzLl9zdHls
ZSB8fCAhdGhpcy5zeW50aGVzaXplZFZhbHVlKSB7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC5yZW1vdmUoIm1pc3NpbmctZGVwZW5kZW5jeSIpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHRpdGxlID0gIiI7Ci0KLSAgICAgICAgbGV0
IGRlcGVuZGVuY2llcyA9IHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9w
ZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9k
ZXBlbmRlbmNpZXMuaGFzKHByb3BlcnR5Lm5hbWUpIHx8IHRoaXMuX2RlcGVuZGVuY2llcy5oYXMo
cHJvcGVydHkuY2Fub25pY2FsTmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGZvciAobGV0
IHByb3BlcnR5IG9mIGRlcGVuZGVuY2llcykgewotICAgICAgICAgICAgbGV0IGRlcGVuZGVuY3lW
YWx1ZXMgPSB0aGlzLl9kZXBlbmRlbmNpZXMuZ2V0KHByb3BlcnR5Lm5hbWUpOwotICAgICAgICAg
ICAgaWYgKCFkZXBlbmRlbmN5VmFsdWVzLmluY2x1ZGVzKHByb3BlcnR5LnZhbHVlKSkKLSAgICAg
ICAgICAgICAgICB0aXRsZSArPSAiXG4gIiArIHByb3BlcnR5Lm5hbWUgKyAiOiAiICsgZGVwZW5k
ZW5jeVZhbHVlcy5qb2luKCIvIik7Ci0gICAgICAgIH0KLQotICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoIm1pc3NpbmctZGVwZW5kZW5jeSIsICEhdGl0bGUubGVuZ3RoKTsK
LSAgICAgICAgdGhpcy5fd2FybmluZ0VsZW1lbnQudGl0bGUgPSB0aXRsZS5sZW5ndGggPyBXSS5V
SVN0cmluZygiTWlzc2luZyBEZXBlbmRlbmNpZXM6JXMiKS5mb3JtYXQodGl0bGUpIDogbnVsbDsK
LSAgICB9Ci0KLSAgICBfdGl0bGVFbGVtZW50UHJlcGFyZUZvckNsaWNrKGV2ZW50KQotICAgIHsK
LSAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3BlcnR5LXJl
ZmVyZW5jZS1pbmZvIiwgZXZlbnQudHlwZSA9PT0gImtleWRvd24iICYmIGV2ZW50LmFsdEtleSk7
Ci0gICAgfQotCi0gICAgX3RpdGxlRWxlbWVudE1vdXNlT3ZlcihldmVudCkKLSAgICB7Ci0gICAg
ICAgIGlmICghdGhpcy5faGFzUHJvcGVydHlSZWZlcmVuY2UpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInByb3BlcnR5
LXJlZmVyZW5jZS1pbmZvIiwgZXZlbnQuYWx0S2V5KTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2JvdW5kVGl0bGVFbGVtZW50UHJlcGFyZUZvckNs
aWNrKTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLl9i
b3VuZFRpdGxlRWxlbWVudFByZXBhcmVGb3JDbGljayk7Ci0gICAgfQotCi0gICAgX3RpdGxlRWxl
bWVudE1vdXNlT3V0KCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faGFzUHJvcGVydHlSZWZl
cmVuY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdGl0bGVFbGVtZW50
LmNsYXNzTGlzdC5yZW1vdmUoInByb3BlcnR5LXJlZmVyZW5jZS1pbmZvIik7Ci0gICAgICAgIGRv
Y3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9ib3VuZFRpdGxlRWxl
bWVudFByZXBhcmVGb3JDbGljayk7Ci0gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoImtleXVwIiwgdGhpcy5fYm91bmRUaXRsZUVsZW1lbnRQcmVwYXJlRm9yQ2xpY2spOwotICAg
IH0KLQotICAgIF90aXRsZUVsZW1lbnRDbGljayhldmVudCkKLSAgICB7Ci0gICAgICAgIGlmIChl
dmVudC5hbHRLZXkpCi0gICAgICAgICAgICB0aGlzLl9zaG93UHJvcGVydHlJbmZvUG9wb3Zlcigp
OwotICAgIH0KLQotICAgIF9zaG93UHJvcGVydHlJbmZvUG9wb3ZlcigpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMuX2hhc1Byb3BlcnR5UmVmZXJlbmNlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGxldCBwcm9wZXJ0eUluZm9FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgicCIpOwotICAgICAgICBwcm9wZXJ0eUluZm9FbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1pbmZvLXBvcG92ZXIiKTsKLQotICAgICAgICBsZXQgcHJvcGVydHlJ
bmZvVGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKTsKLSAgICAgICAg
cHJvcGVydHlJbmZvVGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHRoaXMuX3Byb3BlcnR5UmVmZXJlbmNlTmFtZSkpOwotICAgICAgICBwcm9wZXJ0eUluZm9F
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnR5SW5mb1RpdGxlRWxlbWVudCk7Ci0KLSAgICAgICAg
cHJvcGVydHlJbmZvRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0
aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZVRleHQpKTsKLQotICAgICAgICBsZXQgYm91bmRzID0gV0ku
UmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fdGl0bGVFbGVtZW50LmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpKTsKLSAgICAgICAgbGV0IHBvcG92ZXIgPSBuZXcgV0kuUG9wb3Zlcih0aGlzKTsK
LSAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gcHJvcGVydHlJbmZvRWxlbWVudDsKLSAgICAgICAg
cG9wb3Zlci5wcmVzZW50KGJvdW5kcy5wYWQoMiksIFtXSS5SZWN0RWRnZS5NSU5fWV0pOwotICAg
ICAgICBwb3BvdmVyLndpbmRvd1Jlc2l6ZUhhbmRsZXIgPSAoKSA9PiB7Ci0gICAgICAgICAgICBs
ZXQgYm91bmRzID0gV0kuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fdGl0bGVFbGVtZW50
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKLSAgICAgICAgICAgIHBvcG92ZXIucHJlc2VudChi
b3VuZHMucGFkKDIpLCBbV0kuUmVjdEVkZ2UuTUlOX1ldKTsKLSAgICAgICAgfTsKLSAgICB9Ci0K
LSAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQotICAgIHsK
LSAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MuCi0gICAgfQotfTsKLQotV0kuVmlz
dWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5FdmVudCA9IHsKLSAgICBWYWx1ZURpZENoYW5nZTogInZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItdmFsdWUtY2hhbmdlZCIKLX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVBy
b3BlcnR5RWRpdG9yTGluay5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluay5jc3MKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI0NmJhMTYyYzk5ZWY4MzQwNjQ2ZTMwOTBiMzRiMmZiYmYzZDYwNzMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRv
ckxpbmsuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0u
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rIHsKLSAgICBkaXNwbGF5OiBmbGV4Owot
ICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIG1p
bi13aWR0aDogMzJweDsKLSAgICBtYXJnaW4tbGVmdDogMXB4OwotfQotCi1AbWVkaWEgKC13ZWJr
aXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktZWRpdG9yLWxpbmsgewotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICB9Ci19Ci0KLS52
aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsuZGlzYWJsZWQgewotICAgIHZpc2liaWxp
dHk6IGhpZGRlbjsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5r
LWFsbCB7Ci0gICAgaGVpZ2h0OiAxM3B4OwotICAgIG1hcmdpbjogMCBhdXRvIDJweDsKLSAgICBw
YWRkaW5nOiAwIDUwcHg7Ci0gICAgYm9yZGVyLXRvcC13aWR0aDogMDsKLSAgICBib3JkZXItcmln
aHQtd2lkdGg6IDFweDsKLSAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwOwotICAgIGJvcmRlci1s
ZWZ0LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDUwJSk7Ci0gICAg
Ym9yZGVyLXN0eWxlOiBkYXNoZWQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9y
LWxpbmsubGluay1hbGwubGlua2VkIHsKLSAgICBib3JkZXItY29sb3I6IGJsYWNrOwotICAgIGJv
cmRlci1zdHlsZTogc29saWQ7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxp
bmsgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlciB7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogY2FsYyg1MCUgLSAwLjVweCk7Ci0gICAgd2lkdGg6
IDQ4cHg7Ci0gICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCBoc2woMCwgMCUsIDUwJSk7Ci19Ci0K
LS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsubGlua2VkID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIgewotICAgIGJvcmRlci10b3A6IDFweCBzb2xp
ZCBibGFjazsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluayA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQgewotICAgIGxlZnQ6IDA7
Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlci5yaWdodCB7Ci0gICAgcmlnaHQ6IDFweDsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbCA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQgewotICAgIGxlZnQ6IDFweDsK
LX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbC5saW5rZWQg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRlciB7Ci0gICAgd2lkdGg6
IDUxcHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmsubGluay1hbGwu
bGlua2VkID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIubGVmdCB7
Ci0gICAgbGVmdDogMDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5s
aW5rLWFsbC5saW5rZWQgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWJvcmRl
ci5yaWdodCB7Ci0gICAgcmlnaHQ6IDA7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRp
dG9yLWxpbmsubGluay12ZXJ0aWNhbCB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHRv
cDogLTFweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluazpub3QoLmxp
bmstYWxsKSB7Ci0gICAgaGVpZ2h0OiAyMHB4OwotfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWVkaXRvci1saW5rOm5vdCgubGluay1hbGwpID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0
b3ItbGluay1ib3JkZXIgewotICAgIHdpZHRoOiAxMHB4OwotICAgIHRvcDogNTAlOwotfQotCi0u
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rOm5vdCgubGluay1hbGwpLmxpbmtlZCA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyIHsKLSAgICB3aWR0aDog
MTJweDsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluayA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstaWNvbiA+IDptYXRjaGVzKC5saW5rZWQtaWNvbiwg
LnVubGlua2VkLWljb24pIHsKLSAgICB3aWR0aDogOXB4OwotICAgIGhlaWdodDogMTJweDsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluayA+IC52aXN1YWwtc3R5bGUtcHJv
cGVydHktZWRpdG9yLWxpbmstaWNvbiA+IC51bmxpbmtlZC1pY29uIHsKLSAgICBwb3NpdGlvbjog
cmVsYXRpdmU7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Ci0gICAgei1pbmRleDogMTsK
LX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluazpub3QoLmxpbmtlZCkgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWljb24gPiA6bWF0Y2hlcygubGlua2Vk
LWljb24sIC51bmxpbmtlZC1pY29uKSB7Ci0gICAgY29sb3I6IGhzbCgwLCAwJSwgNTAlKTsKLX0K
LQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluazpub3QoLmxpbmstYWxsKSA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstaWNvbiB7Ci0gICAgbWFyZ2luLWxlZnQ6
IDExcHg7Ci19Ci0KLUBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSB7
Ci0gICAgLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbCA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQsCi0gICAgLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay5saW5rLWFsbC5saW5rZWQgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWVkaXRvci1saW5rLWljb246aG92ZXIgKyAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LWVkaXRvci1saW5rLWJvcmRlci5yaWdodCAgewotICAgICAgICB3aWR0aDogNDlweDsKLSAgICB9
Ci0KLSAgICAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1ib3JkZXIubGVmdCB7Ci0gICAgICAgIGxlZnQ6IDFweDsK
LSAgICB9Ci0KLSAgICAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLmxpbmstYWxs
LmxpbmtlZCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktZWRpdG9yLWxpbmstYm9yZGVyLmxlZnQg
ewotICAgICAgICB3aWR0aDogNTJweDsKLSAgICB9Ci0KLSAgICAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWVkaXRvci1saW5rID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGluay1pY29u
ID4gOm1hdGNoZXMoLmxpbmtlZC1pY29uLCAudW5saW5rZWQtaWNvbikgewotICAgICAgICB3aWR0
aDogMTBweDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGluay5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlF
ZGl0b3JMaW5rLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzdlZGRiN2YyMjcy
MjhmMmZhNzllMzE0NDdkMGU2Y2FiNGM0MWZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yTGlu
ayA9IGNsYXNzIFZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3JMaW5rIGV4dGVuZHMgV0kuT2JqZWN0
Ci17Ci0gICAgY29uc3RydWN0b3IobGlua2VkUHJvcGVydGllcywgY2xhc3NOYW1lLCBsaW5rc1Rv
SGlkZVdoZW5MaW5rZWQpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMu
X2xpbmtlZFByb3BlcnRpZXMgPSBsaW5rZWRQcm9wZXJ0aWVzIHx8IFtdOwotICAgICAgICB0aGlz
Ll9saW5rc1RvSGlkZVdoZW5MaW5rZWQgPSBsaW5rc1RvSGlkZVdoZW5MaW5rZWQgfHwgW107Ci0g
ICAgICAgIHRoaXMuX2xhc3RQcm9wZXJ0eUVkaXRlZCA9IG51bGw7Ci0KLSAgICAgICAgZm9yIChs
ZXQgcHJvcGVydHkgb2YgdGhpcy5fbGlua2VkUHJvcGVydGllcykKLSAgICAgICAgICAgIHByb3Bl
cnR5LmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5FdmVudC5W
YWx1ZURpZENoYW5nZSwgdGhpcy5fbGlua2VkUHJvcGVydHlWYWx1ZUNoYW5nZWQsIHRoaXMpOwot
Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aXN1YWwtc3R5bGUtcHJvcGVy
dHktZWRpdG9yLWxpbmsiLCBjbGFzc05hbWUgfHwgIiIpOwotCi0gICAgICAgIGxldCBsZWZ0TGlu
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgbGVmdExp
bmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1lZGl0b3ItbGlu
ay1ib3JkZXIiLCAibGVmdCIpOwotICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGxl
ZnRMaW5lRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgidmlzdWFsLXN0eWxlLXByb3BlcnR5LWVkaXRvci1saW5rLWljb24iKTsKLSAgICAgICAg
dGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiQ2xpY2sgdG8gbGluayBwcm9w
ZXJ0eSB2YWx1ZXMiKTsKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigibW91c2VvdmVyIiwgdGhpcy5faWNvbk1vdXNlb3Zlci5iaW5kKHRoaXMpKTsKLSAgICAgICAg
dGhpcy5faWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0aGlzLl9pY29u
TW91c2VvdXQuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faWNvbkNsaWNrZWQuYmluZCh0aGlzKSk7Ci0KLSAgICAg
ICAgdGhpcy5fdW5saW5rZWRJY29uID0gV0kuSW1hZ2VVdGlsaXRpZXMudXNlU1ZHU3ltYm9sKCJJ
bWFnZXMvVmlzdWFsU3R5bGVQcm9wZXJ0eVVubGlua2VkLnN2ZyIsICJ1bmxpbmtlZC1pY29uIik7
Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3VubGlua2VkSWNv
bik7Ci0KLSAgICAgICAgdGhpcy5fbGlua2VkSWNvbiA9IFdJLkltYWdlVXRpbGl0aWVzLnVzZVNW
R1N5bWJvbCgiSW1hZ2VzL1Zpc3VhbFN0eWxlUHJvcGVydHlMaW5rZWQuc3ZnIiwgImxpbmtlZC1p
Y29uIik7Ci0gICAgICAgIHRoaXMuX2xpbmtlZEljb24uaGlkZGVuID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5faWNvbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGlua2VkSWNvbik7Ci0KLSAgICAg
ICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pY29uRWxlbWVudCk7Ci0KLSAgICAg
ICAgbGV0IHJpZ2h0TGluZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICAgICAgcmlnaHRMaW5lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aXN1YWwtc3R5bGUtcHJv
cGVydHktZWRpdG9yLWxpbmstYm9yZGVyIiwgInJpZ2h0Iik7Ci0gICAgICAgIHRoaXMuX2VsZW1l
bnQuYXBwZW5kQ2hpbGQocmlnaHRMaW5lRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fbGlua2Vk
ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmFsc2U7Ci0gICAgfQotCi0gICAg
Ly8gUHVibGljCi0KLSAgICBnZXQgZWxlbWVudCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fZWxlbWVudDsKLSAgICB9Ci0KLSAgICBzZXQgbGlua2VkKGZsYWcpCi0gICAgewotICAgICAg
ICB0aGlzLl9saW5rZWQgPSBmbGFnOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50
b2dnbGUoImxpbmtlZCIsIHRoaXMuX2xpbmtlZCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX2xpbmtl
ZEljb24pCi0gICAgICAgICAgICB0aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9ICF0aGlzLl9saW5r
ZWQ7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3VubGlua2VkSWNvbikKLSAgICAgICAgICAgIHRoaXMu
X3VubGlua2VkSWNvbi5oaWRkZW4gPSB0aGlzLl9saW5rZWQ7Ci0KLSAgICAgICAgdGhpcy5faWNv
bkVsZW1lbnQudGl0bGUgPSB0aGlzLl9saW5rZWQgPyBXSS5VSVN0cmluZygiUmVtb3ZlIGxpbmsi
KSA6IFdJLlVJU3RyaW5nKCJMaW5rIHByb3BlcnR5IHZhbHVlcyIpOwotCi0gICAgICAgIGZvciAo
bGV0IGxpbmtUb0hpZGUgb2YgdGhpcy5fbGlua3NUb0hpZGVXaGVuTGlua2VkKQotICAgICAgICAg
ICAgbGlua1RvSGlkZS5kaXNhYmxlZCA9IHRoaXMuX2xpbmtlZDsKLSAgICB9Ci0KLSAgICBzZXQg
ZGlzYWJsZWQoZmxhZykKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZmxhZzsKLSAg
ICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJkaXNhYmxlZCIsIHRoaXMuX2Rp
c2FibGVkKTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfbGlua2VkUHJvcGVydHlW
YWx1ZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIWV2ZW50KQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBwcm9wZXJ0eSA9IGV2ZW50LnRhcmdldDsKLSAgICAg
ICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9s
YXN0UHJvcGVydHlFZGl0ZWQgPSBwcm9wZXJ0eTsKLSAgICAgICAgaWYgKCF0aGlzLl9saW5rZWQp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXBkYXRlTGlua2VkRWRpdG9y
cyhwcm9wZXJ0eSk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZUxpbmtlZEVkaXRvcnMocHJvcGVydHkp
Ci0gICAgewotICAgICAgICBsZXQgc3R5bGUgPSBwcm9wZXJ0eS5zdHlsZTsKLSAgICAgICAgbGV0
IHRleHQgPSBzdHlsZS50ZXh0OwotICAgICAgICBsZXQgdmFsdWUgPSBwcm9wZXJ0eS5zeW50aGVz
aXplZFZhbHVlIHx8IG51bGw7Ci0KLSAgICAgICAgZm9yIChsZXQgbGlua2VkUHJvcGVydHkgb2Yg
dGhpcy5fbGlua2VkUHJvcGVydGllcykKLSAgICAgICAgICAgIHRleHQgPSBsaW5rZWRQcm9wZXJ0
eS51cGRhdGVWYWx1ZUZyb21UZXh0KHRleHQsIHZhbHVlKTsKLQotICAgICAgICBzdHlsZS50ZXh0
ID0gdGV4dDsKLSAgICB9Ci0KLSAgICBfaWNvbk1vdXNlb3ZlcigpCi0gICAgewotICAgICAgICB0
aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9IHRoaXMuX2xpbmtlZDsKLSAgICAgICAgdGhpcy5fdW5s
aW5rZWRJY29uLmhpZGRlbiA9ICF0aGlzLl9saW5rZWQ7Ci0gICAgfQotCi0gICAgX2ljb25Nb3Vz
ZW91dCgpCi0gICAgewotICAgICAgICB0aGlzLl9saW5rZWRJY29uLmhpZGRlbiA9ICF0aGlzLl9s
aW5rZWQ7Ci0gICAgICAgIHRoaXMuX3VubGlua2VkSWNvbi5oaWRkZW4gPSB0aGlzLl9saW5rZWQ7
Ci0gICAgfQotCi0gICAgX2ljb25DbGlja2VkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMubGlua2Vk
ID0gIXRoaXMuX2xpbmtlZDsKLSAgICAgICAgdGhpcy5fdXBkYXRlTGlua2VkRWRpdG9ycyh0aGlz
Ll9sYXN0UHJvcGVydHlFZGl0ZWQgfHwgdGhpcy5fbGlua2VkUHJvcGVydGllc1swXSk7Ci0gICAg
fQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODhkM2NiNDRhZjdlMDJhNWY4NWJiOTgzZDNi
MGFiOGFiOTVhZTAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
UHJvcGVydHlOYW1lSW5wdXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLVdJLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQgPSBjbGFzcyBWaXN1YWxT
dHlsZVByb3BlcnR5TmFtZUlucHV0IGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRv
cgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIGxheW91dFJldmVyc2Vk
KQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVsbCwgbnVsbCwg
InByb3BlcnR5LW5hbWUtaW5wdXQiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5f
cHJvcGVydHlOYW1lSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQi
KTsKLSAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LnBsYWNlaG9sZGVyID0g
V0kuVUlTdHJpbmcoIkVudGVyIHByb3BlcnR5IG5hbWUiKTsKLSAgICAgICAgdGhpcy5fcHJvcGVy
dHlOYW1lSW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9pbnB1
dEtleURvd24uYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuZGVib3VuY2UoMjUwKS5faW5wdXRL
ZXlVcCk7Ci0gICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJibHVyIiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhpcykpOwotICAgICAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0
RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIgPSBuZXcgV0ku
VmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIodGhpcyk7Ci0gICAgICAgIHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVmlzdWFsU3R5bGVDb21wbGV0
aW9uc0NvbnRyb2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVkLCB0aGlzLl9jb21wbGV0aW9u
Q2xpY2tlZCwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgdmFsdWUo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC52
YWx1ZTsKLSAgICB9Ci0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICBpZiAo
dmFsdWUgJiYgdmFsdWUgPT09IHRoaXMudmFsdWUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LnZhbHVlID0gdmFsdWU7Ci0gICAg
fQotCi0gICAgZ2V0IHN5bnRoZXNpemVkVmFsdWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMudmFsdWUgfHwgbnVsbDsKLSAgICB9Ci0KLSAgICBnZXQgaGFzQ29tcGxldGlvbnMoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhhc0NvbXBsZXRp
b25zOwotICAgIH0KLQotICAgIHNldCBjb21wbGV0aW9ucyhjb21wbGV0aW9ucykKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmNvbXBsZXRpb25zID0gY29tcGxldGlv
bnM7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX2NvbXBsZXRpb25DbGlja2VkKGV2
ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEudGV4dDsKLSAgICAg
ICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfaW5wdXRLZXlEb3duKGV2
ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci52aXNp
YmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBrZXlDb2RlID0gZXZlbnQu
a2V5Q29kZTsKLSAgICAgICAgbGV0IGVudGVyS2V5Q29kZSA9IFdJLktleWJvYXJkU2hvcnRjdXQu
S2V5LkVudGVyLmtleUNvZGU7Ci0gICAgICAgIGxldCB0YWJLZXlDb2RlID0gV0kuS2V5Ym9hcmRT
aG9ydGN1dC5LZXkuVGFiLmtleUNvZGU7Ci0gICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktl
eUNvZGUgfHwga2V5Q29kZSA9PT0gdGFiS2V5Q29kZSkgewotICAgICAgICAgICAgdGhpcy52YWx1
ZSA9IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9uOwotICAgICAg
ICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25zKCk7Ci0gICAgICAgICAgICB0aGlzLl92YWx1ZURp
ZENoYW5nZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0
IGVzY2FwZUtleUNvZGUgPSBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUua2V5Q29kZTsK
LSAgICAgICAgaWYgKGtleUNvZGUgPT09IGVzY2FwZUtleUNvZGUpIHsKLSAgICAgICAgICAgIHRo
aXMuX2hpZGVDb21wbGV0aW9ucygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7Ci0gICAgICAgIGlmIChrZXkg
PT09ICJVcCIpIHsKLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnByZXZp
b3VzKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoa2V5
ID09PSAiRG93biIpIHsKLSAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLm5l
eHQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF9pbnB1
dEtleVVwKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9ucykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fdmFsdWVEaWRDaGFu
Z2UoKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnVwZGF0ZSh0aGlzLnZhbHVlKSkgewot
ICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdJLlJlY3QucmVjdEZyb21DbGllbnRSZWN0KHRoaXMu
X3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci0gICAg
ICAgICAgICBpZiAoIWJvdW5kcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnNob3coYm91bmRzLCAyKTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIF9oaWRlQ29tcGxldGlvbnMoKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y29tcGxldGlvbkNvbnRyb2xsZXIuaGlkZSgpOwotICAgIH0KLQotICAgIF90b2dnbGVUYWJiaW5n
T2ZTZWxlY3RhYmxlRWxlbWVudHMoZGlzYWJsZWQpCi0gICAgewotICAgICAgICB0aGlzLl9wcm9w
ZXJ0eU5hbWVJbnB1dEVsZW1lbnQudGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIgOiBudWxsOwot
ICAgIH0KLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJT
bGlkZXIuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWFlNTk3MTZmYThjN2I1
MTI2ZTQ3MzM5NDBmYjAwYjk2Njc0ZjI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzCisrKyAvZGV2L251bGwKQEAgLTEs
NDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
Lm51bWJlci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdGl0bGUgewotICAgIG1hcmdpbi1yaWdodDogM3B4OwotfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5wdXQtYm94LnJlbGF0aXZlLW51bWJlci1z
bGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7Ci0gICAgb3Jk
ZXI6IDI7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJlci1pbnB1
dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyOm5vdCgubnVtYmVyLWlucHV0LWVkaXRhYmxlKSArIC5yZWxhdGl2ZS1zbGlk
ZXIsCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5wdXQtYm94LnJl
bGF0aXZlLW51bWJlci1zbGlkZXIuZGlzYWJsZWQgPiAucmVsYXRpdmUtc2xpZGVyIHsKLSAgICBv
cGFjaXR5OiAwLjU7Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ci19Ci0KLS52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJlci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNs
aWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyLm5vLXZhbHVlcy5u
by11bml0cyB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIubnVtYmVyLWlucHV0LWJveC5yZWxhdGl2ZS1udW1iZXItc2xpZGVyID4gLnJl
bGF0aXZlLXNsaWRlciB7Ci0gICAgd2lkdGg6IDQ3JTsKLSAgICBtYXJnaW4tdG9wOiAwOwotICAg
IG1hcmdpbi1yaWdodDogN3B4OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVs
YXRpdmVOdW1iZXJTbGlkZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0M2M4
NTU3NWE5NmQwZGFlY2ZlN2VlMjFlNWJhYTlhMGFjMDk0YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVJlbGF0aXZl
TnVtYmVyU2xpZGVyID0gY2xhc3MgVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlciBleHRl
bmRzIFdJLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3gKLXsKLSAgICBjb25zdHJ1Y3Rvcihwcm9w
ZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgcG9zc2libGVVbml0cywgYWxsb3dOZWdh
dGl2ZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCi0gICAgewotICAgICAgICBzdXBlcihwcm9wZXJ0
eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgcG9zc2libGVVbml0cywgYWxsb3dOZWdhdGl2
ZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NM
aXN0LmFkZCgicmVsYXRpdmUtbnVtYmVyLXNsaWRlciIpOwotCi0gICAgICAgIHRoaXMuX3NsaWRl
ckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotICAgICAgICB0aGlz
Ll9zbGlkZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoInJlbGF0aXZlLXNsaWRlciIpOwotICAgICAg
ICB0aGlzLl9zbGlkZXJFbGVtZW50LnR5cGUgPSAicmFuZ2UiOwotICAgICAgICB0aGlzLl9zbGlk
ZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5fc2xpZGVyQ2hhbmdlZC5i
aW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zbGlk
ZXJFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9zdGFydGluZ1ZhbHVlID0gMDsKLSAgICAgICAg
dGhpcy5fc2NhbGUgPSAyMDA7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQgc2Nh
bGUoc2NhbGUpCi0gICAgewotICAgICAgICB0aGlzLl9zY2FsZSA9IHNjYWxlIHx8IDE7Ci0gICAg
fQotCi0gICAgdXBkYXRlRWRpdG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCi0gICAgewotICAgICAg
ICBzdXBlci51cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcyk7Ci0gICAgICAgIHRoaXMu
X3Jlc2V0U2xpZGVyKCk7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX3Jlc2V0U2xp
ZGVyKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3N0YXJ0aW5nVmFsdWUgPSBwYXJzZUZsb2F0KHRo
aXMuX3ZhbHVlTnVtYmVySW5wdXRFbGVtZW50LnZhbHVlKTsKLSAgICAgICAgaWYgKGlzTmFOKHRo
aXMuX3N0YXJ0aW5nVmFsdWUpKQotICAgICAgICAgICAgdGhpcy5fc3RhcnRpbmdWYWx1ZSA9IHBh
cnNlRmxvYXQodGhpcy5wbGFjZWhvbGRlcikgfHwgMDsKLQotICAgICAgICBsZXQgbWlkcG9pbnQg
PSB0aGlzLl9zY2FsZSAvIDI7Ci0gICAgICAgIGlmICh0aGlzLl9hbGxvd05lZ2F0aXZlVmFsdWVz
IHx8IHRoaXMuX3N0YXJ0aW5nVmFsdWUgPiBtaWRwb2ludCkgewotICAgICAgICAgICAgdGhpcy5f
c2xpZGVyRWxlbWVudC5taW4gPSAtbWlkcG9pbnQ7Ci0gICAgICAgICAgICB0aGlzLl9zbGlkZXJF
bGVtZW50Lm1heCA9IG1pZHBvaW50OwotICAgICAgICAgICAgdGhpcy5fc2xpZGVyRWxlbWVudC52
YWx1ZSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9zbGlkZXJFbGVt
ZW50Lm1pbiA9IDA7Ci0gICAgICAgICAgICB0aGlzLl9zbGlkZXJFbGVtZW50Lm1heCA9IHRoaXMu
X3NjYWxlOwotICAgICAgICAgICAgdGhpcy5fc2xpZGVyRWxlbWVudC52YWx1ZSA9IHRoaXMuX3N0
YXJ0aW5nVmFsdWU7Ci0gICAgICAgICAgICB0aGlzLl9zdGFydGluZ1ZhbHVlID0gMDsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIF9zbGlkZXJDaGFuZ2VkKCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
dmFsdWUgPSB0aGlzLl9zdGFydGluZ1ZhbHVlICsgTWF0aC5yb3VuZChwYXJzZUZsb2F0KHRoaXMu
X3NsaWRlckVsZW1lbnQudmFsdWUpICogMTAwKSAvIDEwMDsKLSAgICAgICAgdGhpcy5fdmFsdWVE
aWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBfbnVtYmVySW5wdXRDaGFuZ2VkKCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyLl9udW1iZXJJbnB1dENoYW5nZWQoKTsKLSAgICAgICAgdGhpcy5fcmVzZXRT
bGlkZXIoKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNl
Y3Rpb24uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTcxN2EwNTEwODAzNTI1
ZjVlOGViNzIyOTRkMWY4MzRlZTk2MWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDEyMCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0
b3Itc2VjdGlvbiA+IC5oZWFkZXIgewotICAgIGRpc3BsYXk6IGZsZXg7Ci0gICAgaGVpZ2h0OiAy
MnB4OwotfQotCi0uZGV0YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9u
Om5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIgewotICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xp
ZCB2YXIoLS1ib3JkZXItY29sb3IpOwotfQotCi1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1w
aXhlbC1yYXRpbzogMikgewotICAgIC5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVj
dG9yLXNlY3Rpb246bm90KC5jb2xsYXBzZWQpID4gLmhlYWRlciB7Ci0gICAgICAgIGJvcmRlci13
aWR0aDogMC41cHggIWltcG9ydGFudDsKLSAgICB9Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlz
dWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmN1cnJlbnQtc2VsZWN0b3Ig
ewotICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA5NXB4KTsKLSAgICBtYXJnaW4tbGVmdDogMTBweDsK
LSAgICBmb250LXdlaWdodDogbm9ybWFsOwotfQotCi0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNl
Y3Rpb24uZGV0YWlscy1zZWN0aW9uOm5vdCguY29sbGFwc2VkKSA+IC5oZWFkZXIgPiAuY3VycmVu
dC1zZWxlY3RvciB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQotLmRldGFpbHMtc2VjdGlvbi52
aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5oZWFkZXIgPiAuY3VycmVudC1zZWxlY3Rv
ciA+IC5pY29uIHsKLSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotICAgIHRvcDogM3B4OwotfQotCi0uZGV0YWlscy1zZWN0aW9uLnZp
c3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uID4gLmhlYWRlciA+IC5jdXJyZW50LXNlbGVjdG9y
ID4gc3BhbiB7Ci0gICAgbWFyZ2luLWxlZnQ6IDIxcHg7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24u
dmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmNvbnRyb2xzIHsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgdG9wOiAwOwotICAgIGJv
cmRlci1sZWZ0OiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOwotfQotCi0uZGV0YWlscy1zZWN0
aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLmNvbGxhcHNlZCA+IC5oZWFkZXIgPiAu
Y29udHJvbHMgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlz
dWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuaGVhZGVyID4gLmNvbnRyb2xzID4gLnZpc3Vh
bC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLWFkZC1ydWxlIHsKLSAgICB3aWR0aDogMjNweDsKLSAg
ICBoZWlnaHQ6IDIxcHg7Ci0gICAgcGFkZGluZzogNHB4IDVweDsKLSAgICBvcGFjaXR5OiAwLjc7
Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb246bm90
KC5jb2xsYXBzZWQpID4gLmNvbnRlbnQgewotICAgIGRpc3BsYXk6IGJsb2NrOwotfQotCi0uZGV0
YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uID4gLmNvbnRlbnQgPiAu
c2VsZWN0b3JzIHsKLSAgICBtYXgtaGVpZ2h0OiAxMTBweDsKLSAgICBvdmVyZmxvdzogYXV0bzsK
LX0KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5j
b250ZW50ID4gLnNlbGVjdG9ycyA+IC5zZWxlY3Rvci1saXN0IHsKLSAgICBtYXJnaW46IDA7Ci0g
ICAgcGFkZGluZy1sZWZ0OiAwOwotICAgIG91dGxpbmU6IG5vbmU7Ci19Ci0KLS5kZXRhaWxzLXNl
Y3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24gPiAuY29udGVudCA+IC5zZWxlY3Rv
cnMgPiAuc2VsZWN0b3ItbGlzdCA+IC52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbTpudGgtY2hp
bGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDEwMCUsIDEwMCUpOwotfQot
Ci0uZGV0YWlscy1zZWN0aW9uLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uID4gLmNvbnRl
bnQgPiAuc2VsZWN0b3JzID4gLnNlbGVjdG9yLWxpc3QgPiAuc2VjdGlvbi1kaXZpZGVyIHsKLSAg
ICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7Ci0gICAgdG9wOiAtMXB4OwotICAgIGhlaWdodDog
MTlweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk1JSk7Ci0gICAgYm9yZGVy
LWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3IpOwotICAgIGJvcmRlci1zdHlsZTogc29saWQ7Ci0g
ICAgYm9yZGVyLXdpZHRoOiAxcHggMDsKLSAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4LWhlYWRl
cik7Ci19Ci0KLS5kZXRhaWxzLXNlY3Rpb24udmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24g
PiAuY29udGVudCA+IC5zZWxlY3RvcnMgPiAuc2VsZWN0b3ItbGlzdCA+IC5zZWN0aW9uLWRpdmlk
ZXIgPiA6bWF0Y2hlcyguZGlzY2xvc3VyZS1idXR0b24sIC5pY29uKSB7Ci0gICAgZGlzcGxheTog
bm9uZTsKLX0KLQotLmRldGFpbHMtc2VjdGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlv
biA+IC5jb250ZW50ID4gLnNlbGVjdG9ycyA+IC5zZWxlY3Rvci1saXN0ID4gLnNlY3Rpb24tZGl2
aWRlciB+IC52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbTpudGgtY2hpbGQoZXZlbikgewotICAg
IGJhY2tncm91bmQtY29sb3I6IGhzbCgwLCAxMDAlLCAxMDAlKTsKLX0KLQotLmRldGFpbHMtc2Vj
dGlvbi52aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbiA+IC5jb250ZW50ID4gLnNlbGVjdG9y
cyA+IC5zZWxlY3Rvci1saXN0ID4gLnNlY3Rpb24tZGl2aWRlciB+IC52aXN1YWwtc3R5bGUtc2Vs
ZWN0b3ItaXRlbTpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw
YXJlbnQ7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjIyZDY3ZjY2YTAzZjg0YTNhMDFlZjhjYWZl
YTQ4NmVlNjhkN2M3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
U2VsZWN0b3JTZWN0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzUzICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1XSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZpc3VhbFN0eWxl
U2VsZWN0b3JTZWN0aW9uIGV4dGVuZHMgV0kuRGV0YWlsc1NlY3Rpb24KLXsKLSAgICBjb25zdHJ1
Y3RvcigpCi0gICAgewotICAgICAgICBsZXQgc2VsZWN0b3JTZWN0aW9uID0ge2VsZW1lbnQ6IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfTsKLSAgICAgICAgc2VsZWN0b3JTZWN0aW9uLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0b3JzIik7Ci0KLSAgICAgICAgbGV0IGNvbnRyb2xF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIGNvbnRyb2xF
bGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbnRyb2xzIik7Ci0KLSAgICAgICAgc3VwZXIoInZpc3Vh
bC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uIiwgV0kuVUlTdHJpbmcoIlN0eWxlIFJ1bGVzIiksIFtz
ZWxlY3RvclNlY3Rpb25dLCBjb250cm9sRWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fbm9kZVN0
eWxlcyA9IG51bGw7Ci0KLSAgICAgICAgdGhpcy5fY3VycmVudFNlbGVjdG9yRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0
b3JFbGVtZW50LmNsYXNzTGlzdC5hZGQoImN1cnJlbnQtc2VsZWN0b3IiKTsKLQotICAgICAgICBs
ZXQgY3VycmVudFNlbGVjdG9ySWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bWciKTsKLSAgICAgICAgY3VycmVudFNlbGVjdG9ySWNvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
aWNvbiIpOwotICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmFwcGVuZENoaWxk
KGN1cnJlbnRTZWxlY3Rvckljb25FbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9jdXJyZW50U2Vs
ZWN0b3JUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICB0aGlz
Ll9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2N1cnJlbnRTZWxlY3Rv
clRleHQpOwotCi0gICAgICAgIHRoaXMuX2hlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
Y3VycmVudFNlbGVjdG9yRWxlbWVudCk7Ci0KLSAgICAgICAgbGV0IHNlbGVjdG9yTGlzdEVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwotICAgICAgICBzZWxlY3Rvckxpc3RF
bGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdG9yLWxpc3QiKTsKLSAgICAgICAgc2VsZWN0b3JT
ZWN0aW9uLmVsZW1lbnQuYXBwZW5kQ2hpbGQoc2VsZWN0b3JMaXN0RWxlbWVudCk7Ci0KLSAgICAg
ICAgdGhpcy5fc2VsZWN0b3JzID0gbmV3IFdJLlRyZWVPdXRsaW5lKHNlbGVjdG9yTGlzdEVsZW1l
bnQpOwotICAgICAgICB0aGlzLl9zZWxlY3RvcnMuZGlzY2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsK
LSAgICAgICAgdGhpcy5fc2VsZWN0b3JzLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUu
RXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9zZWxlY3RvckNoYW5nZWQsIHRoaXMpOwot
Ci0gICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51bGw7Ci0KLSAgICAg
ICAgbGV0IGFkZEdseXBoRWxlbWVudCA9IFdJLkltYWdlVXRpbGl0aWVzLnVzZVNWR1N5bWJvbCgi
SW1hZ2VzL1BsdXMxMy5zdmciLCAidmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24tYWRkLXJ1
bGUiLCBXSS5VSVN0cmluZygiQWRkIG5ldyBydWxlIikpOwotICAgICAgICBhZGRHbHlwaEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9hZGROZXdSdWxlQ2xpY2suYmluZCh0
aGlzKSk7Ci0gICAgICAgIGFkZEdseXBoRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0
bWVudSIsIHRoaXMuX2FkZE5ld1J1bGVDb250ZXh0TWVudS5iaW5kKHRoaXMpKTsKLSAgICAgICAg
Y29udHJvbEVsZW1lbnQuYXBwZW5kQ2hpbGQoYWRkR2x5cGhFbGVtZW50KTsKLQotICAgICAgICB0
aGlzLl9oZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIHRoaXMuX2hh
bmRsZU1vdXNlT3Zlci5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5faGVhZGVyRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX2hhbmRsZU1vdXNlT3V0LmJpbmQodGhp
cykpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgdXBkYXRlKG5vZGVTdHlsZXMpCi0g
ICAgewotICAgICAgICBsZXQgc3R5bGUgPSB0aGlzLmN1cnJlbnRTdHlsZSgpOwotICAgICAgICBp
ZiAoc3R5bGUpCi0gICAgICAgICAgICB0aGlzLl9ub2RlU3R5bGVzW1dJLlZpc3VhbFN0eWxlU2Vs
ZWN0b3JTZWN0aW9uLkxhc3RTZWxlY3RlZFJ1bGVTeW1ib2xdID0gc3R5bGU7Ci0KLSAgICAgICAg
aWYgKG5vZGVTdHlsZXMpCi0gICAgICAgICAgICB0aGlzLl9ub2RlU3R5bGVzID0gbm9kZVN0eWxl
czsKLQotICAgICAgICBpZiAoIXRoaXMuX25vZGVTdHlsZXMpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fc2VsZWN0b3JzLnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIGxl
dCBwcmV2aW91c1J1bGUgPSBudWxsOwotCi0gICAgICAgIC8vIFBzZXVkbyBTdHlsZXMKLSAgICAg
ICAgbGV0IHBzZXVkb1J1bGVzID0gW107Ci0gICAgICAgIGxldCBwc2V1ZG9FbGVtZW50cyA9IHRo
aXMuX25vZGVTdHlsZXMucHNldWRvRWxlbWVudHM7Ci0gICAgICAgIGZvciAobGV0IHBzZXVkb0lk
ZW50aWZpZXIgaW4gcHNldWRvRWxlbWVudHMpCi0gICAgICAgICAgICBwc2V1ZG9SdWxlcyA9IHBz
ZXVkb1J1bGVzLmNvbmNhdChwc2V1ZG9FbGVtZW50c1twc2V1ZG9JZGVudGlmaWVyXS5tYXRjaGVk
UnVsZXMpOwotCi0gICAgICAgIGxldCBvcmRlcmVkUHNldWRvUnVsZXMgPSB1bmlxdWVPcmRlcmVk
UnVsZXMocHNldWRvUnVsZXMpOwotICAgICAgICAvLyBSZXZlcnNlIHRoZSBhcnJheSB0byBlbnN1
cmUgdGhhdCBzcGxpY2luZyB0aGUgYXJyYXkgd2lsbCBub3QgbWVzcyB3aXRoIHRoZSBvcmRlci4K
LSAgICAgICAgaWYgKG9yZGVyZWRQc2V1ZG9SdWxlcy5sZW5ndGgpCi0gICAgICAgICAgICBvcmRl
cmVkUHNldWRvUnVsZXMucmV2ZXJzZSgpOwotCi0gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNlbGVj
dG9ySXRlbShzdHlsZSwgdGl0bGUsIHN1YnRpdGxlKSB7Ci0gICAgICAgICAgICBsZXQgc2VsZWN0
b3IgPSBuZXcgV0kuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtKHRoaXMsIHN0eWxlLCB0aXRs
ZSwgc3VidGl0bGUpOwotICAgICAgICAgICAgc2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5W
aXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uRXZlbnQuQ2hlY2tib3hDaGFuZ2VkLCB0aGlzLl90
cmVlRWxlbWVudENoZWNrYm94VG9nZ2xlZCwgdGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9zZWxl
Y3RvcnMuYXBwZW5kQ2hpbGQoc2VsZWN0b3IpOwotCi0gICAgICAgICAgICBpZiAoc3R5bGUuaXNJ
bnNwZWN0b3JSdWxlKCkgJiYgdGhpcy5fbmV3SW5zcGVjdG9yUnVsZVNlbGVjdG9yID09PSBzdHls
ZS5zZWxlY3RvclRleHQgJiYgIXN0eWxlLmhhc1Byb3BlcnRpZXMoKSkgewotICAgICAgICAgICAg
ICAgIHNlbGVjdG9yLnNlbGVjdCh0cnVlKTsKLSAgICAgICAgICAgICAgICBzZWxlY3Rvci5lbGVt
ZW50LnNjcm9sbEludG9WaWV3KCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbm9kZVN0eWxlc1tX
SS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2VsZWN0ZWRSdWxlU3ltYm9sXSA9IHN0
eWxlOwotICAgICAgICAgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51
bGw7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBpZiAodGhpcy5fbm9kZVN0eWxlc1tXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0
U2VsZWN0ZWRSdWxlU3ltYm9sXSA9PT0gc3R5bGUpIHsKLSAgICAgICAgICAgICAgICBzZWxlY3Rv
ci5zZWxlY3QodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgc2VsZWN0b3IuZWxlbWVudC5zY3JvbGxJ
bnRvVmlldygpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24g
dW5pcXVlT3JkZXJlZFJ1bGVzKG9yZGVyZWRSdWxlcykKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKCFvcmRlcmVkUnVsZXMgfHwgIW9yZGVyZWRSdWxlcy5sZW5ndGgpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBBcnJheTsKLQotICAgICAgICAgICAgbGV0IHVuaXF1ZVJ1bGVzID0gbmV3
IE1hcDsKLSAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygb3JkZXJlZFJ1bGVzKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCF1bmlxdWVSdWxlcy5oYXMocnVsZS5pZCkpCi0gICAgICAgICAgICAg
ICAgICAgIHVuaXF1ZVJ1bGVzLnNldChydWxlLmlkLCBydWxlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHVuaXF1ZVJ1bGVzLnZhbHVlcygpKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGluc2VydEFsbE1hdGNoaW5nUHNldWRvUnVsZXMoZm9y
Y2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghb3JkZXJlZFBzZXVkb1J1bGVzLmxlbmd0
aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChmb3JjZSkgewot
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBvcmRlcmVkUHNldWRvUnVsZXMubGVuZ3RoIC0g
MTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IHBzZXVkb1J1bGUgPSBv
cmRlcmVkUHNldWRvUnVsZXNbaV07Ci0gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNlbGVjdG9y
SXRlbS5jYWxsKHRoaXMsIHBzZXVkb1J1bGUuc3R5bGUsIHBzZXVkb1J1bGUuc2VsZWN0b3JUZXh0
LCBwc2V1ZG9SdWxlLm1lZGlhVGV4dCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIG9yZGVyZWRQc2V1ZG9SdWxlcyA9IFtdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBpZiAoIXByZXZpb3VzUnVsZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIGZvciAobGV0IGkgPSBvcmRlcmVkUHNldWRvUnVsZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyAt
LWkpIHsKLSAgICAgICAgICAgICAgICBsZXQgcHNldWRvUnVsZSA9IG9yZGVyZWRQc2V1ZG9SdWxl
c1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoIXBzZXVkb1J1bGUuc2VsZWN0b3JJc0dyZWF0ZXIo
cHJldmlvdXNSdWxlLm1vc3RTcGVjaWZpY1NlbGVjdG9yKSkKLSAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgICAgICAgICBjcmVhdGVTZWxlY3Rvckl0ZW0uY2FsbCh0aGlz
LCBwc2V1ZG9SdWxlLnN0eWxlLCBwc2V1ZG9SdWxlLnNlbGVjdG9yVGV4dCwgcHNldWRvUnVsZS5t
ZWRpYVRleHQpOwotICAgICAgICAgICAgICAgIHByZXZpb3VzUnVsZSA9IHBzZXVkb1J1bGU7Ci0g
ICAgICAgICAgICAgICAgb3JkZXJlZFBzZXVkb1J1bGVzLnNwbGljZShpLCAxKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzLl9ub2RlU3R5bGVzLmlubGluZVN0
eWxlKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX25vZGVTdHlsZXNbV0kuVmlzdWFsU3R5bGVT
ZWxlY3RvclNlY3Rpb24uTGFzdFNlbGVjdGVkUnVsZVN5bWJvbF0pCi0gICAgICAgICAgICAgICAg
dGhpcy5fbm9kZVN0eWxlc1tXSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2VsZWN0
ZWRSdWxlU3ltYm9sXSA9IHRoaXMuX25vZGVTdHlsZXMuaW5saW5lU3R5bGU7Ci0KLSAgICAgICAg
ICAgIC8vIElubGluZSBTdHlsZQotICAgICAgICAgICAgY3JlYXRlU2VsZWN0b3JJdGVtLmNhbGwo
dGhpcywgdGhpcy5fbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgV0kuVUlTdHJpbmcoIlRoaXMgRWxl
bWVudCIpKTsKLSAgICAgICAgfSBlbHNlIGlmICghdGhpcy5fbm9kZVN0eWxlc1tXSS5WaXN1YWxT
dHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2VsZWN0ZWRSdWxlU3ltYm9sXSkKLSAgICAgICAgICAg
IHRoaXMuX25vZGVTdHlsZXNbV0kuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uTGFzdFNlbGVj
dGVkUnVsZVN5bWJvbF0gPSB0aGlzLl9ub2RlU3R5bGVzLm1hdGNoZWRSdWxlc1swXS5zdHlsZTsK
LQotICAgICAgICAvLyBNYXRjaGVkIFJ1bGVzCi0gICAgICAgIGZvciAobGV0IHJ1bGUgb2YgdW5p
cXVlT3JkZXJlZFJ1bGVzKHRoaXMuX25vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSkgewotICAgICAg
ICAgICAgaWYgKHJ1bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVTaGVldC5UeXBlLlVzZXJBZ2VudCkg
ewotICAgICAgICAgICAgICAgIGluc2VydEFsbE1hdGNoaW5nUHNldWRvUnVsZXMuY2FsbCh0aGlz
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgaW5zZXJ0QWxsTWF0Y2hpbmdQc2V1ZG9SdWxlcy5jYWxsKHRoaXMpOwotICAgICAg
ICAgICAgY3JlYXRlU2VsZWN0b3JJdGVtLmNhbGwodGhpcywgcnVsZS5zdHlsZSwgcnVsZS5zZWxl
Y3RvclRleHQsIHJ1bGUubWVkaWFUZXh0KTsKLSAgICAgICAgICAgIHByZXZpb3VzUnVsZSA9IHJ1
bGU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBKdXN0IGluIGNhc2UgdGhlcmUgYXJlIGFueSBy
ZW1haW5pbmcgcHNldWRvLXN0eWxlcy4KLSAgICAgICAgaW5zZXJ0QWxsTWF0Y2hpbmdQc2V1ZG9S
dWxlcy5jYWxsKHRoaXMsIHRydWUpOwotCi0gICAgICAgIC8vIEluaGVyaXRlZCBSdWxlcwotICAg
ICAgICBmb3IgKGxldCBpbmhlcml0ZWQgb2YgdGhpcy5fbm9kZVN0eWxlcy5pbmhlcml0ZWRSdWxl
cykgewotICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWQubWF0Y2hlZFJ1bGVzIHx8ICFpbmhlcml0
ZWQubWF0Y2hlZFJ1bGVzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAg
ICAgICAgICAgbGV0IGRpdmlkZXIgPSBudWxsOwotCi0gICAgICAgICAgICBmb3IgKGxldCBydWxl
IG9mIHVuaXF1ZU9yZGVyZWRSdWxlcyhpbmhlcml0ZWQubWF0Y2hlZFJ1bGVzKSkgewotICAgICAg
ICAgICAgICAgIGlmIChydWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlU2hlZXQuVHlwZS5Vc2VyQWdl
bnQpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgaWYg
KCFkaXZpZGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBkaXZpZGVyVGV4dCA9IFdJLlVJ
U3RyaW5nKCJJbmhlcml0ZWQgZnJvbSAlcyIpLmZvcm1hdChpbmhlcml0ZWQubm9kZS5kaXNwbGF5
TmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGRpdmlkZXIgPSBuZXcgV0kuR2VuZXJhbFRyZWVF
bGVtZW50KCJzZWN0aW9uLWRpdmlkZXIiLCBkaXZpZGVyVGV4dCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGRpdmlkZXIuc2VsZWN0YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9zZWxlY3RvcnMuYXBwZW5kQ2hpbGQoZGl2aWRlcik7Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgY3JlYXRlU2VsZWN0b3JJdGVtLmNhbGwodGhpcywgcnVsZS5zdHlsZSwg
cnVsZS5zZWxlY3RvclRleHQsIHJ1bGUubWVkaWFUZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotCi0gICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51bGw7Ci0g
ICAgfQotCi0gICAgY3VycmVudFN0eWxlKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fbm9k
ZVN0eWxlcyB8fCAhdGhpcy5fc2VsZWN0b3JzLnNlbGVjdGVkVHJlZUVsZW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0b3JzLnNlbGVj
dGVkVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgfQotCi0gICAgdHJlZUl0ZW1G
b3JTdHlsZShzdHlsZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5fc2Vs
ZWN0b3JzLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbS5yZXByZXNlbnRlZE9iamVj
dCA9PT0gc3R5bGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgc2VsZWN0RW1wdHlTdHlsZVRyZWVJdGVt
KHN0eWxlKQotICAgIHsKLSAgICAgICAgaWYgKHN0eWxlLmhhc1Byb3BlcnRpZXMoKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsZXQgdHJlZUl0ZW0gPSB0aGlzLnRyZWVJ
dGVtRm9yU3R5bGUoc3R5bGUpOwotICAgICAgICBpZiAoIXRyZWVJdGVtKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHRyZWVJdGVtLnNlbGVjdCh0cnVlLCB0cnVlKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0ZQotCi0gICAgX3NlbGVj
dG9yQ2hhbmdlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzZWxlY3RlZFRyZWVFbGVtZW50
ID0gZXZlbnQuZGF0YS5zZWxlY3RlZEVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRUcmVl
RWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBUaGUgY2xhc3MgbmVl
ZHMgdG8gYmUgY29tcGxldGVseSByZXNldCBhcyB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB0cmVl
RWxlbWVudCBtb3N0IGxpa2VseSBoYWQKLSAgICAgICAgLy8gYSBkaWZmZXJlbnQgaWNvbiBjbGFz
c05hbWUgYW5kIGl0IGlzIHNpbXBsZXIgdG8gcmVnZW5lcmF0ZSB0aGUgY2xhc3MgdGhhbiB0byBm
aW5kIG91dCB3aGljaAotICAgICAgICAvLyBjbGFzcyB3YXMgcHJldmlvdXNseSBhcHBsaWVkLgot
ICAgICAgICB0aGlzLl9jdXJyZW50U2VsZWN0b3JFbGVtZW50LmNsYXNzTmFtZSA9ICJjdXJyZW50
LXNlbGVjdG9yICIgKyBzZWxlY3RlZFRyZWVFbGVtZW50Lmljb25DbGFzc05hbWU7Ci0KLSAgICAg
ICAgbGV0IHNlbGVjdG9yVGV4dCA9IHNlbGVjdGVkVHJlZUVsZW1lbnQubWFpblRpdGxlOwotICAg
ICAgICBsZXQgbWVkaWFUZXh0ID0gc2VsZWN0ZWRUcmVlRWxlbWVudC5zdWJ0aXRsZTsKLSAgICAg
ICAgaWYgKG1lZGlhVGV4dCAmJiBtZWRpYVRleHQubGVuZ3RoKQotICAgICAgICAgICAgc2VsZWN0
b3JUZXh0ICs9ICIgXHUyMDE0ICIgKyBtZWRpYVRleHQ7IC8vIGVtLWRhc2gKLQotICAgICAgICB0
aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0LnRleHRDb250ZW50ID0gc2VsZWN0b3JUZXh0OwotCi0g
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlZpc3VhbFN0eWxlU2VsZWN0
b3JTZWN0aW9uLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCk7Ci0gICAgfQotCi0gICAgX2FkZE5ld1J1
bGVDbGljayhldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fbm9kZVN0eWxlcyB8fCB0
aGlzLl9ub2RlU3R5bGVzLm5vZGUuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLmN1cnJlbnRTdHlsZSgp
LnNlbGVjdG9yVGV4dDsKLSAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0aGlzLl9ub2RlU3R5
bGVzLnJ1bGVzRm9yU2VsZWN0b3Ioc2VsZWN0b3IpOwotICAgICAgICBmb3IgKGxldCBydWxlIG9m
IGV4aXN0aW5nUnVsZXMpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdEVtcHR5U3R5bGVU
cmVlSXRlbShydWxlLnN0eWxlKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0b3IgPSBzZWxlY3RvcjsKLSAg
ICAgICAgdGhpcy5fbm9kZVN0eWxlcy5hZGRSdWxlKHNlbGVjdG9yKTsKLSAgICB9Ci0KLSAgICBf
YWRkTmV3UnVsZUNvbnRleHRNZW51KGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9u
b2RlU3R5bGVzIHx8IHRoaXMuX25vZGVTdHlsZXMubm9kZS5pc0luVXNlckFnZW50U2hhZG93VHJl
ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBzdHlsZVNoZWV0cyA9IFdJ
LmNzc1N0eWxlTWFuYWdlci5zdHlsZVNoZWV0cy5maWx0ZXIoc3R5bGVTaGVldCA9PiBzdHlsZVNo
ZWV0Lmhhc0luZm8oKSAmJiAhc3R5bGVTaGVldC5pc0lubGluZVN0eWxlVGFnKCkgJiYgIXN0eWxl
U2hlZXQuaXNJbmxpbmVTdHlsZUF0dHJpYnV0ZVN0eWxlU2hlZXQoKSk7Ci0gICAgICAgIGlmICgh
c3R5bGVTaGVldHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBj
b250ZXh0TWVudSA9IFdJLkNvbnRleHRNZW51LmNyZWF0ZUZyb21FdmVudChldmVudCk7Ci0KLSAg
ICAgICAgY29uc3QgaGFuZGxlciA9IG51bGw7Ci0gICAgICAgIGNvbnN0IGRpc2FibGVkID0gdHJ1
ZTsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQXZhaWxhYmxl
IFN0eWxlIFNoZWV0cyIpLCBoYW5kbGVyLCBkaXNhYmxlZCk7Ci0KLSAgICAgICAgZm9yIChsZXQg
c3R5bGVTaGVldCBvZiBzdHlsZVNoZWV0cykgewotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kSXRlbShzdHlsZVNoZWV0LmRpc3BsYXlOYW1lLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
Y29uc3QgdGV4dCA9ICIiOwotICAgICAgICAgICAgICAgIHRoaXMuX25vZGVTdHlsZXMuYWRkUnVs
ZSh0aGlzLmN1cnJlbnRTdHlsZSgpLnNlbGVjdG9yVGV4dCwgdGV4dCwgc3R5bGVTaGVldC5pZCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIF90cmVlRWxlbWVudENo
ZWNrYm94VG9nZ2xlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGxldCBzdHlsZSA9IHRoaXMuY3Vy
cmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgbGV0IHN0eWxlVGV4dCA9IHN0eWxlLnRleHQ7Ci0gICAgICAgIGlmICghc3R5bGVU
ZXh0IHx8ICFzdHlsZVRleHQubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IC8vIENvbW1lbnQgb3IgdW5jb21tZW50IHRoZSBzdHlsZSB0ZXh0LgotICAgICAgICBsZXQgbmV3
U3R5bGVUZXh0ID0gIiI7Ci0gICAgICAgIGxldCBzdHlsZUVuYWJsZWQgPSBldmVudCAmJiBldmVu
dC5kYXRhICYmIGV2ZW50LmRhdGEuZW5hYmxlZDsKLSAgICAgICAgaWYgKHN0eWxlRW5hYmxlZCkK
LSAgICAgICAgICAgIG5ld1N0eWxlVGV4dCA9IHN0eWxlVGV4dC5yZXBsYWNlKC9ccyooXC9cKnxc
KlwvKVxzKi9nLCAiIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1N0eWxlVGV4dCA9
ICIvKiAiICsgc3R5bGVUZXh0LnJlcGxhY2UoLyhccyo7KD8hJClccyopL2csICIkMSAqLy8qICIp
ICsgIiAqLyI7Ci0KLSAgICAgICAgc3R5bGUudGV4dCA9IG5ld1N0eWxlVGV4dDsKLSAgICAgICAg
c3R5bGVbV0kuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuU3R5bGVEaXNhYmxlZFN5bWJvbF0gPSAh
c3R5bGVFbmFibGVkOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5W
aXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5FdmVudC5TZWxlY3RvckNoYW5nZWQpOwotCi0gICAg
fQotCi0gICAgX2hhbmRsZU1vdXNlT3ZlcigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuY29s
bGFwc2VkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGxldCBzdHlsZSA9IHRoaXMu
Y3VycmVudFN0eWxlKCk7Ci0gICAgICAgIGlmICghc3R5bGUpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgaWYgKCFzdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAgIFdJLmRvbVRy
ZWVNYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUoc3R5bGUubm9kZS5pZCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWdobGlnaHRT
ZWxlY3RvcihzdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0LCBzdHlsZS5ub2RlLm93bmVyRG9j
dW1lbnQuZnJhbWVJZGVudGlmaWVyKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlTW91c2VPdXQoKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLmNvbGxhcHNlZCkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwotICAg
IH0KLX07Ci0KLVdJLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLkxhc3RTZWxlY3RlZFJ1bGVT
eW1ib2wgPSBTeW1ib2woInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLWxhc3Qtc2VsZWN0
ZWQtcnVsZSIpOwotCi1XSS5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5FdmVudCA9IHsKLSAg
ICBTZWxlY3RvckNoYW5nZWQ6ICJ2aXN1YWwtc3R5bGUtc2VsZWN0b3Itc2VjdGlvbi1zZWxlY3Rv
ci1jaGFuZ2VkIgotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0uY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTVlNjU1ODE5ODBjY2Q0NzNm
MzkxOTg5ZDEzNDZjNDY3YzcwOWNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtIHsKLSAg
ICBkaXNwbGF5OiBmbGV4OwotICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Ci0gICAgd2lkdGg6IDEw
MCU7Ci0gICAgaGVpZ2h0OiAyNXB4OwotICAgIHBhZGRpbmc6IDJweCAwOwotICAgIGxpbmUtaGVp
Z2h0OiAyMHB4OwotICAgIGZvbnQtc2l6ZTogMTFweDsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxl
LXNlbGVjdG9yLWl0ZW0uc2VsZWN0ZWQgewotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNl
bGVjdGVkLWJhY2tncm91bmQtY29sb3IpICFpbXBvcnRhbnQ7Ci0gICAgY29sb3I6IHZhcigtLXNl
bGVjdGVkLWZvcmVncm91bmQtY29sb3IpOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0
b3ItaXRlbSA+IC5kaXNjbG9zdXJlLWJ1dHRvbiB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQot
Lml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0gPiBpbnB1dFt0eXBlPSJjaGVja2JveCJd
IHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgbWFyZ2luLWxlZnQ6IDVweDsKLX0KLQot
Ym9keTpub3QoLndpbmRvdy1pbmFjdGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC5pdGVt
LnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdGVkID4gaW5wdXRbdHlwZT0iY2hlY2ti
b3giXTpjaGVja2VkOjpiZWZvcmUgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgYm9y
ZGVyOiAxcHggc29saWQgd2hpdGU7Ci0gICAgYm9yZGVyLXJhZGl1czogM3B4OwotICAgIGNvbnRl
bnQ6ICIiOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbSA+IC5pY29uIHsK
LSAgICB3aWR0aDogMTZweDsKLSAgICBoZWlnaHQ6IDE2cHg7Ci0gICAgbWFyZ2luOiAwIDNweCAw
IDRweDsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0ubW9kaWZpZWQgPiAu
aWNvbiB7Ci0gICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuNzUpOwotfQotCi0uaXRlbS52aXN1YWwt
c3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb24gewotICAgIGhlaWdo
dDogMTRweDsKLSAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7Ci19Ci0KLS5p
dGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjpo
b3ZlciB7Ci0gICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7Ci19Ci0KLS5pdGVtLnZpc3VhbC1z
dHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjphY3RpdmUgewotICAg
IGZpbHRlcjogYnJpZ2h0bmVzcygwLjgpOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0
b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLnRpdGxlcyA+IC50aXRsZSB7Ci0gICAgcG9zaXRp
b246IHJlbGF0aXZlOwotfQotCi0uaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxl
Y3Rvci1pbnZhbGlkID4gLnRpdGxlcyA+IC50aXRsZTo6YmVmb3JlIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDEwMCU7Ci0g
ICAgaGVpZ2h0OiA1MCU7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbGEoMCwgMTAw
JSwgNTAlLCAwLjYpOwotICAgIGNvbnRlbnQ6ICIiOwotfQotCi1AbWVkaWEgKC13ZWJraXQtbWlu
LWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rv
ci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAudGl0bGVzID4gLnRpdGxlOjpiZWZvcmUgewotICAg
ICAgICB0b3A6IC0wLjVweDsKLSAgICB9Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rv
ci1pdGVtID4gLnRpdGxlcyB7Ci0gICAgZmxleDogMTsKLSAgICB0b3A6IDA7Ci0gICAgbGluZS1o
ZWlnaHQ6IGluaGVyaXQ7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOwotICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwotfQotCi0uaXRlbS52aXN1YWwt
c3R5bGUtc2VsZWN0b3ItaXRlbTpub3QoLmRvbS1lbGVtZW50LWljb24pID4gLnRpdGxlcyA+IC50
aXRsZSB7Ci0gICAgcGFkZGluZzogMCAxcHggMnB4OwotICAgIGxpbmUtaGVpZ2h0OiAxMnB4Owot
ICAgIG91dGxpbmU6IG5vbmU7Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVt
Om5vdCguZG9tLWVsZW1lbnQtaWNvbikuZWRpdGFibGUgPiAudGl0bGVzID4gLnRpdGxlIHsKLSAg
ICBjdXJzb3I6IHRleHQ7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKLX0KLQotLml0
ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW06bm90KC5kb20tZWxlbWVudC1pY29uKS5lZGl0
YWJsZSA+IC50aXRsZXMgPiAudGl0bGU6Zm9jdXMgewotICAgIGNvbG9yOiBibGFjazsKLSAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICBib3JkZXItcmFkaXVzOiAycHg7Ci0gICAgYm94
LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMTUpIDAgMXB4IDAsIDAgMCAwIDNweCBoc2xhKDAs
IDEwMCUsIDEwMCUsIDAuMyk7Ci19Ci0KLS5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVt
ID4gLnRpdGxlcyA+IC5zdWJ0aXRsZSB7Ci0gICAgdmVydGljYWwtYWxpZ246IDFweDsKLSAgICBm
b250LXNpemU6IDlweDsKLX0KLQotLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0uc2Vs
ZWN0ZWQgPiAudGl0bGVzID4gLnN1YnRpdGxlIHsKLSAgICBjb2xvcjogaW5oZXJpdDsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDliZWM1YTIyY2NiZTdhOTQ0YjU3YjlmMzg2NThiMGNjYmEyNWNm
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0uanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJ
LlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbSBleHRlbmRzIFdJLkdlbmVyYWxUcmVlRWxlbWVudAotewotICAgIGNvbnN0cnVjdG9y
KGRlbGVnYXRlLCBzdHlsZSwgdGl0bGUsIHN1YnRpdGxlKQotICAgIHsKLSAgICAgICAgbGV0IGlj
b25DbGFzc05hbWU7Ci0gICAgICAgIHN3aXRjaCAoc3R5bGUudHlwZSkgewotICAgICAgICBjYXNl
IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlOgotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoc3R5bGUub3duZXJSdWxlIGluc3RhbmNlb2YgV0kuQ1NTUnVsZSwgc3R5bGUub3duZXJS
dWxlKTsKLQotICAgICAgICAgICAgaWYgKHN0eWxlLmluaGVyaXRlZCkKLSAgICAgICAgICAgICAg
ICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uSW5oZXJpdGVk
U3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAgZWxzZSBpZiAoc3R5bGUu
b3duZXJSdWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlU2hlZXQuVHlwZS5BdXRob3IpCi0gICAgICAg
ICAgICAgICAgaWNvbkNsYXNzTmFtZSA9IFdJLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLkF1
dGhvclN0eWxlUnVsZUljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHN0
eWxlLm93bmVyUnVsZS50eXBlID09PSBXSS5DU1NTdHlsZVNoZWV0LlR5cGUuVXNlcikKLSAgICAg
ICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
VXNlclN0eWxlUnVsZUljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHN0
eWxlLm93bmVyUnVsZS50eXBlID09PSBXSS5DU1NTdHlsZVNoZWV0LlR5cGUuVXNlckFnZW50KQot
ICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5Vc2VyQWdlbnRTdHlsZVJ1bGVJY29uU3R5bGVDbGFzc05hbWU7Ci0gICAgICAgICAgICBl
bHNlIGlmIChzdHlsZS5vd25lclJ1bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVTaGVldC5UeXBlLklu
c3BlY3RvcikKLSAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb24uSW5zcGVjdG9yU3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NOYW1lOwotICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLlR5
cGUuSW5saW5lOgotICAgICAgICBjYXNlIFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5BdHRy
aWJ1dGU6Ci0gICAgICAgICAgICBpZiAoc3R5bGUuaW5oZXJpdGVkKQotICAgICAgICAgICAgICAg
IGljb25DbGFzc05hbWUgPSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5Jbmhlcml0ZWRF
bGVtZW50U3R5bGVSdWxlSWNvblN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBXSS5ET01UcmVlRWxlbWVudFBhdGhDb21wb25l
bnQuRE9NRWxlbWVudEljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0KLSAgICAgICAgbGV0IGljb25DbGFzc2VzID0gW2ljb25DbGFzc05hbWVdOwotICAg
ICAgICBpZiAoc3R5bGUub3duZXJSdWxlICYmIHN0eWxlLm93bmVyUnVsZS5oYXNNYXRjaGVkUHNl
dWRvRWxlbWVudFNlbGVjdG9yKCkpCi0gICAgICAgICAgICBpY29uQ2xhc3Nlcy5wdXNoKFdJLkNT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlBzZXVkb0VsZW1lbnRTZWxlY3RvclN0eWxlQ2xhc3NO
YW1lKTsKLQotICAgICAgICB0aXRsZSA9IHRpdGxlLnRyaW0oKTsKLQotICAgICAgICBzdXBlcihb
InZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtIiwgLi4uaWNvbkNsYXNzZXNdLCB0aXRsZSwgc3Vi
dGl0bGUsIHN0eWxlKTsKLQotICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotCi0g
ICAgICAgIHRoaXMuX2ljb25DbGFzc2VzID0gaWNvbkNsYXNzZXM7Ci0gICAgICAgIHRoaXMuX2xh
c3RWYWx1ZSA9IHRpdGxlOwotICAgICAgICB0aGlzLl9lbmFibGVFZGl0aW5nID0gdHJ1ZTsKLSAg
ICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yID0gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8g
UHVibGljCi0KLSAgICBnZXQgaWNvbkNsYXNzTmFtZSgpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5faWNvbkNsYXNzZXMuam9pbigiICIpOwotICAgIH0KLQotICAgIGdldCBzZWxlY3RvclRl
eHQoKQotICAgIHsKLSAgICAgICAgbGV0IHRpdGxlVGV4dCA9IHRoaXMuX21haW5UaXRsZUVsZW1l
bnQudGV4dENvbnRlbnQ7Ci0gICAgICAgIGlmICghdGl0bGVUZXh0IHx8ICF0aXRsZVRleHQubGVu
Z3RoKQotICAgICAgICAgICAgdGl0bGVUZXh0ID0gdGhpcy5fbWFpblRpdGxlOwotCi0gICAgICAg
IHJldHVybiB0aXRsZVRleHQudHJpbSgpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0g
ICAgb25hdHRhY2goKQotICAgIHsKLSAgICAgICAgc3VwZXIub25hdHRhY2goKTsKLQotICAgICAg
ICB0aGlzLl9saXN0SXRlbU5vZGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIiwgdGhpcy5f
aGlnaGxpZ2h0Tm9kZXNXaXRoU2VsZWN0b3IuYmluZCh0aGlzKSk7Ci0gICAgICAgIHRoaXMuX2xp
c3RJdGVtTm9kZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsIHRoaXMuX2hpZGVET01Ob2Rl
SGlnaGxpZ2h0LmJpbmQodGhpcykpOwotCi0gICAgICAgIHRoaXMuX2NoZWNrYm94RWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX2NoZWNrYm94
RWxlbWVudC50eXBlID0gImNoZWNrYm94IjsKLSAgICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50
LmNoZWNrZWQgPSAhdGhpcy5yZXByZXNlbnRlZE9iamVjdFtXSS5WaXN1YWxTdHlsZURldGFpbHNQ
YW5lbC5TdHlsZURpc2FibGVkU3ltYm9sXTsKLSAgICAgICAgdGhpcy5fdXBkYXRlQ2hlY2tib3hU
aXRsZSgpOwotICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2hhbmdlIiwgdGhpcy5faGFuZGxlQ2hlY2tib3hDaGFuZ2VkLmJpbmQodGhpcykpOwotICAgICAg
ICB0aGlzLl9saXN0SXRlbU5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2NoZWNrYm94RWxlbWVudCwg
dGhpcy5faWNvbkVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkLmJpbmQodGhp
cykpOwotCi0gICAgICAgIHRoaXMuX21haW5UaXRsZUVsZW1lbnQuc3BlbGxjaGVjayA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
ZG93biIsIHRoaXMuX2hhbmRsZU1haW5UaXRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKTsKLSAgICAg
ICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhp
cy5faGFuZGxlTWFpblRpdGxlS2V5RG93bi5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5fbWFp
blRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX2hpZ2hsaWdodE5v
ZGVzV2l0aFNlbGVjdG9yLmJpbmQodGhpcykpOwotICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0aGlzLl9jb21taXRTZWxlY3Rvci5iaW5kKHRo
aXMpKTsKLQotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIo
V0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5FdmVudC5Jbml0aWFsVGV4dE1vZGlmaWVkLCB0aGlzLl9z
dHlsZVRleHRNb2RpZmllZCwgdGhpcyk7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm93bmVyUnVsZSkKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJS
dWxlLmFkZEV2ZW50TGlzdGVuZXIoV0kuQ1NTUnVsZS5FdmVudC5TZWxlY3RvckNoYW5nZWQsIHRo
aXMuX3VwZGF0ZVNlbGVjdG9ySWNvbiwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fc3R5bGVUZXh0
TW9kaWZpZWQoKTsKLSAgICB9Ci0KLSAgICBvbmRlc2VsZWN0KCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0YWJsZSIpOwotICAgICAgICB0
aGlzLl9tYWluVGl0bGVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IGZhbHNlOwotICAgIH0KLQot
ICAgIHBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50KQotICAgIHsKLSAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBSdWxlIiksICgpID0+
IHsKLSAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QubW9kaWZpZWQpIHsKLSAgICAgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJlc2V0IiksICgpID0+IHsKLSAg
ICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlc2V0VGV4dCgpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Qub3duZXJSdWxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlNob3cgU291cmNlIiksICgpID0+IHsKLSAgICAgICAg
ICAgIGNvbnN0IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICAgICAgaWdub3JlTmV0d29ya1RhYjog
dHJ1ZSwKLSAgICAgICAgICAgICAgICBpZ25vcmVTZWFyY2hUYWI6IHRydWUsCi0gICAgICAgICAg
ICB9OwotCi0gICAgICAgICAgICBpZiAoZXZlbnQubWV0YUtleSkKLSAgICAgICAgICAgICAgICBX
SS5zaG93T3JpZ2luYWxVbmZvcm1hdHRlZFNvdXJjZUNvZGVMb2NhdGlvbih0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0Lm93bmVyUnVsZS5zb3VyY2VDb2RlTG9jYXRpb24sIG9wdGlvbnMpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdJLnNob3dTb3VyY2VDb2RlTG9jYXRpb24odGhp
cy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc291cmNlQ29kZUxvY2F0aW9uLCBvcHRpb25z
KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gT25seSB1c2VkIG9uZSBjb2xvbiB0ZW1wb3Jh
cmlseSBzaW5jZSBzaW5nbGUtY29sb24gcHNldWRvIGVsZW1lbnRzIGFyZSB2YWxpZCBDU1MuCi0g
ICAgICAgIGlmIChXSS5DU1NTdHlsZU1hbmFnZXIuUHNldWRvRWxlbWVudE5hbWVzLnNvbWUoKGNs
YXNzTmFtZSkgPT4gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5zZWxlY3RvclRleHQuaW5jbHVkZXMo
IjoiICsgY2xhc3NOYW1lKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKFdJ
LkNTU1N0eWxlTWFuYWdlci5Gb3JjZWFibGVQc2V1ZG9DbGFzc2VzLmV2ZXJ5KChjbGFzc05hbWUp
ID0+ICF0aGlzLnJlcHJlc2VudGVkT2JqZWN0LnNlbGVjdG9yVGV4dC5pbmNsdWRlcygiOiIgKyBj
bGFzc05hbWUpKSkgewotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7
Ci0KLSAgICAgICAgICAgIGZvciAobGV0IHBzZXVkb0NsYXNzIG9mIFdJLkNTU1N0eWxlTWFuYWdl
ci5Gb3JjZWFibGVQc2V1ZG9DbGFzc2VzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBzZXVkb0Ns
YXNzID09PSAidmlzaXRlZCIgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlLm5vZGVOYW1l
KCkgIT09ICJBIikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAg
ICAgICBsZXQgcHNldWRvQ2xhc3NTZWxlY3RvciA9ICI6IiArIHBzZXVkb0NsYXNzOwotCi0gICAg
ICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQWRkICVzIFJ1
bGUiKS5mb3JtYXQocHNldWRvQ2xhc3NTZWxlY3RvciksICgpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlLnNldFBzZXVkb0NsYXNzRW5hYmxlZChw
c2V1ZG9DbGFzcywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBwc2V1ZG9TZWxlY3Rv
cnMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvcnMubWFwKChzZWxl
Y3RvcikgPT4gc2VsZWN0b3IudGV4dCArIHBzZXVkb0NsYXNzU2VsZWN0b3IpOwotICAgICAgICAg
ICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1
ZG9TZWxlY3RvcnMuam9pbigiLCAiKSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsK
LQotICAgICAgICBmb3IgKGxldCBwc2V1ZG9FbGVtZW50IG9mIFdJLkNTU1N0eWxlTWFuYWdlci5Q
c2V1ZG9FbGVtZW50TmFtZXMpIHsKLSAgICAgICAgICAgIGxldCBwc2V1ZG9FbGVtZW50U2VsZWN0
b3IgPSAiOjoiICsgcHNldWRvRWxlbWVudDsKLSAgICAgICAgICAgIGNvbnN0IHN0eWxlVGV4dCA9
ICJjb250ZW50OiBcIlwiOyI7Ci0KLSAgICAgICAgICAgIGxldCBleGlzdGluZ1RyZWVJdGVtID0g
bnVsbDsKLSAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVs
ZWdhdGUudHJlZUl0ZW1Gb3JTdHlsZSA9PT0gImZ1bmN0aW9uIikgewotICAgICAgICAgICAgICAg
IGxldCBzZWxlY3RvclRleHQgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxl
Y3RvclRleHQ7Ci0gICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMucnVsZXNGb3JTZWxlY3RvcihzZWxlY3RvclRleHQgKyBw
c2V1ZG9FbGVtZW50U2VsZWN0b3IpOwotICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1J1bGVz
Lmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGRuJ3QgcmVhbGx5
IGV2ZXIgYmUgbW9yZSB0aGFuIG9uZSBwc2V1ZG8tZWxlbWVudCBydWxlCi0gICAgICAgICAgICAg
ICAgICAgIC8vIHRoYXQgaXMgbm90IGluIGEgbWVkaWEgcXVlcnkuIEFzIHN1Y2gsIGp1c3QgZm9j
dXMgdGhlIGZpcnN0IHJ1bGUKLSAgICAgICAgICAgICAgICAgICAgLy8gb24gdGhlIGFzc3VtcHRp
b24gdGhhdCBpdCBpcyB0aGUgb25seSBvbmUgbmVjZXNzYXJ5LgotICAgICAgICAgICAgICAgICAg
ICBleGlzdGluZ1RyZWVJdGVtID0gdGhpcy5fZGVsZWdhdGUudHJlZUl0ZW1Gb3JTdHlsZShleGlz
dGluZ1J1bGVzWzBdLnN0eWxlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGxldCB0aXRsZSA9IGV4aXN0aW5nVHJlZUl0ZW0gPyBXSS5VSVN0cmluZygi
U2VsZWN0ICVzIFJ1bGUiKSA6IFdJLlVJU3RyaW5nKCJDcmVhdGUgJXMgUnVsZSIpOwotICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbSh0aXRsZS5mb3JtYXQocHNldWRvRWxlbWVudFNl
bGVjdG9yKSwgKCkgPT4gewotICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1RyZWVJdGVtKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVHJlZUl0ZW0uc2VsZWN0KHRydWUsIHRydWUp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
b3duZXJSdWxlLnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBzZWxlY3Rvci50ZXh0ICsgcHNl
dWRvRWxlbWVudFNlbGVjdG9yKTsKLSAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCAiKSwgc3R5bGVU
ZXh0KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgc3VwZXIucG9wdWxh
dGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQpOwotICAgIH0KLQotICAgIC8vIFByaXZh
dGUKLQotICAgIF9oaWdobGlnaHROb2Rlc1dpdGhTZWxlY3RvcigpCi0gICAgewotICAgICAgICBp
ZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7Ci0gICAgICAgICAgICBXSS5k
b21UcmVlTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9k
ZS5pZCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBXSS5kb21U
cmVlTWFuYWdlci5oaWdobGlnaHRTZWxlY3Rvcih0aGlzLnNlbGVjdG9yVGV4dCwgdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5ub2RlLm93bmVyRG9jdW1lbnQuZnJhbWVJZGVudGlmaWVyKTsKLSAgICB9
Ci0KLSAgICBfaGlkZURPTU5vZGVIaWdobGlnaHQoKQotICAgIHsKLSAgICAgICAgV0kuZG9tVHJl
ZU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLSAgICB9Ci0KLSAgICBfaGFuZGxlQ2hl
Y2tib3hDaGFuZ2VkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fdXBkYXRlQ2hlY2tib3hU
aXRsZSgpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5WaXN1YWxT
dHlsZVNlbGVjdG9yVHJlZUl0ZW0uRXZlbnQuQ2hlY2tib3hDaGFuZ2VkLCB7ZW5hYmxlZDogdGhp
cy5fY2hlY2tib3hFbGVtZW50LmNoZWNrZWR9KTsKLSAgICB9Ci0KLSAgICBfdXBkYXRlQ2hlY2ti
b3hUaXRsZSgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fY2hlY2tib3hFbGVtZW50LmNoZWNr
ZWQpCi0gICAgICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmlu
ZygiQ29tbWVudCBvdXQgcnVsZSIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9j
aGVja2JveEVsZW1lbnQudGl0bGUgPSBXSS5VSVN0cmluZygiVW5jb21tZW50IHJ1bGUiKTsKLSAg
ICB9Ci0KLSAgICBfaGFuZGxlTWFpblRpdGxlTW91c2VEb3duKGV2ZW50KQotICAgIHsKLSAgICAg
ICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCB8fCBldmVudC5jdHJsS2V5KQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJl
ZGl0YWJsZSIsIHRoaXMuc2VsZWN0ZWQpOwotICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50
LmNvbnRlbnRFZGl0YWJsZSA9IHRoaXMuc2VsZWN0ZWQgPyAicGxhaW50ZXh0LW9ubHkiIDogZmFs
c2U7Ci0gICAgfQotCi0gICAgX2hhbmRsZU1haW5UaXRsZUtleURvd24oZXZlbnQpCi0gICAgewot
ICAgICAgICB0aGlzLl9oaWdobGlnaHROb2Rlc1dpdGhTZWxlY3RvcigpOwotCi0gICAgICAgIGxl
dCBlbnRlcktleUNvZGUgPSBXSS5LZXlib2FyZFNob3J0Y3V0LktleS5FbnRlci5rZXlDb2RlOwot
ICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gZW50ZXJLZXlDb2RlKQotICAgICAgICAgICAg
dGhpcy5fbWFpblRpdGxlRWxlbWVudC5ibHVyKCk7Ci0gICAgfQotCi0gICAgX2NvbW1pdFNlbGVj
dG9yKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci0gICAg
ICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0YWJsZSIpOwotICAg
ICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IGZhbHNlOwotICAg
ICAgICB0aGlzLl91cGRhdGVUaXRsZVRvb2x0aXAoKTsKLQotICAgICAgICBsZXQgdmFsdWUgPSB0
aGlzLnNlbGVjdG9yVGV4dDsKLSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9sYXN0VmFsdWUg
JiYgIXRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRleHQgPSB2YWx1
ZTsKLSAgICB9Ci0KLSAgICBfc3R5bGVUZXh0TW9kaWZpZWQoKQotICAgIHsKLSAgICAgICAgdGhp
cy5fbGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC50b2dnbGUoIm1vZGlmaWVkIiwgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5tb2RpZmllZCk7Ci0gICAgfQotCi0gICAgX3VwZGF0ZVNlbGVjdG9ySWNvbihl
dmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGV2ZW50ICYm
IGV2ZW50LmRhdGEgJiYgIWV2ZW50LmRhdGEudmFsaWQ7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVt
Tm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJzZWxlY3Rvci1pbnZhbGlkIiwgISF0aGlzLl9oYXNJbnZh
bGlkU2VsZWN0b3IpOwotICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKSB7Ci0g
ICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJUaGUgc2Vs
ZWN0b3Ig4oCcJXPigJ0gaXMgaW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlv
dXMgc2VsZWN0b3IuIikuZm9ybWF0KHRoaXMuc2VsZWN0b3JUZXh0KTsKLSAgICAgICAgICAgIHRo
aXMubWFpblRpdGxlRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJVc2luZyBwcmV2aW91cyBz
ZWxlY3RvciDigJwlc+KAnSIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVs
ZS5zZWxlY3RvclRleHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBudWxsOwotICAgICAgICB0aGlzLm1haW5UaXRs
ZUVsZW1lbnQudGl0bGUgPSBudWxsOwotCi0gICAgICAgIGxldCBoYXNNYXRjaGVkUHNldWRvRWxl
bWVudFNlbGVjdG9yID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUgJiYgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuaGFzTWF0Y2hlZFBzZXVkb0VsZW1lbnRTZWxlY3Rv
cigpOwotICAgICAgICB0aGlzLl9pY29uQ2xhc3Nlcy50b2dnbGVJbmNsdWRlcyhXSS5DU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5Qc2V1ZG9FbGVtZW50U2VsZWN0b3JTdHlsZUNsYXNzTmFtZSwg
aGFzTWF0Y2hlZFBzZXVkb0VsZW1lbnRTZWxlY3Rvcik7Ci0gICAgfQotCi0gICAgX2hhbmRsZUlj
b25FbGVtZW50Q2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9oYXNJbnZh
bGlkU2VsZWN0b3IgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUpIHsKLSAgICAg
ICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX2xhc3RWYWx1
ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9yVGV4dDsKLSAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdG9ySWNvbigpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgfQotfTsKLQotV0kuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLkV2
ZW50ID0gewotICAgIENoZWNrYm94Q2hhbmdlZDogInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVt
LWNoZWNrYm94LWNoYW5nZWQiCi19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGFi
YmVkUHJvcGVydGllc1Jvdy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiNTU1
MGUxMTRhZThlYzI1NGQwYzEwZGMzMTFiNTBkYTM1ODMzMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93LmNzcworKysgL2Rldi9u
dWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0udmlzdWFsLXN0eWxlLXRhYmJlZC1w
cm9wZXJ0aWVzLXJvdyB+IDpub3QoLnZpc2libGUpIHsKLSAgICB2aXNpYmlsaXR5OiBoaWRkZW47
Ci0gICAgaGVpZ2h0OiAwOwotfQotCi0udmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJv
dyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93LWNvbnRhaW5lciB7Ci0gICAg
bWFyZ2luOiAwIGF1dG87Ci19Ci0KLS52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93
ID4gLnZpc3VhbC1zdHlsZS10YWJiZWQtcHJvcGVydGllcy1yb3ctY29udGFpbmVyID4gYnV0dG9u
IHsKLSAgICBtYXJnaW46IDAgMnB4IDJweDsKLSAgICBib3JkZXItcmFkaXVzOiAzcHg7Ci0gICAg
Ym9yZGVyLXdpZHRoOiAwIDFweDsKLSAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwotICAg
IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotfQotCi0udmlzdWFsLXN0eWxlLXRhYmJl
ZC1wcm9wZXJ0aWVzLXJvdyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93LWNv
bnRhaW5lciA+IGJ1dHRvbi5zZWxlY3RlZCB7Ci0gICAgY29sb3I6IHZhcigtLXNlbGVjdGVkLWZv
cmVncm91bmQtY29sb3IpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdGVkLWJh
Y2tncm91bmQtY29sb3IpOwotfQotCi0udmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJv
dyA+IC52aXN1YWwtc3R5bGUtdGFiYmVkLXByb3BlcnRpZXMtcm93LWNvbnRhaW5lciA+IGJ1dHRv
bjpub3QoLnNlbGVjdGVkKTpob3ZlciB7Ci0gICAgY29sb3I6IHdoaXRlOwotICAgIGJhY2tncm91
bmQtY29sb3I6IGhzbGEoMjEzLCA5MiUsIDU1JSwgMC41KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGFiYmVkUHJv
cGVydGllc1Jvdy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlVGFiYmVkUHJvcGVydGllc1Jvdy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzdlNTU5NGFlMjNmOWM5ZWU4MmM4NjgzYzU4MzgyYjQxYjVhM2Q5NS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRhYmJlZFByb3BlcnRpZXNSb3cu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFs
U3R5bGVUYWJiZWRQcm9wZXJ0aWVzUm93ID0gY2xhc3MgVmlzdWFsU3R5bGVUYWJiZWRQcm9wZXJ0
aWVzUm93IGV4dGVuZHMgV0kuRGV0YWlsc1NlY3Rpb25Sb3cKLXsKLSAgICBjb25zdHJ1Y3Rvcih0
YWJNYXApCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMuX2VsZW1lbnQu
Y2xhc3NMaXN0LmFkZCgidmlzdWFsLXN0eWxlLXRhYmJlZC1wcm9wZXJ0aWVzLXJvdyIpOwotCi0g
ICAgICAgIGxldCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Ci0gICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmlzdWFsLXN0eWxl
LXRhYmJlZC1wcm9wZXJ0aWVzLXJvdy1jb250YWluZXIiKTsKLQotICAgICAgICB0aGlzLl90YWJC
dXR0b25zID0gW107Ci0gICAgICAgIHRoaXMuX3RhYk1hcCA9IHRhYk1hcDsKLSAgICAgICAgZm9y
IChsZXQga2V5IGluIHRoaXMuX3RhYk1hcCkgewotICAgICAgICAgICAgbGV0IGJ1dHRvbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgICAgICAgICAgYnV0dG9uLmlkID0g
a2V5OwotICAgICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gdGhpcy5fdGFiTWFwW2tleV0u
dGl0bGU7Ci0gICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9oYW5kbGVCdXR0b25DbGlja2VkLmJpbmQodGhpcykpOwotCi0gICAgICAgICAgICBjb250YWlu
ZXJFbGVtZW50LmFwcGVuZENoaWxkKGJ1dHRvbik7Ci0gICAgICAgICAgICB0aGlzLl90YWJCdXR0
b25zLnB1c2goYnV0dG9uKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBmaXJzdEJ1dHRvbiA9
IHRoaXMuX3RhYkJ1dHRvbnNbMF07Ci0gICAgICAgIGZpcnN0QnV0dG9uLmNsYXNzTGlzdC5hZGQo
InNlbGVjdGVkIik7Ci0gICAgICAgIHRoaXMuX3RhYk1hcFtmaXJzdEJ1dHRvbi5pZF0uZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIik7Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBl
bmRDaGlsZChjb250YWluZXJFbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfaGFuZGxlQnV0dG9uQ2xpY2tlZChldmVudCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGl0
ZW0gb2YgdGhpcy5fdGFiQnV0dG9ucykgewotICAgICAgICAgICAgbGV0IHRhYiA9IHRoaXMuX3Rh
Yk1hcFtpdGVtLmlkXTsKLSAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IGl0ZW0gPT09IGV2ZW50
LnRhcmdldDsKLSAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLCBz
ZWxlY3RlZCk7Ci0gICAgICAgICAgICB0YWIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNp
YmxlIiwgc2VsZWN0ZWQpOwotICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlFZGl0b3Igb2Yg
dGFiLnByb3BlcnRpZXMpCi0gICAgICAgICAgICAgICAgcHJvcGVydHlFZGl0b3IudXBkYXRlKCk7
Ci0gICAgICAgIH0KLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0
b3IuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjJjZmJlMzIwYmE5NjZjNWFi
OGRmZjM2MzJmYTU5MTYwMDI5YWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRp
dG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgewotICAgIGRpc3Bs
YXk6IGZsZXg7Ci19Ci0KLS52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1l
ZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3Jk
LXBpY2tlci1zZWxlY3QgewotICAgIG9yZGVyOiAxOwotfQotCi0udmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpIHsK
LSAgICB3aWR0aDogMjNweDsKLSAgICBoZWlnaHQ6IDIwcHg7Ci19Ci0KLS52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12YWx1ZSkgPiAuaW5saW5lLXN3YXRjaC5iZXpp
ZXIsCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5zcHJpbmctdmFsdWUpID4g
LmlubGluZS1zd2F0Y2guc3ByaW5nIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi1AbWVkaWEg
KC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMikgewotICAgIC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAgICAgIG1hcmdp
bi1sZWZ0OiAwLjVweDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODQxYzg1Njk4NTE1NGJiZTI3
Zjg0NzQ1NjVhYWJiYjg2OWQ2MTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1XSS5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvciA9IGNsYXNzIFZpc3VhbFN0
eWxlVGltaW5nRWRpdG9yIGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyCi17Ci0g
ICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIGxheW91
dFJldmVyc2VkKQotICAgIHsKLSAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgcG9z
c2libGVWYWx1ZXMsIGxheW91dFJldmVyc2VkKTsKLQotICAgICAgICB0aGlzLmVsZW1lbnQuY2xh
c3NMaXN0LmFkZCgidGltaW5nLWVkaXRvciIpOwotCi0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxl
Y3RFbGVtZW50LmNyZWF0ZUNoaWxkKCJociIpOwotCi0gICAgICAgIHRoaXMuX2N1c3RvbUJlemll
ck9wdGlvbkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgi
b3B0aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQudmFsdWUg
PSAiYmV6aWVyIjsKLSAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC50ZXh0
ID0gV0kuVUlTdHJpbmcoIkJlemllciIpOwotCi0gICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09w
dGlvbkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0
aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQudmFsdWUgPSAi
c3ByaW5nIjsKLSAgICAgICAgdGhpcy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC50ZXh0ID0g
V0kuVUlTdHJpbmcoIlNwcmluZyIpOwotCi0gICAgICAgIHRoaXMuX2JlemllclN3YXRjaCA9IG5l
dyBXSS5JbmxpbmVTd2F0Y2goV0kuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKTsKLSAgICAgICAg
dGhpcy5fYmV6aWVyU3dhdGNoLmFkZEV2ZW50TGlzdGVuZXIoV0kuSW5saW5lU3dhdGNoLkV2ZW50
LlZhbHVlQ2hhbmdlZCwgdGhpcy5fYmV6aWVyU3dhdGNoVmFsdWVDaGFuZ2VkLCB0aGlzKTsKLSAg
ICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9iZXppZXJTd2F0Y2gu
ZWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fc3ByaW5nU3dhdGNoID0gbmV3IFdJLklubGluZVN3
YXRjaChXSS5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpOwotICAgICAgICB0aGlzLl9zcHJpbmdT
d2F0Y2guYWRkRXZlbnRMaXN0ZW5lcihXSS5JbmxpbmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2Vk
LCB0aGlzLl9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5nZWQsIHRoaXMpOwotICAgICAgICB0aGlzLmNv
bnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NwcmluZ1N3YXRjaC5lbGVtZW50KTsKLSAg
ICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIGdldCB2YWx1ZSgpCi0gICAgewotICAgICAg
ICBpZiAodGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9iZXppZXJWYWx1ZTsKLQotICAgICAgICBpZiAodGhpcy5fY3VzdG9t
U3ByaW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9z
cHJpbmdWYWx1ZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIudmFsdWU7Ci0gICAgfQotCi0gICAg
c2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5fYmV6aWVyVmFsdWUgPSB2YWx1
ZTsKLSAgICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgaWYgKHRoaXMu
dmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7Ci0gICAgICAgICAgICBzdXBlci52YWx1
ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QucmVt
b3ZlKCJiZXppZXItdmFsdWUiLCAic3ByaW5nLXZhbHVlIik7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVyVmFsdWU7Ci0g
ICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIWJlemll
cjsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJiZXppZXIt
dmFsdWUiLCAhIWJlemllcik7Ci0KLSAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMuX3NwcmluZ1Zh
bHVlOwotICAgICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVjdGVkID0g
ISFzcHJpbmc7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
c3ByaW5nLXZhbHVlIiwgISFzcHJpbmcpOwotCi0gICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5
UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhYmV6aWVyIHx8ICEhc3ByaW5nOwotICAgICAg
ICBpZiAoIWJlemllciAmJiAhc3ByaW5nKQotICAgICAgICAgICAgc3VwZXIudmFsdWUgPSB2YWx1
ZTsKLSAgICB9Ci0KLSAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCi0gICAgewotICAgICAgICBp
ZiAodGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAgICAg
IHJldHVybiB0aGlzLl9iZXppZXJWYWx1ZTsKLQotICAgICAgICBpZiAodGhpcy5fY3VzdG9tU3By
aW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9zcHJp
bmdWYWx1ZTsKLQotICAgICAgICByZXR1cm4gc3VwZXIuc3ludGhlc2l6ZWRWYWx1ZTsKLSAgICB9
Ci0KLSAgICBwYXJzZVZhbHVlKHRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gLygoPzpjdWJp
Yy1iZXppZXJ8c3ByaW5nKVwoLitcKSkvLmV4ZWModGV4dCk7Ci0gICAgfQotCi0gICAgLy8gUHJp
dmF0ZQotCi0gICAgZ2V0IF9iZXppZXJWYWx1ZSgpCi0gICAgewotICAgICAgICBsZXQgYmV6aWVy
ID0gdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlOwotICAgICAgICBpZiAoIWJlemllcikKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHJldHVybiBiZXppZXIudG9TdHJpbmcoKTsK
LSAgICB9Ci0KLSAgICBzZXQgX2JlemllclZhbHVlKHRleHQpCi0gICAgewotICAgICAgICB0aGlz
Ll9iZXppZXJTd2F0Y2gudmFsdWUgPSBXSS5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQpOwot
ICAgIH0KLQotICAgIGdldCBfc3ByaW5nVmFsdWUoKQotICAgIHsKLSAgICAgICAgbGV0IHNwcmlu
ZyA9IHRoaXMuX3NwcmluZ1N3YXRjaC52YWx1ZTsKLSAgICAgICAgaWYgKCFzcHJpbmcpCi0gICAg
ICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gc3ByaW5nLnRvU3RyaW5nKCk7
Ci0gICAgfQotCi0gICAgc2V0IF9zcHJpbmdWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAgICAgdGhp
cy5fc3ByaW5nU3dhdGNoLnZhbHVlID0gV0kuU3ByaW5nLmZyb21TdHJpbmcodGV4dCk7Ci0gICAg
fQotCi0gICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKCkKLSAgICB7Ci0gICAgICAgIHN1cGVyLl9o
YW5kbGVLZXl3b3JkQ2hhbmdlZCgpOwotCi0gICAgICAgIGxldCBjdXN0b21CZXppZXJPcHRpb25T
ZWxlY3RlZCA9IHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7Ci0gICAg
ICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiYmV6aWVyLXZhbHVlIiwg
ISFjdXN0b21CZXppZXJPcHRpb25TZWxlY3RlZCk7Ci0gICAgICAgIGlmIChjdXN0b21CZXppZXJP
cHRpb25TZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuX2JlemllclZhbHVlID0gImxpbmVhciI7
Ci0KLSAgICAgICAgbGV0IGN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVkID0gdGhpcy5fY3VzdG9t
U3ByaW5nT3B0aW9uRWxlbWVudC5zZWxlY3RlZDsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJzcHJpbmctdmFsdWUiLCAhIWN1c3RvbVNwcmluZ09wdGlvblNl
bGVjdGVkKTsKLSAgICAgICAgaWYgKGN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVkKQotICAgICAg
ICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSAiMSAxMDAgMTAgMCI7Ci0KLSAgICAgICAgdGhpcy5z
cGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gISFjdXN0b21CZXppZXJP
cHRpb25TZWxlY3RlZCB8fCAhIWN1c3RvbVNwcmluZ09wdGlvblNlbGVjdGVkOwotICAgIH0KLQot
ICAgIF9iZXppZXJTd2F0Y2hWYWx1ZUNoYW5nZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlz
Ll92YWx1ZURpZENoYW5nZSgpOwotICAgIH0KLQotICAgIF9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5n
ZWQoZXZlbnQpCi0gICAgewotICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwotICAgIH0K
LX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmQ1NjI2MjFiYjYzMjliMDliZjMxZjIyNTdhMmJlNjQ0MjNjZDczZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVdJLlZpc3VhbFN0eWxlVVJMSW5w
dXQgPSBjbGFzcyBWaXN1YWxTdHlsZVVSTElucHV0IGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9w
ZXJ0eUVkaXRvcgotewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3Np
YmxlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkKLSAgICB7Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5
TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBudWxsLCAidXJsLWlucHV0IiwgbGF5b3V0UmV2
ZXJzZWQpOwotCi0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0Iik7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC50eXBlID0g
InVybCI7Ci0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IFdJLlVJ
U3RyaW5nKCJFbnRlciBhIFVSTCIpOwotICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLmRlYm91bmNlKDI1MCkuX3ZhbHVlRGlkQ2hhbmdl
KTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl91cmxJbnB1
dEVsZW1lbnQpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IHZhbHVlKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91cmxJbnB1dEVsZW1lbnQudmFsdWU7Ci0gICAgfQot
Ci0gICAgc2V0IHZhbHVlKHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCh2YWx1ZSAmJiB2YWx1
ZSA9PT0gdGhpcy52YWx1ZSkgfHwgdGhpcy5fcHJvcGVydHlNaXNzaW5nKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC52YWx1ZSA9IHZhbHVlOwot
ICAgIH0KLQotICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxldCB2
YWx1ZSA9IHRoaXMudmFsdWU7Ci0gICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGlmICh0aGlzLnZhbHVlSXNTdXBw
b3J0ZWRLZXl3b3JkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLQotICAgICAg
ICByZXR1cm4gInVybCgiICsgdmFsdWUgKyAiKSI7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVk
Ci0KLSAgICBwYXJzZVZhbHVlKHRleHQpCi0gICAgewotICAgICAgICBpZiAodGhpcy52YWx1ZUlz
U3VwcG9ydGVkS2V5d29yZCh0ZXh0KSkKLSAgICAgICAgICAgIHJldHVybiBbdGV4dCwgdGV4dF07
Ci0KLSAgICAgICAgcmV0dXJuIC9eKD86dXJsXChccyopKFteXCldKikoPzpccypcKVxzKjs/KSQv
LmV4ZWModGV4dCk7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIu
Y3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTM1ZWI3ZmFjNjFlYWFiMDI3MmQ5
YmE2N2FiMWRhZmIyNmY4ZTQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVW5pdFNsaWRlci5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgewotICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKLSAgICBtYXJnaW46IDVweCAxcHggMDsKLSAgICBiYWNrZ3JvdW5k
LWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCBibGFjayksIHVybCgu
Li9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKLX0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5zbGlkZXIgPiBpbWcgewotICAgIHRvcDogLTFweDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRl
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlVW5pdFNsaWRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkyMzdhMmFj
ZjMzYWY2N2I4OGMxYmViYzJhZTQ1MzJhOWQzNGQ4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotV0kuVmlzdWFsU3R5bGVVbml0U2xpZGVyID0gY2xhc3MgVmlz
dWFsU3R5bGVVbml0U2xpZGVyIGV4dGVuZHMgV0kuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgot
ewotICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBsYXlvdXRSZXZlcnNlZCkK
LSAgICB7Ci0gICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBudWxsLCBudWxsLCAi
dW5pdC1zbGlkZXIiLCBsYXlvdXRSZXZlcnNlZCk7Ci0KLSAgICAgICAgdGhpcy5fc2xpZGVyID0g
bmV3IFdJLlNsaWRlcjsKLSAgICAgICAgdGhpcy5fc2xpZGVyLmRlbGVnYXRlID0gdGhpczsKLSAg
ICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zbGlkZXIuZWxlbWVu
dCk7Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQgdmFsdWUodmFsdWUpCi0gICAg
ewotICAgICAgICBsZXQga25vYlggPSBwYXJzZUZsb2F0KHZhbHVlKTsKLSAgICAgICAgaWYgKGlz
TmFOKGtub2JYKSkKLSAgICAgICAgICAgIGtub2JYID0gcGFyc2VGbG9hdCh0aGlzLl91cGRhdGVk
VmFsdWVzLnBsYWNlaG9sZGVyKSB8fCAwOwotCi0gICAgICAgIHRoaXMuX3NsaWRlci5rbm9iWCA9
IGtub2JYOwotICAgIH0KLQotICAgIGdldCB2YWx1ZSgpCi0gICAgewotICAgICAgICByZXR1cm4g
TWF0aC5yb3VuZCh0aGlzLl9zbGlkZXIudmFsdWUgKiAxMDApIC8gMTAwOwotICAgIH0KLQotICAg
IGdldCBzeW50aGVzaXplZFZhbHVlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnZhbHVl
OwotICAgIH0KLQotICAgIHJlY2FsY3VsYXRlV2lkdGgodmFsdWUpCi0gICAgewotICAgICAgICB0
aGlzLl9zbGlkZXIucmVjYWxjdWxhdGVLbm9iWCgpOwotICAgIH0KLQotICAgIHNsaWRlclZhbHVl
RGlkQ2hhbmdlKHNsaWRlciwgdmFsdWUpCi0gICAgewotICAgICAgICB0aGlzLl92YWx1ZURpZENo
YW5nZSgpOwotICAgIH0KLX07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>