<?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>48069</bug_id>
          
          <creation_ts>2010-10-21 08:28:36 -0700</creation_ts>
          <short_desc>Web Inspector: provide resource tree in the Storage panel (behind the flag).</short_desc>
          <delta_ts>2010-10-21 09:59:35 -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 (Deprecated)</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>297432</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-21 08:28:36 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297435</commentid>
    <comment_count>1</comment_count>
      <attachid>71442</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-21 08:30:13 -0700</bug_when>
    <thetext>Created attachment 71442
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297467</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-21 09:31:56 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/WebCore.gypi
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorResourceAgent.cpp
	M	WebCore/inspector/InspectorResourceAgent.h
	A	WebCore/inspector/front-end/Images/frame.png
	M	WebCore/inspector/front-end/NetworkPanel.js
	M	WebCore/inspector/front-end/Resource.js
	M	WebCore/inspector/front-end/ResourceManager.js
	M	WebCore/inspector/front-end/ResourcesPanel.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/StoragePanel.js
	M	WebCore/inspector/front-end/WebKit.qrc
	M	WebCore/inspector/front-end/inspector.css
	M	WebCore/inspector/front-end/inspector.js
Committed r70240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297478</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-21 09:59:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70240 might have broken Qt Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71442</attachid>
            <date>2010-10-21 08:30:13 -0700</date>
            <delta_ts>2010-10-21 08:54:20 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>storage_resources</filename>
            <type>text/plain</type>
            <size>62055</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODA0OWU2Yi4uNjFlN2Q0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MyBAQAorMjAxMC0xMC0yMSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIHJlc291cmNlIHRyZWUg
