<?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>152726</bug_id>
          
          <creation_ts>2016-01-04 21:12:27 -0800</creation_ts>
          <short_desc>Web Inspector: Make creating new rules in the Styles sidebar simpler</short_desc>
          <delta_ts>2016-01-07 13:28:09 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152636</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-04 21:12:27 -0800</bug_when>
    <thetext>Instead of creating a new rule (and therefore section/tree-item) each time the user clicks the &quot;Add Rule&quot; button, look to see if there are existing rules that have the same selector and focus/select the first rule that doesn&apos;t have any properties (if there are none, then create the new rule like normal).  This should also apply to the context menu item functions (like creating ::before/::after).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152637</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-04 21:12:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/24052188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152647</commentid>
    <comment_count>2</comment_count>
      <attachid>268265</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-04 21:29:47 -0800</bug_when>
    <thetext>Created attachment 268265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153487</commentid>
    <comment_count>3</comment_count>
      <attachid>268265</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-07 11:41:33 -0800</bug_when>
    <thetext>Comment on attachment 268265
Patch

Rejecting attachment 268265 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 268265, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
mothy Hatcher&apos;]&quot; exit_code: 255 cwd: /Volumes/Data/EWS/WebKit

Parsed 10 diffs from patch file(s).
patching file Source/WebInspectorUI/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
Original content of Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js mismatches at /Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply line 283.

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Timothy Hatcher&apos;]&quot; exit_code: 255 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/663408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153525</commentid>
    <comment_count>4</comment_count>
      <attachid>268477</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-01-07 13:05:24 -0800</bug_when>
    <thetext>Created attachment 268477
Patch

Horray for localizedStrings.js XD XD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153539</commentid>
    <comment_count>5</comment_count>
      <attachid>268477</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-07 13:28:06 -0800</bug_when>
    <thetext>Comment on attachment 268477
Patch

Clearing flags on attachment: 268477

Committed r194717: &lt;http://trac.webkit.org/changeset/194717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153540</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-07 13:28:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268265</attachid>
            <date>2016-01-04 21:29:47 -0800</date>
            <delta_ts>2016-01-07 13:05:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152726-20160104222913.patch</filename>
            <type>text/plain</type>
            <size>27072</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJmYjZkNjdhYTM1NDFlYTYyN2QyYjhlNTMwNDk2
