<?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>73217</bug_id>
          
          <creation_ts>2011-11-28 06:51:50 -0800</creation_ts>
          <short_desc>Web Inspector: remove WebInspector.linkifyURL and TreeElement.titleHTML</short_desc>
          <delta_ts>2011-11-29 01:28:59 -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 (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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>509804</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-28 06:51:50 -0800</bug_when>
    <thetext>Building HTML snippets and assigning these to Element.innerHTML is inefficient and potentially insecure. This patch removes most of the occurrences of hand-crafted HTML within the inspector in favor of building and passing DOM elements/fragments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509822</commentid>
    <comment_count>1</comment_count>
      <attachid>116757</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-28 07:36:01 -0800</bug_when>
    <thetext>Created attachment 116757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509846</commentid>
    <comment_count>2</comment_count>
      <attachid>116757</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-11-28 08:40:53 -0800</bug_when>
    <thetext>Comment on attachment 116757
Patch

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

&gt; Source/WebCore/inspector/front-end/ResourceHeadersView.js:147
&gt; +            div.createChild(&quot;error-message&quot;).textContent = WebInspector.UIString(&quot;(unable to decode value)&quot;);

div.createChild(&quot;span&quot;, &quot;error-message&quot;).textContent

&gt; Source/WebCore/inspector/front-end/ResourceHeadersView.js:328
&gt; +                value.createChild(&quot;span&quot;, &quot;status-from-cache&quot;).textContent = WebInspector.UIString(&quot;(from cache)&quot;);

Looks like a whitespace is missing here.

Otherwise looks good, but please test different network scenarios prior to landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509853</commentid>
    <comment_count>3</comment_count>
      <attachid>116766</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-28 08:48:59 -0800</bug_when>
    <thetext>Created attachment 116766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509855</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-28 08:50:14 -0800</bug_when>
    <thetext>- fixed space before &quot;(from cache)&quot;
- fixed missing &quot;span&quot; in createChild
- fixed adding of tree nodes with no title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510591</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-11-29 01:28:59 -0800</bug_when>
    <thetext>Committed r101341: &lt;http://trac.webkit.org/changeset/101341&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116757</attachid>
            <date>2011-11-28 07:36:01 -0800</date>
            <delta_ts>2011-11-28 08:48:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73217-20111128193559.patch</filename>
            <type>text/plain</type>
            <size>26940</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDczMzVkN2Y1ODk0ZDk0
N2Y3N2ZjYWUzZDA4MzVkZDAyYTdmZTdhOS4uOWI0YjBiZWJkM2RhMWVhNzEyZTliMzQzMjI1MzU1
YjBiYmVkMDRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDExLTExLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcmVtb3ZlIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMIGFuZCBUcmVlRWxlbWVudC50aXRsZUhU
TUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0Rm9ybWF0dGVycy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5hcHBseUZvcm1hdHRlcnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRS
ZXN1bHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1bHRQ
YW5lLnByb3RvdHlwZS5fYXBwZW5kUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Hemlw
UnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
VW51c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4uZXZhbENhbGxiYWNrLnNlbGVjdG9yc0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1
bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNz
c0luSGVhZFJ1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3Vs
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlEaXNwbGF5
TmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LnByb3RvdHlwZS5h
ZGRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQucHJvdG90
eXBlLmFkZEZvcm1hdHRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0
LnByb3RvdHlwZS5fYXBwZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUuYWRqdXN0Q29sbGFwc2VkUmFuZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIZWFkZXJzVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnByb3RvdHlwZS5fZm9y
bWF0SGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnBy
b3RvdHlwZS5fZm9ybWF0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZUhlYWRlcnNWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hVcmxGcmFnbWVudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJl
c2hSZXF1ZXN0UGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJz
Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQYXJtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hIVFRQSW5mb3JtYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcucHJvdG90eXBlLl9yZWZyZXNo
SGVhZGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3Rv
dHlwZS5yZWJ1aWxkQ29tcHV0ZWRUcmFjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2Vyc1Np
ZGViYXJQYW5lLnByb3RvdHlwZS5hZGRXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvdHJlZW91dGxpbmUuanM6CisgICAgICAgIChUcmVlRWxlbWVudC5wcm90b3R5cGUuX3Nl
dExpc3RJdGVtTm9kZUNvbnRlbnQpOgorCiAyMDExLTExLTI3ICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1NTdHlsZVJ1bGU6IFBhY2sgbV9zb3VyY2VMaW5l
IHdpdGggQ1NTUnVsZSBiaXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdEZvcm1hdHRlcnMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0Rm9ybWF0dGVycy5qcwppbmRleCBhOWY4ZWZlNmRiOWQyNzVhMTRlMTAy
M2U5MjkwYTQ4MTEzODU1MDk3Li44ZjVjOWE4ZjU4ZGZiZWE1ZGY0ZjBhNjUyMzBhMmM3YTY4NzQy
YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
Rm9ybWF0dGVycy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1
ZGl0Rm9ybWF0dGVycy5qcwpAQCAtNDMsNiArNDMsOCBAQCBXZWJJbnNwZWN0b3IuYXBwbHlGb3Jt
YXR0ZXJzID0gZnVuY3Rpb24odmFsdWUpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBj
YXNlICJvYmplY3QiOgorICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTm9kZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFu
Y2VvZiBBcnJheSkgewogICAgICAgICAgICAgICAgIGZvcm1hdHRlciA9IFdlYkluc3BlY3Rvci5B
dWRpdEZvcm1hdHRlcnMuY29uY2F0OwogICAgICAgICAgICAgICAgIGFyZ3MgPSB2YWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZp
ZXcuanMKaW5kZXggMWRhZjFhMDljZWU4MTM2MzQwMDk5Y2Y5MDEwOGE1ODg2ZWJiMzJlNy4uNjM2
NTVlMTAwYzgyNzI0YjkxOWZhYWVhZTBmNDhiMzZhYmEzODE1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMKQEAgLTEw
OCw3ICsxMDgsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRDYXRlZ29yeVJlc3VsdFBhbmUucHJvdG90
eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gbmV3IFRyZWVF
bGVtZW50KG51bGwsIG51bGwsICEhcmVzdWx0LmNoaWxkcmVuKTsKLSAgICAgICAgdHJlZUVsZW1l
bnQudGl0bGVIVE1MID0gdGl0bGU7CisgICAgICAgIHRyZWVFbGVtZW50LnRpdGxlID0gdGl0bGU7
CiAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKHRyZWVFbGVtZW50KTsKIAog
ICAgICAgICBpZiAocmVzdWx0LmNsYXNzTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwppbmRleCA2OWRiMzE0MTliN2E2MzU2ZThhMTc4
ZTNkNzY2MmE4YzkzNGNhMDA5Li5iNzNjN2E5MTcyYjliMTJhYTQyMDE5ZDc1MzdiM2NmNmY3Yzc0
YmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
UnVsZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1
bGVzLmpzCkBAIC05Miw3ICs5Miw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkd6aXBSdWxl
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdmFyIHNh
dmluZ3MgPSAyICogc2l6ZSAvIDM7CiAgICAgICAgICAgICAgICAgdG90YWxTYXZpbmdzICs9IHNh
dmluZ3M7Ci0gICAgICAgICAgICAgICAgc3VtbWFyeS5hZGRDaGlsZChTdHJpbmcuc3ByaW50Zigi
JXMgY291bGQgc2F2ZSB+JXMiLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlE
aXNwbGF5TmFtZShyZXNvdXJjZS51cmwpLCBOdW1iZXIuYnl0ZXNUb1N0cmluZyhzYXZpbmdzKSkp
OworICAgICAgICAgICAgICAgIHN1bW1hcnkuYWRkRm9ybWF0dGVkKCIlciBjb3VsZCBzYXZlIH4l
cyIsIHJlc291cmNlLnVybCwgTnVtYmVyLmJ5dGVzVG9TdHJpbmcoc2F2aW5ncykpOwogICAgICAg
ICAgICAgICAgIHJlc3VsdC52aW9sYXRpb25Db3VudCsrOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0zNTIsNyArMzUyLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3Nz
UnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBwY3RVbnVzZWQgPSBN
YXRoLnJvdW5kKDEwMCAqIHVudXNlZFN0eWxlc2hlZXRTaXplIC8gc3R5bGVzaGVldFNpemUpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoIXN1bW1hcnkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBzdW1tYXJ5ID0gcmVzdWx0LmFkZENoaWxkKCIiLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIGVudHJ5ID0gc3VtbWFyeS5hZGRDaGlsZChTdHJpbmcuc3ByaW50ZigiJXM6ICVzICgl
ZCUlKSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLiIsIHVybCwgTnVtYmVyLmJ5dGVz
VG9TdHJpbmcodW51c2VkU3R5bGVzaGVldFNpemUpLCBwY3RVbnVzZWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgdmFyIGVudHJ5ID0gc3VtbWFyeS5hZGRGb3JtYXR0ZWQoIiVzOiAlcyAoJWQlJSkg
aXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB1cmwsIE51bWJlci5ieXRlc1RvU3Ry
aW5nKHVudXNlZFN0eWxlc2hlZXRTaXplKSwgcGN0VW51c2VkKTsKIAogICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHVudXNlZFJ1bGVzLmxlbmd0aDsgKytqKQogICAgICAg
ICAgICAgICAgICAgICAgICAgZW50cnkuYWRkU25pcHBldCh1bnVzZWRSdWxlc1tqXSk7CkBAIC02
ODEsMTAgKzY4MSwxMCBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNS
dWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgewogICAgICAgICAgICAgZm9yICh2YXIgdXJsIGlu
IHVybFRvTm9EaW1lbnNpb25Db3VudCkgewogICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGVu
dHJ5IHx8IHJlc3VsdC5hZGRDaGlsZCgiQSB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCBiZSBzcGVj
aWZpZWQgZm9yIGFsbCBpbWFnZXMgaW4gb3JkZXIgdG8gc3BlZWQgdXAgcGFnZSBkaXNwbGF5LiBU
aGUgZm9sbG93aW5nIGltYWdlKHMpIGFyZSBtaXNzaW5nIGEgd2lkdGggYW5kL29yIGhlaWdodDoi
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlUmVzdWx0LmxpbmtpZnlEaXNwbGF5TmFtZSh1cmwpOworICAgICAgICAgICAgICAgIHZhciBm
b3JtYXQgPSAiJXIiOwogICAgICAgICAgICAgICAgIGlmICh1cmxUb05vRGltZW5zaW9uQ291bnRb
dXJsXSA+IDEpCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlICs9IFN0cmluZy5zcHJpbnRmKCIg
KCVkIHVzZXMpIiwgdXJsVG9Ob0RpbWVuc2lvbkNvdW50W3VybF0pOwotICAgICAgICAgICAgICAg
IGVudHJ5LmFkZENoaWxkKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0ICs9ICIg
KCVkIHVzZXMpIjsKKyAgICAgICAgICAgICAgICBlbnRyeS5hZGRGb3JtYXR0ZWQoZm9ybWF0LCB1
cmwsIHVybFRvTm9EaW1lbnNpb25Db3VudFt1cmxdKTsKICAgICAgICAgICAgICAgICByZXN1bHQu
dmlvbGF0aW9uQ291bnQrKzsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhbGxiYWNrKGVu
dHJ5ID8gcmVzdWx0IDogbnVsbCk7CkBAIC04MDEsMTEgKzgwMSwxMSBAQCBXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5Dc3NJbkhlYWRSdWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGZvciAo
dmFyIHVybCBpbiBldmFsUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgdmFyIHVybFZpb2xhdGlv
bnMgPSBldmFsUmVzdWx0W3VybF07CiAgICAgICAgICAgICAgICAgaWYgKHVybFZpb2xhdGlvbnNb
MF0pIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZENoaWxkKFN0cmluZy5zcHJpbnRm
KCIlcyBzdHlsZSBibG9jayhzKSBpbiB0aGUgJXMgYm9keSBzaG91bGQgYmUgbW92ZWQgdG8gdGhl
IGRvY3VtZW50IGhlYWQuIiwgdXJsVmlvbGF0aW9uc1swXSwgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZVJlc3VsdC5saW5raWZ5RGlzcGxheU5hbWUodXJsKSkpOworICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQuYWRkRm9ybWF0dGVkKCIlcyBzdHlsZSBibG9jayhzKSBpbiB0aGUgJXIgYm9keSBzaG91
bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQuIiwgdXJsVmlvbGF0aW9uc1swXSwgdXJs
KTsKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnZpb2xhdGlvbkNvdW50ICs9IHVybFZpb2xh
dGlvbnNbMF07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdXJsVmlvbGF0aW9uc1sxXS5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFkZENoaWxkKFN0cmluZy5zcHJpbnRmKCJMaW5rIG5vZGUgJXMgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFkIGluICVzIiwgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZVJlc3VsdC5saW5raWZ5RGlzcGxheU5hbWUodXJsVmlvbGF0aW9uc1sxXVtpXSksIFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlOYW1lKHVybCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmFkZEZvcm1hdHRlZCgiTGluayBub2RlICVyIHNob3VsZCBiZSBt
b3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAlciIsIHVybFZpb2xhdGlvbnNbMV1baV0sIHVy
bCk7CiAgICAgICAgICAgICAgICAgcmVzdWx0LnZpb2xhdGlvbkNvdW50ICs9IHVybFZpb2xhdGlv
bnNbMV0ubGVuZ3RoOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3VtbWFyeS52YWx1ZSA9
IFN0cmluZy5zcHJpbnRmKCJDU1MgaW4gdGhlIGRvY3VtZW50IGJvZHkgYWR2ZXJzZWx5IGltcGFj
dHMgcmVuZGVyaW5nIHBlcmZvcm1hbmNlLiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKaW5kZXggYzczNjE1NmExZTI4NzkyMzg5Yzcw
MWFhYzk0NGQ2MWMxZDQyNzljYS4uOGZlMTdlMjgyNWY5MDRiY2JjYTI2Mzc5NjZiMTYxNDJhMjg0
ZjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRp
dHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
c1BhbmVsLmpzCkBAIC0zODYsMTEgKzM4NiwxNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVz
dWx0ID0gZnVuY3Rpb24odmFsdWUsIGV4cGFuZGVkLCBjbGFzc05hbWUpCiAgICAgdGhpcy5jbGFz
c05hbWUgPSBjbGFzc05hbWU7CiAgICAgdGhpcy5leHBhbmRlZCA9IGV4cGFuZGVkOwogICAgIHRo
aXMudmlvbGF0aW9uQ291bnQgPSAwOworICAgIHRoaXMuX2Zvcm1hdHRlcnMgPSB7CisgICAgICAg
IHI6IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlOYW1lCisgICAg
fTsKKyAgICB2YXIgc3RhbmRhcmRGb3JtYXR0ZXJzID0gT2JqZWN0LmtleXMoU3RyaW5nLnN0YW5k
YXJkRm9ybWF0dGVycyk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFuZGFyZEZvcm1hdHRl
cnMubGVuZ3RoOyArK2kpCisgICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNbc3RhbmRhcmRGb3JtYXR0
ZXJzW2ldXSA9IFN0cmluZy5zdGFuZGFyZEZvcm1hdHRlcnNbc3RhbmRhcmRGb3JtYXR0ZXJzW2ld
XTsKIH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdC5saW5raWZ5RGlzcGxheU5hbWUg
PSBmdW5jdGlvbih1cmwpCiB7Ci0gICAgcmV0dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMKHVy
bCwgV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHVybCkpOworICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZv
clVSTCh1cmwpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3VsdC5yZXNvdXJjZURv
bWFpbiA9IGZ1bmN0aW9uKGRvbWFpbikKQEAgLTQyNiw2ICs0MzIsMzAgQEAgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZVJlc3VsdC5wcm90b3R5cGUgPSB7CiAgICAgYWRkU25pcHBldDogZnVuY3Rpb24o
c25pcHBldCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLmFkZENoaWxkKHNuaXBwZXQsIGZh
bHNlLCAic291cmNlLWNvZGUiKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IGZvcm1hdAorICAgICAqIEBwYXJhbSB7Li4uKn0gdmFyYXJnCisgICAgICovCisgICAg
YWRkRm9ybWF0dGVkOiBmdW5jdGlvbihmb3JtYXQsIHZhcmFyZykKKyAgICB7CisgICAgICAgIHZh
ciBzdWJzdGl0dXRpb25zID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAx
KTsKKyAgICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVu
dCgpOworICAgICAgICAKKyAgICAgICAgdmFyIGZvcm1hdHRlZFJlc3VsdCA9IFN0cmluZy5mb3Jt
YXQoZm9ybWF0LCBzdWJzdGl0dXRpb25zLCB0aGlzLl9mb3JtYXR0ZXJzLCBmcmFnbWVudCwgdGhp
cy5fYXBwZW5kKS5mb3JtYXR0ZWRSZXN1bHQ7CisgICAgICAgIGlmIChmb3JtYXR0ZWRSZXN1bHQg
aW5zdGFuY2VvZiBOb2RlKQorICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0Lm5vcm1hbGl6ZSgp
OworICAgICAgICByZXR1cm4gdGhpcy5hZGRDaGlsZChmb3JtYXR0ZWRSZXN1bHQpOworICAgIH0s
CisKKyAgICBfYXBwZW5kOiBmdW5jdGlvbihhLCBiKQorICAgIHsKKyAgICAgICAgCisgICAgICAg
IGlmICghKGIgaW5zdGFuY2VvZiBOb2RlKSkKKyAgICAgICAgICAgIGIgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShiKTsKKyAgICAgICAgYS5hcHBlbmRDaGlsZChiKTsKKyAgICAgICAgcmV0dXJu
IGE7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggZmNkYjBhM2E5ZmE0NzJkYWI5
Y2EzM2ViMTAyZmMzOTY1NTY3ZTkwYy4uMjEzNzA1YjY3NTAzODQyZDY1OWVhYTA2MDAxYTRjOWM0
NTUyODBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtODg0LDggKzg4NCwxMCBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChjaGls
ZE5vZGVDb3VudCA+IHRoaXMuZXhwYW5kZWRDaGlsZENvdW50KSB7CiAgICAgICAgICAgICB2YXIg
dGFyZ2V0QnV0dG9uSW5kZXggPSBleHBhbmRlZENoaWxkQ291bnQ7CiAgICAgICAgICAgICBpZiAo
IXRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudCkgewotICAgICAgICAgICAgICAgIHZhciBpdGVt
ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBp
dGVtLnRpdGxlSFRNTCA9ICI8YnV0dG9uIGNsYXNzPVwic2hvdy1hbGwtbm9kZXNcIiB2YWx1ZT1c
IlwiIC8+IjsKKyAgICAgICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiYnV0dG9uIik7CisgICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTmFtZSA9ICJzaG93
LWFsbC1ub2RlcyI7CisgICAgICAgICAgICAgICAgYnV0dG9uLnZhbHVlID0gIiI7CisgICAgICAg
ICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgVHJlZUVsZW1lbnQoYnV0dG9uLCBudWxsLCBmYWxzZSk7
CiAgICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgaXRlbS5leHBhbmRBbGxCdXR0b24gPSB0cnVlOwogICAgICAgICAgICAgICAgIHRoaXMuaW5z
ZXJ0Q2hpbGQoaXRlbSwgdGFyZ2V0QnV0dG9uSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24u
anMKaW5kZXggODk3YTFkNDU1ZWU1NmU1MDg0M2VlOGYxMDg2YWYxNWYxMTJhZmRhNy4uMDM0NmYz
MDNlNDRlYTAzZjgwZWNlNzEyMWUxZjM2NGNhM2U1NDIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0
aW9uLmpzCkBAIC05MCw5ICs5MCwxMCBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0aGlzLnByb3Bl
cnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZhciB0aXRs
ZSA9ICI8ZGl2IGNsYXNzPVwiaW5mb1wiPiIgKyB0aGlzLmVtcHR5UGxhY2Vob2xkZXIgKyAiPC9k
aXY+IjsKLSAgICAgICAgICAgIHZhciBpbmZvRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChudWxs
LCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICBpbmZvRWxlbWVudC50aXRsZUhUTUwgPSB0aXRs
ZTsKKyAgICAgICAgICAgIHZhciB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gImluZm8iOworICAgICAgICAgICAgdGl0
bGUudGV4dENvbnRlbnQgPSB0aGlzLmVtcHR5UGxhY2Vob2xkZXI7CisgICAgICAgICAgICB2YXIg
aW5mb0VsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQodGl0bGUsIG51bGwsIGZhbHNlKTsKICAgICAg
ICAgICAgIHRoaXMucHJvcGVydGllc1RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKGluZm9FbGVtZW50
KTsKICAgICAgICAgfQogICAgICAgICB0aGlzLnByb3BlcnRpZXNGb3JUZXN0ID0gcHJvcGVydGll
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VIZWFkZXJzVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VIZWFkZXJzVmlldy5qcwppbmRleCA0YjU1M2NmMGJkMDdjYTk1YjA3MTA3MDUzZjU2ZDY4
NDdkMDI0NTQwLi5jOGVkNTE3ZTVmMmQ3YThlNDY2YjRhZmY5MTI1ZjdhYTcxN2I3ZDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSGVhZGVy
c1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZUhlYWRlcnNWaWV3LmpzCkBAIC0xMTAsMTEgKzExMCw0OSBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VIZWFkZXJzVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogfQogCiBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUKKyAgICAgKi8KKyAgICBf
Zm9ybWF0SGVhZGVyOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBm
cmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgZnJh
Z21lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWFkZXItbmFtZSIpLnRleHRDb250ZW50ID0gbmFt
ZSArICI6IjsKKyAgICAgICAgZnJhZ21lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWFkZXItdmFs
dWUgc291cmNlLWNvZGUiKS50ZXh0Q29udGVudCA9IHZhbHVlOworCisgICAgICAgIHJldHVybiBm
cmFnbWVudDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVl
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXNzTmFtZQorICAgICAqLworICAgIF9mb3JtYXRQ
YXJhbWV0ZXI6IGZ1bmN0aW9uKHZhbHVlLCBjbGFzc05hbWUpCisgICAgeworICAgICAgICB2YXIg
ZXJyb3JEZWNvZGluZyA9IGZhbHNlOworCisgICAgICAgIGlmICh0aGlzLl9kZWNvZGVSZXF1ZXN0
UGFyYW1ldGVycykgeworICAgICAgICAgICAgaWYgKHZhbHVlLmluZGV4T2YoIiUiKSA+PSAwKSB7
CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkZWNv
ZGVVUklDb21wb25lbnQodmFsdWUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAg
ICAgICAgICAgICAgICAgICBlcnJvckRlY29kaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1wrL2cs
ICIgIik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgICBkaXYuY2xhc3NOYW1lID0gY2xhc3NOYW1lOworICAgICAgICBp
ZiAoZXJyb3JEZWNvZGluZykKKyAgICAgICAgICAgIGRpdi5jcmVhdGVDaGlsZCgiZXJyb3ItbWVz
c2FnZSIpLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIodW5hYmxlIHRvIGRl
Y29kZSB2YWx1ZSkiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGl2LnRleHRDb250ZW50
ID0gdmFsdWU7CisgICAgICAgIHJldHVybiBkaXY7CisgICAgfSwKIAogICAgIF9yZWZyZXNoVVJM
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl91cmxUcmVlRWxlbWVudC50aXRsZUhU
TUwgPSAiPGRpdiBjbGFzcz1cImhlYWRlci1uYW1lXCI+IiArIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUmVxdWVzdCBVUkwiKSArICI6PC9kaXY+IiArCi0gICAgICAgICAgICAiPGRpdiBjbGFzcz1c
ImhlYWRlci12YWx1ZSBzb3VyY2UtY29kZVwiPiIgKyB0aGlzLl9yZXNvdXJjZS51cmwuZXNjYXBl
SFRNTCgpICsgIjwvZGl2PiI7CisgICAgICAgIHRoaXMuX3VybFRyZWVFbGVtZW50LnRpdGxlID0g
dGhpcy5fZm9ybWF0SGVhZGVyKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVxdWVzdCBVUkwiKSwg
dGhpcy5fcmVzb3VyY2UudXJsKTsKICAgICB9LAogCiAgICAgX3JlZnJlc2hRdWVyeVN0cmluZzog
ZnVuY3Rpb24oKQpAQCAtMTM5LDExICsxNzcsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFk
ZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VybEZyYWdtZW50VHJlZUVsZW1l
bnQubGlzdEl0ZW1FbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuX3VybEZy
YWdtZW50VHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHNlY3Rpb25UaXRsZSkpOwogCi0gICAgICAgIHZhciB0aXRsZSA9ICI8ZGl2
IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4jOjwvZGl2PiI7Ci0gICAgICAgIHRpdGxlICs9ICI8ZGl2
IGNsYXNzPVwiaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIHVybEZyYWdtZW50LmVzY2Fw
ZUhUTUwoKSArICI8L2Rpdj4iOwotCiAgICAgICAgIHZhciBmcmFnbWVudFRyZWVFbGVtZW50ID0g
bmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgZnJhZ21lbnRUcmVl
RWxlbWVudC50aXRsZUhUTUwgPSB0aXRsZTsKKyAgICAgICAgZnJhZ21lbnRUcmVlRWxlbWVudC50
aXRsZSA9IHRoaXMuX2Zvcm1hdEhlYWRlcigiIyIsIHVybEZyYWdtZW50KTsKICAgICAgICAgZnJh
Z21lbnRUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3VybEZy
YWdtZW50VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhZ21lbnRUcmVlRWxlbWVudCk7CiAgICAg
fSwKQEAgLTE3MSwzMyArMjA2LDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RQYXlsb2FkVHJlZUVs
ZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKIAotICAgICAgICB2YXIgdGl0bGUgPSAiPGRpdiBjbGFz
cz1cInJhdy1mb3JtLWRhdGEgaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIGZvcm1EYXRh
LmVzY2FwZUhUTUwoKSArICI8L2Rpdj4iOwotICAgICAgICB2YXIgcGFybVRyZWVFbGVtZW50ID0g
bmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgcGFybVRyZWVFbGVt
ZW50LnRpdGxlSFRNTCA9IHRpdGxlOworICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gInJhdy1mb3JtLWRh
dGEgaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlIjsKKyAgICAgICAgdGl0bGUudGV4dENvbnRlbnQg
PSBmb3JtRGF0YTsKKworICAgICAgICB2YXIgcGFybVRyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVt
ZW50KHRpdGxlLCBudWxsLCBmYWxzZSk7CiAgICAgICAgIHBhcm1UcmVlRWxlbWVudC5zZWxlY3Rh
YmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RQYXlsb2FkVHJlZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQocGFybVRyZWVFbGVtZW50KTsKICAgICB9LAogCi0gICAgX2RlY29kZVVSSUNvbXBv
bmVudDogZnVuY3Rpb24odmFsdWUpCi0gICAgewotICAgICAgICB2YXIgZXJyb3JEZWNvZGluZyA9
IGZhbHNlOwotCi0gICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCIlIikgPj0gMCkgewotICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2
YWx1ZSk7Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgICBlcnJvckRl
Y29kaW5nID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YWx1ZSA9
IHZhbHVlLnJlcGxhY2UoL1wrL2csICIgIik7Ci0KLSAgICAgICAgdmFyIHZhbHVlRXNjYXBlZCA9
IHZhbHVlLmVzY2FwZUhUTUwoKTsKLSAgICAgICAgaWYgKGVycm9yRGVjb2RpbmcpCi0gICAgICAg
ICAgICB2YWx1ZUVzY2FwZWQgKz0gIiA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj4iICsg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIodW5hYmxlIHRvIGRlY29kZSB2YWx1ZSkiKS5lc2NhcGVI
VE1MKCkgKyAiPC9zcGFuPiI7Ci0KLSAgICAgICAgcmV0dXJuIHZhbHVlRXNjYXBlZDsKLSAgICB9
LAotCiAgICAgX3JlZnJlc2hQYXJtczogZnVuY3Rpb24odGl0bGUsIHBhcm1zLCBwYXJtc1RyZWVF
bGVtZW50KQogICAgIHsKICAgICAgICAgcGFybXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigp
OwpAQCAtMjE3LDE3ICsyMzQsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcu
cHJvdG90eXBlID0gewogCiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJtcy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgdmFyIG5hbWUgPSBwYXJtc1tpXS5uYW1lOwotICAgICAg
ICAgICAgdmFyIHZhbHVlID0gcGFybXNbaV0udmFsdWU7Ci0KLSAgICAgICAgICAgIHZhciB2YWx1
ZUVzY2FwZWQgPSB0aGlzLl9kZWNvZGVSZXF1ZXN0UGFyYW1ldGVycyA/IHRoaXMuX2RlY29kZVVS
SUNvbXBvbmVudCh2YWx1ZSkgOiB2YWx1ZS5lc2NhcGVIVE1MKCk7Ci0gICAgICAgICAgICB2YXIg
bmFtZUVzY2FwZWQgPSB0aGlzLl9kZWNvZGVSZXF1ZXN0UGFyYW1ldGVycyA/IHRoaXMuX2RlY29k
ZVVSSUNvbXBvbmVudChuYW1lKSA6IG5hbWUuZXNjYXBlSFRNTCgpOwotCi0gICAgICAgICAgICB0
aXRsZSA9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4iICsgbmFtZUVzY2FwZWQgKyAiOjwv
ZGl2PiI7Ci0gICAgICAgICAgICB0aXRsZSArPSAiPGRpdiBjbGFzcz1cImhlYWRlci12YWx1ZSBz
b3VyY2UtY29kZVwiPiIgKyB2YWx1ZUVzY2FwZWQgKyAiPC9kaXY+IjsKLQotICAgICAgICAgICAg
dmFyIHBhcm1UcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChudWxsLCBudWxsLCBmYWxzZSk7
Ci0gICAgICAgICAgICBwYXJtVHJlZUVsZW1lbnQudGl0bGVIVE1MID0gdGl0bGU7CisgICAgICAg
ICAgICB2YXIgcGFyYW1OYW1lVmFsdWUgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7CisgICAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMuX2Zvcm1hdFBhcmFtZXRlcihwYXJtc1tp
XS5uYW1lICsgIjoiLCAiaGVhZGVyLW5hbWUiKTsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRo
aXMuX2Zvcm1hdFBhcmFtZXRlcihwYXJtc1tpXS52YWx1ZSwgImhlYWRlci1uYW1lIHNvdXJjZS1j
b2RlIik7CisgICAgICAgICAgICBwYXJhbU5hbWVWYWx1ZS5hcHBlbmRDaGlsZChuYW1lKTsKKyAg
ICAgICAgICAgIHBhcmFtTmFtZVZhbHVlLmFwcGVuZENoaWxkKHZhbHVlKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgdmFyIHBhcm1UcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChwYXJh
bU5hbWVWYWx1ZSwgbnVsbCwgZmFsc2UpOwogICAgICAgICAgICAgcGFybVRyZWVFbGVtZW50LnNl
bGVjdGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgIHBhcm1zVHJlZUVsZW1lbnQuYXBwZW5kQ2hp
bGQocGFybVRyZWVFbGVtZW50KTsKICAgICAgICAgfQpAQCAtMjkxLDcgKzMwNCw2IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmVxdWVz
dE1ldGhvZEVsZW1lbnQuaGlkZGVuID0gIXRoaXMuX3Jlc291cmNlLnN0YXR1c0NvZGU7CiAgICAg
ICAgIHZhciBzdGF0dXNDb2RlRWxlbWVudCA9IHRoaXMuX3N0YXR1c0NvZGVUcmVlRWxlbWVudDsK
ICAgICAgICAgc3RhdHVzQ29kZUVsZW1lbnQuaGlkZGVuID0gIXRoaXMuX3Jlc291cmNlLnN0YXR1
c0NvZGU7Ci0gICAgICAgIHZhciBzdGF0dXNDb2RlSW1hZ2UgPSAiIjsKIAogICAgICAgICBpZiAo
dGhpcy5fcmVzb3VyY2Uuc3RhdHVzQ29kZSkgewogICAgICAgICAgICAgdmFyIHN0YXR1c0ltYWdl
U291cmNlID0gIiI7CkBAIC0zMDIsMTggKzMxNCwyMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VI
ZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgc3RhdHVzSW1hZ2VTb3VyY2UgPSAiSW1hZ2VzL2Vycm9yUmVkRG90LnBuZyI7CiAKLSAgICAg
ICAgICAgIHZhciBzdGF0dXNUZXh0RXNjYXBlZCA9IHRoaXMuX3Jlc291cmNlLnN0YXR1c0NvZGUg
KyAiICIgKyB0aGlzLl9yZXNvdXJjZS5zdGF0dXNUZXh0LmVzY2FwZUhUTUwoKTsKLSAgICAgICAg
ICAgIHN0YXR1c0NvZGVJbWFnZSA9ICI8aW1nIGNsYXNzPVwicmVzb3VyY2Utc3RhdHVzLWltYWdl
XCIgc3JjPVwiIiArIHN0YXR1c0ltYWdlU291cmNlICsgIlwiIHRpdGxlPVwiIiArIHN0YXR1c1Rl
eHRFc2NhcGVkICsgIlwiPiI7Ci0KLSAgICAgICAgICAgIHJlcXVlc3RNZXRob2RFbGVtZW50LnRp
dGxlSFRNTCA9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4iICsgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZXF1ZXN0IE1ldGhvZCIpICsgIjo8L2Rpdj4iICsKLSAgICAgICAgICAgICAgICAi
PGRpdiBjbGFzcz1cImhlYWRlci12YWx1ZSBzb3VyY2UtY29kZVwiPiIgKyB0aGlzLl9yZXNvdXJj
ZS5yZXF1ZXN0TWV0aG9kICsgIjwvZGl2PiI7CisgICAgICAgICAgICByZXF1ZXN0TWV0aG9kRWxl
bWVudC50aXRsZSA9IHRoaXMuX2Zvcm1hdEhlYWRlcihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJl
cXVlc3QgTWV0aG9kIiksIHRoaXMuX3Jlc291cmNlLnJlcXVlc3RNZXRob2QpOwogCi0gICAgICAg
ICAgICB2YXIgZnJvbUNhY2hlU3BhbiA9ICIiOworICAgICAgICAgICAgdmFyIHN0YXR1c0NvZGVG
cmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAgICAgICAg
IHN0YXR1c0NvZGVGcmFnbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImhlYWRlci1uYW1lIikudGV4
dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXR1cyBDb2RlIikgKyAiOiI7Cisg
ICAKKyAgICAgICAgICAgIHZhciBzdGF0dXNDb2RlSW1hZ2UgPSBzdGF0dXNDb2RlRnJhZ21lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJyZXNvdXJjZS1zdGF0dXMtaW1hZ2UiKTsKKyAgICAgICAgICAg
IHN0YXR1c0NvZGVJbWFnZS5zcmMgPSBzdGF0dXNJbWFnZVNvdXJjZTsKKyAgICAgICAgICAgIHN0
YXR1c0NvZGVJbWFnZS50aXRsZSA9IHRoaXMuX3Jlc291cmNlLnN0YXR1c0NvZGUgKyAiICIgKyB0
aGlzLl9yZXNvdXJjZS5zdGF0dXNUZXh0OyAKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0YXR1
c0NvZGVGcmFnbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImhlYWRlci12YWx1ZSBzb3VyY2UtY29k
ZSIpOworICAgICAgICAgICAgdmFsdWUudGV4dENvbnRlbnQgPSB0aGlzLl9yZXNvdXJjZS5zdGF0
dXNDb2RlICsgIiAiICsgdGhpcy5fcmVzb3VyY2Uuc3RhdHVzVGV4dDsKICAgICAgICAgICAgIGlm
ICh0aGlzLl9yZXNvdXJjZS5jYWNoZWQpCi0gICAgICAgICAgICAgICAgZnJvbUNhY2hlU3BhbiA9
ICIgIiArICI8c3BhbiBjbGFzcz1cInN0YXR1cy1mcm9tLWNhY2hlXCI+IiArIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiKGZyb20gY2FjaGUpIikuZXNjYXBlSFRNTCgpICsgIjwvc3Bhbj4iOwotCi0g
ICAgICAgICAgICBzdGF0dXNDb2RlRWxlbWVudC50aXRsZUhUTUwgPSAiPGRpdiBjbGFzcz1cImhl
YWRlci1uYW1lXCI+IiArIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhdHVzIENvZGUiKSArICI6
PC9kaXY+IiArCi0gICAgICAgICAgICAgICAgc3RhdHVzQ29kZUltYWdlICsgIjxkaXYgY2xhc3M9
XCJoZWFkZXItdmFsdWUgc291cmNlLWNvZGVcIj4iICsgc3RhdHVzVGV4dEVzY2FwZWQgKyBmcm9t
Q2FjaGVTcGFuICsgIjwvZGl2PiI7CisgICAgICAgICAgICAgICAgdmFsdWUuY3JlYXRlQ2hpbGQo
InNwYW4iLCAic3RhdHVzLWZyb20tY2FjaGUiKS50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiKGZyb20gY2FjaGUpIik7CisgICAgICAgICAKKyAgICAgICAgICAgIHN0YXR1c0Nv
ZGVFbGVtZW50LnRpdGxlID0gc3RhdHVzQ29kZUZyYWdtZW50OwogICAgICAgICB9CiAgICAgfSwK
IApAQCAtMzM2LDIxICszNTAsMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWZyZXNoSGVhZGVyc1RpdGxlKHRpdGxlLCBo
ZWFkZXJzVHJlZUVsZW1lbnQsIGxlbmd0aCk7CiAgICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5o
aWRkZW4gPSAhbGVuZ3RoOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICB0aXRsZSA9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4iICsg
aGVhZGVyc1tpXS5oZWFkZXIuZXNjYXBlSFRNTCgpICsgIjo8L2Rpdj4iOwotICAgICAgICAgICAg
dGl0bGUgKz0gIjxkaXYgY2xhc3M9XCJoZWFkZXItdmFsdWUgc291cmNlLWNvZGVcIj4iICsgaGVh
ZGVyc1tpXS52YWx1ZS5lc2NhcGVIVE1MKCkgKyAiPC9kaXY+IgotCiAgICAgICAgICAgICB2YXIg
aGVhZGVyVHJlZUVsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQobnVsbCwgbnVsbCwgZmFsc2UpOwot
ICAgICAgICAgICAgaGVhZGVyVHJlZUVsZW1lbnQudGl0bGVIVE1MID0gdGl0bGU7CisgICAgICAg
ICAgICBoZWFkZXJUcmVlRWxlbWVudC50aXRsZSA9IHRoaXMuX2Zvcm1hdEhlYWRlcihoZWFkZXJz
W2ldLmhlYWRlciwgaGVhZGVyc1tpXS52YWx1ZSk7CiAgICAgICAgICAgICBoZWFkZXJUcmVlRWxl
bWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICBoZWFkZXJzVHJlZUVsZW1lbnQu
YXBwZW5kQ2hpbGQoaGVhZGVyVHJlZUVsZW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KGFkZGl0aW9uYWxSb3cpIHsKLSAgICAgICAgICAgIHRpdGxlID0gIjxkaXYgY2xhc3M9XCJoZWFk
ZXItbmFtZVwiPiIgKyBhZGRpdGlvbmFsUm93LmhlYWRlci5lc2NhcGVIVE1MKCkgKyAiOjwvZGl2
PiI7Ci0gICAgICAgICAgICB0aXRsZSArPSAiPGRpdiBjbGFzcz1cImhlYWRlci12YWx1ZSBzb3Vy
Y2UtY29kZVwiPiIgKyBhZGRpdGlvbmFsUm93LnZhbHVlLmVzY2FwZUhUTUwoKSArICI8L2Rpdj4i
Ci0KICAgICAgICAgICAgIHZhciBoZWFkZXJUcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChu
dWxsLCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICBoZWFkZXJUcmVlRWxlbWVudC50aXRsZUhU
TUwgPSB0aXRsZTsKKyAgICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50LnRpdGxlID0gdGhpcy5f
Zm9ybWF0SGVhZGVyKGFkZGl0aW9uYWxSb3cuaGVhZGVyLCBhZGRpdGlvbmFsUm93LnZhbHVlKTsK
ICAgICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxzZTsKICAgICAg
ICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChoZWFkZXJUcmVlRWxlbWVudCk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VVdGlscy5qcwppbmRleCBkN2UzNjk2YzhjNTEzYmM3OTI0MDdjZTE3MWMyNTVjNTRj
ZTkzNmZmLi5mZjYwNzk0ZjdiNzIyMTk0MzIyNDBkYmQzODdlMmJkOGZhYTkxNjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
CkBAIC0xNzcsMjIgKzE3Nyw2IEBAIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlID0gZnVu
Y3Rpb24odXJsLCBsaW5rVGV4dCwgY2xhc3NlcywgaXNFeHRlcm5hbCwgdG9vCiAKIC8qKgogICog
QHBhcmFtIHtzdHJpbmd9IHVybAotICogQHBhcmFtIHtzdHJpbmc9fSBsaW5rVGV4dAotICogQHBh
cmFtIHtzdHJpbmc9fSBjbGFzc2VzCi0gKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0V4dGVybmFsCi0g
KiBAcGFyYW0ge3N0cmluZz19IHRvb2x0aXBUZXh0Ci0gKiBAcmV0dXJuIHtzdHJpbmd9Ci0gKiBA
ZGVwcmVjYXRlZAotICovCi1XZWJJbnNwZWN0b3IubGlua2lmeVVSTCA9IGZ1bmN0aW9uKHVybCwg
bGlua1RleHQsIGNsYXNzZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZXh0KQotewotICAgIC8vIFVz
ZSB0aGUgRE9NIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBzbyBhcyB0byBhdm9pZCBuZWVkaW5n
IHRvIGVzY2FwZSBhdHRyaWJ1dGVzLgotICAgIC8vIEZJWE1FOiAgR2V0IHJpZCBvZiBsaW5raWZ5
VVJMIGVudGlyZWx5LgotICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1
cmwsIGxpbmtUZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlwVGV4dCkub3V0ZXJIVE1M
OwotfQotCi0vKioKLSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAqIEBwYXJhbSB7bnVtYmVyPX0g
bGluZU51bWJlcgogICogQHJldHVybiB7c3RyaW5nfQogICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCA0
ZTNiM2FmMjcxNzk4ODllOWY2OWMwNmM1YjI2MWYxYmJjOWI2YmU3Li40MDZlZjNlNGJhZGQyOTk1
ZjRkZmMxM2E2YzU2Y2NkZGFiMTkxN2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTEzNjEsMTIgKzEz
NjEsMTcgQEAgV2ViSW5zcGVjdG9yLkNvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzU2VjdGlvbi5wcm90
b3R5cGUgPSB7CiAKICAgICAgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9wcm9w
ZXJ0eVRyZWVFbGVtZW50c1twcm9wZXJ0eS5uYW1lXTsKICAgICAgICAgICAgICAgICBpZiAodHJl
ZUVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yVGV4dCA9IHNlY3Rp
b24uc3R5bGVSdWxlLnNlbGVjdG9yVGV4dDsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVl
ID0gcHJvcGVydHkudmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9ICI8c3Bh
biBzdHlsZT0nY29sb3I6IGdyYXknPiIgKyBzZWxlY3RvclRleHQgKyAiPC9zcGFuPiAtICIgKyB2
YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnRpdGxlID0gIiA8c3BhbiBzdHlsZT0n
ZmxvYXQ6cmlnaHQnPiIgKyBzZWN0aW9uLl9zZWxlY3RvclJlZkVsZW1lbnQuaW5uZXJIVE1MICsg
Ijwvc3Bhbj4iOwotICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRFbGVtZW50ID0gbmV3IFRy
ZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRF
bGVtZW50LnRpdGxlSFRNTCA9IHRpdGxlICsgc3VidGl0bGU7CisgICAgICAgICAgICAgICAgICAg
IHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gZnJhZ21lbnQuY3JlYXRlQ2hpbGQoInNwYW4i
KTsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3Iuc3R5bGUuY29sb3IgPSAiZ3JheSI7Cisg
ICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yLnRleHRDb250ZW50ID0gc2VjdGlvbi5zdHlsZVJ1
bGUuc2VsZWN0b3JUZXh0OworICAgICAgICAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIC0gIiArIHByb3BlcnR5LnZhbHVlICsgIiAiKSk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBzdWJ0aXRsZSA9IGZyYWdtZW50LmNyZWF0ZUNoaWxk
KCJzcGFuIik7CisgICAgICAgICAgICAgICAgICAgIHN1YnRpdGxlLnN0eWxlLmZsb2F0ID0gInJp
Z2h0IjsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yUmVmID0gc2VjdGlvbi5fc2Vs
ZWN0b3JSZWZFbGVtZW50LmNsb25lTm9kZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgZm9y
ICh2YXIgbiA9IDA7IG4gPCBzZWxlY3RvclJlZi5jaGlsZE5vZGVzLmxlbmd0aDsgKytuKQorICAg
ICAgICAgICAgICAgICAgICAgICAgc3VidGl0bGUuYXBwZW5kQ2hpbGQoc2VsZWN0b3JSZWYuY2hp
bGROb2Rlc1tuXSk7CisgICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZEVsZW1lbnQgPSBuZXcg
VHJlZUVsZW1lbnQoZnJhZ21lbnQsIG51bGwsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAg
dHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGRFbGVtZW50KTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHNlY3Rpb24uaXNQcm9wZXJ0eU92ZXJsb2FkZWQocHJvcGVydHkubmFtZSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZEVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxl
Q2xhc3MoIm92ZXJsb2FkZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMGYzNGFmMDgxMGUzNDNm
NDlkMDkzMjE0NzNjNjk1ZWZhZjA0NGM2ZC4uMzQ4MjZiNTJjODA5YmYwMWVhMjk5ZmJiNWIzM2Vi
ZDJhMDMzZWZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKQEAgLTYyLDEwICs2Miw4IEBAIFdlYkluc3Bl
Y3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgd29ya2Vy
ID0gbmV3IFdlYkluc3BlY3Rvci5Xb3JrZXIoaWQsIHVybCwgaXNTaGFyZWQpOwogICAgICAgICB0
aGlzLl93b3JrZXJzW2lkXSA9IHdvcmtlcjsKIAotICAgICAgICB2YXIgdGl0bGUgPSBXZWJJbnNw
ZWN0b3IubGlua2lmeVVSTCh1cmwsIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh1cmwp
LCAid29ya2VyLWl0ZW0iLCB0cnVlLCB1cmwpOwotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBu
ZXcgVHJlZUVsZW1lbnQobnVsbCwgd29ya2VyLCBmYWxzZSk7Ci0gICAgICAgIHRyZWVFbGVtZW50
LnRpdGxlSFRNTCA9IHRpdGxlOwotICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5hcHBlbmRDaGls
ZCh0cmVlRWxlbWVudCk7CisgICAgICAgIHZhciB0aXRsZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5
VVJMQXNOb2RlKHVybCwgV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHVybCksICJ3b3Jr
ZXItaXRlbSIsIHRydWUsIHVybCk7CisgICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmFwcGVuZENo
aWxkKG5ldyBUcmVlRWxlbWVudCh0aXRsZSwgd29ya2VyLCBmYWxzZSkpOwogICAgIH0sCiAKICAg
ICByZW1vdmVXb3JrZXI6IGZ1bmN0aW9uKGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKaW5kZXggYWJiNDQ2ZTZiMzg3Zjk5YjFhNzUw
MDFjMDA1ZjA3ZDhmMWUyZDEyYS4uMGI3NjY1NGE4MTI3ODU4ZjAxNjY0N2EyOTk5Y2RiODA0NDFl
N2U4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVl
b3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVv
dXRsaW5lLmpzCkBAIC01MDAsMTUgKzUwMCw2IEBAIFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fc2V0TGlzdEl0ZW1Ob2RlQ29udGVudCgpOwogICAgIH0sCiAKLSAgICBn
ZXQgdGl0bGVIVE1MKCkgewotICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVIVE1MOwotICAgIH0s
Ci0KLSAgICBzZXQgdGl0bGVIVE1MKHgpIHsKLSAgICAgICAgdGhpcy5fdGl0bGVIVE1MID0geDsK
LSAgICAgICAgdGhpcy5fc2V0TGlzdEl0ZW1Ob2RlQ29udGVudCgpOwotICAgIH0sCi0KICAgICBn
ZXQgdG9vbHRpcCgpIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7CiAgICAgfSwKQEAg
LTU3OCwxNiArNTY5LDEwIEBAIFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KCF0aGlzLl9saXN0SXRlbU5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYg
KCF0aGlzLl90aXRsZUhUTUwgJiYgIXRoaXMuX3RpdGxlKQotICAgICAgICAgICAgdGhpcy5fbGlz
dEl0ZW1Ob2RlLnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0aGlz
Ll90aXRsZUhUTUwgPT09ICJzdHJpbmciKQotICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2Rl
LmlubmVySFRNTCA9IHRoaXMuX3RpdGxlSFRNTDsKLSAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRo
aXMuX3RpdGxlID09PSAic3RyaW5nIikKKyAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl90aXRsZSA9
PT0gInN0cmluZyIpCiAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUudGV4dENvbnRlbnQg
PSB0aGlzLl90aXRsZTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICB0aGlzLl9saXN0SXRl
bU5vZGUucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGlmICh0aGlzLl90aXRsZS5wYXJl
bnROb2RlKQotICAgICAgICAgICAgICAgIHRoaXMuX3RpdGxlLnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQodGhpcy5fdGl0bGUpOwogICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmFwcGVuZENo
aWxkKHRoaXMuX3RpdGxlKTsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116766</attachid>
            <date>2011-11-28 08:48:59 -0800</date>
            <delta_ts>2011-11-28 11:55:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73217-20111128204857.patch</filename>
            <type>text/plain</type>
            <size>27013</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUwYjdmNGUxM2M0NmE0
ODlkMTE0MGIzNjkzYjYxZWYyNzMyNzU2Ni4uMjY4YjBkMjgyMGRhYTcxYmJjZjg2ZjhiZWQ2ZmUw
MzU0YjU1MDBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDExLTExLTI4ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogcmVtb3ZlIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMIGFuZCBUcmVlRWxlbWVudC50aXRsZUhU
TUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMjE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0Rm9ybWF0dGVycy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5hcHBseUZvcm1hdHRlcnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRS
ZXN1bHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1bHRQ
YW5lLnByb3RvdHlwZS5fYXBwZW5kUmVzdWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5Hemlw
UnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMu
VW51c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4uZXZhbENhbGxiYWNrLnNlbGVjdG9yc0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1
bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkNz
c0luSGVhZFJ1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJlc3Vs
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlEaXNwbGF5
TmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LnByb3RvdHlwZS5h
ZGRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQucHJvdG90
eXBlLmFkZEZvcm1hdHRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0
LnByb3RvdHlwZS5fYXBwZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUuYWRqdXN0Q29sbGFwc2VkUmFuZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT2JqZWN0UHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlLnVwZGF0ZVByb3BlcnRpZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIZWFkZXJzVmlldy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnByb3RvdHlwZS5fZm9y
bWF0SGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnBy
b3RvdHlwZS5fZm9ybWF0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZUhlYWRlcnNWaWV3LnByb3RvdHlwZS5fcmVmcmVzaFVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hVcmxGcmFnbWVudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJl
c2hSZXF1ZXN0UGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJz
Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hQYXJtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hIVFRQSW5mb3JtYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcucHJvdG90eXBlLl9yZWZyZXNo
SGVhZGVycyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3Rv
dHlwZS5yZWJ1aWxkQ29tcHV0ZWRUcmFjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2Vyc1Np
ZGViYXJQYW5lLnByb3RvdHlwZS5hZGRXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvdHJlZW91dGxpbmUuanM6CisgICAgICAgIChUcmVlRWxlbWVudC5wcm90b3R5cGUuX3Nl
dExpc3RJdGVtTm9kZUNvbnRlbnQpOgorCiAyMDExLTExLTI4ICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbnNwZWN0b3JDU1NBZ2VudDogUmVtb3ZlIHVudXNl
ZCBmdW5jdGlvbiBpbmxpbmVTdHlsZUVsZW1lbnQoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRGb3JtYXR0ZXJzLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdEZvcm1hdHRlcnMuanMKaW5kZXggYTlmOGVmZTZk
YjlkMjc1YTE0ZTEwMjNlOTI5MGE0ODExMzg1NTA5Ny4uOGY1YzlhOGY1OGRmYmVhNWRmNGYwYTY1
MjMwYTJjN2E2ODc0MmIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdEZvcm1hdHRlcnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdEZvcm1hdHRlcnMuanMKQEAgLTQzLDYgKzQzLDggQEAgV2ViSW5zcGVj
dG9yLmFwcGx5Rm9ybWF0dGVycyA9IGZ1bmN0aW9uKHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5j
ZW9mIE5vZGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICAgICAgaWYg
KHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHsKICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIgPSBX
ZWJJbnNwZWN0b3IuQXVkaXRGb3JtYXR0ZXJzLmNvbmNhdDsKICAgICAgICAgICAgICAgICBhcmdz
ID0gdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0F1ZGl0UmVzdWx0Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QXVkaXRSZXN1bHRWaWV3LmpzCmluZGV4IDFkYWYxYTA5Y2VlODEzNjM0MDA5OWNmOTAxMDhhNTg4
NmViYjMyZTcuLjYzNjU1ZTEwMGM4MjcyNGI5MTlmYWFlYWUwZjQ4YjM2YWJhMzgxNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSZXN1bHRW
aWV3LmpzCkBAIC0xMDgsNyArMTA4LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0Q2F0ZWdvcnlSZXN1
bHRQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IG5ldyBUcmVlRWxlbWVudChudWxsLCBudWxsLCAhIXJlc3VsdC5jaGlsZHJlbik7Ci0gICAg
ICAgIHRyZWVFbGVtZW50LnRpdGxlSFRNTCA9IHRpdGxlOworICAgICAgICB0cmVlRWxlbWVudC50
aXRsZSA9IHRpdGxlOwogICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5hcHBlbmRDaGlsZCh0cmVl
RWxlbWVudCk7CiAKICAgICAgICAgaWYgKHJlc3VsdC5jbGFzc05hbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggNjlkYjMxNDE5
YjdhNjM1NmU4YTE3OGUzZDc2NjJhOGM5MzRjYTAwOS4uYjczYzdhOTE3MmI5YjEyYWE0MjAxOWQ3
NTM3YjNjZjZmN2M3NGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtOTIsNyArOTIsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRS
dWxlcy5HemlwUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIHZhciBzYXZpbmdzID0gMiAqIHNpemUgLyAzOwogICAgICAgICAgICAgICAgIHRvdGFs
U2F2aW5ncyArPSBzYXZpbmdzOwotICAgICAgICAgICAgICAgIHN1bW1hcnkuYWRkQ2hpbGQoU3Ry
aW5nLnNwcmludGYoIiVzIGNvdWxkIHNhdmUgfiVzIiwgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZVJl
c3VsdC5saW5raWZ5RGlzcGxheU5hbWUocmVzb3VyY2UudXJsKSwgTnVtYmVyLmJ5dGVzVG9TdHJp
bmcoc2F2aW5ncykpKTsKKyAgICAgICAgICAgICAgICBzdW1tYXJ5LmFkZEZvcm1hdHRlZCgiJXIg
Y291bGQgc2F2ZSB+JXMiLCByZXNvdXJjZS51cmwsIE51bWJlci5ieXRlc1RvU3RyaW5nKHNhdmlu
Z3MpKTsKICAgICAgICAgICAgICAgICByZXN1bHQudmlvbGF0aW9uQ291bnQrKzsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMzUyLDcgKzM1Miw3IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICB2YXIg
cGN0VW51c2VkID0gTWF0aC5yb3VuZCgxMDAgKiB1bnVzZWRTdHlsZXNoZWV0U2l6ZSAvIHN0eWxl
c2hlZXRTaXplKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdW1tYXJ5KQogICAgICAgICAg
ICAgICAgICAgICAgICAgc3VtbWFyeSA9IHJlc3VsdC5hZGRDaGlsZCgiIiwgdHJ1ZSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IHN1bW1hcnkuYWRkQ2hpbGQoU3RyaW5nLnNwcmlu
dGYoIiVzOiAlcyAoJWQlJSkgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4iLCB1cmws
IE51bWJlci5ieXRlc1RvU3RyaW5nKHVudXNlZFN0eWxlc2hlZXRTaXplKSwgcGN0VW51c2VkKSk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IHN1bW1hcnkuYWRkRm9ybWF0dGVkKCIl
czogJXMgKCVkJSUpIGlzIG5vdCB1c2VkIGJ5IHRoZSBjdXJyZW50IHBhZ2UuIiwgdXJsLCBOdW1i
ZXIuYnl0ZXNUb1N0cmluZyh1bnVzZWRTdHlsZXNoZWV0U2l6ZSksIHBjdFVudXNlZCk7CiAKICAg
ICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB1bnVzZWRSdWxlcy5sZW5ndGg7
ICsraikKICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmFkZFNuaXBwZXQodW51c2VkUnVs
ZXNbal0pOwpAQCAtNjgxLDEwICs2ODEsMTAgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuSW1h
Z2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGZv
ciAodmFyIHVybCBpbiB1cmxUb05vRGltZW5zaW9uQ291bnQpIHsKICAgICAgICAgICAgICAgICB2
YXIgZW50cnkgPSBlbnRyeSB8fCByZXN1bHQuYWRkQ2hpbGQoIkEgd2lkdGggYW5kIGhlaWdodCBz
aG91bGQgYmUgc3BlY2lmaWVkIGZvciBhbGwgaW1hZ2VzIGluIG9yZGVyIHRvIHNwZWVkIHVwIHBh
Z2UgZGlzcGxheS4gVGhlIGZvbGxvd2luZyBpbWFnZShzKSBhcmUgbWlzc2luZyBhIHdpZHRoIGFu
ZC9vciBoZWlnaHQ6IiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gV2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZVJlc3VsdC5saW5raWZ5RGlzcGxheU5hbWUodXJsKTsKKyAgICAgICAg
ICAgICAgICB2YXIgZm9ybWF0ID0gIiVyIjsKICAgICAgICAgICAgICAgICBpZiAodXJsVG9Ob0Rp
bWVuc2lvbkNvdW50W3VybF0gPiAxKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJp
bmcuc3ByaW50ZigiICglZCB1c2VzKSIsIHVybFRvTm9EaW1lbnNpb25Db3VudFt1cmxdKTsKLSAg
ICAgICAgICAgICAgICBlbnRyeS5hZGRDaGlsZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAg
IGZvcm1hdCArPSAiICglZCB1c2VzKSI7CisgICAgICAgICAgICAgICAgZW50cnkuYWRkRm9ybWF0
dGVkKGZvcm1hdCwgdXJsLCB1cmxUb05vRGltZW5zaW9uQ291bnRbdXJsXSk7CiAgICAgICAgICAg
ICAgICAgcmVzdWx0LnZpb2xhdGlvbkNvdW50Kys7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBjYWxsYmFjayhlbnRyeSA/IHJlc3VsdCA6IG51bGwpOwpAQCAtODAxLDExICs4MDEsMTEgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuQ3NzSW5IZWFkUnVsZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBmb3IgKHZhciB1cmwgaW4gZXZhbFJlc3VsdCkgewogICAgICAgICAgICAgICAgIHZh
ciB1cmxWaW9sYXRpb25zID0gZXZhbFJlc3VsdFt1cmxdOwogICAgICAgICAgICAgICAgIGlmICh1
cmxWaW9sYXRpb25zWzBdKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRDaGlsZChT
dHJpbmcuc3ByaW50ZigiJXMgc3R5bGUgYmxvY2socykgaW4gdGhlICVzIGJvZHkgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFkLiIsIHVybFZpb2xhdGlvbnNbMF0sIFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlOYW1lKHVybCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmFkZEZvcm1hdHRlZCgiJXMgc3R5bGUgYmxvY2socykgaW4gdGhl
ICVyIGJvZHkgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBkb2N1bWVudCBoZWFkLiIsIHVybFZpb2xh
dGlvbnNbMF0sIHVybCk7CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC52aW9sYXRpb25Db3Vu
dCArPSB1cmxWaW9sYXRpb25zWzBdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHVybFZpb2xhdGlvbnNbMV0ubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRDaGlsZChTdHJpbmcuc3ByaW50ZigiTGluayBub2Rl
ICVzIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAlcyIsIFdlYkluc3Bl
Y3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlOYW1lKHVybFZpb2xhdGlvbnNbMV1b
aV0pLCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlEaXNwbGF5TmFtZSh1cmwp
KSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRGb3JtYXR0ZWQoIkxpbmsgbm9kZSAl
ciBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgaW4gJXIiLCB1cmxWaW9sYXRp
b25zWzFdW2ldLCB1cmwpOwogICAgICAgICAgICAgICAgIHJlc3VsdC52aW9sYXRpb25Db3VudCAr
PSB1cmxWaW9sYXRpb25zWzFdLmxlbmd0aDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN1
bW1hcnkudmFsdWUgPSBTdHJpbmcuc3ByaW50ZigiQ1NTIGluIHRoZSBkb2N1bWVudCBib2R5IGFk
dmVyc2VseSBpbXBhY3RzIHJlbmRlcmluZyBwZXJmb3JtYW5jZS4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IGM3MzYxNTZh
MWUyODc5MjM4OWM3MDFhYWM5NDRkNjFjMWQ0Mjc5Y2EuLmRmMjdkYWYxOTgyOGI0ZWI2MWI3MGIw
YTdkOTU1YjBiNmIxMDA0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQXVkaXRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtMzg2LDExICszODYsMTcgQEAgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZVJlc3VsdCA9IGZ1bmN0aW9uKHZhbHVlLCBleHBhbmRlZCwgY2xhc3NOYW1lKQog
ICAgIHRoaXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lOwogICAgIHRoaXMuZXhwYW5kZWQgPSBleHBh
bmRlZDsKICAgICB0aGlzLnZpb2xhdGlvbkNvdW50ID0gMDsKKyAgICB0aGlzLl9mb3JtYXR0ZXJz
ID0geworICAgICAgICByOiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlUmVzdWx0LmxpbmtpZnlEaXNw
bGF5TmFtZQorICAgIH07CisgICAgdmFyIHN0YW5kYXJkRm9ybWF0dGVycyA9IE9iamVjdC5rZXlz
KFN0cmluZy5zdGFuZGFyZEZvcm1hdHRlcnMpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3Rh
bmRhcmRGb3JtYXR0ZXJzLmxlbmd0aDsgKytpKQorICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzW3N0
YW5kYXJkRm9ybWF0dGVyc1tpXV0gPSBTdHJpbmcuc3RhbmRhcmRGb3JtYXR0ZXJzW3N0YW5kYXJk
Rm9ybWF0dGVyc1tpXV07CiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lm
eURpc3BsYXlOYW1lID0gZnVuY3Rpb24odXJsKQogewotICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
bGlua2lmeVVSTCh1cmwsIFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh1cmwpKTsKKyAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCBXZWJJbnNwZWN0b3Iu
ZGlzcGxheU5hbWVGb3JVUkwodXJsKSk7CiB9CiAKIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1
bHQucmVzb3VyY2VEb21haW4gPSBmdW5jdGlvbihkb21haW4pCkBAIC00MjYsNiArNDMyLDI5IEBA
IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQucHJvdG90eXBlID0gewogICAgIGFkZFNuaXBw
ZXQ6IGZ1bmN0aW9uKHNuaXBwZXQpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5hZGRDaGls
ZChzbmlwcGV0LCBmYWxzZSwgInNvdXJjZS1jb2RlIik7CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQKKyAgICAgKiBAcGFyYW0gey4uLip9IHZhcmFyZwor
ICAgICAqLworICAgIGFkZEZvcm1hdHRlZDogZnVuY3Rpb24oZm9ybWF0LCB2YXJhcmcpCisgICAg
eworICAgICAgICB2YXIgc3Vic3RpdHV0aW9ucyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs
KGFyZ3VtZW50cywgMSk7CisgICAgICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKTsKKworICAgICAgICB2YXIgZm9ybWF0dGVkUmVzdWx0ID0gU3RyaW5n
LmZvcm1hdChmb3JtYXQsIHN1YnN0aXR1dGlvbnMsIHRoaXMuX2Zvcm1hdHRlcnMsIGZyYWdtZW50
LCB0aGlzLl9hcHBlbmQpLmZvcm1hdHRlZFJlc3VsdDsKKyAgICAgICAgaWYgKGZvcm1hdHRlZFJl
c3VsdCBpbnN0YW5jZW9mIE5vZGUpCisgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQubm9ybWFs
aXplKCk7CisgICAgICAgIHJldHVybiB0aGlzLmFkZENoaWxkKGZvcm1hdHRlZFJlc3VsdCk7Cisg
ICAgfSwKKworICAgIF9hcHBlbmQ6IGZ1bmN0aW9uKGEsIGIpCisgICAgeworICAgICAgICBpZiAo
IShiIGluc3RhbmNlb2YgTm9kZSkpCisgICAgICAgICAgICBiID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoYik7CisgICAgICAgIGEuYXBwZW5kQ2hpbGQoYik7CisgICAgICAgIHJldHVybiBhOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IGZjZGIwYTNhOWZhNDcyZGFiOWNhMzNl
YjEwMmZjMzk2NTU2N2U5MGMuLjIxMzcwNWI2NzUwMzg0MmQ2NTllYWEwNjAwMWE0YzljNDU1Mjgw
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTg4NCw4ICs4ODQsMTAgQEAgV2ViSW5zcGVjdG9y
LkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoY2hpbGROb2Rl
Q291bnQgPiB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCkgewogICAgICAgICAgICAgdmFyIHRhcmdl
dEJ1dHRvbkluZGV4ID0gZXhwYW5kZWRDaGlsZENvdW50OwogICAgICAgICAgICAgaWYgKCF0aGlz
LmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IG5l
dyBUcmVlRWxlbWVudChudWxsLCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgaXRlbS50
aXRsZUhUTUwgPSAiPGJ1dHRvbiBjbGFzcz1cInNob3ctYWxsLW5vZGVzXCIgdmFsdWU9XCJcIiAv
PiI7CisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAic2hvdy1hbGwt
bm9kZXMiOworICAgICAgICAgICAgICAgIGJ1dHRvbi52YWx1ZSA9ICIiOworICAgICAgICAgICAg
ICAgIHZhciBpdGVtID0gbmV3IFRyZWVFbGVtZW50KGJ1dHRvbiwgbnVsbCwgZmFsc2UpOwogICAg
ICAgICAgICAgICAgIGl0ZW0uc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGl0
ZW0uZXhwYW5kQWxsQnV0dG9uID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB0aGlzLmluc2VydENo
aWxkKGl0ZW0sIHRhcmdldEJ1dHRvbkluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmlu
ZGV4IDg5N2ExZDQ1NWVlNTZlNTA4NDNlZThmMTA4NmFmMTVmMTEyYWZkYTcuLjAzNDZmMzAzZTQ0
ZWEwM2Y4MGVjZTcxMjFlMWYzNjRjYTNlNTQyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5q
cwpAQCAtOTAsOSArOTAsMTAgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9u
LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5wcm9wZXJ0aWVz
VHJlZU91dGxpbmUuY2hpbGRyZW4ubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSAi
PGRpdiBjbGFzcz1cImluZm9cIj4iICsgdGhpcy5lbXB0eVBsYWNlaG9sZGVyICsgIjwvZGl2PiI7
Ci0gICAgICAgICAgICB2YXIgaW5mb0VsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQobnVsbCwgbnVs
bCwgZmFsc2UpOwotICAgICAgICAgICAgaW5mb0VsZW1lbnQudGl0bGVIVE1MID0gdGl0bGU7Cisg
ICAgICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAg
ICAgICAgICAgIHRpdGxlLmNsYXNzTmFtZSA9ICJpbmZvIjsKKyAgICAgICAgICAgIHRpdGxlLnRl
eHRDb250ZW50ID0gdGhpcy5lbXB0eVBsYWNlaG9sZGVyOworICAgICAgICAgICAgdmFyIGluZm9F
bGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KHRpdGxlLCBudWxsLCBmYWxzZSk7CiAgICAgICAgICAg
ICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5hcHBlbmRDaGlsZChpbmZvRWxlbWVudCk7CiAg
ICAgICAgIH0KICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRm9yVGVzdCA9IHByb3BlcnRpZXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSGVh
ZGVyc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
SGVhZGVyc1ZpZXcuanMKaW5kZXggNDM2ZTc5NjNhOWE0MWE3ZmU5ZjkyZGQxYzIxNjBiMTI3Y2Fl
M2U4My4uMWJkN2I5ZDdiNzY1MTNhYTllNWQyZDQwNTk4Y2FlNDk5OWMxNTJjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhlYWRlcnNWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIZWFk
ZXJzVmlldy5qcwpAQCAtMTExLDExICsxMTEsNDkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSGVh
ZGVyc1ZpZXcgPSBmdW5jdGlvbihyZXNvdXJjZSkKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNl
SGVhZGVyc1ZpZXcucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBuYW1lCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCisgICAgICovCisgICAgX2Zvcm1h
dEhlYWRlcjogZnVuY3Rpb24obmFtZSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgZnJhZ21l
bnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAgICAgIGZyYWdtZW50
LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVhZGVyLW5hbWUiKS50ZXh0Q29udGVudCA9IG5hbWUgKyAi
OiI7CisgICAgICAgIGZyYWdtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVhZGVyLXZhbHVlIHNv
dXJjZS1jb2RlIikudGV4dENvbnRlbnQgPSB2YWx1ZTsKKworICAgICAgICByZXR1cm4gZnJhZ21l
bnQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUKKyAgICAgKi8KKyAgICBfZm9ybWF0UGFyYW1l
dGVyOiBmdW5jdGlvbih2YWx1ZSwgY2xhc3NOYW1lKQorICAgIHsKKyAgICAgICAgdmFyIGVycm9y
RGVjb2RpbmcgPSBmYWxzZTsKKworICAgICAgICBpZiAodGhpcy5fZGVjb2RlUmVxdWVzdFBhcmFt
ZXRlcnMpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCIlIikgPj0gMCkgeworICAg
ICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGVjb2RlVVJJ
Q29tcG9uZW50KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZXJyb3JEZWNvZGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cKy9nLCAiICIp
OworICAgICAgICB9CisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgZGl2LmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKKyAgICAgICAgaWYgKGVy
cm9yRGVjb2RpbmcpCisgICAgICAgICAgICBkaXYuY3JlYXRlQ2hpbGQoInNwYW4iLCAiZXJyb3It
bWVzc2FnZSIpLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIodW5hYmxlIHRv
IGRlY29kZSB2YWx1ZSkiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGl2LnRleHRDb250
ZW50ID0gdmFsdWU7CisgICAgICAgIHJldHVybiBkaXY7CisgICAgfSwKIAogICAgIF9yZWZyZXNo
VVJMOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl91cmxUcmVlRWxlbWVudC50aXRs
ZUhUTUwgPSAiPGRpdiBjbGFzcz1cImhlYWRlci1uYW1lXCI+IiArIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiUmVxdWVzdCBVUkwiKSArICI6PC9kaXY+IiArCi0gICAgICAgICAgICAiPGRpdiBjbGFz
cz1cImhlYWRlci12YWx1ZSBzb3VyY2UtY29kZVwiPiIgKyB0aGlzLl9yZXNvdXJjZS51cmwuZXNj
YXBlSFRNTCgpICsgIjwvZGl2PiI7CisgICAgICAgIHRoaXMuX3VybFRyZWVFbGVtZW50LnRpdGxl
ID0gdGhpcy5fZm9ybWF0SGVhZGVyKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVxdWVzdCBVUkwi
KSwgdGhpcy5fcmVzb3VyY2UudXJsKTsKICAgICB9LAogCiAgICAgX3JlZnJlc2hRdWVyeVN0cmlu
ZzogZnVuY3Rpb24oKQpAQCAtMTQwLDExICsxNzgsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VI
ZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VybEZyYWdtZW50VHJlZUVs
ZW1lbnQubGlzdEl0ZW1FbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuX3Vy
bEZyYWdtZW50VHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHNlY3Rpb25UaXRsZSkpOwogCi0gICAgICAgIHZhciB0aXRsZSA9ICI8
ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4jOjwvZGl2PiI7Ci0gICAgICAgIHRpdGxlICs9ICI8
ZGl2IGNsYXNzPVwiaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIHVybEZyYWdtZW50LmVz
Y2FwZUhUTUwoKSArICI8L2Rpdj4iOwotCiAgICAgICAgIHZhciBmcmFnbWVudFRyZWVFbGVtZW50
ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgZnJhZ21lbnRU
cmVlRWxlbWVudC50aXRsZUhUTUwgPSB0aXRsZTsKKyAgICAgICAgZnJhZ21lbnRUcmVlRWxlbWVu
dC50aXRsZSA9IHRoaXMuX2Zvcm1hdEhlYWRlcigiIyIsIHVybEZyYWdtZW50KTsKICAgICAgICAg
ZnJhZ21lbnRUcmVlRWxlbWVudC5zZWxlY3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3Vy
bEZyYWdtZW50VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhZ21lbnRUcmVlRWxlbWVudCk7CiAg
ICAgfSwKQEAgLTE3MiwzMyArMjA3LDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNW
aWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RQYXlsb2FkVHJl
ZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKIAotICAgICAgICB2YXIgdGl0bGUgPSAiPGRpdiBj
bGFzcz1cInJhdy1mb3JtLWRhdGEgaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIGZvcm1E
YXRhLmVzY2FwZUhUTUwoKSArICI8L2Rpdj4iOwotICAgICAgICB2YXIgcGFybVRyZWVFbGVtZW50
ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgcGFybVRyZWVF
bGVtZW50LnRpdGxlSFRNTCA9IHRpdGxlOworICAgICAgICB2YXIgdGl0bGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGl0bGUuY2xhc3NOYW1lID0gInJhdy1mb3Jt
LWRhdGEgaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlIjsKKyAgICAgICAgdGl0bGUudGV4dENvbnRl
bnQgPSBmb3JtRGF0YTsKKworICAgICAgICB2YXIgcGFybVRyZWVFbGVtZW50ID0gbmV3IFRyZWVF
bGVtZW50KHRpdGxlLCBudWxsLCBmYWxzZSk7CiAgICAgICAgIHBhcm1UcmVlRWxlbWVudC5zZWxl
Y3RhYmxlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RQYXlsb2FkVHJlZUVsZW1lbnQu
YXBwZW5kQ2hpbGQocGFybVRyZWVFbGVtZW50KTsKICAgICB9LAogCi0gICAgX2RlY29kZVVSSUNv
bXBvbmVudDogZnVuY3Rpb24odmFsdWUpCi0gICAgewotICAgICAgICB2YXIgZXJyb3JEZWNvZGlu
ZyA9IGZhbHNlOwotCi0gICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCIlIikgPj0gMCkgewotICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVu
dCh2YWx1ZSk7Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgICAgICBlcnJv
ckRlY29kaW5nID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB2YWx1
ZSA9IHZhbHVlLnJlcGxhY2UoL1wrL2csICIgIik7Ci0KLSAgICAgICAgdmFyIHZhbHVlRXNjYXBl
ZCA9IHZhbHVlLmVzY2FwZUhUTUwoKTsKLSAgICAgICAgaWYgKGVycm9yRGVjb2RpbmcpCi0gICAg
ICAgICAgICB2YWx1ZUVzY2FwZWQgKz0gIiA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj4i
ICsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIodW5hYmxlIHRvIGRlY29kZSB2YWx1ZSkiKS5lc2Nh
cGVIVE1MKCkgKyAiPC9zcGFuPiI7Ci0KLSAgICAgICAgcmV0dXJuIHZhbHVlRXNjYXBlZDsKLSAg
ICB9LAotCiAgICAgX3JlZnJlc2hQYXJtczogZnVuY3Rpb24odGl0bGUsIHBhcm1zLCBwYXJtc1Ry
ZWVFbGVtZW50KQogICAgIHsKICAgICAgICAgcGFybXNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJl
bigpOwpAQCAtMjE4LDE3ICsyMzUsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1Zp
ZXcucHJvdG90eXBlID0gewogCiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJtcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIG5hbWUgPSBwYXJtc1tpXS5uYW1lOwotICAg
ICAgICAgICAgdmFyIHZhbHVlID0gcGFybXNbaV0udmFsdWU7Ci0KLSAgICAgICAgICAgIHZhciB2
YWx1ZUVzY2FwZWQgPSB0aGlzLl9kZWNvZGVSZXF1ZXN0UGFyYW1ldGVycyA/IHRoaXMuX2RlY29k
ZVVSSUNvbXBvbmVudCh2YWx1ZSkgOiB2YWx1ZS5lc2NhcGVIVE1MKCk7Ci0gICAgICAgICAgICB2
YXIgbmFtZUVzY2FwZWQgPSB0aGlzLl9kZWNvZGVSZXF1ZXN0UGFyYW1ldGVycyA/IHRoaXMuX2Rl
Y29kZVVSSUNvbXBvbmVudChuYW1lKSA6IG5hbWUuZXNjYXBlSFRNTCgpOworICAgICAgICAgICAg
dmFyIHBhcmFtTmFtZVZhbHVlID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwor
ICAgICAgICAgICAgdmFyIG5hbWUgPSB0aGlzLl9mb3JtYXRQYXJhbWV0ZXIocGFybXNbaV0ubmFt
ZSArICI6IiwgImhlYWRlci1uYW1lIik7CisgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9m
b3JtYXRQYXJhbWV0ZXIocGFybXNbaV0udmFsdWUsICJoZWFkZXItbmFtZSBzb3VyY2UtY29kZSIp
OworICAgICAgICAgICAgcGFyYW1OYW1lVmFsdWUuYXBwZW5kQ2hpbGQobmFtZSk7CisgICAgICAg
ICAgICBwYXJhbU5hbWVWYWx1ZS5hcHBlbmRDaGlsZCh2YWx1ZSk7CiAKLSAgICAgICAgICAgIHRp
dGxlID0gIjxkaXYgY2xhc3M9XCJoZWFkZXItbmFtZVwiPiIgKyBuYW1lRXNjYXBlZCArICI6PC9k
aXY+IjsKLSAgICAgICAgICAgIHRpdGxlICs9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLXZhbHVlIHNv
dXJjZS1jb2RlXCI+IiArIHZhbHVlRXNjYXBlZCArICI8L2Rpdj4iOwotCi0gICAgICAgICAgICB2
YXIgcGFybVRyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsK
LSAgICAgICAgICAgIHBhcm1UcmVlRWxlbWVudC50aXRsZUhUTUwgPSB0aXRsZTsKKyAgICAgICAg
ICAgIHZhciBwYXJtVHJlZUVsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQocGFyYW1OYW1lVmFsdWUs
IG51bGwsIGZhbHNlKTsKICAgICAgICAgICAgIHBhcm1UcmVlRWxlbWVudC5zZWxlY3RhYmxlID0g
ZmFsc2U7CiAgICAgICAgICAgICBwYXJtc1RyZWVFbGVtZW50LmFwcGVuZENoaWxkKHBhcm1UcmVl
RWxlbWVudCk7CiAgICAgICAgIH0KQEAgLTI5Miw3ICszMDUsNiBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJlcXVlc3RNZXRob2RFbGVt
ZW50LmhpZGRlbiA9ICF0aGlzLl9yZXNvdXJjZS5zdGF0dXNDb2RlOwogICAgICAgICB2YXIgc3Rh
dHVzQ29kZUVsZW1lbnQgPSB0aGlzLl9zdGF0dXNDb2RlVHJlZUVsZW1lbnQ7CiAgICAgICAgIHN0
YXR1c0NvZGVFbGVtZW50LmhpZGRlbiA9ICF0aGlzLl9yZXNvdXJjZS5zdGF0dXNDb2RlOwotICAg
ICAgICB2YXIgc3RhdHVzQ29kZUltYWdlID0gIiI7CiAKICAgICAgICAgaWYgKHRoaXMuX3Jlc291
cmNlLnN0YXR1c0NvZGUpIHsKICAgICAgICAgICAgIHZhciBzdGF0dXNJbWFnZVNvdXJjZSA9ICIi
OwpAQCAtMzAzLDE4ICszMTUsMjAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHN0YXR1c0lt
YWdlU291cmNlID0gIkltYWdlcy9lcnJvclJlZERvdC5wbmciOwogCi0gICAgICAgICAgICB2YXIg
c3RhdHVzVGV4dEVzY2FwZWQgPSB0aGlzLl9yZXNvdXJjZS5zdGF0dXNDb2RlICsgIiAiICsgdGhp
cy5fcmVzb3VyY2Uuc3RhdHVzVGV4dC5lc2NhcGVIVE1MKCk7Ci0gICAgICAgICAgICBzdGF0dXND
b2RlSW1hZ2UgPSAiPGltZyBjbGFzcz1cInJlc291cmNlLXN0YXR1cy1pbWFnZVwiIHNyYz1cIiIg
KyBzdGF0dXNJbWFnZVNvdXJjZSArICJcIiB0aXRsZT1cIiIgKyBzdGF0dXNUZXh0RXNjYXBlZCAr
ICJcIj4iOworICAgICAgICAgICAgcmVxdWVzdE1ldGhvZEVsZW1lbnQudGl0bGUgPSB0aGlzLl9m
b3JtYXRIZWFkZXIoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXF1ZXN0IE1ldGhvZCIpLCB0aGlz
Ll9yZXNvdXJjZS5yZXF1ZXN0TWV0aG9kKTsKIAotICAgICAgICAgICAgcmVxdWVzdE1ldGhvZEVs
ZW1lbnQudGl0bGVIVE1MID0gIjxkaXYgY2xhc3M9XCJoZWFkZXItbmFtZVwiPiIgKyBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlJlcXVlc3QgTWV0aG9kIikgKyAiOjwvZGl2PiIgKwotICAgICAgICAg
ICAgICAgICI8ZGl2IGNsYXNzPVwiaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIHRoaXMu
X3Jlc291cmNlLnJlcXVlc3RNZXRob2QgKyAiPC9kaXY+IjsKKyAgICAgICAgICAgIHZhciBzdGF0
dXNDb2RlRnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CisgICAg
ICAgICAgICBzdGF0dXNDb2RlRnJhZ21lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWFkZXItbmFt
ZSIpLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGF0dXMgQ29kZSIpICsg
IjoiOwogCi0gICAgICAgICAgICB2YXIgZnJvbUNhY2hlU3BhbiA9ICIiOworICAgICAgICAgICAg
dmFyIHN0YXR1c0NvZGVJbWFnZSA9IHN0YXR1c0NvZGVGcmFnbWVudC5jcmVhdGVDaGlsZCgiaW1n
IiwgInJlc291cmNlLXN0YXR1cy1pbWFnZSIpOworICAgICAgICAgICAgc3RhdHVzQ29kZUltYWdl
LnNyYyA9IHN0YXR1c0ltYWdlU291cmNlOworICAgICAgICAgICAgc3RhdHVzQ29kZUltYWdlLnRp
dGxlID0gdGhpcy5fcmVzb3VyY2Uuc3RhdHVzQ29kZSArICIgIiArIHRoaXMuX3Jlc291cmNlLnN0
YXR1c1RleHQ7CisgICAgICAgICAgICB2YXIgdmFsdWUgPSBzdGF0dXNDb2RlRnJhZ21lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJoZWFkZXItdmFsdWUgc291cmNlLWNvZGUiKTsKKyAgICAgICAgICAg
IHZhbHVlLnRleHRDb250ZW50ID0gdGhpcy5fcmVzb3VyY2Uuc3RhdHVzQ29kZSArICIgIiArIHRo
aXMuX3Jlc291cmNlLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2Uu
Y2FjaGVkKQotICAgICAgICAgICAgICAgIGZyb21DYWNoZVNwYW4gPSAiICIgKyAiPHNwYW4gY2xh
c3M9XCJzdGF0dXMtZnJvbS1jYWNoZVwiPiIgKyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihmcm9t
IGNhY2hlKSIpLmVzY2FwZUhUTUwoKSArICI8L3NwYW4+IjsKKyAgICAgICAgICAgICAgICB2YWx1
ZS5jcmVhdGVDaGlsZCgic3BhbiIsICJzdGF0dXMtZnJvbS1jYWNoZSIpLnRleHRDb250ZW50ID0g
IiAiICsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoZnJvbSBjYWNoZSkiKTsKIAotICAgICAgICAg
ICAgc3RhdHVzQ29kZUVsZW1lbnQudGl0bGVIVE1MID0gIjxkaXYgY2xhc3M9XCJoZWFkZXItbmFt
ZVwiPiIgKyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXR1cyBDb2RlIikgKyAiOjwvZGl2PiIg
KwotICAgICAgICAgICAgICAgIHN0YXR1c0NvZGVJbWFnZSArICI8ZGl2IGNsYXNzPVwiaGVhZGVy
LXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIHN0YXR1c1RleHRFc2NhcGVkICsgZnJvbUNhY2hlU3Bh
biArICI8L2Rpdj4iOworICAgICAgICAgICAgc3RhdHVzQ29kZUVsZW1lbnQudGl0bGUgPSBzdGF0
dXNDb2RlRnJhZ21lbnQ7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0zMzcsMjEgKzM1MSwxNSBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX3JlZnJlc2hIZWFkZXJzVGl0bGUodGl0bGUsIGhlYWRlcnNUcmVlRWxlbWVudCwgbGVu
Z3RoKTsKICAgICAgICAgaGVhZGVyc1RyZWVFbGVtZW50LmhpZGRlbiA9ICFsZW5ndGg7CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHRpdGxl
ID0gIjxkaXYgY2xhc3M9XCJoZWFkZXItbmFtZVwiPiIgKyBoZWFkZXJzW2ldLmhlYWRlci5lc2Nh
cGVIVE1MKCkgKyAiOjwvZGl2PiI7Ci0gICAgICAgICAgICB0aXRsZSArPSAiPGRpdiBjbGFzcz1c
ImhlYWRlci12YWx1ZSBzb3VyY2UtY29kZVwiPiIgKyBoZWFkZXJzW2ldLnZhbHVlLmVzY2FwZUhU
TUwoKSArICI8L2Rpdj4iCi0KICAgICAgICAgICAgIHZhciBoZWFkZXJUcmVlRWxlbWVudCA9IG5l
dyBUcmVlRWxlbWVudChudWxsLCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICBoZWFkZXJUcmVl
RWxlbWVudC50aXRsZUhUTUwgPSB0aXRsZTsKKyAgICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50
LnRpdGxlID0gdGhpcy5fZm9ybWF0SGVhZGVyKGhlYWRlcnNbaV0uaGVhZGVyLCBoZWFkZXJzW2ld
LnZhbHVlKTsKICAgICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50LnNlbGVjdGFibGUgPSBmYWxz
ZTsKICAgICAgICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChoZWFkZXJUcmVl
RWxlbWVudCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYWRkaXRpb25hbFJvdykgewotICAg
ICAgICAgICAgdGl0bGUgPSAiPGRpdiBjbGFzcz1cImhlYWRlci1uYW1lXCI+IiArIGFkZGl0aW9u
YWxSb3cuaGVhZGVyLmVzY2FwZUhUTUwoKSArICI6PC9kaXY+IjsKLSAgICAgICAgICAgIHRpdGxl
ICs9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLXZhbHVlIHNvdXJjZS1jb2RlXCI+IiArIGFkZGl0aW9u
YWxSb3cudmFsdWUuZXNjYXBlSFRNTCgpICsgIjwvZGl2PiIKLQogICAgICAgICAgICAgdmFyIGhl
YWRlclRyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsKLSAg
ICAgICAgICAgIGhlYWRlclRyZWVFbGVtZW50LnRpdGxlSFRNTCA9IHRpdGxlOworICAgICAgICAg
ICAgaGVhZGVyVHJlZUVsZW1lbnQudGl0bGUgPSB0aGlzLl9mb3JtYXRIZWFkZXIoYWRkaXRpb25h
bFJvdy5oZWFkZXIsIGFkZGl0aW9uYWxSb3cudmFsdWUpOwogICAgICAgICAgICAgaGVhZGVyVHJl
ZUVsZW1lbnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgaGVhZGVyc1RyZWVFbGVt
ZW50LmFwcGVuZENoaWxkKGhlYWRlclRyZWVFbGVtZW50KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCmluZGV4
IGQ3ZTM2OTZjOGM1MTNiYzc5MjQwN2NlMTcxYzI1NWM1NGNlOTM2ZmYuLmZmNjA3OTRmN2I3MjIx
OTQzMjI0MGRiZDM4N2UyYmQ4ZmFhOTE2OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTE3NywyMiArMTc3LDYgQEAg
V2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUgPSBmdW5jdGlvbih1cmwsIGxpbmtUZXh0LCBj
bGFzc2VzLCBpc0V4dGVybmFsLCB0b28KIAogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCi0g
KiBAcGFyYW0ge3N0cmluZz19IGxpbmtUZXh0Ci0gKiBAcGFyYW0ge3N0cmluZz19IGNsYXNzZXMK
LSAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzRXh0ZXJuYWwKLSAqIEBwYXJhbSB7c3RyaW5nPX0gdG9v
bHRpcFRleHQKLSAqIEByZXR1cm4ge3N0cmluZ30KLSAqIEBkZXByZWNhdGVkCi0gKi8KLVdlYklu
c3BlY3Rvci5saW5raWZ5VVJMID0gZnVuY3Rpb24odXJsLCBsaW5rVGV4dCwgY2xhc3NlcywgaXNF
eHRlcm5hbCwgdG9vbHRpcFRleHQpCi17Ci0gICAgLy8gVXNlIHRoZSBET00gdmVyc2lvbiBvZiB0
aGlzIGZ1bmN0aW9uIHNvIGFzIHRvIGF2b2lkIG5lZWRpbmcgdG8gZXNjYXBlIGF0dHJpYnV0ZXMu
Ci0gICAgLy8gRklYTUU6ICBHZXQgcmlkIG9mIGxpbmtpZnlVUkwgZW50aXJlbHkuCi0gICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwgbGlua1RleHQsIGNsYXNzZXMs
IGlzRXh0ZXJuYWwsIHRvb2x0aXBUZXh0KS5vdXRlckhUTUw7Ci19Ci0KLS8qKgotICogQHBhcmFt
IHtzdHJpbmd9IHVybAogICogQHBhcmFtIHtudW1iZXI9fSBsaW5lTnVtYmVyCiAgKiBAcmV0dXJu
IHtzdHJpbmd9CiAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDRlM2IzYWYyNzE3OTg4OWU5ZjY5YzA2
YzViMjYxZjFiYmM5YjZiZTcuLjQwNmVmM2U0YmFkZDI5OTVmNGRmYzEzYTZjNTZjY2RkYWIxOTE3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
dHlsZXNTaWRlYmFyUGFuZS5qcwpAQCAtMTM2MSwxMiArMTM2MSwxNyBAQCBXZWJJbnNwZWN0b3Iu
Q29tcHV0ZWRTdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAg
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX3Byb3BlcnR5VHJlZUVsZW1lbnRzW3Byb3Bl
cnR5Lm5hbWVdOwogICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudCkgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgc2VsZWN0b3JUZXh0ID0gc2VjdGlvbi5zdHlsZVJ1bGUuc2VsZWN0b3JU
ZXh0OwotICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0eS52YWx1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gIjxzcGFuIHN0eWxlPSdjb2xvcjogZ3JheSc+
IiArIHNlbGVjdG9yVGV4dCArICI8L3NwYW4+IC0gIiArIHZhbHVlOwotICAgICAgICAgICAgICAg
ICAgICB2YXIgc3VidGl0bGUgPSAiIDxzcGFuIHN0eWxlPSdmbG9hdDpyaWdodCc+IiArIHNlY3Rp
b24uX3NlbGVjdG9yUmVmRWxlbWVudC5pbm5lckhUTUwgKyAiPC9zcGFuPiI7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciBjaGlsZEVsZW1lbnQgPSBuZXcgVHJlZUVsZW1lbnQobnVsbCwgbnVsbCwg
ZmFsc2UpOwotICAgICAgICAgICAgICAgICAgICBjaGlsZEVsZW1lbnQudGl0bGVIVE1MID0gdGl0
bGUgKyBzdWJ0aXRsZTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOworICAgICAgICAgICAgICAgICAgICB2YXIgc2Vs
ZWN0b3IgPSBmcmFnbWVudC5jcmVhdGVDaGlsZCgic3BhbiIpOworICAgICAgICAgICAgICAgICAg
ICBzZWxlY3Rvci5zdHlsZS5jb2xvciA9ICJncmF5IjsKKyAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0b3IudGV4dENvbnRlbnQgPSBzZWN0aW9uLnN0eWxlUnVsZS5zZWxlY3RvclRleHQ7CisgICAg
ICAgICAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgLSAiICsgcHJvcGVydHkudmFsdWUgKyAiICIpKTsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIHN1YnRpdGxlID0gZnJhZ21lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc3VidGl0bGUuc3R5bGUuZmxvYXQgPSAicmlnaHQiOworICAgICAgICAgICAgICAg
ICAgICB2YXIgc2VsZWN0b3JSZWYgPSBzZWN0aW9uLl9zZWxlY3RvclJlZkVsZW1lbnQuY2xvbmVO
b2RlKHRydWUpOworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IHNlbGVj
dG9yUmVmLmNoaWxkTm9kZXMubGVuZ3RoOyArK24pCisgICAgICAgICAgICAgICAgICAgICAgICBz
dWJ0aXRsZS5hcHBlbmRDaGlsZChzZWxlY3RvclJlZi5jaGlsZE5vZGVzW25dKTsKKyAgICAgICAg
ICAgICAgICAgICAgdmFyIGNoaWxkRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChmcmFnbWVudCwg
bnVsbCwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5hcHBlbmRDaGls
ZChjaGlsZEVsZW1lbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc2VjdGlvbi5pc1Byb3Bl
cnR5T3ZlcmxvYWRlZChwcm9wZXJ0eS5uYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNo
aWxkRWxlbWVudC5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygib3ZlcmxvYWRlZCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lk
ZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNT
aWRlYmFyUGFuZS5qcwppbmRleCAwZjM0YWYwODEwZTM0M2Y0OWQwOTMyMTQ3M2M2OTVlZmFmMDQ0
YzZkLi4zNDgyNmI1MmM4MDliZjAxZWEyOTlmYmI1YjMzZWJkMmEwMzNlZmUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFy
UGFuZS5qcwpAQCAtNjIsMTAgKzYyLDggQEAgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFu
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV2ViSW5zcGVjdG9yLldv
cmtlcihpZCwgdXJsLCBpc1NoYXJlZCk7CiAgICAgICAgIHRoaXMuX3dvcmtlcnNbaWRdID0gd29y
a2VyOwogCi0gICAgICAgIHZhciB0aXRsZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMKHVybCwg
V2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHVybCksICJ3b3JrZXItaXRlbSIsIHRydWUs
IHVybCk7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChudWxsLCB3
b3JrZXIsIGZhbHNlKTsKLSAgICAgICAgdHJlZUVsZW1lbnQudGl0bGVIVE1MID0gdGl0bGU7Ci0g
ICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHRyZWVFbGVtZW50KTsKKyAgICAg
ICAgdmFyIHRpdGxlID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCBXZWJJbnNw
ZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwodXJsKSwgIndvcmtlci1pdGVtIiwgdHJ1ZSwgdXJsKTsK
KyAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQobmV3IFRyZWVFbGVtZW50KHRp
dGxlLCB3b3JrZXIsIGZhbHNlKSk7CiAgICAgfSwKIAogICAgIHJlbW92ZVdvcmtlcjogZnVuY3Rp
b24oaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Ry
ZWVvdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0
bGluZS5qcwppbmRleCBhYmI0NDZlNmIzODdmOTliMWE3NTAwMWMwMDVmMDdkOGYxZTJkMTJhLi41
NDAyNDBhMjQ0YmZkMWM1ZGJkYWQxNjlhNGRmOGU3NzE5YjIyNTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKQEAgLTUwMCwxNSAr
NTAwLDYgQEAgVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zZXRMaXN0
SXRlbU5vZGVDb250ZW50KCk7CiAgICAgfSwKIAotICAgIGdldCB0aXRsZUhUTUwoKSB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl90aXRsZUhUTUw7Ci0gICAgfSwKLQotICAgIHNldCB0aXRsZUhUTUwo
eCkgewotICAgICAgICB0aGlzLl90aXRsZUhUTUwgPSB4OwotICAgICAgICB0aGlzLl9zZXRMaXN0
SXRlbU5vZGVDb250ZW50KCk7Ci0gICAgfSwKLQogICAgIGdldCB0b29sdGlwKCkgewogICAgICAg
ICByZXR1cm4gdGhpcy5fdG9vbHRpcDsKICAgICB9LApAQCAtNTc4LDE3ICs1NjksMTIgQEAgVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMuX2xpc3RJdGVtTm9kZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIXRoaXMuX3RpdGxlSFRNTCAmJiAh
dGhpcy5fdGl0bGUpCi0gICAgICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUucmVtb3ZlQ2hpbGRy
ZW4oKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRoaXMuX3RpdGxlSFRNTCA9PT0gInN0cmlu
ZyIpCi0gICAgICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuaW5uZXJIVE1MID0gdGhpcy5fdGl0
bGVIVE1MOwotICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5fdGl0bGUgPT09ICJzdHJpbmci
KQorICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3RpdGxlID09PSAic3RyaW5nIikKICAgICAgICAg
ICAgIHRoaXMuX2xpc3RJdGVtTm9kZS50ZXh0Q29udGVudCA9IHRoaXMuX3RpdGxlOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5yZW1vdmVDaGlsZHJlbigp
OwotICAgICAgICAgICAgaWYgKHRoaXMuX3RpdGxlLnBhcmVudE5vZGUpCi0gICAgICAgICAgICAg
ICAgdGhpcy5fdGl0bGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl90aXRsZSk7Ci0gICAg
ICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuYXBwZW5kQ2hpbGQodGhpcy5fdGl0bGUpOworICAg
ICAgICAgICAgaWYgKHRoaXMuX3RpdGxlKQorICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVt
Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLl90aXRsZSk7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="116020"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>