aW4gdGhlIFN0b3JhZ2UgcGFuZWwgKGJlaGluZCB0aGUgZmxhZykuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODA2OQorCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWls
ZE9iamVjdEZvckRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0
Rm9yRnJhbWVSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckNhY2hl
ZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlT2JqZWN0V2l0aEZyYW1lUmVz
b3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmlkZW50
aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRPYmplY3RGb3JGcmFtZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYWNoZWRSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL2ZyYW1lLnBuZzogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmV0d29ya1BhbmVsLnByb3RvdHlwZS5yZWZyZXNoUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUuX3Nob3dSZXNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5UeXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5w
cm90b3R5cGUuZ2V0Q29udGVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5pZGVudGlm
aWVyRm9ySW5pdGlhbFJlcXVlc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFu
YWdlci5wcm90b3R5cGUuX2NyZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fYXBwZW5kUmVkaXJlY3QpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUubWFya1Jlc291cmNl
QXNDYWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5
cGUuZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1h
bmFnZXIucHJvdG90eXBlLl91cGRhdGVSZXNvdXJjZVdpdGhSZXNwb25zZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRSZWNlaXZlQ29udGVudExl
bmd0aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5k
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIu
cHJvdG90eXBlLmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlLmRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fdXBkYXRlUmVzb3Vy
Y2VXaXRoQ2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFu
YWdlci5wcm90b3R5cGUuc2V0T3ZlcnJpZGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5mcmFtZURldGFjaGVk
RnJvbVBhcmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3Rv
dHlwZS5fY2xlYXJSZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFu
YWdlci5wcm90b3R5cGUuZGlkQ3JlYXRlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5k
aWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX3Byb2Nlc3NDYWNoZWRS
ZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5
cGUuX2FwcGVuZEZyYW1lc1JlY3Vyc2l2ZWx5LmNvbXBhcmF0b3IpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX2FwcGVuZEZyYW1lc1JlY3Vyc2l2ZWx5
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIuY3JlYXRlUmVzb3VyY2VW
aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VWaWV3
VHlwZU1hdGNoZXNSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5h
Z2VyLnJlc291cmNlVmlld0ZvclJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZU1hbmFnZXIuZ2V0Q29udGVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLmdldCBzZWFyY2hhYmxlVmlld3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5hZGRNZXNzYWdlVG9SZXNvdXJjZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9yZWNyZWF0ZVZpZXdGb3JSZXNv
dXJjZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90
b3R5cGUuc2hvd1Jlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bC5wcm90b3R5cGUuc291cmNlRnJhbWVGb3JSZXNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fc2hvd1NjcmlwdE9yUmVzb3VyY2UpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0
b3JhZ2VQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlw
ZS5hZGRGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlw
ZS5yZW1vdmVGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3Rv
dHlwZS5hZGRGcmFtZVJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFu
ZWwucHJvdG90eXBlLnJlbW92ZUZyYW1lUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TdG9yYWdlUGFuZWwucHJvdG90eXBlLnNob3dSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucmV2ZWFs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GcmFtZVJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
YXR0YWNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmZyYW1l
LXN0b3JhZ2UtdHJlZS1pdGVtIC5pY29uKToKKyAgICAgICAgKC5zdG9yYWdlLnBhbmVsIC5zaWRl
YmFyLm91dGxpbmUtZGlzY2xvc3VyZSA+IG9sKToKKyAgICAgICAgKC5yZXNvdXJjZXMtY2F0ZWdv
cnktaW1hZ2VzIC5pbWFnZS1yZXNvdXJjZS1pY29uLXByZXZpZXcpOgorICAgICAgICAoLmNoaWxk
cmVuLnNtYWxsIC5yZXNvdXJjZXMtY2F0ZWdvcnktaW1hZ2VzIC5pbWFnZS1yZXNvdXJjZS1pY29u
LXByZXZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgor
CiAyMDEwLTEwLTIwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE2NmM0ZDEuLjY2NWE5
OWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC00NDk2LDYgKzQ0OTYsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvSW1hZ2VzL2V4Y2x1ZGVCdXR0b25HbHlwaC5wbmcnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvSW1hZ2VzL2ZvY3VzQnV0dG9uR2x5cGgucG5nJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9mb3J3YXJkLnBuZycsCisgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvZnJhbWUucG5nJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9nZWFyQnV0dG9uR2x5cGgucG5nJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9nbG9zc3lIZWFkZXIucG5nJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9nbG9zc3lIZWFkZXJQcmVzc2VkLnBuZycs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCA4NWMzMGE4Li5iNWE0Mzg4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGwKQEAgLTExMiwxOSArMTEyLDE5IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9pZCBzdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKICAg
ICAgICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9pZCBzdG9wVGltZWxpbmVQcm9maWxlcigpOwog
Ci0gICAgICAgIFtoYW5kbGVyPVJlc291cmNlXSB2b2lkIGNhY2hlZFJlc291cmNlcyhvdXQgQXJy
YXkgcmVzb3VyY2VzKTsKLSAgICAgICAgW2hhbmRsZXI9UmVzb3VyY2VdIHZvaWQgcmVzb3VyY2VD
b250ZW50KGluIHVuc2lnbmVkIGxvbmcgZnJhbWVJRCwgaW4gU3RyaW5nIHVybCwgb3V0IFN0cmlu
ZyBjb250ZW50KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBpZGVudGlmaWVyRm9ySW5pdGlhbFJl
cXVlc3Qob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IFN0cmluZyB1cmwsIG91dCB1bnNpZ25lZCBs
b25nIGZyYW1lSUQsIG91dCBib29sZWFuIGlzTWFpblJlc291cmNlKTsKKyAgICAgICAgW2hhbmRs
ZXI9UmVzb3VyY2VdIHZvaWQgY2FjaGVkUmVzb3VyY2VzKG91dCBPYmplY3QgcmVzb3VyY2VzKTsK
KyAgICAgICAgW2hhbmRsZXI9UmVzb3VyY2VdIHZvaWQgcmVzb3VyY2VDb250ZW50KGluIHVuc2ln
bmVkIGxvbmcgZnJhbWVJZCwgaW4gU3RyaW5nIHVybCwgb3V0IFN0cmluZyBjb250ZW50KTsKKyAg
ICAgICAgW25vdGlmeV0gdm9pZCBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Qob3V0IGxvbmcg
aWRlbnRpZmllciwgb3V0IFN0cmluZyB1cmwsIG91dCBPYmplY3QgbG9hZGVyLCBvdXQgYm9vbGVh
biBpc01haW5SZXNvdXJjZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXF1ZXN0
LCBvdXQgT2JqZWN0IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIG1h
cmtSZXNvdXJjZUFzQ2FjaGVkKG91dCBsb25nIGlkZW50aWZpZXIpOwogICAgICAgICBbbm90aWZ5
XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91Ymxl
IHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBvdXQgT2JqZWN0IHJlc3BvbnNlKTsKICAg
ICAgICAgW25vdGlmeV0gdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBpZGVu
dGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBsb25nIGxlbmd0aFJlY2VpdmVkKTsKICAgICAg
ICAgW25vdGlmeV0gdm9pZCBkaWRGaW5pc2hMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91
dCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgZGlkRmFpbExvYWRp
bmcob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIGxvY2Fs
aXplZERlc2NyaXB0aW9uKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRMb2FkUmVzb3VyY2VG
cm9tTWVtb3J5Q2FjaGUob3V0IGRvdWJsZSB0aW1lLCBvdXQgdW5zaWduZWQgbG9uZyBmcmFtZUlE
LCBvdXQgT2JqZWN0IHJlc291cmNlKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGUob3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0IHJlc291cmNl
KTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRPdmVycmlkZUNvbnRlbnQob3V0IGxvbmcgaWRl
bnRpZmllciwgb3V0IFN0cmluZyBzb3VyY2VTdHJpbmcsIG91dCBTdHJpbmcgdHlwZSk7Ci0gICAg
ICAgIFtub3RpZnldIHZvaWQgZGlkQ29tbWl0TG9hZChvdXQgdW5zaWduZWQgbG9uZyBmcmFtZUlE
KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChvdXQgdW5z
aWduZWQgbG9uZyBmcmFtZUlEKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUob3V0IE9iamVjdCBmcmFtZVRyZWUsIG91dCB1bnNpZ25lZCBsb25nIGxvYWRlcklk
KTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChvdXQgT2Jq
ZWN0IGZyYW1lVHJlZSk7CiAKICAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRDcmVhdGVXZWJTb2Nr
ZXQob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgb3V0IFN0cmluZyByZXF1ZXN0VVJMKTsK
ICAgICAgICAgW25vdGlmeV0gdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
b3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0
IHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRl
eCBmOTlkNDg3Li4wMGExMTY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcApAQCAtODI2LDE2ICs4MjYsMTcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgICAgICBwcnVuZVJl
c291cmNlcyhyZXNvdXJjZU1hcCwgbG9hZGVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9s
bGVyOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSogZnJhbWUpCit2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKiByb290RnJhbWUpCiB7
CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3Jlc291
cmNlQWdlbnQpCi0gICAgICAgIG1fcmVzb3VyY2VBZ2VudC0+ZnJhbWVEZXRhY2hlZEZyb21QYXJl
bnQoZnJhbWUpOworICAgICAgICBtX3Jlc291cmNlQWdlbnQtPmZyYW1lRGV0YWNoZWRGcm9tUGFy
ZW50KHJvb3RGcmFtZSk7CiAKLSAgICBpZiAoUmVzb3VyY2VzTWFwKiByZXNvdXJjZU1hcCA9IG1f
ZnJhbWVSZXNvdXJjZXMuZ2V0KGZyYW1lKSkKLSAgICAgICAgcmVtb3ZlQWxsUmVzb3VyY2VzKHJl
c291cmNlTWFwKTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJvb3RGcmFtZTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KHJvb3RGcmFtZSkpCisgICAgICAgIGlm
IChSZXNvdXJjZXNNYXAqIHJlc291cmNlTWFwID0gbV9mcmFtZVJlc291cmNlcy5nZXQoZnJhbWUp
KQorICAgICAgICAgICAgcmVtb3ZlQWxsUmVzb3VyY2VzKHJlc291cmNlTWFwKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRSZXNvdXJjZShJbnNwZWN0b3JSZXNvdXJjZSogcmVz
b3VyY2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmlu
ZGV4IGY0OWUxZDcuLjBkZjNlODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCkBAIC0xOTksMTcgKzE5OSwyMiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNv
dXJjZQogICAgIHJldHVybiByZXNwb25zZU9iamVjdDsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvck1haW5SZXNvdXJjZShGcmFtZSogZnJhbWUp
CitzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRG9jdW1l
bnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKK3sKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBkb2N1bWVudExvYWRlck9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
CisgICAgZG9jdW1lbnRMb2FkZXJPYmplY3QtPnNldE51bWJlcigiZnJhbWVJZCIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihsb2FkZXItPmZyYW1lKCkpKTsKKyAgICBkb2N1bWVudExvYWRl
ck9iamVjdC0+c2V0TnVtYmVyKCJsb2FkZXJJZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
Pihsb2FkZXIpKTsKKyAgICByZXR1cm4gZG9jdW1lbnRMb2FkZXJPYmplY3Q7Cit9CisKK3N0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZVJlc291cmNl
KEZyYW1lKiBmcmFtZSkKIHsKICAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZS0+
bG9hZGVyKCk7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lTG9hZGVyLT5kb2N1
bWVudExvYWRlcigpOwogCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzb3VyY2VPYmpl
Y3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlc291cmNlT2JqZWN0LT5zZXRT
dHJpbmcoInVybCIsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCkpOwotICAgIHJlc291cmNlT2JqZWN0
LT5zZXRTdHJpbmcoImhvc3QiLCBsb2FkZXItPnVybCgpLmhvc3QoKSk7Ci0gICAgcmVzb3VyY2VP
YmplY3QtPnNldFN0cmluZygicGF0aCIsIGxvYWRlci0+dXJsKCkucGF0aCgpKTsKLSAgICByZXNv
dXJjZU9iamVjdC0+c2V0U3RyaW5nKCJsYXN0UGF0aENvbXBvbmVudCIsIGxvYWRlci0+dXJsKCku
bGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgcmVzb3VyY2VPYmplY3QtPnNldFN0cmluZygidHlw
ZSIsICJEb2N1bWVudCIpOworICAgIHJlc291cmNlT2JqZWN0LT5zZXRPYmplY3QoImxvYWRlciIs
IGJ1aWxkT2JqZWN0Rm9yRG9jdW1lbnRMb2FkZXIobG9hZGVyKSk7CiAgICAgcmVzb3VyY2VPYmpl
Y3QtPnNldE9iamVjdCgicmVxdWVzdCIsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KGxv
YWRlci0+cmVxdWVzdCgpKSk7CiAgICAgcmVzb3VyY2VPYmplY3QtPnNldE9iamVjdCgicmVzcG9u
c2UiLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UobG9hZGVyLT5yZXNwb25zZSgpKSk7
CiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwpAQCAtMjM2LDIxICsyNDEsMjAgQEAgc3RhdGlj
IFN0cmluZyBjYWNoZWRSZXNvdXJjZVR5cGVTdHJpbmcoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIGNh
Y2hlZFJlc291cmNlKQogICAgIH0KIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKGNvbnN0IENhY2hlZFJlc291cmNlJiBj
YWNoZWRSZXNvdXJjZSkKK3N0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRP
YmplY3RGb3JDYWNoZWRSZXNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBDYWNo
ZWRSZXNvdXJjZSYgY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzb3VyY2VPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlc291
cmNlT2JqZWN0LT5zZXRTdHJpbmcoInVybCIsIGNhY2hlZFJlc291cmNlLnVybCgpKTsKICAgICBy
ZXNvdXJjZU9iamVjdC0+c2V0U3RyaW5nKCJ0eXBlIiwgY2FjaGVkUmVzb3VyY2VUeXBlU3RyaW5n
KGNhY2hlZFJlc291cmNlKSk7CiAgICAgcmVzb3VyY2VPYmplY3QtPnNldE51bWJlcigiZW5jb2Rl
ZFNpemUiLCBjYWNoZWRSZXNvdXJjZS5lbmNvZGVkU2l6ZSgpKTsKICAgICByZXNvdXJjZU9iamVj
dC0+c2V0T2JqZWN0KCJyZXNwb25zZSIsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShj
YWNoZWRSZXNvdXJjZS5yZXNwb25zZSgpKSk7CisgICAgcmVzb3VyY2VPYmplY3QtPnNldE9iamVj
dCgibG9hZGVyIiwgYnVpbGRPYmplY3RGb3JEb2N1bWVudExvYWRlcihsb2FkZXIpKTsKICAgICBy
ZXR1cm4gcmVzb3VyY2VPYmplY3Q7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZVJlc291cmNlcyhGcmFtZSogZnJhbWUpCitzdGF0aWMg
dm9pZCBwb3B1bGF0ZU9iamVjdFdpdGhGcmFtZVJlc291cmNlcyhGcmFtZSogZnJhbWUsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBmcmFtZVJlc291cmNlcykKIHsKLSAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBmcmFtZVJlc291cmNlcyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
Ci0gICAgZnJhbWVSZXNvdXJjZXMtPnNldE51bWJlcigiZnJhbWVJRCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihmcmFtZSkpOwotICAgIGZyYW1lUmVzb3VyY2VzLT5zZXRPYmplY3QoIm1h
aW5SZXNvdXJjZSIsIGJ1aWxkT2JqZWN0Rm9yTWFpblJlc291cmNlKGZyYW1lKSk7CisgICAgZnJh
bWVSZXNvdXJjZXMtPnNldE9iamVjdCgicmVzb3VyY2UiLCBidWlsZE9iamVjdEZvckZyYW1lUmVz
b3VyY2UoZnJhbWUpKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHN1YnJlc291cmNlcyA9
IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKICAgICBmcmFtZVJlc291cmNlcy0+c2V0QXJyYXko
InN1YnJlc291cmNlcyIsIHN1YnJlc291cmNlcyk7CiAKQEAgLTI1OCwxMCArMjYyLDExIEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZVJlc291
cmNlcyhGcmFtZSogZnJhbWUpCiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVz
b3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFsbFJlc291cmNlcy5lbmQoKTsKICAgICBm
b3IgKENhY2hlZFJlc291cmNlTG9hZGVyOjpEb2N1bWVudFJlc291cmNlTWFwOjpjb25zdF9pdGVy
YXRvciBpdCA9IGFsbFJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gaXQtPnNlY29uZC5nZXQoKTsKLSAg
ICAgICAgaWYgKGNhY2hlZFJlc291cmNlKQotICAgICAgICAgICAgc3VicmVzb3VyY2VzLT5wdXNo
VmFsdWUoYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZSgqY2FjaGVkUmVzb3VyY2UpKTsKKyAg
ICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7CisgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBjYWNoZWRSZXNvdXJjZU9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3Vy
Y2UoZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCAqY2FjaGVkUmVzb3VyY2UpOwor
ICAgICAgICAgICAgc3VicmVzb3VyY2VzLT5wdXNoVmFsdWUoY2FjaGVkUmVzb3VyY2VPYmplY3Qp
OworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmcmFtZVJlc291cmNlczsKIH0KIAogSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQpAQCAtMjcwLDcg
KzI3NSw4IEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50
KCkKIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjppZGVudGlmaWVyRm9ySW5pdGlhbFJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBLVVJMJiB1cmwsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UpCiB7Ci0gICAgbV9mcm9udGVuZC0+
aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHVybC5zdHJpbmcoKSwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGxvYWRlci0+ZnJhbWUoKSksIGlzTWFpblJlc291cmNl
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2FkZXJPYmplY3QgPSBidWlsZE9iamVj
dEZvckRvY3VtZW50TG9hZGVyKGxvYWRlcik7CisgICAgbV9mcm9udGVuZC0+aWRlbnRpZmllckZv
ckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHVybC5zdHJpbmcoKSwgbG9hZGVyT2JqZWN0LCBp
c01haW5SZXNvdXJjZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNl
bmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQpAQCAtMzIxLDgg
KzMyNyw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkRmFpbExvYWRpbmcodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvCiAKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiBs
b2FkZXIsIGNvbnN0IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKLSAgICBGcmFtZSogZnJh
bWUgPSBsb2FkZXItPmZyYW1lKCk7Ci0gICAgbV9mcm9udGVuZC0+ZGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKGN1cnJlbnRUaW1lKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihm
cmFtZSksIGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoKnJlc291cmNlKSk7CisgICAgbV9m
cm9udGVuZC0+ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKGN1cnJlbnRUaW1lKCksIGJ1
aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UobG9hZGVyLCAqcmVzb3VyY2UpKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRPdmVycmlkZUNvbnRlbnQodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZywgSW5zcGVjdG9yUmVzb3Vy
Y2U6OlR5cGUgdHlwZSkKQEAgLTM0MiwxOCArMzQ3LDM1IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6c2V0T3ZlcnJpZGVDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QKICAgICBtX2Zyb250ZW5kLT5zZXRPdmVycmlkZUNvbnRlbnQoaWRlbnRpZmllciwgc291cmNl
U3RyaW5nLCB0eXBlU3RyaW5nKTsKIH0KIAorc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBidWlsZE9iamVjdEZvckZyYW1lVHJlZShGcmFtZSogZnJhbWUsIGJvb2wgZHVtcFJlc291
cmNlcykKK3sKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBmcmFtZU9iamVjdCA9IEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZnJhbWVPYmplY3QtPnNldE51bWJlcigiaWQiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZnJhbWUpKTsKKyAgICBpZiAoZHVtcFJlc291cmNl
cykKKyAgICAgICAgcG9wdWxhdGVPYmplY3RXaXRoRnJhbWVSZXNvdXJjZXMoZnJhbWUsIGZyYW1l
T2JqZWN0KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuQXJyYXk7CisgICAg
Zm9yIChGcmFtZSogY2hpbGQgPSBmcmFtZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKCFjaGls
ZHJlbkFycmF5KSB7CisgICAgICAgICAgICBjaGlsZHJlbkFycmF5ID0gSW5zcGVjdG9yQXJyYXk6
OmNyZWF0ZSgpOworICAgICAgICAgICAgZnJhbWVPYmplY3QtPnNldEFycmF5KCJjaGlsZHJlbiIs
IGNoaWxkcmVuQXJyYXkpOworICAgICAgICB9CisgICAgICAgIGNoaWxkcmVuQXJyYXktPnB1c2hP
YmplY3QoYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUoY2hpbGQsIGR1bXBSZXNvdXJjZXMpKTsKKyAg
ICB9CisgICAgcmV0dXJuIGZyYW1lT2JqZWN0OworfQorCiB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKLSAgICBGcmFt
ZSogZnJhbWUgPSBsb2FkZXItPmZyYW1lKCk7Ci0gICAgbV9mcm9udGVuZC0+ZGlkQ29tbWl0TG9h
ZChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZnJhbWUpKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBmcmFtZU9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yRnJhbWVUcmVlKGxvYWRlci0+
ZnJhbWUoKSwgZmFsc2UpOworICAgIG1fZnJvbnRlbmQtPmRpZENvbW1pdExvYWRGb3JGcmFtZShm
cmFtZU9iamVjdCwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGxvYWRlcikpOwogfQogCiB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1l
KiBmcmFtZSkKIHsKLSAgICBtX2Zyb250ZW5kLT5mcmFtZURldGFjaGVkRnJvbVBhcmVudChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZnJhbWUpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBmcmFtZU9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yRnJhbWVUcmVlKGZyYW1lLCBmYWxzZSk7
CisgICAgbV9mcm9udGVuZC0+ZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoZnJhbWVPYmplY3QpOwog
fQogCi0KICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAKIC8vIEZJWE1FOiBNb3JlIHRoaXMgaW50
byB0aGUgZnJvbnQtZW5kPwpAQCAtNDA0LDE3ICs0MjYsMTYgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpkaWRDbG9zZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB9
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NLRVRTKQogCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmNhY2hlZFJlc291cmNlcyhSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiByZXNvdXJjZXMp
Cit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhY2hlZFJlc291cmNlcyhSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0Piogb2JqZWN0KQogewotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9wYWdl
LT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0
KG1fcGFnZS0+bWFpbkZyYW1lKCkpKQotICAgICAgICAoKnJlc291cmNlcyktPnB1c2hPYmplY3Qo
YnVpbGRPYmplY3RGb3JGcmFtZVJlc291cmNlcyhmcmFtZSkpOworICAgICpvYmplY3QgPSBidWls
ZE9iamVjdEZvckZyYW1lVHJlZShtX3BhZ2UtPm1haW5GcmFtZSgpLCB0cnVlKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQodW5zaWduZWQgbG9uZyBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgU3RyaW5nKiBjb250ZW50KQordm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQodW5zaWduZWQgbG9uZyBmcmFtZUlkLCBj
b25zdCBTdHJpbmcmIHVybCwgU3RyaW5nKiBjb250ZW50KQogewogICAgIFJlZlB0cjxJbnNwZWN0
b3JBcnJheT4gZnJhbWVSZXNvdXJjZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CiAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9wYWdlLT5tYWluRnJhbWUoKSkpIHsKLSAgICAg
ICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihmcmFtZSkgIT0gZnJhbWVJRCkKKyAg
ICAgICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihmcmFtZSkgIT0gZnJhbWVJZCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpy
ZXNvdXJjZUNvbnRlbnQoZnJhbWUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBjb250ZW50
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgKaW5kZXggZjBiZWFkOC4uZmU1MmEzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIC8vIENhbGxlZCBmcm9tIGZyb250ZW5kIAotICAgIHZvaWQgY2FjaGVkUmVzb3VyY2VzKFJl
ZlB0cjxJbnNwZWN0b3JBcnJheT4qKTsKKyAgICB2b2lkIGNhY2hlZFJlc291cmNlcyhSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiopOwogICAgIHZvaWQgcmVzb3VyY2VDb250ZW50KHVuc2lnbmVkIGxv
bmcgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIFN0cmluZyogY29udGVudCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL2ZyYW1l
LnBuZyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvZnJhbWUucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdiZGUzZTEyYjExZjc0OTVmNmU1MmJhY2M1MmI0M2UzOTk0ZGE3OGEKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDUyNDgKemNtVi1gNm8yYzlQKTxoOzNLfExrMDAwZTFOSkxUcTAwMUJX
MDAxQmUxXkBzNmI5I0Y4MDAwZGNYK3VMJFAtdCYtCnpaKnlwR2EzRCFUTG0rVCtaKVJ6MVdkSHpw
K081fWxJRiM9aTJrYHJ5OEhPPXQjJGFxPVdaI3dTKitySVEtJUdNSAp6RihJanhDQ0woNUxlV09p
Q1hgNTJSNm52TE5nPClBPmBOaCVXekhZK3RNanxBYkl3Mkt7X0I0M0tpPkN3LXxQQigKenBYJmky
O3l2aGU4VlVnUjElLXYhbT41dTxvTCM4Y1phQEc1M2FBM2IhIXdrd1opSWZ4fEZQeWYwUmFIJGtv
VGF8CnpYXkZNXiNXe2t3MWt4bGlmYldTITNIPGpXZ2c4MDcwM2RQenp+I0h2Pmo0MVEtbkhIaTBK
c2lAKFpjYGBLTEZ0Sgp6XnotbG5LcTNKXkYydjVwNUNGTGowMGlIKXo2dDtjZClOOSMwM2R7V2Bp
MjFALTJsd3dBVFIkUTBQRisrdnlQV3sKenMzIW5INGdrRW9MT3U1WjVZaGxaVmMpKUJGOTFSdjA3
IVkjTCY1K0VCTEU9ZzxtXklTK3A9cEN6IXA5TDdXM2I7CnpnSU5GLWAyYlFvZSRQYmoxNWk4dzNR
flUwV15EaWcwRUUmTz5aODBGMDAwb1kwUlU0IWdFMT1zZlh4NntOb08jWQp6M0spISlEKikoVGZJ
NkR6ZnNwV0R7fGlBezBzaHh8P1ZFb1U4VWE4N0FZdz1uPk0lTUk2VWxVcElUezx3YS03d08KendI
fGtwRWRpZyVldV97QF41YU0rciptZC1vI0Q9K1dieCRpKjdGQW88Wlp8a3lkY3lfSnM/dUJAcnIx
aF96e1VCCnokIyZedUdQaChxPHpwM1lFQjAoVXglc2EwMmJFSyptMStZVHNoWlZWTCl3YC1rOUVp
TnZramdhUEhvRklaWk1mSwp6eT0yeUdLRUk+RF41eER+UjxFcXZaSTxuQitQYCheYm5KNUtjRVB5
YmFxSGRIeDRZbHshPThfT0B0ek83SzZgKWgKejhTKStXOH1UMHY8ZmM4QEh5SmIpSldjPCl8Njlt
Uj12PiZgZiQhbi0yTnhvSzk5bGc1XlQ9fUteM2p6aj5GQnF5CnokWj1GMGBVRURQPV9HUmtIanlR
WEg1cXFgRWRgJi1ld3ZVKk9lYlk8V1JsTnRXXnJZNj1UT2Vfb2E0PnElaX0qVQp6YUFDdG0hQW5B
eWg0Wk5lQjNDd0U2KWhBaTYyQiZTVUdqJDFQM2M9UXg1a1RVeDgrTFlPQkt0TT9yZ2Zkc2VKUmoK
ekVmcCUycytJSGkhPmlPRHM4PyYmWGclRWVYek9GYCRFJnFiYi1HWFZwNldqe197Kj4hUXk8cmA/
WVZLSU50MD1fCnpYJCE2O2BHdDlfI1lAWEpMZmgkQVJfKWZXWjkyI3U4RTxVZytJOEFAUU16KXY5
cDU/aXhWLTBvcFYjWnc9aG5hTAp6Z1YyWGRBS2VHYDQybGRFZUFAZmpeTlpKel8peVdYJnhyNCst
PGI1KyZHQ1NWeik5TWF7OFkodyhBVkheXnFFYUYKemNWfFE5TGNmUjJ0SVNzfWcjVTxHSm9OTD5s
SUJ2KUB7eUl1UnFmVHMzPGR4cWlYeCFDcUZYU3htQD02b3ZBISZKCnp0Y0pLUFk/NjNNYzN1Snhr
KGIyRiFBK0xubDtUcTd3eEkwaDNGU0BZRTlHd3k3IX45Y1FXZl40byl2ajZpaWx+OAp6QDBZa0VJ
Vn4rRUx6QXRNTT1SKG5yWWo5Pm1SNjQ2KHhvYitNcHYpYjxrNT1RYGEqfUk4PzUpI0srTiFuUU08
OF8Kek55UFI/cmk8cEFFV0NHUVMrLWpkdFc5aHBZenl0KUlOJSlob2MyM2thQXxPei1YKit5cn5C
Yk8xcz9UI040PmJjCnpiJHkoQ2tOSThwdU02bDRULT9WUUJwWWwqX3VDJkNrYGBKSlImayYpe1Fi
ZVBpMjF8bEJPSDtgcWpKWW9xViVIOAp6VnxLPjY5XlZ0XmVTI0pyYn19UihJeCN4d2N5aSpZakZq
Wm0rfCVkTWE/O1o/JlN6JHYkPDh7UGVMZCZlKl4rYkQKemI4cUY5b19+MVo7bD10KEZEfCN8Y05C
RDc+QTNwN0BOPzFkd1paRk9aY058JmM1QXdMPmg/XkBibUA1NiNHVD4wCnoxTGNHRmRNZXMwbzlA
P0QtRzVNOGVaRDUrVmYzU1lrNm1sYz4kWDBUY31qa3xgMFYzZiZHcSpoR018U3UrQlReKwp6M3A2
dVlkUzJYWE8/djZsQ2ZZWGlzPVdRXj51bnVgaj1uZFMtdilGbGNkbTRgYzR4bFopZyM/QWBAWHQy
dyRIcXUKenRIMXhsamdPJU5UNyNJdT0xKnJuQEJTa0JXbiFwJElBKzlibHpYJnE/Q0xtZUxTPHJn
dlN9KH4rViFqMCpOSmNDCnpHbSowPGJMNkAxP31oV2gzbVFNcktifGs5fDghanZVN0IzM1QhfiZh
V2wkSWwwNjMwQnBibiQ4KEFBaXVPdTlfOQp6JXJWIyNFWEZNTHRucyokWSlOPUNkPCVPREElJlBx
K0RVNVRORiElKFdeIWU2K2l9MDRXYjxWNnA1QEVzJmxBWW8KemE5Kz8mdXV0ZmNATVVWZ05kQ3Jy
KEpOd0MjUzB+aEIoRihibSVidDZGRWJ7NFE/Nk00d25CK3dzWiFhZEpEY3crCnptdjZiSlFtSTww
UjtlREx7ekljJHZzJFpXPnFHNUZJPiZUWWIhK3dOXnEmfCFIR0YwaXcrKndjLW5oWiFgU3dRQgp6
Q2JNU3FXREM1LWl5Zl8mRkwkPENyQ0YxIytpaE9rY0ckaEs/e3ZzXnEmUmp0YnZ3VXY+MmJ8LTZM
OU9AKXdsYkQKemBeUDtXSkBXVTg+PmMjezxuYEo2aSUqZlMjOUQjYGowTjdKJDxaZU1FayRQa1BM
WmxaPlczQiZ8MihvM3hxTml4CnoqbEg5YjI0WWN2Q2tad0lvNSsmYmx3Xzk3Yl8kPEBQaH4kJU9l
M1hwe0dCQ345RzxoaHpwYFkqcElLNWNjKlhPbwp6WHJXazwjNUlaYUclMSQ1RW5sTVdOMHVtOFle
aFlhdVU0aEBLKXFVe00oZCYwcXBncDFZSVhqfGshPW1lJnk1PlIKem56bEVhd3dTKk5mNFE7RUB8
OUopKW9iZ0hxaTx6ODlsOUw1Vnx4X2V5WSRCUUR9UDhGUCNIWSsqPXRCXklET1FBCnpKWWJTRzlz
RGg2JlNuMWVWKUJYJmc4e0kxXzVsRGVzeyYtcDB5eUxYKmNKZjklS31LYzE1bUM1U2dgfXhYI2sy
egp6MnZGS3xLK0xxKSZrc089MWNJT2QySCpeI2tPcFAmMUVDYDNOQ2F7bmQ1SHw4aCRzX080Qyli
VDhMZj91S3t1ZTYKekYoTWRlT2NDWmdsUUdpP3JjJFA5Vyl0Um88ez5PTSkoIWlKMTxSdHI2Mn4m
bXM+dkc2VDhFUnpNZFBhMjJ5OEtJCnpAOTxwc0FwOGpYSHVtR30wfFhEa1F6RHdeTCEyTzRsZD8l
RzlFbHQ9V0tENypyeTZHPT1RTmkpKjg7YWNjT154Wgp6QHw/JHE3dDRFLVBuXz17LXlIdTEwVFk0
UTRWTU1RMVM1cUlwJGcjdXN0QzE1PGpsczY4PjI7dXFIU1g3O2BTMiEKejVgJlZycXp0OFFORV5z
LSRQQ0RxJWJrPldRJjNqS0QtSjlEd1cobHB0Z19iQDZCUmpDUFNzXyNBQHYqJGY8flFZCnpuTzZT
Ukd1akN7UU13MjlfVXFGT3swO3Eje0kmJWUyYnFMektWbGtaY0deNzg7Pk0wRCVjaDtaUl5NIX13
bkJGNQp6X089ZG0kNWZ7aD1UfFBYWm9JcDZjS2YpZT9XeXE/QCNPSWBAam0ySj85VXJ1Nl9gWTs0
PytkJihfezhPM3VPKjcKekthZGUyYn0wRHAhJHttd210KTBJajJPRSgpQ3NydmB3NShoYDsqI0p2
UWloKit8d0h9NzA9fTZncjVEQllueFlwCnp2RTtJTnspSDwlTVdren5Id1pVUi1fOXUmRVczSkZ6
UVUtb3l+Xlhrdz97bVdpfFkpWWgxQy1xaVd8KlpsM0x8bwp6dyFhR1JYbjBIUzY2a0wxbUZWbUtr
VGp0Q3hwPkhITTBtN2socVdxTndRREFLJlY2Qkd2MF5FVCFPTEkoMDE5eHgKejFKYS1pUEgrSVNw
YkdqQ0VUVitDQmRKSSZHSy1ReXh1YkdYWl9xXmE0KWlIPkR+MjdqNk8pQmAmcVFWTlhEVmEqCnoh
RURIVW4pd304OUQ0eCFqRF5oTiNadHd9I19HbWVnMlVpOzxMPEhIKmdWOzRAIVdWaXpMaX51SiV4
Uk9VX21HKQp6dkotPWVvZ19XZFJTcDcySUxDWGtHNUhRQmx7MTVMbGBFOE1rfkBIVmo2JFEjQFB6
VHFeQigzeV8paFdqXldQTkUKejVOTyFvdXdoZyVUOEt9bVFyS0V9ajJiVEBBPTA9cE5SJnRQdjYh
YmdVaV50ZmtmZ0JXWXBGek8xTCtsKzhyZXVXCnpaTWc7Y1Q3PzhmSjAlZ049fW9ucCkwRzNaN153
KVVFVUNVI2QhVCtuQlN6QyMlVzxvPXd4VylSRT9FendrSmdfdAp6Xyt+aDVHYD8tZmMtQ1ptYCok
O3hJaE9eYGohbCsySjlrPnlTTz9sMXZkeSEqWXlaT0d6Mm1Zb215NHBTclE3fnAKej1YVGUtNHx9
bGdScjIpbiVKcmBHYFJYVV8/O1ZnNl87I05fa2JRNi1lSSFJR0coNDsrVDx+Q01NRHQ8TUJkTCpO
CnokREVAWVZebWBjPEgjcGNQbSZYfGxYI1EhUWRDbDNyZ145VCV1TEJyJWw+bHFWczV+QmAtez8t
bmVyI0RKVDB1YQp6Y0o0O31FempGLXJOKCNFJWVQYzArP1JoS1JVYGdMcyNmV1Y/ejhSbiozVzU4
YCYtZ21GU2s4eEA5JHVBM1VfUHcKemM9YWF0U0FVJU4jUGBLdUlDfUtAX34kQTl1UmIjdT1ZfCVm
N0s0XjVSfWxzUzBHTlJVZj94cDdrT3BQJmRmb29JCnpgISkzI0JFfWk+b3luTGZfbX1yb3RRKDZr
T0J+Qk1zfnV8e1A5QXJqamxkU2V3dHhAOWtGYXxZSlA0bk5LRXclOQp6Q34xV3dreFVeTWE7a0FR
YkdkVVphSHN1aytMQ1lYbXVEKj5NNXlBSVckUUpgelp7MjQ4fmtiYng4UHJYVXUpRTkKem1pQE4t
VGtkfiRgYF5fMTQqMnMxU3A4Rk5jK1dyRyNAX3I+P3kxZWM8el9SbCtyNk4ldUo+eEB5NUN+Knk1
UkR2CnpiO0M4cypBemVMUyRFdHQrTEg5KnVoIzZCP1hTWEwzd0FXVHJGV0tmI2RrT01nIWZBSDFA
Oz8jTkUqLWBKbyN6dwp6PWkpRShMbWVaK3FrJl9sPDVDbVlOciRQVD5HLWR7LT9xPWwlKEJmKyZB
c3x3S0EqaXt3PW5TfFpxZVlVPGo8ansKenNBYjtlaXpeJX1hVnJhfVJ+ZzkrMkVme1YyPjx8YWhR
WU1wNVVQY3Q1JlZCXkFNTD5VSX1pWkNkazVMdTBzdDhSCnpIaD5gbjB9WDs5MWdLeUVoRn1EK2My
QCVjVT91XmFjTFZeYXtjJEF2cFUoflJqdEJ6KUZidCsyM2kwPiMzIzAxTwp6PWA/UlNzJWVtP2Yq
Zl9UbDlEPzczbTdFK0pIX2BnSl4lbSEyNFlKYEw7KEspe3thNz55e0Q0XjAwMFNhTkxoMEwKejAx
RmNVMDFGY1YwR2daXzAwMDA3YlYqR2AyaWdpMDRtVUVtXnBRUlEwMCF0dUxfdChvIV5NfHZqOHM8
eyRBOVBFCnpuYzRSQFVJTVp9c2pUdVFZUERlNUUoT3ZMSElgUD5zP2dUZl97bn1LcUBSbz0pLT1e
dktOd0JhcSM8Y3pzWklIeQp6KE5aSmU4Pz80NzF3dCVCeDZxPDJ1Jl53PD82VTBhJS1ubT1jXipI
VUpGfjtHWW56dERsaWJ7eUlnfDdKJjtTNFkKenBYVkktS00oVUU9UlZCUDQtJil4MGd5QEchM18j
Nz4we0hrUDZaJFV2ZnVoaSRLc1dESH5selUlaiElZm9PMl9oCnpUazhncjV7SGlOOHIhenh5UWZZ
OE5lWkxfenlQXiN7JGs7Kz4lUlFTS1B7QD0mYD1sN0EhcTd1JG82OWBQOz4rSQp6bWlDWG93KEgl
eWM1RkYmMWMoOTJyMmgkbGhOWWRZUGNFcHJ5Ji1QfjhNRyZ7bHNyMFBQP1okdGdwfGV2c0F8PTMK
emUhbG5FNl44bD4wTCs/U1BzaHI2KUNGeFVzT0BaNitJaV9vSUo+RFZNO1Nse1hzVEB0KkEmYk1N
YzQxTU1uTz9iCnpOPnMpdTc5fnZNc2FoWFc2LV9+JGVTNEhleCVGKF92O319YTlRcX5RdWp+ZSsp
UmBGIVRwZTJyWXl5NC14Tl8zZgp6MFNrVjE7K0EqandKYnJmZSNnZTdvNzN4ZFVqe2dsO3RDMiFf
VilBQ0x3amhmWkpwajsjeWshQDNsdVh8Ky0xZHIKemx7ajUyQEJ4aXlLb3V8d1lBfmljczdZbjtH
JEp5YzxFbHFrYzM0bWF6Jk5YWkYqVzVSTyNgR1hzSHlEU1MtO356CnoxWT9DajFRQjZvZG1YekR7
RzVEb2duViY/bS1hdSEpQE4zK15fa1U3YUArKnlAK2llWkFjeyQrdCpUYytza3txZwp6Rj5uMkMw
RXVlMjw3PX19aDFZaVcoJU4zZl40biZ6YTlKfkYtcm1SZVUtJTsrdzYpaT5gbVdnPStILU1BRHl9
SXcKekU+VDMzejw4UU56K2tXX3FrfD4+d1FtMyQzI3YrOHFhdnl4aWN3fGdUIUdpbTY9PDdYIX04
OVYrX2JFeiFkNTdQCnolRzl6MS1RQz9ZJH0tcWs1Zk5PZmlVVVMyNzNxSFFHKU1NY0FjPFRoO308
TXhMZEJ+K1loaT07aTdGJFBPMSR4TQp6OXx3MiQ2T0NEbnE/PyoxODhXSngwVWBod0R9ZX0jVmlW
IS1KSX47WlImcSlTXyo3PmJ2bGxpSnFMNn1GekdlblgKelI8K1VGR2ZNQ0FRSDtYKU5YIzNyXnBW
WmgoMFQ5ZD1eNXppPktaSXBMPnFmcjFBKHxgYWpDVHdNWVYrdW85OG9rCnpWRlJIbUR1U3d+UkBD
UnM7dVghVHxMU31Ld0JuMjt3blc3a0dtU0djWH1ZXklmSXhnPDMzRzt3RG9KVnAheGRoQQp6WF5k
czdUYk8ldVc1eEdqVDhQOWN8TEdhIV56b3xgZXBrclZMdjc5VUp1T3BoVEF5RzdEdWtoLT53JWpY
elp+PD0KemVIWjs0bVkjentedD9JNSgkQ0xlLXJAJFY2T1JBbUc2VEtpLVl3fko0Sn16I2NGclZN
OHhUaUFUKFhuOXVEUTtKCnpIZGEpSFAoZWo4TXJtcnh1PWMrQjxWUnpVe0FCPSVlU3FGfk13enB5
and0VXFjV2pobVdEeTZBJV41enZ2Vnx+Zgp6eE9nVUNTXklLLVRwZztXOVF6c29RNnZOYyZiaTdG
QWBsMStHJk47ZGVfdVB9Un08Y1BicjJpWDVFbVIqRXt5VE8Keng7fTFRdTdxS154JU9Re15SWFZg
JlcjVU96Q1pvKzU3dXFsX1FXQ0p1aClwPDYyJj58dERFeWhObVVUJWxTKU9ZCnpaX0xual9ndlFB
KEBMQ0Fte0JePG4kSE1mU2J9VTNuMFFxRSh8MH4lXzNiflojTSQhTFc5eHVWT2xDa2BxVG1HTQp6
NmZ1ZzNAZn1iTjI7Tz9CJHxnYHNNTXNUfHVyfjdnJWNLVUNlcz1NLT9MbTxNJFRJb0o8ejFqeT4l
Z1dwS0A2ZDQKem4oY1QtTUFGT2BsMzA8KiZxKWVrY20lZFQyZClJJHc/bG5COU43MEFpaUpVbmcr
WEB5YGlWPXh6O3o1bkJgR0FhCnp0SXFAPktAais2amwmcTxvVjJQbmhZQlchQ3tkakFifVNVKCol
elU/Ml9FXm4ya2BMeXU9OTdZZChaUDZKQGg9YQp6SVhITk4wcE1nYzB8TUNNa1VmNUImPnx2O3hU
LXUqQiRYaTBsbz1KJkN7ZkQ1PHFgUGRQaG0rMUphYFk3Qjw7KXoKell+QmM2dEtqZmFffW1KWkdu
YWY+bCg0RWwqT20lO0g4KDRgdiN9PH4pfGdhdEUwOT1COz9Uc1FpSjthJGBIX2ZaCnpjJGdMS0NG
LSo5aDBuc0RfcnU5fFZkKX1ZLW1IVjJGVD9xTWN5dHBxKjFeRlpkZno8RVplWEErZmRsZ0FrTDNe
Vgp6OVhqKilnKWZhaVRIaDlRV09KRCZQME9rPTwrSCVWPWtafW5OM012dzEqbkNyIW5aZlVARjQ4
PzRMdEd7YztXWjMKemFSYXAwYHV3bUs1e0U1VS0qUDNpeiZMUG12X0NvV2BnOHI/MURiKGNiPThf
OyU9eUA2OSEjJENYJDNVKUw3SlEzCno4fjZHZ2M8NzVoZkdlTUdOKVRDRzNQM1lleDBWUkZsN2hN
N19lQWJ9WmJ8THA3Pil7RkAxU1BGZWowPHNLN3ooagp6WmlXJjs2ajRmIzx4flRaNmh4VmdhTUY9
JnMhQEZKLSpsaDglcEQ2XzIqUDVPclBBT097TmlQc28tWk9OUElCMUsKek9ubykwek17Un5YYXFX
enVpKmEwSCo9Yz88Y3pfbmZDKWZUK0QraCg0aHFyZlF5bDImO2tVcWhLO0NAQmkpamNuCnowSkRJ
JFJJPWNJK3olc1ExUTwjZ3VwampYWV51KGJuR1hQNXQxaFNsPXpqc1NEY1Q7RTY8ISR0MDAwMDxN
TlVNbgpHTFNUWCNaJTVTdAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggOGVlZDQyNS4uNDRmNDYwYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC03ODcsMTIg
Kzc4Nyw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS5fcmVzb3VyY2VzVmlldykKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2VWaWV3VHlwZU1hdGNoZXNSZXNv
dXJjZShyZXNvdXJjZSwgcmVzb3VyY2UuX3Jlc291cmNlc1ZpZXcpKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIHZhciBuZXdWaWV3ID0gdGhpcy5fY3JlYXRlUmVzb3VyY2VWaWV3KHJl
c291cmNlKTsKLSAgICAgICAgaWYgKG5ld1ZpZXcuX19wcm90b19fID09PSByZXNvdXJjZS5fcmVz
b3VyY2VzVmlldy5fX3Byb3RvX18pCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VN
YW5hZ2VyLnJlc291cmNlVmlld1R5cGVNYXRjaGVzUmVzb3VyY2UocmVzb3VyY2UsIHJlc291cmNl
Ll9yZXNvdXJjZXNWaWV3KSkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIG5ld1Zp
ZXcgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLmNyZWF0ZVJlc291cmNlVmlldyhyZXNv
dXJjZSk7CiAKICAgICAgICAgdmFyIG9sZFZpZXcgPSByZXNvdXJjZS5fcmVzb3VyY2VzVmlldzsK
ICAgICAgICAgdmFyIG9sZFZpZXdQYXJlbnROb2RlID0gb2xkVmlldy52aXNpYmxlID8gb2xkVmll
dy5lbGVtZW50LnBhcmVudE5vZGUgOiBudWxsOwpAQCAtODMxLDcgKzgyOCw3IEBAIFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy52aXNpYmxl
UmVzb3VyY2UgJiYgdGhpcy52aXNpYmxlUmVzb3VyY2UuX3Jlc291cmNlc1ZpZXcpCiAgICAgICAg
ICAgICB0aGlzLnZpc2libGVSZXNvdXJjZS5fcmVzb3VyY2VzVmlldy5oaWRlKCk7CiAKLSAgICAg
ICAgdmFyIHZpZXcgPSB0aGlzLl9yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgIHZhciB2aWV3ID0gV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5yZXNvdXJjZVZp
ZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgIHZpZXcuaGVhZGVyc1Zpc2libGUgPSB0
cnVlOwogICAgICAgICB2aWV3LnNob3codGhpcy5fdmlld3NDb250YWluZXJFbGVtZW50KTsKIApA
QCAtODYxLDE1ICs4NTgsNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy51cGRhdGVTaWRlYmFyV2lkdGgoKTsKICAgICB9LAogCi0gICAgX3Jl
c291cmNlVmlld0ZvclJlc291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAg
IGlmICghcmVzb3VyY2UpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgaWYgKCFy
ZXNvdXJjZS5fcmVzb3VyY2VzVmlldykKLSAgICAgICAgICAgIHJlc291cmNlLl9yZXNvdXJjZXNW
aWV3ID0gdGhpcy5fY3JlYXRlUmVzb3VyY2VWaWV3KHJlc291cmNlKTsKLSAgICAgICAgcmV0dXJu
IHJlc291cmNlLl9yZXNvdXJjZXNWaWV3OwotICAgIH0sCi0KICAgICBfdG9nZ2xlTGFyZ2VyUmVz
b3VyY2VzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuYXBwbGljYXRp
b25TZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3MgPSAhV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9u
U2V0dGluZ3MucmVzb3VyY2VzTGFyZ2VSb3dzOwpAQCAtODkwLDQxICs4NzgsNiBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAg
ICBfY3JlYXRlUmVzb3VyY2VWaWV3OiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAocmVzb3VyY2UuY2F0ZWdvcnkpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLnJlc291cmNlQ2F0ZWdvcmllcy5kb2N1bWVudHM6Ci0gICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuc3R5bGVzaGVldHM6Ci0gICAgICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuc2NyaXB0czoKLSAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy54aHI6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU291cmNlVmlldyhyZXNvdXJjZSk7Ci0gICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuaW1hZ2VzOgotICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkltYWdlVmlldyhyZXNvdXJjZSk7Ci0gICAg
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuZm9udHM6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRm9udFZpZXcocmVzb3VyY2UpOwot
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVZpZXcocmVzb3VyY2UpOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9y
ZXNvdXJjZVZpZXdUeXBlTWF0Y2hlc1Jlc291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSwgcmVzb3Vy
Y2VWaWV3KQotICAgIHsKLSAgICAgICAgc3dpdGNoIChyZXNvdXJjZS5jYXRlZ29yeSkgewotICAg
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmRvY3VtZW50czoK
LSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5zdHlsZXNo
ZWV0czoKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5z
Y3JpcHRzOgotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVz
LnhocjoKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VWaWV3IGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLlNvdXJjZVZpZXc7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNv
dXJjZUNhdGVnb3JpZXMuaW1hZ2VzOgotICAgICAgICAgICAgICAgIHJldHVybiByZXNvdXJjZVZp
ZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3OwotICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmZvbnRzOgotICAgICAgICAgICAgICAgIHJl
dHVybiByZXNvdXJjZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRm9udFZpZXc7Ci0gICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJldHVybiByZXNvdXJjZVZpZXcgaW5z
dGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3OwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9LAotCiAgICAgX2dldFBvcG92ZXJBbmNob3I6IGZ1bmN0aW9uKGVs
ZW1lbnQpCiAgICAgewogICAgICAgICB2YXIgYW5jaG9yID0gZWxlbWVudC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKCJuZXR3b3JrLWdyYXBoLWJhciIpIHx8IGVsZW1lbnQuZW5jbG9zaW5n
Tm9kZU9yU2VsZldpdGhDbGFzcygibmV0d29yay1ncmFwaC1sYWJlbCIpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IGZlMmY3ZDIuLmFjYzEyYTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTc0LDExICs3NCwxMSBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZSA9IHsKICAgICAgICAgICAgIGNhc2UgdGhpcy5TY3JpcHQ6
CiAgICAgICAgICAgICAgICAgcmV0dXJuICJzY3JpcHQiOwogICAgICAgICAgICAgY2FzZSB0aGlz
LlhIUjoKLSAgICAgICAgICAgICAgICByZXR1cm4gIlhIUiI7CisgICAgICAgICAgICAgICAgcmV0
dXJuICJ4aHIiOwogICAgICAgICAgICAgY2FzZSB0aGlzLk1lZGlhOgogICAgICAgICAgICAgICAg
IHJldHVybiAibWVkaWEiOwogICAgICAgICAgICAgY2FzZSB0aGlzLldlYlNvY2tldDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gIldlYlNvY2tldCI7CisgICAgICAgICAgICAgICAgcmV0dXJuICJ3
ZWJzb2NrZXQiOwogICAgICAgICAgICAgY2FzZSB0aGlzLk90aGVyOgogICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gIm90aGVyIjsKQEAgLTU5MywxMSArNTkzLDcg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogICAgIGdldENvbnRlbnRz
OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBldmVudHVhbGx5
LCBjYWNoZWQgcmVzb3VyY2VzIHdpbGwgaGF2ZSBubyBpZGVudGlmaWVycy4KLSAgICAgICAgaWYg
KHRoaXMuZnJhbWVJRCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVzb3VyY2VDb250
ZW50KHRoaXMuZnJhbWVJRCwgdGhpcy51cmwsIGNhbGxiYWNrKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSZXNvdXJjZUNvbnRlbnQodGhpcy5pZGVudGlm
aWVyLCBmYWxzZSwgY2FsbGJhY2spOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5h
Z2VyLmdldENvbnRlbnRzKHRoaXMsIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFnZXIuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCmluZGV4IDcyNDRjZWEuLjY3
NDc5ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1h
bmFnZXIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdl
ci5qcwpAQCAtNDAsMTYgKzQwLDE3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIgPSBm
dW5jdGlvbigpCiAgICAgICAgICJkaWRGYWlsTG9hZGluZyIsCiAgICAgICAgICJkaWRMb2FkUmVz
b3VyY2VGcm9tTWVtb3J5Q2FjaGUiLAogICAgICAgICAic2V0T3ZlcnJpZGVDb250ZW50IiwKLSAg
ICAgICAgImRpZENvbW1pdExvYWQiLAorICAgICAgICAiZGlkQ29tbWl0TG9hZEZvckZyYW1lIiwK
ICAgICAgICAgImZyYW1lRGV0YWNoZWRGcm9tUGFyZW50IiwKICAgICAgICAgImRpZENyZWF0ZVdl
YlNvY2tldCIsCiAgICAgICAgICJ3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QiLAog
ICAgICAgICAiZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlIiwKICAgICAgICAg
ImRpZENsb3NlV2ViU29ja2V0Iik7CiAKLSAgICB0aGlzLl9yZXNvdXJjZXMgPSB7fTsKKyAgICB0
aGlzLl9yZXNvdXJjZXNCeUlkID0ge307CiAgICAgdGhpcy5fcmVzb3VyY2VzQnlGcmFtZSA9IHt9
OwogICAgIHRoaXMuX2xhc3RDYWNoZWRJZCA9IDA7CisgICAgSW5zcGVjdG9yQmFja2VuZC5jYWNo
ZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hlZFJlc291cmNlcy5iaW5kKHRoaXMpKTsKIH0K
IAogV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CkBAIC01OSwzNiAr
NjAsNDAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3JbYXJndW1lbnRzW2ldXSA9IHRoaXNbYXJndW1lbnRzW2ldXS5i
aW5kKHRoaXMpOwogICAgIH0sCiAKLSAgICBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Q6IGZ1
bmN0aW9uKGlkZW50aWZpZXIsIHVybCwgZnJhbWVJRCwgaXNNYWluUmVzb3VyY2UpCisgICAgaWRl
bnRpZmllckZvckluaXRpYWxSZXF1ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB1cmwsIGxvYWRl
ciwgaXNNYWluUmVzb3VyY2UpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLlJlc291cmNlKGlkZW50aWZpZXIsIHVybCk7CisgICAgICAgIHZhciByZXNvdXJj
ZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKGlkZW50aWZpZXIsIHVybCwgbG9hZGVyKTsKICAgICAg
ICAgaWYgKGlzTWFpblJlc291cmNlKQogICAgICAgICAgICAgcmVzb3VyY2UuaXNNYWluUmVzb3Vy
Y2UgPSB0cnVlOwotICAgICAgICB0aGlzLl9yZXNvdXJjZXNbaWRlbnRpZmllcl0gPSByZXNvdXJj
ZTsKLQotICAgICAgICBpZiAoZnJhbWVJRCkgewotICAgICAgICAgICAgcmVzb3VyY2UuZnJhbWVJ
RCA9IGZyYW1lSUQ7Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2VzRm9yRnJhbWUgPSB0aGlzLl9y
ZXNvdXJjZXNCeUZyYW1lW2ZyYW1lSURdOwotICAgICAgICAgICAgaWYgKCFyZXNvdXJjZXNGb3JG
cmFtZSkgewotICAgICAgICAgICAgICAgIHJlc291cmNlc0ZvckZyYW1lID0gW107Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlGcmFtZVtmcmFtZUlEXSA9IHJlc291cmNlc0ZvckZy
YW1lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzb3VyY2VzRm9yRnJhbWUucHVzaChy
ZXNvdXJjZSk7Ci0gICAgICAgIH0KIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5u
ZXR3b3JrKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJlc291
cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJl
c291cmNlKHJlc291cmNlKTsKKyAgICB9LAorCisgICAgX2NyZWF0ZVJlc291cmNlOiBmdW5jdGlv
bihpZGVudGlmaWVyLCB1cmwsIGxvYWRlcikKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZSA9
IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2UoaWRlbnRpZmllciwgdXJsKTsKKyAgICAgICAgdGhp
cy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXSA9IHJlc291cmNlOworCisgICAgICAgIHJlc291
cmNlLmxvYWRlciA9IGxvYWRlcjsKKyAgICAgICAgdmFyIHJlc291cmNlc0ZvckZyYW1lID0gdGhp
cy5fcmVzb3VyY2VzQnlGcmFtZVtsb2FkZXIuZnJhbWVJZF07CisgICAgICAgIGlmICghcmVzb3Vy
Y2VzRm9yRnJhbWUpIHsKKyAgICAgICAgICAgIHJlc291cmNlc0ZvckZyYW1lID0ge307CisgICAg
ICAgICAgICB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lW2xvYWRlci5mcmFtZUlkXSA9IHJlc291cmNl
c0ZvckZyYW1lOworICAgICAgICB9CisgICAgICAgIHJlc291cmNlc0ZvckZyYW1lW3Jlc291cmNl
LmlkZW50aWZpZXJdID0gcmVzb3VyY2U7CisgICAgICAgIHJldHVybiByZXNvdXJjZTsKICAgICB9
LAogCiAgICAgd2lsbFNlbmRSZXF1ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCByZXF1
ZXN0LCByZWRpcmVjdFJlc3BvbnNlKQogICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhp
cy5fcmVzb3VyY2VzW2lkZW50aWZpZXJdOworICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9y
ZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwogICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIFJlZGlyZWN0IG1heSBoYXZlIGVtcHR5IFVSTCBh
bmQgd2UnZCBsaWtlIHRvIG5vdCBjcmFzaCB3aXRoIGludmFsaWQgSGFzaE1hcCBlbnRyeS4KICAg
ICAgICAgLy8gU2VlIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVxdWVzdC1yZXR1cm5zLW51
bGwtb24tcmVkaXJlY3QuaHRtbAotICAgICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxs
ICYmIHJlcXVlc3QudXJsLmxlbmd0aCkgeworICAgICAgICB2YXIgaXNSZWRpcmVjdCA9ICFyZWRp
cmVjdFJlc3BvbnNlLmlzTnVsbCAmJiByZXF1ZXN0LnVybC5sZW5ndGg7CisgICAgICAgIGlmIChp
c1JlZGlyZWN0KSB7CiAgICAgICAgICAgICByZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKICAgICAg
ICAgICAgIHRoaXMuZGlkUmVjZWl2ZVJlc3BvbnNlKGlkZW50aWZpZXIsIHRpbWUsICJPdGhlciIs
IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICAgICAgcmVzb3VyY2UgPSB0aGlzLl9hcHBlbmRS
ZWRpcmVjdChyZXNvdXJjZS5pZGVudGlmaWVyLCByZXF1ZXN0LnVybCk7CkBAIC05OSw3ICsxMDQs
OSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmVzb3VyY2UucmVxdWVzdEZvcm1EYXRhID0gcmVxdWVzdC5yZXF1ZXN0Rm9ybURhdGE7CiAgICAg
ICAgIHJlc291cmNlLnN0YXJ0VGltZSA9IHRpbWU7CiAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5wYW5lbHMubmV0d29yaykKKyAgICAgICAgaWYgKGlzUmVkaXJlY3QpCisgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJl
c291cmNlKHJlc291cmNlKTsKICAgICB9LAogCkBAIC0xMDcsMTQgKzExNCwxMiBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIC8vIFdl
IGFsd2F5cyBzdG9yZSBsYXN0IHJlZGlyZWN0IGJ5IHRoZSBvcmlnaW5hbCBpZCBrZXkuIFJlc3Qg
b2YgdGhlIHJlZGlyZWN0cyBhcmUgcmVmZXJlbmNlZCBmcm9tIHdpdGhpbiB0aGUgbGFzdCBvbmUu
CiAKLSAgICAgICAgdmFyIG9yaWdpbmFsUmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNbaWRlbnRp
Zmllcl07CisgICAgICAgIHZhciBvcmlnaW5hbFJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzQnlJ
ZFtpZGVudGlmaWVyXTsKICAgICAgICAgdmFyIHJlZGlyZWN0SWRlbnRpZmllciA9IG9yaWdpbmFs
UmVzb3VyY2UuaWRlbnRpZmllciArICI6IiArIChvcmlnaW5hbFJlc291cmNlLnJlZGlyZWN0cyA/
IG9yaWdpbmFsUmVzb3VyY2UucmVkaXJlY3RzLmxlbmd0aCA6IDApOwogICAgICAgICBvcmlnaW5h
bFJlc291cmNlLmlkZW50aWZpZXIgPSByZWRpcmVjdElkZW50aWZpZXI7Ci0gICAgICAgIHRoaXMu
X3Jlc291cmNlc1tyZWRpcmVjdElkZW50aWZpZXJdID0gb3JpZ2luYWxSZXNvdXJjZTsKLQotICAg
ICAgICB0aGlzLmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChpZGVudGlmaWVyLCByZWRpcmVj
dFVSTCwgb3JpZ2luYWxSZXNvdXJjZS5mcmFtZUlEKTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2Vz
QnlJZFtyZWRpcmVjdElkZW50aWZpZXJdID0gb3JpZ2luYWxSZXNvdXJjZTsKIAotICAgICAgICB2
YXIgbmV3UmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNbaWRlbnRpZmllcl07CisgICAgICAgIHZh
ciBuZXdSZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKGlkZW50aWZpZXIsIHJlZGlyZWN0
VVJMLCBvcmlnaW5hbFJlc291cmNlLmxvYWRlcik7CiAgICAgICAgIG5ld1Jlc291cmNlLnJlZGly
ZWN0cyA9IG9yaWdpbmFsUmVzb3VyY2UucmVkaXJlY3RzIHx8IFtdOwogICAgICAgICBkZWxldGUg
b3JpZ2luYWxSZXNvdXJjZS5yZWRpcmVjdHM7CiAgICAgICAgIG5ld1Jlc291cmNlLnJlZGlyZWN0
cy5wdXNoKG9yaWdpbmFsUmVzb3VyY2UpOwpAQCAtMTIzLDIzICsxMjgsMjggQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICBtYXJrUmVzb3VyY2VBc0Nh
Y2hlZDogZnVuY3Rpb24oaWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9
IHRoaXMuX3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHJlc291cmNlID0gdGhp
cy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICByZXNvdXJjZS5jYWNoZWQgPSB0cnVlOwotCi0g
ICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCi0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7
CiAgICAgfSwKIAogICAgIGRpZFJlY2VpdmVSZXNwb25zZTogZnVuY3Rpb24oaWRlbnRpZmllciwg
dGltZSwgcmVzb3VyY2VUeXBlLCByZXNwb25zZSkKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJj
ZSA9IHRoaXMuX3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHJlc291cmNlID0g
dGhpcy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkK
ICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhS
ZXNwb25zZShyZXNvdXJjZSwgcmVzcG9uc2UpOwogICAgICAgICByZXNvdXJjZS50eXBlID0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLlR5cGVbcmVzb3VyY2VUeXBlXTsKKyAgICAgICAgcmVzb3VyY2Uu
cmVzcG9uc2VSZWNlaXZlZFRpbWUgPSB0aW1lOworCisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOworICAgIH0sCisKKyAgICBfdXBk
YXRlUmVzb3VyY2VXaXRoUmVzcG9uc2U6IGZ1bmN0aW9uKHJlc291cmNlLCByZXNwb25zZSkKKyAg
ICB7CiAgICAgICAgIHJlc291cmNlLm1pbWVUeXBlID0gcmVzcG9uc2UubWltZVR5cGU7CiAgICAg
ICAgIHJlc291cmNlLmV4cGVjdGVkQ29udGVudExlbmd0aCA9IHJlc3BvbnNlLmV4cGVjdGVkQ29u
dGVudExlbmd0aDsKICAgICAgICAgcmVzb3VyY2UudGV4dEVuY29kaW5nTmFtZSA9IHJlc3BvbnNl
LnRleHRFbmNvZGluZ05hbWU7CkBAIC0xNTAsNyArMTYwLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJlc291cmNlLnJlc3BvbnNlSGVhZGVy
cyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHM7CiAgICAgICAgIHJlc291cmNlLmNvbm5lY3Rp
b25SZXVzZWQgPSByZXNwb25zZS5jb25uZWN0aW9uUmV1c2VkOwogICAgICAgICByZXNvdXJjZS5j
b25uZWN0aW9uSUQgPSByZXNwb25zZS5jb25uZWN0aW9uSUQ7Ci0gICAgICAgIHJlc291cmNlLnJl
c3BvbnNlUmVjZWl2ZWRUaW1lID0gdGltZTsKIAogICAgICAgICBpZiAocmVzcG9uc2Uud2FzQ2Fj
aGVkKQogICAgICAgICAgICAgcmVzb3VyY2UuY2FjaGVkID0gdHJ1ZTsKQEAgLTE2MSwxMDEgKzE3
MCwxMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICByZXNvdXJjZS5yZXF1ZXN0SGVhZGVycyA9IHJlc3BvbnNlLnJhd0hlYWRlcnMucmVx
dWVzdEhlYWRlcnM7CiAgICAgICAgICAgICByZXNvdXJjZS5yZXNwb25zZUhlYWRlcnMgPSByZXNw
b25zZS5yYXdIZWFkZXJzLnJlc3BvbnNlSGVhZGVyczsKICAgICAgICAgfQotCi0gICAgICAgIGlm
IChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCiAgICAg
ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGg6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGxlbmd0
aFJlY2VpdmVkKQogICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2Vz
W2lkZW50aWZpZXJdOworICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNCeUlk
W2lkZW50aWZpZXJdOwogICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHJlc291cmNlLnJlc291cmNlU2l6ZSArPSBsZW5ndGhSZWNlaXZlZDsKICAg
ICAgICAgcmVzb3VyY2UuZW5kVGltZSA9IHRpbWU7CiAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5wYW5lbHMubmV0d29yaykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
ay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
Lm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCiAgICAgZGlkRmlu
aXNoTG9hZGluZzogZnVuY3Rpb24oaWRlbnRpZmllciwgZmluaXNoVGltZSkKICAgICB7Ci0gICAg
ICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAgICAgICAg
dmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAg
aWYgKCFyZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICByZXNvdXJjZS5m
aW5pc2hlZCA9IHRydWU7CiAgICAgICAgIHJlc291cmNlLmVuZFRpbWUgPSBmaW5pc2hUaW1lOwog
Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCi0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJj
ZSk7CiAgICAgfSwKIAogICAgIGRpZEZhaWxMb2FkaW5nOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0
aW1lLCBsb2NhbGl6ZWREZXNjcmlwdGlvbikKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9
IHRoaXMuX3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHJlc291cmNlID0gdGhp
cy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICByZXNvdXJjZS5mYWlsZWQgPSB0cnVlOwogICAg
ICAgICByZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LnBhbmVscy5uZXR3b3JrKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3Jr
LnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
bmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKLSAgICBkaWRMb2Fk
UmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGU6IGZ1bmN0aW9uKHRpbWUsIGZyYW1lSUQsIGNhY2hlZFJl
c291cmNlKQorICAgIGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZTogZnVuY3Rpb24odGlt
ZSwgY2FjaGVkUmVzb3VyY2UpCiAgICAgewogICAgICAgICB2YXIgaWRlbnRpZmllciA9ICJjYWNo
ZWQ6IiArIHRoaXMuX2xhc3RDYWNoZWRJZCsrOwotICAgICAgICB0aGlzLmlkZW50aWZpZXJGb3JJ
bml0aWFsUmVxdWVzdChpZGVudGlmaWVyLCBjYWNoZWRSZXNvdXJjZS51cmwsIGZyYW1lSUQpOwot
Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAg
ICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UoaWRlbnRpZmllciwgY2Fj
aGVkUmVzb3VyY2UudXJsLCBjYWNoZWRSZXNvdXJjZS5sb2FkZXIpOworICAgICAgICB0aGlzLl91
cGRhdGVSZXNvdXJjZVdpdGhDYWNoZWRSZXNvdXJjZShyZXNvdXJjZSwgY2FjaGVkUmVzb3VyY2Up
OwogICAgICAgICByZXNvdXJjZS5jYWNoZWQgPSB0cnVlOwotICAgICAgICByZXNvdXJjZS5zdGFy
dFRpbWUgPSByZXNvdXJjZS5yZXNwb25zZVJlY2VpdmVkVGltZSA9IHRpbWU7Ci0gICAgICAgIHJl
c291cmNlLnJlc291cmNlU2l6ZSA9IGNhY2hlZFJlc291cmNlLmVuY29kZWRTaXplKCk7CisgICAg
ICAgIHJlc291cmNlLnN0YXJ0VGltZSA9IHJlc291cmNlLnJlc3BvbnNlUmVjZWl2ZWRUaW1lID0g
cmVzb3VyY2UuZW5kVGltZSA9IHRpbWU7CiAKLSAgICAgICAgdGhpcy5kaWRSZWNlaXZlUmVzcG9u
c2UoaWRlbnRpZmllciwgdGltZSwgY2FjaGVkUmVzb3VyY2UucmVzcG9uc2UpOworICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgIH0s
CisKKyAgICBfdXBkYXRlUmVzb3VyY2VXaXRoQ2FjaGVkUmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291
cmNlLCBjYWNoZWRSZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHJlc291cmNlLnR5cGUgPSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZVtjYWNoZWRSZXNvdXJjZS50eXBlXTsKKyAgICAgICAgcmVz
b3VyY2UucmVzb3VyY2VTaXplID0gY2FjaGVkUmVzb3VyY2UuZW5jb2RlZFNpemU7CisgICAgICAg
IHRoaXMuX3VwZGF0ZVJlc291cmNlV2l0aFJlc3BvbnNlKHJlc291cmNlLCBjYWNoZWRSZXNvdXJj
ZS5yZXNwb25zZSk7CiAgICAgfSwKIAogICAgIHNldE92ZXJyaWRlQ29udGVudDogZnVuY3Rpb24o
aWRlbnRpZmllciwgc291cmNlU3RyaW5nLCB0eXBlKQogICAgIHsKLSAgICAgICAgdmFyIHJlc291
cmNlID0gdGhpcy5fcmVzb3VyY2VzW2lkZW50aWZpZXJdOworICAgICAgICB2YXIgcmVzb3VyY2Ug
PSB0aGlzLl9yZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwogICAgICAgICBpZiAoIXJlc291cmNl
KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHJlc291cmNlLnR5cGUgPSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UuVHlwZVt0eXBlXTsKICAgICAgICAgcmVzb3VyY2Uub3ZlcnJpZGVuQ29u
dGVudCA9IHNvdXJjZVN0cmluZzsKIAotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5u
ZXR3b3JrKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJlc291
cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJl
c291cmNlKHJlc291cmNlKTsKICAgICB9LAogCi0gICAgZGlkQ29tbWl0TG9hZDogZnVuY3Rpb24o
ZnJhbWVJRCkKKyAgICBkaWRDb21taXRMb2FkRm9yRnJhbWU6IGZ1bmN0aW9uKGZyYW1lVHJlZSwg
bG9hZGVySWQpCiAgICAgeworICAgICAgICB0aGlzLl9jbGVhclJlc291cmNlcyhmcmFtZVRyZWUu
aWQsIGxvYWRlcklkKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGZyYW1lVHJlZS5jaGlsZHJl
biAmJiBmcmFtZVRyZWUuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLmRp
ZENvbW1pdExvYWRGb3JGcmFtZShmcmFtZVRyZWUuY2hpbGRyZW5baV0sIGxvYWRlcklkKTsKICAg
ICB9LAogCi0gICAgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQ6IGZ1bmN0aW9uKGZyYW1lSUQpCisg
ICAgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQ6IGZ1bmN0aW9uKGZyYW1lVHJlZSkKICAgICB7Ci0g
ICAgICAgIHZhciByZXNvdXJjZXNGb3JGcmFtZSA9IHRoaXMuX3Jlc291cmNlc0J5RnJhbWVbZnJh
bWVJRF07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyByZXNvdXJjZXNGb3JGcmFtZSAmJiBpIDwg
cmVzb3VyY2VzRm9yRnJhbWUubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBkZWxldGUgdGhpcy5f
cmVzb3VyY2VzW3Jlc291cmNlc0ZvckZyYW1lW2ldLmlkZW50aWZpZXJdOwotICAgICAgICBkZWxl
dGUgdGhpcy5fcmVzb3VyY2VzQnlGcmFtZVtmcmFtZUlEXTsKKyAgICAgICAgdGhpcy5kaWRDb21t
aXRMb2FkRm9yRnJhbWUoZnJhbWVUcmVlLCAwKTsKKyAgICB9LAorCisgICAgX2NsZWFyUmVzb3Vy
Y2VzOiBmdW5jdGlvbihmcmFtZUlkLCBsb2FkZXJUb1ByZXNlcnZlSWQpCisgICAgeworICAgICAg
ICB2YXIgcmVzb3VyY2VzRm9yRnJhbWUgPSB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lW2ZyYW1lSWRd
OworICAgICAgICBpZiAocmVzb3VyY2VzRm9yRnJhbWUpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgZm9yICh2YXIgaWQgaW4gcmVzb3VyY2VzRm9yRnJhbWUpIHsKKyAgICAgICAgICAg
IHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc0J5SWRbaWRdOworICAgICAgICAgICAgaWYg
KHJlc291cmNlLmxvYWRlcklkID09PSBsb2FkZXJUb1ByZXNlcnZlSWQpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fcmVzb3VyY2VzQnlJZFtpZF07
CisgICAgICAgICAgICBkZWxldGUgcmVzb3VyY2VzRm9yRnJhbWVbaWRdOworICAgICAgICB9Cisg
ICAgICAgIGlmICghT2JqZWN0LmtleXMocmVzb3VyY2VzRm9yRnJhbWUpLmxlbmd0aCkKKyAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lW2ZyYW1lSWRdOwogICAgIH0sCiAK
ICAgICBkaWRDcmVhdGVXZWJTb2NrZXQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHJlcXVlc3RVUkwp
CiAgICAgewogICAgICAgICB0aGlzLmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChpZGVudGlm
aWVyLCByZXF1ZXN0VVJMKTsKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2Vz
W2lkZW50aWZpZXJdOworICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNCeUlk
W2lkZW50aWZpZXJdOwogICAgICAgICByZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291
cmNlLlR5cGUuV2ViU29ja2V0OwogCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5l
dHdvcmspCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuYWRkUmVzb3Vy
Y2UocmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuYWRkUmVz
b3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKICAgICB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFr
ZVJlcXVlc3Q6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIHJlcXVlc3QpCiAgICAgewotICAg
ICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNbaWRlbnRpZmllcl07CisgICAgICAg
IHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc0J5SWRbaWRlbnRpZmllcl07CiAgICAgICAg
IGlmICghcmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2NCwxMyArMjg3LDEy
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICBy
ZXNvdXJjZS53ZWJTb2NrZXRSZXF1ZXN0S2V5MyA9IHJlcXVlc3Qud2ViU29ja2V0UmVxdWVzdEtl
eTM7CiAgICAgICAgIHJlc291cmNlLnN0YXJ0VGltZSA9IHRpbWU7CiAKLSAgICAgICAgaWYgKFdl
Ykluc3BlY3Rvci5wYW5lbHMubmV0d29yaykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCiAg
ICAgZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlOiBmdW5jdGlvbihpZGVudGlm
aWVyLCB0aW1lLCByZXNwb25zZSkKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMu
X3Jlc291cmNlc1tpZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVz
b3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAg
ICAgIHJldHVybjsKIApAQCAtMjgwLDE4ICszMDIsMTAzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICByZXNvdXJjZS53ZWJTb2NrZXRDaGFsbGVu
Z2VSZXNwb25zZSA9IHJlc3BvbnNlLndlYlNvY2tldENoYWxsZW5nZVJlc3BvbnNlOwogICAgICAg
ICByZXNvdXJjZS5yZXNwb25zZVJlY2VpdmVkVGltZSA9IHRpbWU7CiAKLSAgICAgICAgaWYgKFdl
Ykluc3BlY3Rvci5wYW5lbHMubmV0d29yaykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCiAg
ICAgZGlkQ2xvc2VXZWJTb2NrZXQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUpCiAgICAgewot
ICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNbaWRlbnRpZmllcl07CisgICAg
ICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc0J5SWRbaWRlbnRpZmllcl07CiAgICAg
ICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHJlc291cmNl
LmVuZFRpbWUgPSB0aW1lOwogCi0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdv
cmspCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291
cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlZnJl
c2hSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgfSwKKworICAgIF9wcm9jZXNzQ2FjaGVkUmVzb3Vy
Y2VzOiBmdW5jdGlvbihtYWluRnJhbWVQYXlsb2FkKQorICAgIHsKKyAgICAgICAgdGhpcy5fYXBw
ZW5kRnJhbWVzUmVjdXJzaXZlbHkobnVsbCwgbWFpbkZyYW1lUGF5bG9hZCk7CisgICAgfSwKKwor
ICAgIF9hcHBlbmRGcmFtZXNSZWN1cnNpdmVseTogZnVuY3Rpb24ocGFyZW50RnJhbWVJZCwgZnJh
bWVQYXlsb2FkKQorICAgIHsKKyAgICAgICAgdmFyIGZyYW1lUmVzb3VyY2UgPSB0aGlzLl9jcmVh
dGVSZXNvdXJjZShudWxsLCBmcmFtZVBheWxvYWQucmVzb3VyY2UudXJsLCBmcmFtZVBheWxvYWQu
cmVzb3VyY2UubG9hZGVyKTsKKyAgICAgICAgZnJhbWVSZXNvdXJjZS50eXBlID0gV2ViSW5zcGVj
dG9yLlJlc291cmNlLlR5cGVbIkRvY3VtZW50Il07CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMuc3RvcmFnZS5hZGRGcmFtZShwYXJlbnRGcmFtZUlkLCBmcmFtZVBheWxvYWQuaWQsIGZyYW1l
UmVzb3VyY2UpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBmcmFtZVBheWxvYWQuY2hpbGRy
ZW4gJiYgaSA8IGZyYW1lUGF5bG9hZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAg
IHRoaXMuX2FwcGVuZEZyYW1lc1JlY3Vyc2l2ZWx5KGZyYW1lUGF5bG9hZC5pZCwgZnJhbWVQYXls
b2FkLmNoaWxkcmVuW2ldKTsKKworICAgICAgICBpZiAoIWZyYW1lUGF5bG9hZC5zdWJyZXNvdXJj
ZXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHJlc291cmNlcyA9IFtdOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lUGF5bG9hZC5zdWJyZXNvdXJjZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBjYWNoZWRSZXNvdXJjZSA9IGZyYW1lUGF5bG9h
ZC5zdWJyZXNvdXJjZXNbaV07CisgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9jcmVh
dGVSZXNvdXJjZShudWxsLCBjYWNoZWRSZXNvdXJjZS51cmwsIGNhY2hlZFJlc291cmNlLmxvYWRl
cik7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZSwgY2FjaGVkUmVzb3VyY2UpOworICAgICAgICAgICAgcmVzb3VyY2VzLnB1c2gocmVz
b3VyY2UpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyYXRvcihhLCBiKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJl
KGIuZGlzcGxheU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJlc291cmNlcy5zb3J0KGNvbXBh
cmF0b3IpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zdG9yYWdlLmFkZEZyYW1lUmVz
b3VyY2UoZnJhbWVQYXlsb2FkLmlkLCByZXNvdXJjZXNbaV0pOwogICAgIH0KIH0KKworV2ViSW5z
cGVjdG9yLlJlc291cmNlTWFuYWdlci5jcmVhdGVSZXNvdXJjZVZpZXcgPSBmdW5jdGlvbihyZXNv
dXJjZSkKK3sKKyAgICBzd2l0Y2ggKHJlc291cmNlLmNhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmRvY3VtZW50czoKKyAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuc3R5bGVzaGVldHM6CisgICAgY2FzZSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VDYXRlZ29yaWVzLnNjcmlwdHM6CisgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VDYXRlZ29yaWVzLnhocjoKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU291
cmNlVmlldyhyZXNvdXJjZSk7CisgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29y
aWVzLmltYWdlczoKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3KHJl
c291cmNlKTsKKyAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuZm9udHM6
CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkZvbnRWaWV3KHJlc291cmNlKTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXco
cmVzb3VyY2UpOworICAgIH0KK30KKworV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5yZXNv
dXJjZVZpZXdUeXBlTWF0Y2hlc1Jlc291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2UsIHJlc291cmNl
VmlldykKK3sKKyAgICBzd2l0Y2ggKHJlc291cmNlLmNhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmRvY3VtZW50czoKKyAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuc3R5bGVzaGVldHM6CisgICAgY2FzZSBXZWJJbnNwZWN0
b3IucmVzb3VyY2VDYXRlZ29yaWVzLnNjcmlwdHM6CisgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VDYXRlZ29yaWVzLnhocjoKKyAgICAgICAgcmV0dXJuIHJlc291cmNlVmlldy5fX3Byb3Rv
X18gPT09IFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZTsKKyAgICBjYXNlIFdlYklu
c3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuaW1hZ2VzOgorICAgICAgICByZXR1cm4gcmVzb3Vy
Y2VWaWV3Ll9fcHJvdG9fXyA9PT0gV2ViSW5zcGVjdG9yLkltYWdlVmlldy5wcm90b3R5cGU7Cisg
ICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmZvbnRzOgorICAgICAgICBy
ZXR1cm4gcmVzb3VyY2VWaWV3Ll9fcHJvdG9fXyA9PT0gV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnBy
b3RvdHlwZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gcmVzb3VyY2VWaWV3Ll9fcHJv
dG9fXyA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5wcm90b3R5cGU7CisgICAgfQorfQor
CitXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnJlc291cmNlVmlld0ZvclJlc291cmNlID0g
ZnVuY3Rpb24ocmVzb3VyY2UpCit7CisgICAgaWYgKCFyZXNvdXJjZSkKKyAgICAgICAgcmV0dXJu
IG51bGw7CisgICAgaWYgKCFyZXNvdXJjZS5fcmVzb3VyY2VzVmlldykKKyAgICAgICAgcmVzb3Vy
Y2UuX3Jlc291cmNlc1ZpZXcgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLmNyZWF0ZVJl
c291cmNlVmlldyhyZXNvdXJjZSk7CisgICAgcmV0dXJuIHJlc291cmNlLl9yZXNvdXJjZXNWaWV3
OworfQorCitXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLmdldENvbnRlbnRzID0gZnVuY3Rp
b24ocmVzb3VyY2UsIGNhbGxiYWNrKQoreworICAgIC8vIEZJWE1FOiBldmVudHVhbGx5LCBjYWNo
ZWQgcmVzb3VyY2VzIHdpbGwgaGF2ZSBubyBpZGVudGlmaWVycy4KKyAgICBpZiAocmVzb3VyY2Uu
bG9hZGVyKQorICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlc291cmNlQ29udGVudChyZXNvdXJj
ZS5sb2FkZXIuZnJhbWVJZCwgcmVzb3VyY2UudXJsLCBjYWxsYmFjayk7CisgICAgZWxzZQorICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJlc291cmNlQ29udGVudChyZXNvdXJjZS5pZGVudGlm
aWVyLCBmYWxzZSwgY2FsbGJhY2spOworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IGFlNjdiZWYuLjM5NzZlMDcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTU1Nyw3ICs1NTcsNyBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzW2ldOwogICAgICAgICAgICAgaWYgKCFyZXNv
dXJjZS5faXRlbXNUcmVlRWxlbWVudCB8fCAhcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQuc2Vs
ZWN0YWJsZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHZhciByZXNv
dXJjZVZpZXcgPSB0aGlzLnJlc291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsKKyAgICAg
ICAgICAgIHZhciByZXNvdXJjZVZpZXcgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnJl
c291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsKICAgICAgICAgICAgIGlmICghcmVzb3Vy
Y2VWaWV3LnBlcmZvcm1TZWFyY2ggfHwgcmVzb3VyY2VWaWV3ID09PSB2aXNpYmxlVmlldykKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHZpZXdzLnB1c2gocmVzb3VyY2VW
aWV3KTsKQEAgLTc4OSw3ICs3ODksNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMuY3VycmVudFF1ZXJ5ICYmIHJlc291cmNlLl9p
dGVtc1RyZWVFbGVtZW50KQogICAgICAgICAgICAgcmVzb3VyY2UuX2l0ZW1zVHJlZUVsZW1lbnQu
dXBkYXRlRXJyb3JzQW5kV2FybmluZ3MoKTsKIAotICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVz
b3VyY2VWaWV3Rm9yUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICB2YXIgdmlldyA9IFdlYklu
c3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VWaWV3Rm9yUmVzb3VyY2UocmVzb3VyY2Up
OwogICAgICAgICBpZiAodmlldy5hZGRNZXNzYWdlKQogICAgICAgICAgICAgdmlldy5hZGRNZXNz
YWdlKG1zZyk7CiAgICAgfSwKQEAgLTgyMywxMCArODIzLDEwIEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghcmVzb3VyY2UgfHwgIXJlc291
cmNlLl9yZXNvdXJjZXNWaWV3KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICh0
aGlzLl9yZXNvdXJjZVZpZXdJc0NvbnNpc3RlbnRXaXRoQ2F0ZWdvcnkocmVzb3VyY2UsIHJlc291
cmNlLl9yZXNvdXJjZXNWaWV3KSkKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1h
bmFnZXIucmVzb3VyY2VWaWV3VHlwZU1hdGNoZXNSZXNvdXJjZShyZXNvdXJjZSwgcmVzb3VyY2Uu
X3Jlc291cmNlc1ZpZXcpKQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbmV3Vmll
dyA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIuY3JlYXRlUmVzb3VyY2VWaWV3KHJlc291
cmNlKTsKIAotICAgICAgICB2YXIgbmV3VmlldyA9IHRoaXMuX2NyZWF0ZVJlc291cmNlVmlldyhy
ZXNvdXJjZSk7CiAgICAgICAgIGlmICghdGhpcy5jdXJyZW50UXVlcnkgJiYgcmVzb3VyY2UuX2l0
ZW1zVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXNvdXJjZS5faXRlbXNUcmVlRWxlbWVudC51
cGRhdGVFcnJvcnNBbmRXYXJuaW5ncygpOwogCkBAIC04NjgsNyArODY4LDcgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJs
ZVJlc291cmNlICYmIHRoaXMudmlzaWJsZVJlc291cmNlLl9yZXNvdXJjZXNWaWV3KQogICAgICAg
ICAgICAgdGhpcy52aXNpYmxlUmVzb3VyY2UuX3Jlc291cmNlc1ZpZXcuaGlkZSgpOwogCi0gICAg
ICAgIHZhciB2aWV3ID0gdGhpcy5yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgIHZhciB2aWV3ID0gV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5yZXNvdXJjZVZp
ZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgIHZpZXcuaGVhZGVyc1Zpc2libGUgPSB0
cnVlOwogICAgICAgICB2aWV3LnNob3codGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQpOwogCkBA
IC05MDksMTggKzkwOSw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMudXBkYXRlU2lkZWJhcldpZHRoKCk7CiAgICAgfSwKIAotICAgIHJl
c291cmNlVmlld0ZvclJlc291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAg
IGlmICghcmVzb3VyY2UpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgaWYgKCFy
ZXNvdXJjZS5fcmVzb3VyY2VzVmlldykKLSAgICAgICAgICAgIHJlc291cmNlLl9yZXNvdXJjZXNW
aWV3ID0gdGhpcy5fY3JlYXRlUmVzb3VyY2VWaWV3KHJlc291cmNlKTsKLSAgICAgICAgcmV0dXJu
IHJlc291cmNlLl9yZXNvdXJjZXNWaWV3OwotICAgIH0sCi0KICAgICBzb3VyY2VGcmFtZUZvclJl
c291cmNlOiBmdW5jdGlvbihyZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHZhciB2aWV3ID0gdGhp
cy5yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgIHZhciB2aWV3ID0g
V2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5yZXNvdXJjZVZpZXdGb3JSZXNvdXJjZShyZXNv
dXJjZSk7CiAgICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgIHJldHVybiBudWxsOwogCkBA
IC0xMDY4LDQwICsxMDU5LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5jYWxjdWxhdG9yID0gdGhpcy5zdW1tYXJ5QmFyLmNhbGN1bGF0
b3IgPSBzZWxlY3RlZE9wdGlvbi5jYWxjdWxhdG9yOwogICAgIH0sCiAKLSAgICBfcmVzb3VyY2VW
aWV3SXNDb25zaXN0ZW50V2l0aENhdGVnb3J5OiBmdW5jdGlvbihyZXNvdXJjZSwgcmVzb3VyY2VW
aWV3KQotICAgIHsKLSAgICAgICAgc3dpdGNoIChyZXNvdXJjZS5jYXRlZ29yeSkgewotICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmRvY3VtZW50czoKLSAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5zdHlsZXNoZWV0
czoKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5zY3Jp
cHRzOgotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLnho
cjoKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VWaWV3Ll9fcHJvdG9fXyA9PT0gV2Vi
SW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzLmltYWdlczoKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzb3VyY2VWaWV3Ll9fcHJvdG9fXyA9PT0gV2ViSW5zcGVjdG9yLkltYWdlVmlldy5wcm90b3R5
cGU7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuZm9u
dHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlVmlldy5fX3Byb3RvX18gPT09IFdl
Ykluc3BlY3Rvci5Gb250Vmlldy5wcm90b3R5cGU7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgIHJldHVybiByZXNvdXJjZVZpZXcuX19wcm90b19fID09PSBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfY3Jl
YXRlUmVzb3VyY2VWaWV3OiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHN3aXRj
aCAocmVzb3VyY2UuY2F0ZWdvcnkpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJl
c291cmNlQ2F0ZWdvcmllcy5kb2N1bWVudHM6Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZUNhdGVnb3JpZXMuc3R5bGVzaGVldHM6Ci0gICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuc2NyaXB0czoKLSAgICAgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy54aHI6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlVmlldyhyZXNvdXJjZSk7Ci0gICAgICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuaW1hZ2VzOgotICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkltYWdlVmlldyhyZXNvdXJjZSk7Ci0gICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZUNhdGVnb3JpZXMuZm9udHM6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRm9udFZpZXcocmVzb3VyY2UpOwotICAgICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVZpZXcocmVzb3VyY2UpOwotICAgICAgICB9Ci0gICAgfSwKLQogICAgIHNldFNpZGVi
YXJXaWR0aDogZnVuY3Rpb24od2lkdGgpCiAgICAgewogICAgICAgICBpZiAodGhpcy52aXNpYmxl
UmVzb3VyY2UpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CmluZGV4IDBhNjUzYzkuLjJmMTYyOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcwpAQCAtNTg3LDcgKzU4Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoc2NyaXB0T3JSZXNvdXJjZSBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSkgewogICAgICAgICAgICAgaWYgKCFXZWJJbnNwZWN0
b3IucGFuZWxzLnJlc291cmNlcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAg
ICAgICAgIHZpZXcgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5yZXNvdXJjZVZpZXdG
b3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNlKTsKKyAgICAgICAgICAgIHZpZXcgPSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnJlc291cmNlVmlld0ZvclJlc291cmNlKHNjcmlwdE9yUmVz
b3VyY2UpOwogICAgICAgICAgICAgdmlldy5oZWFkZXJzVmlzaWJsZSA9IGZhbHNlOwogICAgICAg
ICB9IGVsc2UgaWYgKHNjcmlwdE9yUmVzb3VyY2UgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2Ny
aXB0KQogICAgICAgICAgICAgdmlldyA9IHRoaXMuc2NyaXB0Vmlld0ZvclNjcmlwdChzY3JpcHRP
clJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpz
CmluZGV4IDBiZmYxMzYuLjJkMjI3MTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdG9yYWdlUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0b3JhZ2VQYW5lbC5qcwpAQCAtMzQsNiArMzQsMTMgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VQ
YW5lbCA9IGZ1bmN0aW9uKGRhdGFiYXNlKQogICAgIHRoaXMuY3JlYXRlU2lkZWJhcigpOwogICAg
IHRoaXMuc2lkZWJhckVsZW1lbnQuYWRkU3R5bGVDbGFzcygib3V0bGluZS1kaXNjbG9zdXJlIGZp
bHRlci1hbGwgY2hpbGRyZW4gc21hbGwiKTsKIAorICAgIGlmIChQcmVmZXJlbmNlcy5uZXR3b3Jr
UGFuZWxFbmFibGVkKSB7CisgICAgICAgIHRoaXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50ID0g
bmV3IFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlJlc291cmNlcyIpLCAiZnJhbWUtc3RvcmFnZS10cmVlLWl0ZW0iKTsK
KyAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLnJlc291cmNlc0xpc3RU
cmVlRWxlbWVudCk7CisgICAgICAgIHRoaXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50LmV4cGFu
ZCgpOworICAgICAgICB0aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWQgPSB7fTsKKyAgICB9CisK
ICAgICB0aGlzLmRhdGFiYXNlc0xpc3RUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rv
cmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEYXRh
YmFzZXMiKSwgImRhdGFiYXNlLXN0b3JhZ2UtdHJlZS1pdGVtIik7CiAgICAgdGhpcy5zaWRlYmFy
VHJlZS5hcHBlbmRDaGlsZCh0aGlzLmRhdGFiYXNlc0xpc3RUcmVlRWxlbWVudCk7CiAgICAgdGhp
cy5kYXRhYmFzZXNMaXN0VHJlZUVsZW1lbnQuZXhwYW5kKCk7CkBAIC0xMTIsNiArMTE5LDUzIEBA
IFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5zaWRlYmFyVHJlZS5zZWxlY3RlZFRyZWVFbGVtZW50LmRlc2VsZWN0KCk7CiAgICAgfSwKIAor
ICAgIGFkZEZyYW1lOiBmdW5jdGlvbihwYXJlbnRGcmFtZUlkLCBmcmFtZUlkLCBmcmFtZVJlc291
cmNlKQorICAgIHsKKyAgICAgICAgdmFyIHBhcmVudFRyZWVFbGVtZW50ID0gcGFyZW50RnJhbWVJ
ZCA/IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtwYXJlbnRGcmFtZUlkXSA6IHRoaXMucmVz
b3VyY2VzTGlzdFRyZWVFbGVtZW50OworICAgICAgICBpZiAoIXBhcmVudFRyZWVFbGVtZW50KSB7
CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJObyBmcmFtZSB3aXRoIGlkOiIgKyBwYXJlbnRG
cmFtZUlkICsgIiB0byByb3V0ZSAiICsgZGlzcGxheU5hbWUgKyAiIHRvLiIpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgZnJhbWVUcmVlRWxlbWVudCA9IG5l
dyBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudCh0aGlzLCBmcmFtZUlkLCBmcmFtZVJlc291
cmNlKTsKKyAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lSWRdID0gZnJh
bWVUcmVlRWxlbWVudDsKKyAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJh
bWVUcmVlRWxlbWVudCk7CisgICAgfSwKKworICAgIHJlbW92ZUZyYW1lOiBmdW5jdGlvbihmcmFt
ZUlkKQorICAgIHsKKyAgICAgICAgdmFyIGZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxl
bWVudEZvckZyYW1lSWRbZnJhbWVJZF07CisgICAgICAgIGlmICghZnJhbWVUcmVlRWxlbWVudCkg
eworICAgICAgICAgICAgY29uc29sZS5lcnJvcigiTm8gZnJhbWUgd2l0aCBpZDoiICsgZnJhbWVJ
ZCArICIgdG8gcmVtb3ZlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgZGVsZXRlIHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlkXTsKKyAgICAg
ICAgZnJhbWVUcmVlRWxlbWVudC5wYXJlbnQucmVtb3ZlQ2hpbGQoZnJhbWVUcmVlRWxlbWVudCk7
CisgICAgfSwKKworICAgIGFkZEZyYW1lUmVzb3VyY2U6IGZ1bmN0aW9uKGZyYW1lSWQsIHJlc291
cmNlKQorICAgIHsKKyAgICAgICAgdmFyIGZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxl
bWVudEZvckZyYW1lSWRbZnJhbWVJZF07CisgICAgICAgIGlmICghZnJhbWVUcmVlRWxlbWVudCkg
eworICAgICAgICAgICAgY29uc29sZS5lcnJvcigiTm8gZnJhbWUgd2l0aCBpZDoiICsgZnJhbWVJ
ZCArICIgdG8gYWRkIHJlc291cmNlIHRvLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIHJlc291cmNlVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudCh0aGlzLCByZXNvdXJjZSk7CisgICAgICAgIGZyYW1l
VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQocmVzb3VyY2VUcmVlRWxlbWVudCk7CisgICAgfSwKKwor
ICAgIHJlbW92ZUZyYW1lUmVzb3VyY2VzOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIHsKKyAgICAg
ICAgdmFyIGZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWRbZnJh
bWVJZF07CisgICAgICAgIGlmICghZnJhbWVUcmVlRWxlbWVudCkgeworICAgICAgICAgICAgY29u
c29sZS5lcnJvcigiTm8gZnJhbWUgd2l0aCBpZDoiICsgZnJhbWVJZCArICIgdG8gcmVtb3ZlIHJl
c291cmNlcyBmcm9tLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IGZyYW1lVHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICB9LAorCiAgICAgYWRkRGF0
YWJhc2U6IGZ1bmN0aW9uKGRhdGFiYXNlKQogICAgIHsKICAgICAgICAgdGhpcy5fZGF0YWJhc2Vz
LnB1c2goZGF0YWJhc2UpOwpAQCAtMTY2LDYgKzIyMCwxMyBAQCBXZWJJbnNwZWN0b3IuU3RvcmFn
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBzaG93UmVzb3Vy
Y2U6IGZ1bmN0aW9uKHJlc291cmNlKQorICAgIHsKKyAgICAgICAgdmFyIHZpZXcgPSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnJlc291cmNlVmlld0ZvclJlc291cmNlKHJlc291cmNlKTsK
KyAgICAgICAgdmlldy5oZWFkZXJzVmlzaWJsZSA9IGZhbHNlOworICAgICAgICB0aGlzLl9pbm5l
clNob3dWaWV3KHZpZXcpOworICAgIH0sCisKICAgICBzaG93RGF0YWJhc2U6IGZ1bmN0aW9uKGRh
dGFiYXNlLCB0YWJsZU5hbWUpCiAgICAgewogICAgICAgICBpZiAoIWRhdGFiYXNlKQpAQCAtNDI4
LDkgKzQ4OSw5IEBAIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAg
ICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcyh0aGlzLl9pY29uQ2xhc3Mp
OwogCi0gICAgICAgIHZhciBpbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bWciKTsKLSAgICAgICAgaW1hZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICJpY29uIjsKLSAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAgICAgICAg
dGhpcy5pbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAg
ICAgdGhpcy5pbWFnZUVsZW1lbnQuY2xhc3NOYW1lID0gImljb24iOworICAgICAgICB0aGlzLmxp
c3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmltYWdlRWxlbWVudCk7CiAKICAgICAgICAg
dmFyIHRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAg
ICAgdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fdGl0bGVUZXh0OwpAQCAtNDQwLDYg
KzUwMSwxMiBAQCBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBzZWxlY3Rpb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiAgICAgICAgIHNlbGVjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gInNlbGVjdGlv
biI7CiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKHNlbGVjdGlvbkVs
ZW1lbnQpOworICAgIH0sCisKKyAgICBvbnJldmVhbDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMubGlzdEl0ZW1FbGVtZW50KQorICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVs
ZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChmYWxzZSk7CiAgICAgfQogfQogCkBAIC00NTks
NiArNTI2LDUyIEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiB9CiBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnBy
b3RvdHlwZTsKIAorV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9y
YWdlUGFuZWwsIGZyYW1lSWQsIGZyYW1lUmVzb3VyY2UpCit7CisgICAgV2ViSW5zcGVjdG9yLkJh
c2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIGZyYW1lUmVzb3Vy
Y2UuZGlzcGxheU5hbWUsICJmcmFtZS1zdG9yYWdlLXRyZWUtaXRlbSIpOworICAgIHRoaXMuX2Zy
YW1lSWQgPSBmcmFtZUlkOworICAgIHRoaXMuX3Jlc291cmNlID0gZnJhbWVSZXNvdXJjZTsKK30K
KworV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIG9uc2Vs
ZWN0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hvd1Jl
c291cmNlKHRoaXMuX3Jlc291cmNlKTsKKyAgICB9Cit9CitXZWJJbnNwZWN0b3IuRnJhbWVUcmVl
RWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJl
ZUVsZW1lbnQucHJvdG90eXBlOworCitXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVt
ZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCByZXNvdXJjZSkKK3sKKyAgICBXZWJJbnNwZWN0
b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQYW5lbCwgcmVzb3Vy
Y2UuZGlzcGxheU5hbWUsICJyZXNvdXJjZS1zaWRlYmFyLXRyZWUtaXRlbSByZXNvdXJjZXMtY2F0
ZWdvcnktIiArIHJlc291cmNlLmNhdGVnb3J5Lm5hbWUpOworICAgIHRoaXMuX3Jlc291cmNlID0g
cmVzb3VyY2U7Cit9CisKK1dlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlVHJlZUVsZW1lbnQucHJv
dG90eXBlID0geworICAgIG9uc2VsZWN0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlz
Ll9zdG9yYWdlUGFuZWwuc2hvd1Jlc291cmNlKHRoaXMuX3Jlc291cmNlKTsKKyAgICB9LAorCisg
ICAgb25hdHRhY2g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNl
U3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaC5jYWxsKHRoaXMpOworCisgICAg
ICAgIGlmICh0aGlzLl9yZXNvdXJjZS5jYXRlZ29yeSA9PT0gV2ViSW5zcGVjdG9yLnJlc291cmNl
Q2F0ZWdvcmllcy5pbWFnZXMpIHsKKyAgICAgICAgICAgIHZhciBwcmV2aWV3SW1hZ2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgICAgICAgIHByZXZpZXdJbWFnZS5jbGFz
c05hbWUgPSAiaW1hZ2UtcmVzb3VyY2UtaWNvbi1wcmV2aWV3IjsKKyAgICAgICAgICAgIHByZXZp
ZXdJbWFnZS5zcmMgPSB0aGlzLl9yZXNvdXJjZS51cmw7CisKKyAgICAgICAgICAgIHZhciBpY29u
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgaWNv
bkVsZW1lbnQuY2xhc3NOYW1lID0gImljb24iOworICAgICAgICAgICAgaWNvbkVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJldmlld0ltYWdlKTsKKyAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50
LnJlcGxhY2VDaGlsZChpY29uRWxlbWVudCwgdGhpcy5pbWFnZUVsZW1lbnQpOworICAgICAgICB9
CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90
b3R5cGU7CisKIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3Rv
cmFnZVBhbmVsLCBkYXRhYmFzZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVl
RWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQYW5lbCwgZGF0YWJhc2UubmFtZSwgImRhdGFiYXNl
LXN0b3JhZ2UtdHJlZS1pdGVtIiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJL
aXQucXJjCmluZGV4IDFlNWE1MDguLjQ4MWY4YjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjCkBAIC0xNTgsNiArMTU4LDcgQEAKICAgICA8ZmlsZT5JbWFnZXMvZXhjbHVk
ZUJ1dHRvbkdseXBoLnBuZzwvZmlsZT4KICAgICA8ZmlsZT5JbWFnZXMvZm9jdXNCdXR0b25HbHlw
aC5wbmc8L2ZpbGU+CiAgICAgPGZpbGU+SW1hZ2VzL2ZvcndhcmQucG5nPC9maWxlPgorICAgIDxm
aWxlPkltYWdlcy9mcmFtZS5wbmc8L2ZpbGU+CiAgICAgPGZpbGU+SW1hZ2VzL2dlYXJCdXR0b25H
bHlwaC5wbmc8L2ZpbGU+CiAgICAgPGZpbGU+SW1hZ2VzL2dsb3NzeUhlYWRlci5wbmc8L2ZpbGU+
CiAgICAgPGZpbGU+SW1hZ2VzL2dsb3NzeUhlYWRlclByZXNzZWQucG5nPC9maWxlPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCA3MDEyZWI2Li5kYjI5YTZh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtMTg4MSw2
ICsxODgxLDEwIEBAIGJvZHkuaW5hY3RpdmUgLnNpZGViYXIgewogICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYigyMzIsIDIzMiwgMjMyKTsKIH0KIAorLmZyYW1lLXN0b3JhZ2UtdHJlZS1pdGVtIC5p
Y29uIHsKKyAgICBjb250ZW50OiB1cmwoSW1hZ2VzL2ZyYW1lLnBuZyk7Cit9CisKIC5kYXRhYmFz
ZS1zdG9yYWdlLXRyZWUtaXRlbSAuaWNvbiB7CiAgICAgY29udGVudDogdXJsKEltYWdlcy9kYXRh
YmFzZS5wbmcpOwogfQpAQCAtMTkxOSw3ICsxOTIzLDcgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJh
ciB7CiAgICAgb3ZlcmZsb3cteDogYXV0bzsKIH0KIAotLnN0b3JhZ2UucGFuZWwgLm91dGxpbmUt
ZGlzY2xvc3VyZSA+IG9sIHsKKy5zdG9yYWdlLnBhbmVsIC5zaWRlYmFyLm91dGxpbmUtZGlzY2xv
c3VyZSA+IG9sIHsKICAgICBtYXJnaW4tbGVmdDogLTEycHg7CiAgICAgcGFkZGluZy1yaWdodDog
MHB4ICFpbXBvcnRhbnQ7CiB9CkBAIC0zMzk0LDcgKzMzOTgsNyBAQCBib2R5LmluYWN0aXZlIC5z
aWRlYmFyLXRyZWUtaXRlbS5zZWxlY3RlZCB7CiAgICAgY29udGVudDogIiI7CiB9CiAKLS5yZXNv
dXJjZS1zaWRlYmFyLXRyZWUtaXRlbS5yZXNvdXJjZXMtY2F0ZWdvcnktaW1hZ2VzIC5pbWFnZS1y
ZXNvdXJjZS1pY29uLXByZXZpZXcgeworLnJlc291cmNlcy1jYXRlZ29yeS1pbWFnZXMgLmltYWdl
LXJlc291cmNlLWljb24tcHJldmlldyB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgIG1h
cmdpbjogYXV0bzsKICAgICB0b3A6IDNweDsKQEAgLTM0MTIsNyArMzQxNiw3IEBAIGJvZHkuaW5h
Y3RpdmUgLnNpZGViYXItdHJlZS1pdGVtLnNlbGVjdGVkIHsKICAgICBjb250ZW50OiAiIjsKIH0K
IAotLmNoaWxkcmVuLnNtYWxsIC5yZXNvdXJjZS1zaWRlYmFyLXRyZWUtaXRlbS5yZXNvdXJjZXMt
Y2F0ZWdvcnktaW1hZ2VzIC5pbWFnZS1yZXNvdXJjZS1pY29uLXByZXZpZXcgeworLmNoaWxkcmVu
LnNtYWxsIC5yZXNvdXJjZXMtY2F0ZWdvcnktaW1hZ2VzIC5pbWFnZS1yZXNvdXJjZS1pY29uLXBy
ZXZpZXcgewogICAgIHRvcDogMnB4OwogICAgIGJvdHRvbTogMXB4OwogICAgIGxlZnQ6IDNweDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDliZDg4ZDYuLjRh
ZmM0NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNTA3
LDggKzUwNyw4IEBAIFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAg
Ly8gdGhpcy5jaGFuZ2VzID0gbmV3IFdlYkluc3BlY3Rvci5DaGFuZ2VzVmlldyh0aGlzLmRyYXdl
cik7CiAgICAgLy8gVE9ETzogUmVtb3ZlIGNsYXNzPSJoaWRkZW4iIGZyb20gaW5zcGVjdG9yLmh0
bWwgb24gYnV0dG9uI2NoYW5nZXMtc3RhdHVzLWJhci1pdGVtCiAgICAgdGhpcy5kcmF3ZXIudmlz
aWJsZVZpZXcgPSB0aGlzLmNvbnNvbGU7Ci0gICAgLy8gRklYTUU6IHVuY29tbWVudCB3aGVuIHJl
YWR5LgotICAgIC8vIHRoaXMucmVzb3VyY2VNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5SZXNv
dXJjZU1hbmFnZXIoKTsKKyAgICBpZiAoUHJlZmVyZW5jZXMubmV0d29ya1BhbmVsRW5hYmxlZCkK
KyAgICAgICAgdGhpcy5yZXNvdXJjZU1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNl
TWFuYWdlcigpOwogICAgIHRoaXMuZG9tQWdlbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTUFnZW50
KCk7CiAKICAgICB0aGlzLnJlc291cmNlQ2F0ZWdvcmllcyA9IHsK
</data>
<flag name="review"
          id="61483"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>