ODNlODllMWE3NzAuLjQ0NGQ5YzQwNmI5MzM3NTA2NTEwOTE1OWFlYzllMDFiOGYwNDFkYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE2LTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IE1ha2UgY3JlYXRpbmcgbmV3IHJ1bGVzIGluIHRoZSBTdHlsZXMgc2lkZWJhciBzaW1w
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IGNyZWF0aW5nIGEgbmV3IHJ1bGVzIG9mIGFueSBraW5kLCBmaXJzdCBsb29rIHRvIHNlZSBpZiBp
dCBhbHJlYWR5IGV4aXN0cyBpbgorICAgICAgICBhbm90aGVyIHJ1bGUgdGhhdCBoYXMgbm8gcHJv
cGVydGllcy4gSWYgZm91bmQsIGZvY3VzL3NlbGVjdCBpdCBpbnN0ZWFkIG9mIGNyZWF0aW5nCisg
ICAgICAgIGEgbmV3IHJ1bGUuIE90aGVyd2lzZSwgY3JlYXRlIHRoZSBuZXcgcnVsZSBsaWtlIG5v
cm1hbC4KKworICAgICAgICBBbHNvIGNoYW5nZWQgdGhlIHdheSBpbiB3aGljaCBwcmV2aW91c2x5
LWZvY3VzZWQgc2VjdGlvbnMvdHJlZS1pdGVtcyBhcmUgc2F2ZWQKKyAgICAgICAgdG8gcmVseSB1
cG9uIHRoZSBzZWxlY3RvciBvZiB0aGUgbmV3IHJ1bGUgYW5kIHdoZXRoZXIgdGhlIHNlY3Rpb24g
Zm9yIHRoYXQgcnVsZQorICAgICAgICBpcyBlbXB0eSBhbmQgYW4gaW5zcGVjdG9yIHJ1bGUuCisK
KyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmlzSW5z
cGVjdG9yUnVsZSk6CisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3R5bGUgaXMgYW4gaW5z
cGVjdG9yIHJ1bGUuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
LnByb3RvdHlwZS5oYXNQcm9wZXJ0aWVzKToKKyAgICAgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBz
dHlsZSBoYXMgQ1NTIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlU3R5bGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMu
cHJvdG90eXBlLnJ1bGVzRm9yU2VsZWN0b3IucnVsZUhhc1NlbGVjdG9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5ydWxlc0ZvclNlbGVjdG9yKToKKyAg
ICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgQ1NTUnVsZSB0aGF0IG1hdGNoIHRoZSBnaXZlbiBzZWxl
Y3RvciBhbmQgYXJlIG5vdAorICAgICAgICBpbiBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cucHJvdG90eXBlLl91cGRh
dGVNZXRyaWNzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvblNlY3Rpb24ucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJv
dG90eXBlLmNvbW1lbnRBbGxQcm9wZXJ0aWVzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
dWxlc1N0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5yZWZyZXNoLmFwcGVuZFN0eWxlU2VjdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVsZXNTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5
cGUucmVmcmVzaC5jc3NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbkVkaXRvckZvY3VzZWQpOgorICAg
ICAgICBOb3cgc2F2ZXMgdGhlIG5ld2x5IGZvY3VzZWQgc2VjdGlvbiBhcyB0aGUgcHJldmlvdXNs
eS1mb2N1c2VkIHNlY3Rpb24uCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SdWxlc1N0eWxlRGV0
YWlsc1BhbmVsLnByb3RvdHlwZS5jc3NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV3SW5z
cGVjdG9yUnVsZVdpdGhTZWxlY3Rvcik6CisgICAgICAgIFJlbmFtZWQgZnJvbSBjc3NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUuIE5vdyBuZWVkcworICAg
ICAgICBhIHNlbGVjdG9yIGFyZ3VtZW50LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVsZXNT
dHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUubmV3UnVsZUJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLnNlY3Rpb25G
b3JTdHlsZSk6CisgICAgICAgIFJldHVybnMgdGhlIGZpcnN0IHNlY3Rpb24gdGhhdCBoYXMgYSBz
dHlsZSB3aXRoIG1hdGNoaW5nIHNlbGVjdG9yLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVs
ZXNTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuZm9jdXNFbXB0eVNlY3Rpb25XaXRoU3R5bGUp
OgorICAgICAgICBGaW5kcyB0aGUgc2VjdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBz
dHlsZSBhbmQsIGlmIGVtcHR5LCBmb2N1c2VzIGl0LgorCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UnVsZXNTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUubm9kZVN0eWxlc1JlZnJlc2hlZCk6Cisg
ICAgICAgIE5vIGxvbmdlciBjbGVhcnMgdGhlIHByZXZpb3VzbHktZm9jdXNlZCBzZWN0aW9uLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlv
bi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24ucHJvdG90
eXBlLnVwZGF0ZS5jcmVhdGVTZWxlY3Rvckl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLnByb3RvdHlwZS50cmVlSXRlbUZv
clN0eWxlKToKKyAgICAgICAgUmV0dXJucyB0aGUgZmlyc3QgdHJlZSBpdGVtIHRoYXQgaGFzIGEg
c3R5bGUgd2l0aCBtYXRjaGluZyBzZWxlY3Rvci4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLnByb3RvdHlwZS5zZWxlY3RFbXB0eVN0eWxlVHJlZUl0
ZW0pOgorICAgICAgICBGaW5kcyB0aGUgdHJlZSBpdGVtIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdp
dmVuIHN0eWxlIGFuZCwgaWYgZW1wdHksIHNlbGVjdHMgaXQuCisKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5wcm90b3R5cGUuX2FkZE5ld1J1bGUpOgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVt
KToKKyAgICAgICAgTm93IHJlcXVpcmVzIGEgZGVsZWdhdGUgb2JqZWN0LgorCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5faGFuZGxl
Q29udGV4dE1lbnVFdmVudCk6CisKIDIwMTYtMDEtMDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggZGVidWcgY29udGV4
dCBtZW51IHN0cmluZyBhbmQgcmVsb2FkIHdpdGhvdXQgY2FjaGUgdG9vbHRpcCBzdHJpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDY3Mzg2ZjBmZGFlMzU3NDY5NDA4MTk0
NWM5Njc0M2M2YTQwODEyZTUuLjJhMjMyNDk1NDYwYmVjZGNiNzdlMmFhNDZiODg5MjgzZmFlM2Rk
ZjMgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgNDcKemNtY2NkZ0pyYG5tSlBqPUMtVngp
T3JBVExZeDJoY3RJZkBtZCh5IUlLWSNPcDFTWCZWRXdFWW14MnEhbkRXP3xPCgpkZWx0YSAyNwps
Y21WKyQwT2JGJGBVS2VjMWg5Pmh2LWd2TlhPaihgNVIrWn01VkhzVERNOGY7NGRNVSoKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCmluZGV4IDZkZjcxMjk4MDcyMTVkMzQyMGIzNzI0
YjRlZWE5ZTRjN2UyMWMwNmIuLmYyOWI1ZmY2NjJlZjdiYWQxZmE0YTJjOTg4M2UwMDkxNzkxYjFi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCkBAIC0zMzIsNiArMzMyLDE2
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNs
YXJhdGlvbiBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIHJldHVybiBzdHlsZVRleHQ7CiAg
ICAgfQogCisgICAgaXNJbnNwZWN0b3JSdWxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9vd25lclJ1bGUgJiYgdGhpcy5fb3duZXJSdWxlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5DU1NT
dHlsZVNoZWV0LlR5cGUuSW5zcGVjdG9yOworICAgIH0KKworICAgIGhhc1Byb3BlcnRpZXMoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuICEhdGhpcy5fcHJvcGVydGllcy5sZW5ndGg7CisgICAgfQor
CiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBnZXQgbm9kZVN0eWxlcygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5
bGVzLmpzCmluZGV4IDljOWQxYjg0ZDNhOWUwOTVjOGVjNTAwOTVhNzEzMTZjMDYwYTVlOWQuLjI1
MjljMWJjZjYxYTI1NWNjNTJjOTAzZDY2MjMwNDJhMTBlNGI2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5
bGVzLmpzCkBAIC0yNjgsNiArMjY4LDIyIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzID0g
Y2xhc3MgRE9NTm9kZVN0eWxlcyBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdlci5wcmVmZXJyZWRJbnNwZWN0b3JTdHlsZVNoZWV0
Rm9yRnJhbWUodGhpcy5fbm9kZS5mcmFtZSwgaW5zcGVjdG9yU3R5bGVTaGVldEF2YWlsYWJsZS5i
aW5kKHRoaXMpKTsKICAgICB9CiAKKyAgICBydWxlc0ZvclNlbGVjdG9yKHNlbGVjdG9yKQorICAg
IHsKKyAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciB8fCB0aGlzLl9ub2RlLmFwcHJvcHJpYXRl
U2VsZWN0b3JGb3IodHJ1ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gcnVsZUhhc1NlbGVjdG9yKHJ1
bGUpIHsKKyAgICAgICAgICAgIHJldHVybiAhcnVsZS5tZWRpYUxpc3QubGVuZ3RoICYmIHJ1bGUu
c2VsZWN0b3JUZXh0ID09PSBzZWxlY3RvcjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBydWxl
cyA9IHRoaXMuX21hdGNoZWRSdWxlcy5maWx0ZXIocnVsZUhhc1NlbGVjdG9yKTsKKworICAgICAg
ICBmb3IgKGxldCBpZCBpbiB0aGlzLl9wc2V1ZG9FbGVtZW50cykKKyAgICAgICAgICAgIHJ1bGVz
ID0gcnVsZXMuY29uY2F0KHRoaXMuX3BzZXVkb0VsZW1lbnRzW2lkXS5tYXRjaGVkUnVsZXMuZmls
dGVyKHJ1bGVIYXNTZWxlY3RvcikpOworCisgICAgICAgIHJldHVybiBydWxlczsKKyAgICB9CisK
ICAgICBnZXQgbWF0Y2hlZFJ1bGVzKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9tYXRj
aGVkUnVsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qcwppbmRl
eCBiZmU3NDBkMDdlYjk4NjBkZDQ1Yzg4ZmVhODVmMzVhMGFmOWQyODQ1Li5mYzE2N2Y1YTJjM2M5
YWU3YTM2ZWY2N2VlMTk3YmQzN2ExZGU0YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JveE1vZGVsRGV0
YWlsc1NlY3Rpb25Sb3cuanMKQEAgLTE5Myw3ICsxOTMsNyBAQCBXZWJJbnNwZWN0b3IuQm94TW9k
ZWxEZXRhaWxzU2VjdGlvblJvdyA9IGNsYXNzIEJveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cgZXh0
ZW5kcwogICAgICAgICB0aGlzLl9ib3hFbGVtZW50cyA9IFtdOwogICAgICAgICB2YXIgYm94ZXMg
PSBbImNvbnRlbnQiLCAicGFkZGluZyIsICJib3JkZXIiLCAibWFyZ2luIiwgInBvc2l0aW9uIl07
CiAKLSAgICAgICAgaWYgKCFzdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aCkgeworICAgICAgICBpZiAo
IXN0eWxlLmhhc1Byb3BlcnRpZXMoKSkgewogICAgICAgICAgICAgdGhpcy5zaG93RW1wdHlNZXNz
YWdlKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKaW5kZXggN2Q4MTYzMDRiNGU1MzlhZTBiYTAzNTg3
ZDg2OWFjYzViMzBkZGYyZC4uMzhiMTM1ZDk1YzRkY2RjNjUzNjdiNTI2NmIwYjlkMmRlZDlmOWVl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKQEAgLTQ0
NCw4ICs0NDQsMTYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0g
Y2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRHVwbGljYXRlIFNlbGVjdG9yIiksICgpID0+IHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9k
ZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAg
ICAgIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uRm9jdXNOZXh0TmV3
SW5zcGVjdG9yUnVsZSgpOworICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVv
ZiB0aGlzLl9kZWxlZ2F0ZS5mb2N1c0VtcHR5U2VjdGlvbldpdGhTdHlsZSA9PT0gImZ1bmN0aW9u
IikgeworICAgICAgICAgICAgICAgIGxldCBleGlzdGluZ1J1bGVzID0gdGhpcy5fc3R5bGUubm9k
ZVN0eWxlcy5ydWxlc0ZvclNlbGVjdG9yKHRoaXMuX2N1cnJlbnRTZWxlY3RvclRleHQpOworICAg
ICAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2YgZXhpc3RpbmdSdWxlcykgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuZm9jdXNFbXB0eVNlY3Rpb25XaXRoU3R5bGUo
cnVsZS5zdHlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUg
JiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uRm9jdXNO
ZXdJbnNwZWN0b3JSdWxlV2l0aFNlbGVjdG9yID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uRm9jdXNOZXdJbnNw
ZWN0b3JSdWxlV2l0aFNlbGVjdG9yKHRoaXMuX2N1cnJlbnRTZWxlY3RvclRleHQpOwogCiAgICAg
ICAgICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFkZFJ1bGUodGhpcy5fY3VycmVudFNlbGVj
dG9yVGV4dCk7CiAgICAgICAgIH0pOwpAQCAtNDY0LDE0ICs0NzIsMTYgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24gZXh0ZW4KICAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQWRkICVzIFJ1bGUiKS5mb3JtYXQocHNldWRvQ2xhc3NTZWxlY3Rv
ciksICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGUubm9kZS5zZXRQc2V1
ZG9DbGFzc0VuYWJsZWQocHNldWRvQ2xhc3MsIHRydWUpOwogCi0gICAgICAgICAgICAgICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlID09PSAiZnVuY3Rpb24iKQot
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlKCk7CisgICAgICAgICAgICAgICAgICAg
IGxldCBzZWxlY3RvcjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLm93bmVy
UnVsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gdGhpcy5fc3R5bGUub3du
ZXJSdWxlLnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBzZWxlY3Rvci50ZXh0ICsgcHNldWRv
Q2xhc3NTZWxlY3Rvcikuam9pbigiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSB0aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0
ICsgcHNldWRvQ2xhc3NTZWxlY3RvcjsKKworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
ZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uRm9jdXNOZXdJbnNwZWN0b3JSdWxlV2l0aFNlbGVjdG9yID09PSAiZnVuY3Rpb24iKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb25Gb2N1c05ld0luc3BlY3RvclJ1bGVXaXRoU2VsZWN0b3Ioc2VsZWN0b3IpOwogCi0gICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBwc2V1ZG9TZWxlY3RvcnMgPSB0aGlzLl9zdHlsZS5vd25lclJ1bGUu
c2VsZWN0b3JzLm1hcCgoc2VsZWN0b3IpID0+IHNlbGVjdG9yLnRleHQgKyBwc2V1ZG9DbGFzc1Nl
bGVjdG9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMu
YWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCIpKTsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFk
ZFJ1bGUodGhpcy5fY3VycmVudFNlbGVjdG9yVGV4dCArIHBzZXVkb0NsYXNzU2VsZWN0b3IpOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFkZFJ1bGUoc2VsZWN0
b3IpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00
ODAsMTUgKzQ5MCwzNCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24g
PSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAgICAgICAgbGV0
IHBzZXVkb0VsZW1lbnRTZWxlY3RvciA9ICI6OiIgKyBwc2V1ZG9FbGVtZW50OwogICAgICAgICAg
ICAgY29uc3Qgc3R5bGVUZXh0ID0gImNvbnRlbnQ6IFwiXCI7IjsKIAotICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNyZWF0ZSAlcyBSdWxl
IikuZm9ybWF0KHBzZXVkb0VsZW1lbnRTZWxlY3RvciksICgpID0+IHsKLSAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVj
bGFyYXRpb25TZWN0aW9uRm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVsZSA9PT0gImZ1bmN0aW9uIikK
LSAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlKCk7CisgICAgICAgICAgICBsZXQgZXhpc3Rp
bmdTZWN0aW9uID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBl
b2YgdGhpcy5fZGVsZWdhdGUuc2VjdGlvbkZvclN0eWxlID09PSAiZnVuY3Rpb24iKSB7CisgICAg
ICAgICAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLnJ1
bGVzRm9yU2VsZWN0b3IodGhpcy5fY3VycmVudFNlbGVjdG9yVGV4dCArIHBzZXVkb0VsZW1lbnRT
ZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nUnVsZXMubGVuZ3RoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZG4ndCByZWFsbHkgZXZlciBiZSBtb3Jl
IHRoYW4gb25lIHBzZXVkby1lbGVtZW50IHJ1bGUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhh
dCBpcyBub3QgaW4gYSBtZWRpYSBxdWVyeS4gQXMgc3VjaCwganVzdCBmb2N1cyB0aGUgZmlyc3Qg
cnVsZQorICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGl0IGlz
IHRoZSBvbmx5IG9uZSBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nU2Vj
dGlvbiA9IHRoaXMuX2RlbGVnYXRlLnNlY3Rpb25Gb3JTdHlsZShleGlzdGluZ1J1bGVzWzBdLnN0
eWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxl
dCB0aXRsZSA9IGV4aXN0aW5nU2VjdGlvbiA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9jdXMg
JXMgUnVsZSIpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDcmVhdGUgJXMgUnVsZSIpOworICAg
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbSh0aXRsZS5mb3JtYXQocHNldWRvRWxlbWVu
dFNlbGVjdG9yKSwgKCkgPT4geworICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1NlY3Rpb24p
IHsKKyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdTZWN0aW9uLmZvY3VzKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBsZXQgc2VsZWN0b3I7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLm93bmVyUnVs
ZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSB0aGlzLl9zdHlsZS5vd25lclJ1bGUu
c2VsZWN0b3JzLm1hcCgoc2VsZWN0b3IpID0+IHNlbGVjdG9yLnRleHQgKyBwc2V1ZG9FbGVtZW50
U2VsZWN0b3IpLmpvaW4oIiwgIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBzZWxlY3RvciA9IHRoaXMuX2N1cnJlbnRTZWxlY3RvclRleHQgKyBwc2V1ZG9FbGVt
ZW50U2VsZWN0b3I7CisKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlw
ZW9mIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uRm9jdXNOZXdJbnNw
ZWN0b3JSdWxlV2l0aFNlbGVjdG9yID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9kZWxlZ2F0ZS5jc3NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV3SW5zcGVj
dG9yUnVsZVdpdGhTZWxlY3RvcihzZWxlY3Rvcik7CiAKLSAgICAgICAgICAgICAgICBpZiAodGhp
cy5fc3R5bGUub3duZXJSdWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBwc2V1ZG9TZWxl
Y3RvcnMgPSB0aGlzLl9zdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JzLm1hcCgoc2VsZWN0b3IpID0+
IHNlbGVjdG9yLnRleHQgKyBwc2V1ZG9FbGVtZW50U2VsZWN0b3IpOwotICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFkZFJ1bGUocHNldWRvU2VsZWN0b3JzLmpvaW4o
IiwiKSwgc3R5bGVUZXh0KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fc3R5bGUubm9kZVN0eWxlcy5hZGRSdWxlKHRoaXMuX2N1cnJlbnRTZWxlY3Rv
clRleHQgKyBwc2V1ZG9FbGVtZW50U2VsZWN0b3IsIHN0eWxlVGV4dCk7CisgICAgICAgICAgICAg
ICAgdGhpcy5fc3R5bGUubm9kZVN0eWxlcy5hZGRSdWxlKHNlbGVjdG9yLCBzdHlsZVRleHQpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0
eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDQyZTU0MDJjZWUwNmFkNTE3MjRkZDQ0
NjI3YjNjZTBkMzJiZTJjM2YuLmU4ZTk2NzViM2U1OWU2NGVlYmZhMTI0YTk3OGNlYzZmY2NhM2Mw
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpz
CkBAIC0zMzgsNyArMzM4LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0
RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IKIAogICAgIGNvbW1l
bnRBbGxQcm9wZXJ0aWVzKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc3R5bGUucHJvcGVy
dGllcy5sZW5ndGgpCisgICAgICAgIGlmICghdGhpcy5fc3R5bGUuaGFzUHJvcGVydGllcygpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGZvciAodmFyIHByb3BlcnR5IG9m
IHRoaXMuX3N0eWxlLnByb3BlcnRpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1Bh
bmVsLmpzCmluZGV4IGVmZWQwMjNkNDhiYmQyNDYyOWZiNzkzZGM0MGZhOWMzYzQ4YTJjNmUuLmZi
YWNlZTBlZTk2NDE0YTQ0YzQzMjAwYzA3N2IwYzQzMDBlMmFiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVs
ZXNTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAtMTUzLDkgKzE1Myw5IEBAIFdlYkluc3BlY3Rvci5S
dWxlc1N0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgUnVsZXNTdHlsZURldGFpbHNQYW5lbCBleHRl
bmRzIFdlYkluCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBzZWN0aW9uLnJl
ZnJlc2goKTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuX2ZvY3VzTmV4dE5ld0luc3BlY3RvclJ1
bGUgJiYgc3R5bGUub3duZXJSdWxlICYmIHN0eWxlLm93bmVyUnVsZS50eXBlID09PSBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVTaGVldC5UeXBlLkluc3BlY3RvcikgeworICAgICAgICAgICAgaWYgKHN0
eWxlLmlzSW5zcGVjdG9yUnVsZSgpICYmIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9
PT0gc3R5bGUuc2VsZWN0b3JUZXh0ICYmICFzdHlsZS5oYXNQcm9wZXJ0aWVzKCkpIHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzZWRTZWN0aW9uID0gc2VjdGlvbjsKLSAgICAg
ICAgICAgICAgICBkZWxldGUgdGhpcy5fZm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVsZTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0b3IgPSBudWxsOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAvLyBSZXNldCBsYXN0SW5Hcm91cCBpbiBjYXNlIHRoZSBv
cmRlci9ncm91cGluZyBjaGFuZ2VkLgpAQCAtMzExLDEyICszMTEsMTMgQEAgV2ViSW5zcGVjdG9y
LlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBSdWxlc1N0eWxlRGV0YWlsc1BhbmVsIGV4
dGVuZHMgV2ViSW4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGNzc1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uRWRpdG9yRm9jdXNlZChpZ25vcmVkU2VjdGlvbikKKyAgICBjc3NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbkVkaXRvckZvY3VzZWQoZm9jdXNlZFNlY3Rpb24pCiAgICAg
ewotICAgICAgICBmb3IgKHZhciBzZWN0aW9uIG9mIHRoaXMuX3NlY3Rpb25zKSB7Ci0gICAgICAg
ICAgICBpZiAoc2VjdGlvbiAhPT0gaWdub3JlZFNlY3Rpb24pCisgICAgICAgIGZvciAobGV0IHNl
Y3Rpb24gb2YgdGhpcy5fc2VjdGlvbnMpIHsKKyAgICAgICAgICAgIGlmIChzZWN0aW9uICE9PSBm
b2N1c2VkU2VjdGlvbikKICAgICAgICAgICAgICAgICBzZWN0aW9uLmNsZWFyU2VsZWN0aW9uKCk7
CiAgICAgICAgIH0KKyAgICAgICAgdGhpcy5fcHJldmlvdXNGb2N1c2VkU2VjdGlvbiA9IGZvY3Vz
ZWRTZWN0aW9uOwogICAgIH0KIAogICAgIGNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uRWRpdG9y
TmV4dFJ1bGUoY3VycmVudFNlY3Rpb24pCkBAIC0zNzcsOSArMzc4LDkgQEAgV2ViSW5zcGVjdG9y
LlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBSdWxlc1N0eWxlRGV0YWlsc1BhbmVsIGV4
dGVuZHMgV2ViSW4KICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImZpbHRl
ci1ub24tbWF0Y2hpbmciLCAhbWF0Y2hGb3VuZCk7CiAgICAgfQogCi0gICAgY3NzU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlKCkKKyAgICBjc3NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV3SW5zcGVjdG9yUnVsZVdpdGhTZWxlY3RvcihzZWxlY3Rv
cikKICAgICB7Ci0gICAgICAgIHRoaXMuX2ZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgPSB0cnVl
OworICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0b3IgPSBzZWxlY3RvcjsKICAg
ICB9CiAKICAgICBuZXdSdWxlQnV0dG9uQ2xpY2tlZCgpCkBAIC0zODcsOCArMzg4LDM4IEBAIFdl
Ykluc3BlY3Rvci5SdWxlc1N0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgUnVsZXNTdHlsZURldGFp
bHNQYW5lbCBleHRlbmRzIFdlYkluCiAgICAgICAgIGlmICh0aGlzLm5vZGVTdHlsZXMubm9kZS5p
c0luU2hhZG93VHJlZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2Zv
Y3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgPSB0cnVlOwotICAgICAgICB0aGlzLm5vZGVTdHlsZXMu
YWRkUnVsZSgpOworICAgICAgICBmb3IgKGxldCBleGlzdGluZ1J1bGUgb2YgdGhpcy5ub2RlU3R5
bGVzLnJ1bGVzRm9yU2VsZWN0b3IoKSkgeworICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNFbXB0
eVNlY3Rpb25XaXRoU3R5bGUoZXhpc3RpbmdSdWxlLnN0eWxlKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0
b3IgPSB0aGlzLm5vZGVTdHlsZXMubm9kZS5hcHByb3ByaWF0ZVNlbGVjdG9yRm9yKHRydWUpOwor
ICAgICAgICB0aGlzLm5vZGVTdHlsZXMuYWRkUnVsZSh0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2Vs
ZWN0b3IpOworICAgIH0KKworICAgIHNlY3Rpb25Gb3JTdHlsZShzdHlsZSkKKyAgICB7CisgICAg
ICAgIGlmIChzdHlsZS5fX3J1bGVzU2VjdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5f
X3J1bGVzU2VjdGlvbjsKKworICAgICAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHRoaXMuX3NlY3Rp
b25zKSB7CisgICAgICAgICAgICBpZiAoc2VjdGlvbi5zdHlsZSA9PT0gc3R5bGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlY3Rpb247CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgfQorCisgICAgZm9jdXNFbXB0eVNlY3Rpb25XaXRoU3R5bGUoc3R5bGUpCisgICAgewor
ICAgICAgICBpZiAoc3R5bGUuaGFzUHJvcGVydGllcygpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGxldCBzZWN0aW9uID0gdGhpcy5zZWN0aW9uRm9yU3R5bGUoc3R5bGUp
OworICAgICAgICBpZiAoIXNlY3Rpb24pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgc2VjdGlvbi5mb2N1cygpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAg
ICAvLyBQcm90ZWN0ZWQKQEAgLTQzMSwxMCArNDYyLDggQEAgV2ViSW5zcGVjdG9yLlJ1bGVzU3R5
bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBSdWxlc1N0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV2Vi
SW4KICAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5VG9TZWxlY3RBbmRIaWdobGlnaHQgPSBudWxs
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzRm9jdXNlZFNlY3Rpb24g
JiYgdGhpcy5fdmlzaWJsZSkgeworICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNGb2N1c2VkU2Vj
dGlvbiAmJiB0aGlzLl92aXNpYmxlKQogICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNGb2N1c2Vk
U2VjdGlvbi5mb2N1cygpOwotICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNGb2N1c2VkU2VjdGlv
biA9IG51bGw7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNl
bGVjdG9yU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzCmluZGV4IDRiMTRlZjAwNzUxYTFhY2Zi
MTRiNmJkNTViNDUyYWY4MGEyNDA3NTIuLjc5YmZkNDU2NTkyZWExZTU3ZGMzY2FhZjRkZTcyMzkw
NzZkMzEzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpz
CkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlv
biA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVuCiAgICAgICAgIHRoaXMu
X3NlbGVjdG9ycyA9IG5ldyBXZWJJbnNwZWN0b3IuVHJlZU91dGxpbmUoc2VsZWN0b3JMaXN0RWxl
bWVudCk7CiAgICAgICAgIHRoaXMuX3NlbGVjdG9ycy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMuX3NlbGVjdG9y
Q2hhbmdlZCwgdGhpcyk7CiAKLSAgICAgICAgdGhpcy5fZm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVs
ZSA9IGZhbHNlOworICAgICAgICB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0b3IgPSBudWxs
OwogCiAgICAgICAgIGxldCBhZGRHbHlwaEVsZW1lbnQgPSB1c2VTVkdTeW1ib2woIkltYWdlcy9Q
bHVzMTMuc3ZnIiwgInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1zZWN0aW9uLWFkZC1ydWxlIiwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBhZGQgYSBuZXcgcnVsZS4iKSk7CiAgICAgICAg
IGFkZEdseXBoRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2FkZE5ld1J1
bGUuYmluZCh0aGlzKSk7CkBAIC05NiwxNiArOTYsMTYgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlU2VsZWN0b3JTZWN0aW9uID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24gZXh0
ZW4KICAgICAgICAgICAgIG9yZGVyZWRQc2V1ZG9SdWxlcy5yZXZlcnNlKCk7CiAKICAgICAgICAg
ZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3JJdGVtKHN0eWxlLCB0aXRsZSwgc3VidGl0bGUpIHsKLSAg
ICAgICAgICAgIGxldCBzZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxl
Y3RvclRyZWVJdGVtKHN0eWxlLCB0aXRsZSwgc3VidGl0bGUpOworICAgICAgICAgICAgbGV0IHNl
bGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0odGhp
cywgc3R5bGUsIHRpdGxlLCBzdWJ0aXRsZSk7CiAgICAgICAgICAgICBzZWxlY3Rvci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uRXZlbnQu
U3R5bGVUZXh0UmVzZXQsIHRoaXMuX3N0eWxlVGV4dFJlc2V0LCB0aGlzKTsKICAgICAgICAgICAg
IHNlbGVjdG9yLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0
b3JUcmVlSXRlbS5FdmVudC5DaGVja2JveENoYW5nZWQsIHRoaXMuX3RyZWVFbGVtZW50Q2hlY2ti
b3hUb2dnbGVkLCB0aGlzKTsKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9ycy5hcHBlbmRDaGls
ZChzZWxlY3Rvcik7CiAKLSAgICAgICAgICAgIGlmICh0aGlzLl9mb2N1c05leHROZXdJbnNwZWN0
b3JSdWxlICYmIHN0eWxlLm93bmVyUnVsZSAmJiBzdHlsZS5vd25lclJ1bGUudHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuVHlwZS5JbnNwZWN0b3IpIHsKKyAgICAgICAgICAgIGlm
IChzdHlsZS5pc0luc3BlY3RvclJ1bGUoKSAmJiB0aGlzLl9uZXdJbnNwZWN0b3JSdWxlU2VsZWN0
b3IgPT09IHN0eWxlLnNlbGVjdG9yVGV4dCAmJiAhc3R5bGUuaGFzUHJvcGVydGllcygpKSB7CiAg
ICAgICAgICAgICAgICAgc2VsZWN0b3Iuc2VsZWN0KHRydWUpOwogICAgICAgICAgICAgICAgIHNl
bGVjdG9yLmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAgICAgICAgICB0aGlzLl9u
b2RlU3R5bGVzW1dlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5MYXN0U2Vs
ZWN0ZWRSdWxlU3ltYm9sXSA9IHN0eWxlOwotICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzTmV4
dE5ld0luc3BlY3RvclJ1bGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9uZXdJbnNw
ZWN0b3JSdWxlU2VsZWN0b3IgPSBudWxsOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIApAQCAtMjAxLDcgKzIwMSw3IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNl
bGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVuCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9mb2N1c05leHROZXdJbnNw
ZWN0b3JSdWxlID0gZmFsc2U7CisgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3Rv
ciA9IG51bGw7CiAgICAgfQogCiAgICAgY3VycmVudFN0eWxlKCkKQEAgLTIxMiw2ICsyMTIsMjgg
QEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uID0gY2xhc3MgVmlzdWFs
U3R5bGVTZWxlY3RvclNlY3Rpb24gZXh0ZW4KICAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdG9y
cy5zZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwogICAgIH0KIAorICAgIHRy
ZWVJdGVtRm9yU3R5bGUoc3R5bGUpCisgICAgeworICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRo
aXMuX3NlbGVjdG9ycy5jaGlsZHJlbikgeworICAgICAgICAgICAgaWYgKGl0ZW0ucmVwcmVzZW50
ZWRPYmplY3QgPT09IHN0eWxlKQorICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHNlbGVjdEVtcHR5U3R5bGVU
cmVlSXRlbShzdHlsZSkKKyAgICB7CisgICAgICAgIGlmIChzdHlsZS5oYXNQcm9wZXJ0aWVzKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbGV0IHRyZWVJdGVtID0gdGhp
cy50cmVlSXRlbUZvclN0eWxlKHN0eWxlKTsKKyAgICAgICAgaWYgKCF0cmVlSXRlbSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB0cmVlSXRlbS5zZWxlY3QodHJ1ZSwgdHJ1
ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAg
IF9zZWxlY3RvckNoYW5nZWQoZXZlbnQpCkBAIC0yNDIsMTEgKzI2NCwxOCBAQCBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9y
U2VjdGlvbiBleHRlbgogCiAgICAgX2FkZE5ld1J1bGUoZXZlbnQpCiAgICAgewotICAgICAgICBp
ZiAoIXRoaXMuX25vZGVTdHlsZXMpCisgICAgICAgIGlmICghdGhpcy5fbm9kZVN0eWxlcyB8fCB0
aGlzLl9ub2RlU3R5bGVzLm5vZGUuaXNJblNoYWRvd1RyZWUoKSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICB0aGlzLl9ub2RlU3R5bGVzLmFkZFJ1bGUoKTsKLSAgICAgICAgdGhpcy5f
Zm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVsZSA9IHRydWU7CisgICAgICAgIGxldCBzZWxlY3RvciA9
IHRoaXMuY3VycmVudFN0eWxlKCkuc2VsZWN0b3JUZXh0OworICAgICAgICBsZXQgZXhpc3RpbmdS
dWxlcyA9IHRoaXMuX25vZGVTdHlsZXMucnVsZXNGb3JTZWxlY3RvcihzZWxlY3Rvcik7CisgICAg
ICAgIGZvciAobGV0IHJ1bGUgb2YgZXhpc3RpbmdSdWxlcykgeworICAgICAgICAgICAgaWYgKHRo
aXMuc2VsZWN0RW1wdHlTdHlsZVRyZWVJdGVtKHJ1bGUuc3R5bGUpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxl
Y3RvciA9IHNlbGVjdG9yOworICAgICAgICB0aGlzLl9ub2RlU3R5bGVzLmFkZFJ1bGUoc2VsZWN0
b3IpOwogICAgIH0KIAogICAgIF90cmVlRWxlbWVudENoZWNrYm94VG9nZ2xlZChldmVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcwppbmRleCBiYTUzOGJi
ZTE5MmZkMDllOWM4ZTE1MWJlZjUwNGY4ZTc4OGZjZmYyLi5hZWQ3OWU5NDg2NjZmN2Y1NjFkZDk5
YzlmZmU1NmM2MjA4MWI4ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3Rv
clRyZWVJdGVtLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAKIFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50CiB7Ci0gICAgY29uc3RydWN0b3Io
c3R5bGUsIHRpdGxlLCBzdWJ0aXRsZSkKKyAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgc3R5bGUs
IHRpdGxlLCBzdWJ0aXRsZSkKICAgICB7CiAgICAgICAgIGxldCBpY29uQ2xhc3NOYW1lOwogICAg
ICAgICBzd2l0Y2ggKHN0eWxlLnR5cGUpIHsKQEAgLTU3LDYgKzU3LDggQEAgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbSBleHQKIAogICAgICAgICBzdXBlcihbInZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVt
IiwgaWNvbkNsYXNzTmFtZV0sIHRpdGxlLCBzdWJ0aXRsZSwgc3R5bGUpOwogCisgICAgICAgIHRo
aXMuX2RlbGVnYXRlID0gZGVsZWdhdGU7CisKICAgICAgICAgdGhpcy5faWNvbkNsYXNzTmFtZSA9
IGljb25DbGFzc05hbWU7CiAgICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9IHRpdGxlOwogICAgICAg
ICB0aGlzLl9lbmFibGVFZGl0aW5nID0gdHJ1ZTsKQEAgLTE0MSwxMCArMTQzLDEyIEBAIFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNl
bGVjdG9yVHJlZUl0ZW0gZXh0CiAgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29w
eVRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdC5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJSZXNldCIpLCAoKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LnJlc2V0VGV4dCgpOwotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5FdmVudC5TdHls
ZVRleHRSZXNldCk7Ci0gICAgICAgIH0pOworICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5tb2RpZmllZCkgeworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlJlc2V0IiksICgpID0+IHsKKyAgICAgICAgICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LnJlc2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0uRXZlbnQuU3R5bGVUZXh0UmVzZXQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
IAogICAgICAgICBpZiAoIXRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTY5LDEyICsxNzMsOCBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4
dAogCiAgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkFkZCAlcyBSdWxlIikuZm9ybWF0KHBzZXVkb0NsYXNzU2VsZWN0b3IpLCAoKSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZS5zZXRQ
c2V1ZG9DbGFzc0VuYWJsZWQocHNldWRvQ2xhc3MsIHRydWUpOwotCi0gICAgICAgICAgICAgICAg
ICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
b3duZXJSdWxlLnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBzZWxlY3Rvci50ZXh0ICsgcHNl
dWRvQ2xhc3NTZWxlY3Rvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCIpKTsK
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZSh0aGlzLl9jdXJyZW50U2VsZWN0
b3JUZXh0ICsgcHNldWRvQ2xhc3NTZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgICAgIGxldCBw
c2V1ZG9TZWxlY3RvcnMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3Rv
cnMubWFwKChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCArIHBzZXVkb0NsYXNzU2VsZWN0b3Ip
OworICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMu
YWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCAiKSk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE4MywxMiArMTgzLDI3IEBAIFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVj
dG9yVHJlZUl0ZW0gZXh0CiAgICAgICAgICAgICBsZXQgcHNldWRvRWxlbWVudFNlbGVjdG9yID0g
Ijo6IiArIHBzZXVkb0VsZW1lbnQ7CiAgICAgICAgICAgICBjb25zdCBzdHlsZVRleHQgPSAiY29u
dGVudDogXCJcIjsiOwogCi0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQ3JlYXRlICVzIFJ1bGUiKS5mb3JtYXQocHNldWRvRWxlbWVudFNl
bGVjdG9yKSwgKCkgPT4gewotICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm93bmVyUnVsZSkgewotICAgICAgICAgICAgICAgICAgICBsZXQgcHNldWRvU2VsZWN0b3Jz
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JzLm1hcCgoc2VsZWN0
b3IpID0+IHNlbGVjdG9yLnRleHQgKyBwc2V1ZG9FbGVtZW50U2VsZWN0b3IpOwotICAgICAgICAg
ICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1
ZG9TZWxlY3RvcnMuam9pbigiLCIpLCBzdHlsZVRleHQpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVTdHlsZXMu
YWRkUnVsZSh0aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0ICsgcHNldWRvRWxlbWVudFNlbGVjdG9y
LCBzdHlsZVRleHQpOworICAgICAgICAgICAgbGV0IGV4aXN0aW5nVHJlZUl0ZW0gPSBudWxsOwor
ICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS50
cmVlSXRlbUZvclN0eWxlID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAgICAgbGV0IHNl
bGVjdG9yVGV4dCA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9yVGV4
dDsKKyAgICAgICAgICAgICAgICBsZXQgZXhpc3RpbmdSdWxlcyA9IHRoaXMucmVwcmVzZW50ZWRP
YmplY3Qubm9kZVN0eWxlcy5ydWxlc0ZvclNlbGVjdG9yKHNlbGVjdG9yVGV4dCArIHBzZXVkb0Vs
ZW1lbnRTZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nUnVsZXMubGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZG4ndCByZWFsbHkgZXZlciBi
ZSBtb3JlIHRoYW4gb25lIHBzZXVkby1lbGVtZW50IHJ1bGUKKyAgICAgICAgICAgICAgICAgICAg
Ly8gdGhhdCBpcyBub3QgaW4gYSBtZWRpYSBxdWVyeS4gQXMgc3VjaCwganVzdCBmb2N1cyB0aGUg
Zmlyc3QgcnVsZQorICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0
IGl0IGlzIHRoZSBvbmx5IG9uZSBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgICAgIGV4aXN0
aW5nVHJlZUl0ZW0gPSB0aGlzLl9kZWxlZ2F0ZS50cmVlSXRlbUZvclN0eWxlKGV4aXN0aW5nUnVs
ZXNbMF0uc3R5bGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgbGV0IHRpdGxlID0gZXhpc3RpbmdUcmVlSXRlbSA/IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU2VsZWN0ICVzIFJ1bGUiKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ3JlYXRlICVzIFJ1
bGUiKTsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0odGl0bGUuZm9ybWF0KHBz
ZXVkb0VsZW1lbnRTZWxlY3RvciksICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3Rp
bmdUcmVlSXRlbSkgeworICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1RyZWVJdGVtLnNlbGVj
dCh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGxldCBwc2V1ZG9TZWxlY3RvcnMgPSB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvcnMubWFwKChzZWxlY3RvcikgPT4gc2VsZWN0
b3IudGV4dCArIHBzZXVkb0VsZW1lbnRTZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5ub2RlU3R5bGVzLmFkZFJ1bGUocHNldWRvU2VsZWN0b3JzLmpvaW4o
IiwgIiksIHN0eWxlVGV4dCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="293212"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="293425"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268477</attachid>
            <date>2016-01-07 13:05:24 -0800</date>
            <delta_ts>2016-01-07 13:28:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>152726.diff</filename>
            <type>text/plain</type>
            <size>26480</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJlZmY0MDEuLjQ5MjlmNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE2LTAxLTA3ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1h
a2UgY3JlYXRpbmcgbmV3IHJ1bGVzIGluIHRoZSBTdHlsZXMgc2lkZWJhciBzaW1wbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MjYKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgV2hlbiBjcmVhdGlu
ZyBhIG5ldyBydWxlcyBvZiBhbnkga2luZCwgZmlyc3QgbG9vayB0byBzZWUgaWYgaXQgYWxyZWFk
eSBleGlzdHMgaW4KKyAgICAgICAgYW5vdGhlciBydWxlIHRoYXQgaGFzIG5vIHByb3BlcnRpZXMu
IElmIGZvdW5kLCBmb2N1cy9zZWxlY3QgaXQgaW5zdGVhZCBvZiBjcmVhdGluZworICAgICAgICBh
IG5ldyBydWxlLiBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHJ1bGUgbGlrZSBub3JtYWwuCisK
KyAgICAgICAgQWxzbyBjaGFuZ2VkIHRoZSB3YXkgaW4gd2hpY2ggcHJldmlvdXNseS1mb2N1c2Vk
IHNlY3Rpb25zL3RyZWUtaXRlbXMgYXJlIHNhdmVkCisgICAgICAgIHRvIHJlbHkgdXBvbiB0aGUg
c2VsZWN0b3Igb2YgdGhlIG5ldyBydWxlIGFuZCB3aGV0aGVyIHRoZSBzZWN0aW9uIGZvciB0aGF0
IHJ1bGUKKyAgICAgICAgaXMgZW1wdHkgYW5kIGFuIGluc3BlY3RvciBydWxlLgorCisgICAgICAg
ICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pc0luc3BlY3RvclJ1
bGUpOgorICAgICAgICBSZXR1cm5zIHRydWUgaWYgdGhlIHN0eWxlIGlzIGFuIGluc3BlY3RvciBy
dWxlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5
cGUuaGFzUHJvcGVydGllcyk6CisgICAgICAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3R5bGUgaGFz
IENTUyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9k
ZVN0eWxlcy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlw
ZS5ydWxlc0ZvclNlbGVjdG9yLnJ1bGVIYXNTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUucnVsZXNGb3JTZWxlY3Rvcik6CisgICAgICAgIFJl
dHVybnMgYSBsaXN0IG9mIENTU1J1bGUgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gc2VsZWN0b3IgYW5k
IGFyZSBub3QKKyAgICAgICAgaW4gbWVkaWEgcXVlcmllcy4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LnByb3RvdHlwZS5fdXBkYXRlTWV0cmlj
cyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5j
b21tZW50QWxsUHJvcGVydGllcyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1J1
bGVzU3R5bGVEZXRhaWxzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVsZXNTdHls
ZURldGFpbHNQYW5lbC5wcm90b3R5cGUucmVmcmVzaC5hcHBlbmRTdHlsZVNlY3Rpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLnJlZnJl
c2guY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rpb25FZGl0b3JGb2N1c2VkKToKKyAgICAgICAgTm93
IHNhdmVzIHRoZSBuZXdseSBmb2N1c2VkIHNlY3Rpb24gYXMgdGhlIHByZXZpb3VzbHktZm9jdXNl
ZCBzZWN0aW9uLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVsZXNTdHlsZURldGFpbHNQYW5l
bC5wcm90b3R5cGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rpb25Gb2N1c05ld0luc3BlY3RvclJ1
bGVXaXRoU2VsZWN0b3IpOgorICAgICAgICBSZW5hbWVkIGZyb20gY3NzU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlLiBOb3cgbmVlZHMKKyAgICAgICAgYSBz
ZWxlY3RvciBhcmd1bWVudC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlLm5ld1J1bGVCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5zZWN0aW9uRm9yU3R5bGUp
OgorICAgICAgICBSZXR1cm5zIHRoZSBmaXJzdCBzZWN0aW9uIHRoYXQgaGFzIGEgc3R5bGUgd2l0
aCBtYXRjaGluZyBzZWxlY3Rvci4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVE
ZXRhaWxzUGFuZWwucHJvdG90eXBlLmZvY3VzRW1wdHlTZWN0aW9uV2l0aFN0eWxlKToKKyAgICAg
ICAgRmluZHMgdGhlIHNlY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gc3R5bGUgYW5k
LCBpZiBlbXB0eSwgZm9jdXNlcyBpdC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5
bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLm5vZGVTdHlsZXNSZWZyZXNoZWQpOgorICAgICAgICBO
byBsb25nZXIgY2xlYXJzIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgc2VjdGlvbi4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLnByb3RvdHlwZS51cGRh
dGUuY3JlYXRlU2VsZWN0b3JJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVNlbGVjdG9yU2VjdGlvbi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbi5wcm90b3R5cGUudHJlZUl0ZW1Gb3JTdHlsZSk6
CisgICAgICAgIFJldHVybnMgdGhlIGZpcnN0IHRyZWUgaXRlbSB0aGF0IGhhcyBhIHN0eWxlIHdp
dGggbWF0Y2hpbmcgc2VsZWN0b3IuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVNlbGVjdG9yU2VjdGlvbi5wcm90b3R5cGUuc2VsZWN0RW1wdHlTdHlsZVRyZWVJdGVtKToKKyAg
ICAgICAgRmluZHMgdGhlIHRyZWUgaXRlbSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBzdHls
ZSBhbmQsIGlmIGVtcHR5LCBzZWxlY3RzIGl0LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVTZWxlY3RvclNlY3Rpb24ucHJvdG90eXBlLl9hZGROZXdSdWxlKToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSk6CisgICAg
ICAgIE5vdyByZXF1aXJlcyBhIGRlbGVnYXRlIG9iamVjdC4KKworICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5wcm90b3R5cGUuX2hhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOgorCiAyMDE2LTAxLTA2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ1JBU0ggQXR0ZW1wdGluZyB0byBwYXVz
ZSBvbiBDU1AgdmlvbGF0aW9uIG5vdCBpbnNpZGUgb2Ygc2NyaXB0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcwppbmRleCBlMjVkYjg3NWRkMjhkNTQwYWYyZjE0ZjM4NGUxYjRmYzE5NzEx
YzY3Li43ZDYzYjI3YjM2MzI4ZjM5ZDc3ZDU1ZGY3NjRlMGFhOTczZTBlMTk0IDEwMDY0NApHSVQg
YmluYXJ5IHBhdGNoCmRlbHRhIDU3CnpjbVpxcCZ2SylJYjtKSXRsTlNjY2FKbiglR2JBJlZHODlr
TjZTQ2dDYiplPU1OTzx6IXpkViFtZ3smc2F7fS01aQpNYX57djt6a2l6QDBqTXEqJF5aWlcKCmRl
bHRhIDE5CmJjbWNjN3p9b1BpV3lBaWRuPkRCRFdvJG5CWj9ZbypXVF5AXwoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xh
cmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNmRmNzEyOS4uZjI5YjVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFy
YXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1N0eWxlRGVjbGFyYXRpb24uanMKQEAgLTMzMiw2ICszMzIsMTYgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVuZHMg
V2ViSW5zcGVjdG8KICAgICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CiAKKyAgICBpc0lu
c3BlY3RvclJ1bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX293bmVyUnVsZSAmJiB0
aGlzLl9vd25lclJ1bGUudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuVHlwZS5J
bnNwZWN0b3I7CisgICAgfQorCisgICAgaGFzUHJvcGVydGllcygpCisgICAgeworICAgICAgICBy
ZXR1cm4gISF0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0
ZWQKIAogICAgIGdldCBub2RlU3R5bGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKaW5kZXggOWM5
ZDFiOC4uMjUyOWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKQEAgLTI2OCw2ICsyNjgsMjIg
QEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01Ob2RlU3R5bGVzIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBXZWJJbnNwZWN0b3IuY3NzU3R5bGVNYW5h
Z2VyLnByZWZlcnJlZEluc3BlY3RvclN0eWxlU2hlZXRGb3JGcmFtZSh0aGlzLl9ub2RlLmZyYW1l
LCBpbnNwZWN0b3JTdHlsZVNoZWV0QXZhaWxhYmxlLmJpbmQodGhpcykpOwogICAgIH0KIAorICAg
IHJ1bGVzRm9yU2VsZWN0b3Ioc2VsZWN0b3IpCisgICAgeworICAgICAgICBzZWxlY3RvciA9IHNl
bGVjdG9yIHx8IHRoaXMuX25vZGUuYXBwcm9wcmlhdGVTZWxlY3RvckZvcih0cnVlKTsKKworICAg
ICAgICBmdW5jdGlvbiBydWxlSGFzU2VsZWN0b3IocnVsZSkgeworICAgICAgICAgICAgcmV0dXJu
ICFydWxlLm1lZGlhTGlzdC5sZW5ndGggJiYgcnVsZS5zZWxlY3RvclRleHQgPT09IHNlbGVjdG9y
OworICAgICAgICB9CisKKyAgICAgICAgbGV0IHJ1bGVzID0gdGhpcy5fbWF0Y2hlZFJ1bGVzLmZp
bHRlcihydWxlSGFzU2VsZWN0b3IpOworCisgICAgICAgIGZvciAobGV0IGlkIGluIHRoaXMuX3Bz
ZXVkb0VsZW1lbnRzKQorICAgICAgICAgICAgcnVsZXMgPSBydWxlcy5jb25jYXQodGhpcy5fcHNl
dWRvRWxlbWVudHNbaWRdLm1hdGNoZWRSdWxlcy5maWx0ZXIocnVsZUhhc1NlbGVjdG9yKSk7CisK
KyAgICAgICAgcmV0dXJuIHJ1bGVzOworICAgIH0KKwogICAgIGdldCBtYXRjaGVkUnVsZXMoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoZWRSdWxlczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JveE1vZGVsRGV0YWlsc1Nl
Y3Rpb25Sb3cuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9C
b3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzCmluZGV4IGJmZTc0MGQuLmZjMTY3ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JveE1vZGVs
RGV0YWlsc1NlY3Rpb25Sb3cuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qcwpAQCAtMTkzLDcgKzE5Myw3
IEBAIFdlYkluc3BlY3Rvci5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93ID0gY2xhc3MgQm94TW9k
ZWxEZXRhaWxzU2VjdGlvblJvdyBleHRlbmRzCiAgICAgICAgIHRoaXMuX2JveEVsZW1lbnRzID0g
W107CiAgICAgICAgIHZhciBib3hlcyA9IFsiY29udGVudCIsICJwYWRkaW5nIiwgImJvcmRlciIs
ICJtYXJnaW4iLCAicG9zaXRpb24iXTsKIAotICAgICAgICBpZiAoIXN0eWxlLnByb3BlcnRpZXMu
bGVuZ3RoKSB7CisgICAgICAgIGlmICghc3R5bGUuaGFzUHJvcGVydGllcygpKSB7CiAgICAgICAg
ICAgICB0aGlzLnNob3dFbXB0eU1lc3NhZ2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCA3
ZDgxNjMwLi4zOGIxMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5qcwpAQCAtNDQ0LDggKzQ0NCwxNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJEdXBsaWNhdGUgU2VsZWN0b3IiKSwgKCkgPT4gewotICAgICAgICAg
ICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5jc3NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgPT09ICJmdW5jdGlvbiIp
Ci0gICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlKCk7CisgICAgICAgICAgICBpZiAodGhpcy5fZGVs
ZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmZvY3VzRW1wdHlTZWN0aW9uV2l0aFN0eWxl
ID09PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nUnVsZXMgPSB0
aGlzLl9zdHlsZS5ub2RlU3R5bGVzLnJ1bGVzRm9yU2VsZWN0b3IodGhpcy5fY3VycmVudFNlbGVj
dG9yVGV4dCk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBleGlzdGluZ1J1bGVz
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZS5mb2N1c0VtcHR5U2Vj
dGlvbldpdGhTdHlsZShydWxlLnN0eWxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0
aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb25Gb2N1c05ld0luc3BlY3RvclJ1bGVXaXRoU2VsZWN0b3IgPT09ICJmdW5jdGlvbiIp
CisgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b25Gb2N1c05ld0luc3BlY3RvclJ1bGVXaXRoU2VsZWN0b3IodGhpcy5fY3VycmVudFNlbGVjdG9y
VGV4dCk7CiAKICAgICAgICAgICAgIHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMuYWRkUnVsZSh0aGlz
Ll9jdXJyZW50U2VsZWN0b3JUZXh0KTsKICAgICAgICAgfSk7CkBAIC00NjQsMTQgKzQ3MiwxNiBA
QCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBZGQgJXMgUnVsZSIpLmZvcm1hdChwc2V1
ZG9DbGFzc1NlbGVjdG9yKSwgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHls
ZS5ub2RlLnNldFBzZXVkb0NsYXNzRW5hYmxlZChwc2V1ZG9DbGFzcywgdHJ1ZSk7CiAKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0
ZS5jc3NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgPT09
ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jc3NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IHNlbGVjdG9yOworICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fc3R5bGUub3duZXJSdWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSB0
aGlzLl9zdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JzLm1hcCgoc2VsZWN0b3IpID0+IHNlbGVjdG9y
LnRleHQgKyBwc2V1ZG9DbGFzc1NlbGVjdG9yKS5qb2luKCIsICIpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHRoaXMuX2N1cnJl
bnRTZWxlY3RvclRleHQgKyBwc2V1ZG9DbGFzc1NlbGVjdG9yOworCisgICAgICAgICAgICAgICAg
ICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb25Gb2N1c05ld0luc3BlY3RvclJ1bGVXaXRoU2VsZWN0b3IgPT09ICJm
dW5jdGlvbiIpCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jc3NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV3SW5zcGVjdG9yUnVsZVdpdGhTZWxlY3RvcihzZWxl
Y3Rvcik7CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLm93bmVyUnVsZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMuX3N0
eWxlLm93bmVyUnVsZS5zZWxlY3RvcnMubWFwKChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCAr
IHBzZXVkb0NsYXNzU2VsZWN0b3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3R5
bGUubm9kZVN0eWxlcy5hZGRSdWxlKHBzZXVkb1NlbGVjdG9ycy5qb2luKCIsIikpOwotICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxl
Lm5vZGVTdHlsZXMuYWRkUnVsZSh0aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0ICsgcHNldWRvQ2xh
c3NTZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMu
YWRkUnVsZShzZWxlY3Rvcik7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTQ4MCwxNSArNDkwLDM0IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xh
cmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uIGV4dGVuCiAg
ICAgICAgICAgICBsZXQgcHNldWRvRWxlbWVudFNlbGVjdG9yID0gIjo6IiArIHBzZXVkb0VsZW1l
bnQ7CiAgICAgICAgICAgICBjb25zdCBzdHlsZVRleHQgPSAiY29udGVudDogXCJcIjsiOwogCi0g
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q3JlYXRlICVzIFJ1bGUiKS5mb3JtYXQocHNldWRvRWxlbWVudFNlbGVjdG9yKSwgKCkgPT4gewot
ICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdh
dGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rpb25Gb2N1c05leHROZXdJbnNwZWN0b3JSdWxlID09
PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5jc3NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUoKTsKKyAgICAgICAg
ICAgIGxldCBleGlzdGluZ1NlY3Rpb24gPSBudWxsOworICAgICAgICAgICAgaWYgKHRoaXMuX2Rl
bGVnYXRlICYmIHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5zZWN0aW9uRm9yU3R5bGUgPT09ICJmdW5j
dGlvbiIpIHsKKyAgICAgICAgICAgICAgICBsZXQgZXhpc3RpbmdSdWxlcyA9IHRoaXMuX3N0eWxl
Lm5vZGVTdHlsZXMucnVsZXNGb3JTZWxlY3Rvcih0aGlzLl9jdXJyZW50U2VsZWN0b3JUZXh0ICsg
cHNldWRvRWxlbWVudFNlbGVjdG9yKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdSdWxl
cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkbid0IHJlYWxs
eSBldmVyIGJlIG1vcmUgdGhhbiBvbmUgcHNldWRvLWVsZW1lbnQgcnVsZQorICAgICAgICAgICAg
ICAgICAgICAvLyB0aGF0IGlzIG5vdCBpbiBhIG1lZGlhIHF1ZXJ5LiBBcyBzdWNoLCBqdXN0IGZv
Y3VzIHRoZSBmaXJzdCBydWxlCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBhc3N1bXB0
aW9uIHRoYXQgaXQgaXMgdGhlIG9ubHkgb25lIG5lY2Vzc2FyeS4KKyAgICAgICAgICAgICAgICAg
ICAgZXhpc3RpbmdTZWN0aW9uID0gdGhpcy5fZGVsZWdhdGUuc2VjdGlvbkZvclN0eWxlKGV4aXN0
aW5nUnVsZXNbMF0uc3R5bGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgbGV0IHRpdGxlID0gZXhpc3RpbmdTZWN0aW9uID8gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJGb2N1cyAlcyBSdWxlIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNyZWF0ZSAl
cyBSdWxlIik7CisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKHRpdGxlLmZvcm1h
dChwc2V1ZG9FbGVtZW50U2VsZWN0b3IpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGV4
aXN0aW5nU2VjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1NlY3Rpb24uZm9j
dXMoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGxldCBzZWxlY3RvcjsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5f
c3R5bGUub3duZXJSdWxlKQorICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHRoaXMuX3N0
eWxlLm93bmVyUnVsZS5zZWxlY3RvcnMubWFwKChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCAr
IHBzZXVkb0VsZW1lbnRTZWxlY3Rvcikuam9pbigiLCAiKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gdGhpcy5fY3VycmVudFNlbGVjdG9yVGV4
dCArIHBzZXVkb0VsZW1lbnRTZWxlY3RvcjsKKworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9k
ZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b25Gb2N1c05ld0luc3BlY3RvclJ1bGVXaXRoU2VsZWN0b3IgPT09ICJmdW5jdGlvbiIpCisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmNzc1N0eWxlRGVjbGFyYXRpb25TZWN0aW9u
Rm9jdXNOZXdJbnNwZWN0b3JSdWxlV2l0aFNlbGVjdG9yKHNlbGVjdG9yKTsKIAotICAgICAgICAg
ICAgICAgIGlmICh0aGlzLl9zdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
bGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMuX3N0eWxlLm93bmVyUnVsZS5zZWxlY3RvcnMubWFw
KChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCArIHBzZXVkb0VsZW1lbnRTZWxlY3Rvcik7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0eWxlLm5vZGVTdHlsZXMuYWRkUnVsZShwc2V1ZG9T
ZWxlY3RvcnMuam9pbigiLCIpLCBzdHlsZVRleHQpOwotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFkZFJ1bGUodGhpcy5f
Y3VycmVudFNlbGVjdG9yVGV4dCArIHBzZXVkb0VsZW1lbnRTZWxlY3Rvciwgc3R5bGVUZXh0KTsK
KyAgICAgICAgICAgICAgICB0aGlzLl9zdHlsZS5ub2RlU3R5bGVzLmFkZFJ1bGUoc2VsZWN0b3Is
IHN0eWxlVGV4dCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVj
bGFyYXRpb25UZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKaW5kZXggNDJlNTQwMi4u
ZThlOTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IuanMKQEAgLTMzOCw3ICszMzgsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAg
Y29tbWVudEFsbFByb3BlcnRpZXMoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9zdHlsZS5w
cm9wZXJ0aWVzLmxlbmd0aCkKKyAgICAgICAgaWYgKCF0aGlzLl9zdHlsZS5oYXNQcm9wZXJ0aWVz
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZm9yICh2YXIgcHJvcGVy
dHkgb2YgdGhpcy5fc3R5bGUucHJvcGVydGllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRh
aWxzUGFuZWwuanMKaW5kZXggZWZlZDAyMy4uZmJhY2VlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0
eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0xNTMsOSArMTUzLDkgQEAgV2ViSW5zcGVjdG9yLlJ1bGVz
U3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBSdWxlc1N0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMg
V2ViSW4KICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHNlY3Rpb24ucmVmcmVz
aCgpOwogCi0gICAgICAgICAgICBpZiAodGhpcy5fZm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVsZSAm
JiBzdHlsZS5vd25lclJ1bGUgJiYgc3R5bGUub3duZXJSdWxlLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5DU1NTdHlsZVNoZWV0LlR5cGUuSW5zcGVjdG9yKSB7CisgICAgICAgICAgICBpZiAoc3R5bGUu
aXNJbnNwZWN0b3JSdWxlKCkgJiYgdGhpcy5fbmV3SW5zcGVjdG9yUnVsZVNlbGVjdG9yID09PSBz
dHlsZS5zZWxlY3RvclRleHQgJiYgIXN0eWxlLmhhc1Byb3BlcnRpZXMoKSkgewogICAgICAgICAg
ICAgICAgIHRoaXMuX3ByZXZpb3VzRm9jdXNlZFNlY3Rpb24gPSBzZWN0aW9uOwotICAgICAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9mb2N1c05leHROZXdJbnNwZWN0b3JSdWxlOworICAgICAgICAg
ICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51bGw7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIC8vIFJlc2V0IGxhc3RJbkdyb3VwIGluIGNhc2UgdGhlIG9yZGVy
L2dyb3VwaW5nIGNoYW5nZWQuCkBAIC0zMTEsMTIgKzMxMSwxMyBAQCBXZWJJbnNwZWN0b3IuUnVs
ZXNTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5k
cyBXZWJJbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgY3NzU3R5bGVEZWNs
YXJhdGlvblNlY3Rpb25FZGl0b3JGb2N1c2VkKGlnbm9yZWRTZWN0aW9uKQorICAgIGNzc1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uRWRpdG9yRm9jdXNlZChmb2N1c2VkU2VjdGlvbikKICAgICB7Ci0g
ICAgICAgIGZvciAodmFyIHNlY3Rpb24gb2YgdGhpcy5fc2VjdGlvbnMpIHsKLSAgICAgICAgICAg
IGlmIChzZWN0aW9uICE9PSBpZ25vcmVkU2VjdGlvbikKKyAgICAgICAgZm9yIChsZXQgc2VjdGlv
biBvZiB0aGlzLl9zZWN0aW9ucykgeworICAgICAgICAgICAgaWYgKHNlY3Rpb24gIT09IGZvY3Vz
ZWRTZWN0aW9uKQogICAgICAgICAgICAgICAgIHNlY3Rpb24uY2xlYXJTZWxlY3Rpb24oKTsKICAg
ICAgICAgfQorICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzZWRTZWN0aW9uID0gZm9jdXNlZFNl
Y3Rpb247CiAgICAgfQogCiAgICAgY3NzU3R5bGVEZWNsYXJhdGlvblNlY3Rpb25FZGl0b3JOZXh0
UnVsZShjdXJyZW50U2VjdGlvbikKQEAgLTM3Nyw5ICszNzgsOSBAQCBXZWJJbnNwZWN0b3IuUnVs
ZXNTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5k
cyBXZWJJbgogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsdGVyLW5v
bi1tYXRjaGluZyIsICFtYXRjaEZvdW5kKTsKICAgICB9CiAKLSAgICBjc3NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbkZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUoKQorICAgIGNzc1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uRm9jdXNOZXdJbnNwZWN0b3JSdWxlV2l0aFNlbGVjdG9yKHNlbGVjdG9yKQog
ICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNOZXh0TmV3SW5zcGVjdG9yUnVsZSA9IHRydWU7Cisg
ICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IHNlbGVjdG9yOwogICAgIH0K
IAogICAgIG5ld1J1bGVCdXR0b25DbGlja2VkKCkKQEAgLTM4Nyw4ICszODgsMzggQEAgV2ViSW5z
cGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBSdWxlc1N0eWxlRGV0YWlsc1Bh
bmVsIGV4dGVuZHMgV2ViSW4KICAgICAgICAgaWYgKHRoaXMubm9kZVN0eWxlcy5ub2RlLmlzSW5T
aGFkb3dUcmVlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fZm9jdXNO
ZXh0TmV3SW5zcGVjdG9yUnVsZSA9IHRydWU7Ci0gICAgICAgIHRoaXMubm9kZVN0eWxlcy5hZGRS
dWxlKCk7CisgICAgICAgIGZvciAobGV0IGV4aXN0aW5nUnVsZSBvZiB0aGlzLm5vZGVTdHlsZXMu
cnVsZXNGb3JTZWxlY3RvcigpKSB7CisgICAgICAgICAgICBpZiAodGhpcy5mb2N1c0VtcHR5U2Vj
dGlvbldpdGhTdHlsZShleGlzdGluZ1J1bGUuc3R5bGUpKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9
IHRoaXMubm9kZVN0eWxlcy5ub2RlLmFwcHJvcHJpYXRlU2VsZWN0b3JGb3IodHJ1ZSk7CisgICAg
ICAgIHRoaXMubm9kZVN0eWxlcy5hZGRSdWxlKHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3Rv
cik7CisgICAgfQorCisgICAgc2VjdGlvbkZvclN0eWxlKHN0eWxlKQorICAgIHsKKyAgICAgICAg
aWYgKHN0eWxlLl9fcnVsZXNTZWN0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHN0eWxlLl9fcnVs
ZXNTZWN0aW9uOworCisgICAgICAgIGZvciAobGV0IHNlY3Rpb24gb2YgdGhpcy5fc2VjdGlvbnMp
IHsKKyAgICAgICAgICAgIGlmIChzZWN0aW9uLnN0eWxlID09PSBzdHlsZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VjdGlvbjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAg
ICB9CisKKyAgICBmb2N1c0VtcHR5U2VjdGlvbldpdGhTdHlsZShzdHlsZSkKKyAgICB7CisgICAg
ICAgIGlmIChzdHlsZS5oYXNQcm9wZXJ0aWVzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgbGV0IHNlY3Rpb24gPSB0aGlzLnNlY3Rpb25Gb3JTdHlsZShzdHlsZSk7Cisg
ICAgICAgIGlmICghc2VjdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBzZWN0aW9uLmZvY3VzKCk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8v
IFByb3RlY3RlZApAQCAtNDMxLDEwICs0NjIsOCBAQCBXZWJJbnNwZWN0b3IuUnVsZXNTdHlsZURl
dGFpbHNQYW5lbCA9IGNsYXNzIFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWJJbgog
ICAgICAgICAgICAgdGhpcy5fcHJvcGVydHlUb1NlbGVjdEFuZEhpZ2hsaWdodCA9IG51bGw7CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNGb2N1c2VkU2VjdGlvbiAmJiB0
aGlzLl92aXNpYmxlKSB7CisgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c0ZvY3VzZWRTZWN0aW9u
ICYmIHRoaXMuX3Zpc2libGUpCiAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzZWRTZWN0
aW9uLmZvY3VzKCk7Ci0gICAgICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzZWRTZWN0aW9uID0g
bnVsbDsKLSAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFByaXZhdGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0
b3JTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uanMKaW5kZXggOGU3MGY2MC4uYmE0MmFhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVTZWxlY3RvclNlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24uanMKQEAgLTU3LDcgKzU3
LDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uID0gY2xhc3MgVmlz
dWFsU3R5bGVTZWxlY3RvclNlY3Rpb24gZXh0ZW4KICAgICAgICAgdGhpcy5fc2VsZWN0b3JzID0g
bmV3IFdlYkluc3BlY3Rvci5UcmVlT3V0bGluZShzZWxlY3Rvckxpc3RFbGVtZW50KTsKICAgICAg
ICAgdGhpcy5fc2VsZWN0b3JzLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRyZWVPdXRs
aW5lLkV2ZW50LlNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcy5fc2VsZWN0b3JDaGFuZ2VkLCB0aGlz
KTsKIAotICAgICAgICB0aGlzLl9mb2N1c05leHROZXdJbnNwZWN0b3JSdWxlID0gZmFsc2U7Cisg
ICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9IG51bGw7CiAKICAgICAgICAg
bGV0IGFkZEdseXBoRWxlbWVudCA9IHVzZVNWR1N5bWJvbCgiSW1hZ2VzL1BsdXMxMy5zdmciLCAi
dmlzdWFsLXN0eWxlLXNlbGVjdG9yLXNlY3Rpb24tYWRkLXJ1bGUiLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsaWNrIHRvIGFkZCBhIG5ldyBydWxlLiIpKTsKICAgICAgICAgYWRkR2x5cGhFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fYWRkTmV3UnVsZS5iaW5kKHRoaXMp
KTsKQEAgLTk2LDE2ICs5NiwxNiBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclNl
Y3Rpb24gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yU2VjdGlvbiBleHRlbgogICAgICAgICAg
ICAgb3JkZXJlZFBzZXVkb1J1bGVzLnJldmVyc2UoKTsKIAogICAgICAgICBmdW5jdGlvbiBjcmVh
dGVTZWxlY3Rvckl0ZW0oc3R5bGUsIHRpdGxlLCBzdWJ0aXRsZSkgewotICAgICAgICAgICAgbGV0
IHNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0o
c3R5bGUsIHRpdGxlLCBzdWJ0aXRsZSk7CisgICAgICAgICAgICBsZXQgc2VsZWN0b3IgPSBuZXcg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSh0aGlzLCBzdHlsZSwgdGl0
bGUsIHN1YnRpdGxlKTsKICAgICAgICAgICAgIHNlbGVjdG9yLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5FdmVudC5TdHlsZVRleHRSZXNl
dCwgdGhpcy5fc3R5bGVUZXh0UmVzZXQsIHRoaXMpOwogICAgICAgICAgICAgc2VsZWN0b3IuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLkV2
ZW50LkNoZWNrYm94Q2hhbmdlZCwgdGhpcy5fdHJlZUVsZW1lbnRDaGVja2JveFRvZ2dsZWQsIHRo
aXMpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JzLmFwcGVuZENoaWxkKHNlbGVjdG9yKTsK
IAotICAgICAgICAgICAgaWYgKHRoaXMuX2ZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgJiYgc3R5
bGUub3duZXJSdWxlICYmIHN0eWxlLm93bmVyUnVsZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVTaGVldC5UeXBlLkluc3BlY3RvcikgeworICAgICAgICAgICAgaWYgKHN0eWxlLmlzSW5z
cGVjdG9yUnVsZSgpICYmIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxlY3RvciA9PT0gc3R5bGUu
c2VsZWN0b3JUZXh0ICYmICFzdHlsZS5oYXNQcm9wZXJ0aWVzKCkpIHsKICAgICAgICAgICAgICAg
ICBzZWxlY3Rvci5zZWxlY3QodHJ1ZSk7CiAgICAgICAgICAgICAgICAgc2VsZWN0b3IuZWxlbWVu
dC5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAgIHRoaXMuX25vZGVTdHlsZXNbV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLkxhc3RTZWxlY3RlZFJ1bGVTeW1i
b2xdID0gc3R5bGU7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNOZXh0TmV3SW5zcGVjdG9y
UnVsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRoaXMuX25ld0luc3BlY3RvclJ1bGVTZWxl
Y3RvciA9IG51bGw7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBA
IC0yMDEsNyArMjAxLDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9u
ID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24gZXh0ZW4KICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ZvY3VzTmV4dE5ld0luc3BlY3RvclJ1bGUgPSBm
YWxzZTsKKyAgICAgICAgdGhpcy5fbmV3SW5zcGVjdG9yUnVsZVNlbGVjdG9yID0gbnVsbDsKICAg
ICB9CiAKICAgICBjdXJyZW50U3R5bGUoKQpAQCAtMjEyLDYgKzIxMiwyOCBAQCBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9y
U2VjdGlvbiBleHRlbgogICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0b3JzLnNlbGVjdGVkVHJl
ZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgfQogCisgICAgdHJlZUl0ZW1Gb3JTdHls
ZShzdHlsZSkKKyAgICB7CisgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5fc2VsZWN0b3Jz
LmNoaWxkcmVuKSB7CisgICAgICAgICAgICBpZiAoaXRlbS5yZXByZXNlbnRlZE9iamVjdCA9PT0g
c3R5bGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc2VsZWN0RW1wdHlTdHlsZVRyZWVJdGVtKHN0eWxl
KQorICAgIHsKKyAgICAgICAgaWYgKHN0eWxlLmhhc1Byb3BlcnRpZXMoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBsZXQgdHJlZUl0ZW0gPSB0aGlzLnRyZWVJdGVtRm9y
U3R5bGUoc3R5bGUpOworICAgICAgICBpZiAoIXRyZWVJdGVtKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHRyZWVJdGVtLnNlbGVjdCh0cnVlLCB0cnVlKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX3NlbGVjdG9yQ2hh
bmdlZChldmVudCkKQEAgLTI0MiwxMSArMjY0LDE4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVNlbGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVu
CiAKICAgICBfYWRkTmV3UnVsZShldmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fbm9k
ZVN0eWxlcykKKyAgICAgICAgaWYgKCF0aGlzLl9ub2RlU3R5bGVzIHx8IHRoaXMuX25vZGVTdHls
ZXMubm9kZS5pc0luU2hhZG93VHJlZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHRoaXMuX25vZGVTdHlsZXMuYWRkUnVsZSgpOwotICAgICAgICB0aGlzLl9mb2N1c05leHROZXdJ
bnNwZWN0b3JSdWxlID0gdHJ1ZTsKKyAgICAgICAgbGV0IHNlbGVjdG9yID0gdGhpcy5jdXJyZW50
U3R5bGUoKS5zZWxlY3RvclRleHQ7CisgICAgICAgIGxldCBleGlzdGluZ1J1bGVzID0gdGhpcy5f
bm9kZVN0eWxlcy5ydWxlc0ZvclNlbGVjdG9yKHNlbGVjdG9yKTsKKyAgICAgICAgZm9yIChsZXQg
cnVsZSBvZiBleGlzdGluZ1J1bGVzKSB7CisgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RFbXB0
eVN0eWxlVHJlZUl0ZW0ocnVsZS5zdHlsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5fbmV3SW5zcGVjdG9yUnVsZVNlbGVjdG9yID0gc2VsZWN0
b3I7CisgICAgICAgIHRoaXMuX25vZGVTdHlsZXMuYWRkUnVsZShzZWxlY3Rvcik7CiAgICAgfQog
CiAgICAgX3RyZWVFbGVtZW50Q2hlY2tib3hUb2dnbGVkKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3Rv
clRyZWVJdGVtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzCmluZGV4IGJhNTM4YmIuLmFlZDc5ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMKQEAgLTI1LDcg
KzI1LDcgQEAKIAogV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNs
YXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHRlbmRzIFdlYkluc3BlY3Rvci5HZW5l
cmFsVHJlZUVsZW1lbnQKIHsKLSAgICBjb25zdHJ1Y3RvcihzdHlsZSwgdGl0bGUsIHN1YnRpdGxl
KQorICAgIGNvbnN0cnVjdG9yKGRlbGVnYXRlLCBzdHlsZSwgdGl0bGUsIHN1YnRpdGxlKQogICAg
IHsKICAgICAgICAgbGV0IGljb25DbGFzc05hbWU7CiAgICAgICAgIHN3aXRjaCAoc3R5bGUudHlw
ZSkgewpAQCAtNTcsNiArNTcsOCBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRy
ZWVJdGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogCiAgICAgICAg
IHN1cGVyKFsidmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0iLCBpY29uQ2xhc3NOYW1lXSwgdGl0
bGUsIHN1YnRpdGxlLCBzdHlsZSk7CiAKKyAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0
ZTsKKwogICAgICAgICB0aGlzLl9pY29uQ2xhc3NOYW1lID0gaWNvbkNsYXNzTmFtZTsKICAgICAg
ICAgdGhpcy5fbGFzdFZhbHVlID0gdGl0bGU7CiAgICAgICAgIHRoaXMuX2VuYWJsZUVkaXRpbmcg
PSB0cnVlOwpAQCAtMTQxLDEwICsxNDMsMTIgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2Vs
ZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKICAg
ICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc2V0IiksICgp
ID0+IHsKLSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVzZXRUZXh0KCk7Ci0g
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLkV2ZW50LlN0eWxlVGV4dFJlc2V0KTsKLSAgICAgICAg
fSk7CisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm1vZGlmaWVkKSB7CisgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVz
ZXQiKSwgKCkgPT4geworICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVz
ZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5FdmVudC5TdHlsZVRleHRS
ZXNldCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjks
MTIgKzE3Myw4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBj
bGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0CiAKICAgICAgICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWRkICVzIFJ1bGUi
KS5mb3JtYXQocHNldWRvQ2xhc3NTZWxlY3RvciksICgpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlLnNldFBzZXVkb0NsYXNzRW5hYmxlZChwc2V1
ZG9DbGFzcywgdHJ1ZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50
ZWRPYmplY3Qub3duZXJSdWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHNldWRv
U2VsZWN0b3JzID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JzLm1h
cCgoc2VsZWN0b3IpID0+IHNlbGVjdG9yLnRleHQgKyBwc2V1ZG9DbGFzc1NlbGVjdG9yKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVN0eWxlcy5h
ZGRSdWxlKHBzZXVkb1NlbGVjdG9ycy5qb2luKCIsIikpOwotICAgICAgICAgICAgICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9k
ZVN0eWxlcy5hZGRSdWxlKHRoaXMuX2N1cnJlbnRTZWxlY3RvclRleHQgKyBwc2V1ZG9DbGFzc1Nl
bGVjdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBz
ZWxlY3Rvci50ZXh0ICsgcHNldWRvQ2xhc3NTZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVN0eWxlcy5hZGRSdWxlKHBzZXVkb1NlbGVjdG9y
cy5qb2luKCIsICIpKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTgzLDEyICsxODMsMjcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0
b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKICAgICAg
ICAgICAgIGxldCBwc2V1ZG9FbGVtZW50U2VsZWN0b3IgPSAiOjoiICsgcHNldWRvRWxlbWVudDsK
ICAgICAgICAgICAgIGNvbnN0IHN0eWxlVGV4dCA9ICJjb250ZW50OiBcIlwiOyI7CiAKLSAgICAg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDcmVh
dGUgJXMgUnVsZSIpLmZvcm1hdChwc2V1ZG9FbGVtZW50U2VsZWN0b3IpLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGxldCBwc2V1ZG9TZWxlY3RvcnMgPSB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm93bmVyUnVsZS5zZWxlY3RvcnMubWFwKChzZWxlY3RvcikgPT4gc2VsZWN0b3IudGV4dCAr
IHBzZXVkb0VsZW1lbnRTZWxlY3Rvcik7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3Qubm9kZVN0eWxlcy5hZGRSdWxlKHBzZXVkb1NlbGVjdG9ycy5qb2luKCIsIiks
IHN0eWxlVGV4dCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVN0eWxlcy5hZGRSdWxlKHRoaXMuX2N1cnJlbnRT
ZWxlY3RvclRleHQgKyBwc2V1ZG9FbGVtZW50U2VsZWN0b3IsIHN0eWxlVGV4dCk7CisgICAgICAg
ICAgICBsZXQgZXhpc3RpbmdUcmVlSXRlbSA9IG51bGw7CisgICAgICAgICAgICBpZiAodGhpcy5f
ZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnRyZWVJdGVtRm9yU3R5bGUgPT09ICJm
dW5jdGlvbiIpIHsKKyAgICAgICAgICAgICAgICBsZXQgc2VsZWN0b3JUZXh0ID0gdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JUZXh0OworICAgICAgICAgICAgICAgIGxl
dCBleGlzdGluZ1J1bGVzID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlU3R5bGVzLnJ1bGVz
Rm9yU2VsZWN0b3Ioc2VsZWN0b3JUZXh0ICsgcHNldWRvRWxlbWVudFNlbGVjdG9yKTsKKyAgICAg
ICAgICAgICAgICBpZiAoZXhpc3RpbmdSdWxlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gVGhlcmUgc2hvdWxkbid0IHJlYWxseSBldmVyIGJlIG1vcmUgdGhhbiBvbmUgcHNldWRv
LWVsZW1lbnQgcnVsZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGlzIG5vdCBpbiBhIG1l
ZGlhIHF1ZXJ5LiBBcyBzdWNoLCBqdXN0IGZvY3VzIHRoZSBmaXJzdCBydWxlCisgICAgICAgICAg
ICAgICAgICAgIC8vIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgaXQgaXMgdGhlIG9ubHkgb25lIG5l
Y2Vzc2FyeS4KKyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdUcmVlSXRlbSA9IHRoaXMuX2Rl
bGVnYXRlLnRyZWVJdGVtRm9yU3R5bGUoZXhpc3RpbmdSdWxlc1swXS5zdHlsZSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgdGl0bGUgPSBleGlz
dGluZ1RyZWVJdGVtID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWxlY3QgJXMgUnVsZSIpIDog
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDcmVhdGUgJXMgUnVsZSIpOworICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbSh0aXRsZS5mb3JtYXQocHNldWRvRWxlbWVudFNlbGVjdG9yKSwg
KCkgPT4geworICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1RyZWVJdGVtKSB7CisgICAgICAg
ICAgICAgICAgICAgIGV4aXN0aW5nVHJlZUl0ZW0uc2VsZWN0KHRydWUsIHRydWUpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgbGV0IHBzZXVkb1NlbGVjdG9ycyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxl
LnNlbGVjdG9ycy5tYXAoKHNlbGVjdG9yKSA9PiBzZWxlY3Rvci50ZXh0ICsgcHNldWRvRWxlbWVu
dFNlbGVjdG9yKTsKKyAgICAgICAgICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVT
dHlsZXMuYWRkUnVsZShwc2V1ZG9TZWxlY3RvcnMuam9pbigiLCAiKSwgc3R5bGVUZXh0KTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>