<?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>234615</bug_id>
          
          <creation_ts>2021-12-22 12:54:28 -0800</creation_ts>
          <short_desc>Web Inspector: Sources: cannot copy grouping of blackboxed call frames</short_desc>
          <delta_ts>2022-01-14 13:48:28 -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>
          
          <blocked>234581</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1826373</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-22 12:54:28 -0800</bug_when>
    <thetext># STEPS TO REPRODUCE
1. inspect &lt;http://bogojoker.com/shell/&gt;
2. create a &quot;click&quot; global Event Breakpoint
3. blackbox the &lt;http://bogojoker.com/shell/js/jquery.js&gt; script
4. click on the down arrow in the page
-&gt; should pause on &lt;http://bogojoker.com/shell/js/easySlider.min.js:64&gt; with two blackboxed call frames
5. click on the first call frame in the Call Stack section of the navigation sidebar
6. press ⌘A to select all call frames
7. press ⌘C to copy

## EXPECTED
```
(anonymous function) (easySlider.min.js:56)
handle (jquery.js:1358)
(anonymous function) (jquery.js:1215)
--- addEventListener ---
(anonymous function) (jquery.js:1227)
each (jquery.js:449)
add (jquery.js:1218)
(anonymous function) (jquery.js:1470)
each (jquery.js:449)
each (jquery.js:67)
bind (jquery.js:1469)
(anonymous function) (jquery.js:1588)
(anonymous function) (easySlider.min.js:55)
each (jquery.js:449)
each (jquery.js:67)
(anonymous function) (easySlider.min.js:20)
(anonymous function) (shell:28)
(anonymous function) (jquery.js:1515)
(anonymous function) (jquery.js:1528)
each (jquery.js:449)
ready (jquery.js:1527)
--- addEventListener ---
bindReady (jquery.js:1542)
ready (jquery.js:1510)
Global Code (facebox.js:342)
```

## ACTUAL
```
(anonymous function) (easySlider.min.js:56)
--- addEventListener ---
(anonymous function) (easySlider.min.js:55)
(anonymous function) (easySlider.min.js:20)
(anonymous function) (shell:28)
--- addEventListener ---
Global Code (facebox.js:342)
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827195</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-29 12:55:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/86989248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828173</commentid>
    <comment_count>2</comment_count>
      <attachid>448357</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-04 17:56:15 -0800</bug_when>
    <thetext>Created attachment 448357
Patch

The only downside I can think of as a result of this is that up/down will now traverse through blackboxed call frame groups, meaning that it&apos;s an extra step (or more) to select the previous/next call frame using the arrow keys when there&apos;s a blackboxed call frame group in the middle.  I don&apos;t think this is that big of a deal though given that this interaction requires focus to be in the Call Stack section and can be easily avoided using the mouse (which I&apos;d bet is more commonly used than the arrow keys).

We could make it so that selecting a blackboxed call frame group tree element will jump to the location of the topmost blackboxed call frame, but that maybe could be a bit confusing since we don&apos;t actually show that call frame in the Call Stack section.  Either way, this can be a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830935</commentid>
    <comment_count>3</comment_count>
      <attachid>448357</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-01-14 09:27:37 -0800</bug_when>
    <thetext>Comment on attachment 448357
Patch

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

r=me

&gt; The only downside I can think of as a result of this is that up/down will now traverse
&gt; through blackboxed call frame groups, meaning that it&apos;s an extra step (or more) to
&gt; select the previous/next call frame using the arrow keys when there&apos;s a blackboxed
&gt; call frame group in the middle.

I tried this patch locally, and this doesn&apos;t appear to be a problem. I can arrow through the list of call frames as I would expect to be able to do, where each press of the down key moves me down to the next visible call frame, even if there are multiple blackboxes call frames represented by the currently selected frame.

&gt; Source/WebInspectorUI/UserInterface/Views/TreeElement.js:316
&gt; +        if (treeElement.toggleOnClick || treeElement.isEventWithinDisclosureTriangle(event)) {

Aside: It&apos;s kinda strange to me that several subclasses of TreeElement have a toggleOnClick member set in their constructor, but TreeElement itself doesn&apos;t... I wonder if it makes more sense for there to be a public `get toggleOnClick()` in TreeElement that returns `false`, and is override by subclasses that want to return `true`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831054</commentid>
    <comment_count>4</comment_count>
      <attachid>448357</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-14 13:19:08 -0800</bug_when>
    <thetext>Comment on attachment 448357
Patch

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

Thanks for the review!

&gt; &gt; The only downside I can think of as a result of this is that up/down will now traverse through blackboxed call frame groups, meaning that it&apos;s an extra step (or more) to select the previous/next call frame using the arrow keys when there&apos;s a blackboxed call frame group in the middle.
&gt; 
&gt; I tried this patch locally, and this doesn&apos;t appear to be a problem. I can arrow through the list of call frames as I would expect to be able to do, where each press of the down key moves me down to the next visible call frame, even if there are multiple blackboxes call frames represented by the currently selected frame.

Hmm, so when you press ↓ and the selection shifts to a blackboxed call frame group tree element, what happens?  IIRC I didn&apos;t see any change in the currently shown content view (i.e. just like as if a folder is selected in the resources tree in the navigation sidebar of the Sources Tab).

I think I may have been confusing by saying &quot;traverse through&quot;.  What I meant was that before this patch, pressing ↓ would &quot;skip&quot; over the blackboxed call frame group tree element (i.e. it would never be selected).  Now with this patch, pressing ↓ will select the blackboxed call frame group tree element, but because it doesn&apos;t have a `representedObject` (and we don&apos;t have special handling for it in `WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange`) nothing will change in the currently shown content view, meaning that the developer would have to press ↓ _again_ in order to get the functionality that they had before this change (which would be to show the source code location of the call frame before the blackboxed call frame group).

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TreeElement.js:316
&gt;&gt; +        if (treeElement.toggleOnClick || treeElement.isEventWithinDisclosureTriangle(event)) {
&gt; 
&gt; Aside: It&apos;s kinda strange to me that several subclasses of TreeElement have a toggleOnClick member set in their constructor, but TreeElement itself doesn&apos;t... I wonder if it makes more sense for there to be a public `get toggleOnClick()` in TreeElement that returns `false`, and is override by subclasses that want to return `true`.

Agreed lol.  This is _old_ code.  FWIW I actually tried to do a basic refactoring of things like this on `WI.TreeOutline` and `WI.TreeElement` a few years ago, but it caused all manner of havoc so I haven&apos;t tried again since 😅  This would probably be much easier to do though given how rare it is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831058</commentid>
    <comment_count>5</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-01-14 13:29:37 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #4)
&gt; &gt; &gt; The only downside I can think of as a result of this is that up/down will now traverse through blackboxed call frame groups, meaning that it&apos;s an extra step (or more) to select the previous/next call frame using the arrow keys when there&apos;s a blackboxed call frame group in the middle.
&gt; &gt; 
&gt; &gt; I tried this patch locally, and this doesn&apos;t appear to be a problem. I can arrow through the list of call frames as I would expect to be able to do, where each press of the down key moves me down to the next visible call frame, even if there are multiple blackboxes call frames represented by the currently selected frame.
&gt; 
&gt; Hmm, so when you press ↓ and the selection shifts to a blackboxed call frame
&gt; group tree element, what happens?  IIRC I didn&apos;t see any change in the
&gt; currently shown content view (i.e. just like as if a folder is selected in
&gt; the resources tree in the navigation sidebar of the Sources Tab).
&gt; 
&gt; I think I may have been confusing by saying &quot;traverse through&quot;.  What I
&gt; meant was that before this patch, pressing ↓ would &quot;skip&quot; over the
&gt; blackboxed call frame group tree element (i.e. it would never be selected). 
&gt; Now with this patch, pressing ↓ will select the blackboxed call frame group
&gt; tree element, but because it doesn&apos;t have a `representedObject` (and we
&gt; don&apos;t have special handling for it in
&gt; `WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange`)
&gt; nothing will change in the currently shown content view, meaning that the
&gt; developer would have to press ↓ _again_ in order to get the functionality
&gt; that they had before this change (which would be to show the source code
&gt; location of the call frame before the blackboxed call frame group).

Ah, yes it behaves as a collapsed folder now, which conceptually makes sense to me. I thought you were saying you would have to down-arrow through a bunch of invisible call frames, which is what prompted me to apply the patch locally and play around some. This makes the UI more accessible from a keyboard IMO since now it is possible to key to the blackboxed group and reveal the frames via the keyboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831064</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-14 13:48:25 -0800</bug_when>
    <thetext>Committed r288030 (246056@main): &lt;https://commits.webkit.org/246056@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448357.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448357</attachid>
            <date>2022-01-04 17:56:15 -0800</date>
            <delta_ts>2022-01-14 13:48:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234615-20220104185614.patch</filename>
            <type>text/plain</type>
            <size>15875</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDg5ODZlN2RmNzQ5ZGViOTg5NWJmMDRhNTk3YzZj
NDI3MzAyMTRkYzAuLjQ0M2QxZWI0YWE1NWRiMWUxNmMwMjEyYzgzMTg3YTZiYzY1ODgyY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAxLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
b3VyY2VzOiBjYW5ub3QgY29weSBncm91cGluZyBvZiBibGFja2JveGVkIGNhbGwgZnJhbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2MTUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2OTg5MjQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2
aWdhdGlvblNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5oYW5kbGVDb3B5RXZlbnQpOgorICAgICAgICAoV0kuU291cmNl
c05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLmhhbmRsZUNvcHlFdmVudC5hZGRDYWxs
RnJhbWUpOiBBZGRlZC4KKyAgICAgICAgSW5jbHVkZSBldmVyeSBgV0kuQ2FsbEZyYW1lYCBtYW5h
Z2VkIGJ5IGFueSBzZWxlY3RlZCBgV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnRgIHdoZW4K
KyAgICAgICAgY29weWluZy4gQWxzbyBtYWtlIHN1cmUgdGhhdCBhbnkgYXN5bmMgYm91bmRhcmll
cyBhcmUgdGFrZW4gaW50byBhY2NvdW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94ZWRH
cm91cFRyZWVFbGVtZW50KToKKyAgICAgICAgKFdJLkJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50
LnByb3RvdHlwZS5nZXQgY2FsbEZyYW1lcyk6IEFkZGVkLgorICAgICAgICAoV0kuQmxhY2tib3hl
ZEdyb3VwVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBleHBhbmRhYmxlKTogQWRkZWQuCisgICAg
ICAgIChXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5wcm90b3R5cGUub25lbnRlcik6IEFk
ZGVkLgorICAgICAgICAoV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
c3BhY2UpOiBBZGRlZC4KKyAgICAgICAgTWFrZSBgV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1l
bnRgIHNlbGVjdGFibGUsIGFuZCBhZGQgZXh0cmEgYWN0aW9uIGhhbmRsZXJzIGZvciBleHBhbnNp
b24uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVF
bGVtZW50LmNzczoKKyAgICAgICAgKC50cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91
cCk6CisgICAgICAgICgudHJlZS1vdXRsaW5lIC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXA6bm90KC5z
ZWxlY3RlZCkgPiAqLCAudHJlZS1vdXRsaW5lOm5vdCg6Zm9jdXMtd2l0aGluKSAuaXRlbS5ibGFj
a2JveGVkLWdyb3VwLnNlbGVjdGVkID4gKiwgYm9keTppcygud2luZG93LWluYWN0aXZlLCAud2lu
ZG93LWRvY2tlZC1pbmFjdGl2ZSkgLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3Vw
LnNlbGVjdGVkID4gKik6IEFkZGVkLgorICAgICAgICAoYm9keTpub3QoLndpbmRvdy1pbmFjdGl2
ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC50cmVlLW91dGxpbmU6Zm9jdXMtd2l0aGluIC5p
dGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgLmljb24pOiBBZGRlZC4KKyAgICAgICAgT25s
eSBtYWtlIHRoZSBjb250ZW50IG1vcmUgdHJhbnNwYXJlbnQgaWYgbm90IGAuc2VsZWN0ZWRgICh3
aGVuIHRoZSB3aW5kb3cvdHJlZSBoYXMgZm9jdXMpLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLlRyZWVFbGVtZW50LnByb3RvdHlw
ZS5nZXQgZXhwYW5kYWJsZSk6IEFkZGVkLgorICAgICAgICAoV0kuVHJlZUVsZW1lbnQudHJlZUVs
ZW1lbnRUb2dnbGVkKToKKyAgICAgICAgQWxsb3cgYHRvZ2dsZU9uQ2xpY2tgIHRvIGJlIHVzZWQg
d2hlbiBgc2VsZWN0YWJsZWAgdG9vLiBUaGlzIGFsbG93cyBgV0kuQmxhY2tib3hlZEdyb3VwVHJl
ZUVsZW1lbnRgCisgICAgICAgIHRvIGBleHBhbmRgIG9uIGNsaWNrIHdoaWxlIGFsc28gYmVpbmcg
YWJsZSB0byBiZSBzZWxlY3RlZCAoZS5nLiBzaGlmdC11cCwgY29tbWFuZC1BLCBldGMuKS4KKyAg
ICAgICAgQWxsIG90aGVyIHVzZXMgb2YgYHRvZ2dsZU9uQ2xpY2tgIHNldCBgdGhpcy5zZWxlY3Rh
YmxlID0gZmFsc2U7YCBhbnl3YXlzLCBzbyB0aGlzIHdpbGwgaGF2ZQorICAgICAgICBubyBlZmZl
Y3QgdG8gb3RoZXIgY2xpZW50cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVHJl
ZU91dGxpbmUuanM6CisgICAgICAgIChXSS5UcmVlT3V0bGluZS5wcm90b3R5cGUuaW5zZXJ0Q2hp
bGQpOgorICAgICAgICAoV0kuVHJlZU91dGxpbmUucHJvdG90eXBlLl90cmVlS2V5RG93bik6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qczoKKyAgICAgICAg
KFdJLkRPTVRyZWVPdXRsaW5lLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICBBZGQgYSBoZWxw
ZXIgYGdldCBleHBhbmRhYmxlYCBpbnN0ZWFkIG9mIGFzc3VtaW5nIGl0IGZyb20gYGdldCBoYXND
aGlsZHJlbmAuIFRoaXMgYWxsb3dzCisgICAgICAgIGBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxl
bWVudGAgdG8gb3ZlcnJpZGUgaXQgYW5kIGFsd2F5cyBiZSBgdHJ1ZWAsIHNpbmNlIHRoZXJlIGlz
IG5vCisgICAgICAgIHNpdHVhdGlvbiB3aGVyZSB3ZSB3b3VsZCBkaXNhbGxvdyBleHBhbnNpb24g
KHdoaWNoIHNob3dzIHRoZSBncm91cGVkIGJsYWNrYm94ZWQgY2FsbCBmcmFtZXMpLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzOgorICAgICAgICAoV0kuQ2Fs
bEZyYW1lLnByb3RvdHlwZS5nZXQgZGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NhbGxGcmFtZVZpZXcuanM6CisgICAgICAgIChXSS5DYWxsRnJhbWVW
aWV3KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbGxGcmFtZVRyZWVFbGVtZW50
LmpzOgorICAgICAgICAoV0kuQ2FsbEZyYW1lVHJlZUVsZW1lbnQpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzOgorICAgICAgICAoV0kuQ29uc29s
ZU1lc3NhZ2VWaWV3LnByb3RvdHlwZS50b0NsaXBib2FyZFN0cmluZyk6CisgICAgICAgIEFkZCBh
IGhlbHBlciBgZ2V0IGRpc3BsYXlOYW1lYCB0byBhdm9pZCByZXBlYXRlZCBzcGVjaWFsaXplZCBs
b2dpYy4KKwogMjAyMi0wMS0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczogZXhwYW5kaW5nIGEgZ3JvdXBpbmcgb2Yg
YmxhY2tib3hlZCBjYWxsIGZyYW1lcyBzaG91bGQgYmUgcGVyc2lzdGVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsRnJhbWUuanMK
aW5kZXggMzRhNDdiZTE3NzY4YzVlYzNjN2FhNTFmNDNjNzY2N2UxODY4Y2Q2Ny4uMTZlYTc3OTM4
YzIyNTYyNjU3Yzg4ZDYxZjczMzkwMmQ4YTNmYTcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxGcmFtZS5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbEZyYW1lLmpzCkBAIC02NCw2
ICs2NCwxMSBAQCBXSS5DYWxsRnJhbWUgPSBjbGFzcyBDYWxsRnJhbWUKICAgICBnZXQgYmxhY2ti
b3hlZCgpIHsgcmV0dXJuIHRoaXMuX2JsYWNrYm94ZWQ7IH0KICAgICBnZXQgaXNDb25zb2xlRXZh
bHVhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2lzQ29uc29sZUV2YWx1YXRpb247IH0KIAorICAgIGdl
dCBkaXNwbGF5TmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25OYW1l
IHx8IFdJLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9uKSIpOworICAgIH0KKwogICAgIGlz
RXF1YWwob3RoZXIpCiAgICAgewogICAgICAgICBpZiAoIW90aGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJl
ZUVsZW1lbnQuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
QmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQuY3NzCmluZGV4IGY2YTQ5MDQxN2MzYzZhZDIyZDhk
NzdkZjUwOTRmMDU0OGYyZTYwNTIuLjVkZjdlYjBlZGEyYjM2ZmNjMDAzMWQwN2M5ZjBhYjFlNmJk
ZDdmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5jc3MK
QEAgLTI1LDYgKzI1LDExIEBACiAKIC50cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91
cCB7CiAgICAgY3Vyc29yOiBwb2ludGVyOworfQorCisudHJlZS1vdXRsaW5lIC5pdGVtLmJsYWNr
Ym94ZWQtZ3JvdXA6bm90KC5zZWxlY3RlZCkgPiAqLAorLnRyZWUtb3V0bGluZTpub3QoOmZvY3Vz
LXdpdGhpbikgLml0ZW0uYmxhY2tib3hlZC1ncm91cC5zZWxlY3RlZCA+ICosCitib2R5OmlzKC53
aW5kb3ctaW5hY3RpdmUsIC53aW5kb3ctZG9ja2VkLWluYWN0aXZlKSAudHJlZS1vdXRsaW5lIC5p
dGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgPiAqIHsKICAgICBvcGFjaXR5OiB2YXIoLS1i
bGFja2JveGVkLXRyZWUtaXRlbS1vcGFjaXR5KTsKIH0KIApAQCAtMzIsNiArMzcsMTAgQEAKICAg
ICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0hpZGUuc3ZnI2JsYWNrKTsKIH0KIAorYm9keTpub3Qo
LndpbmRvdy1pbmFjdGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC50cmVlLW91dGxpbmU6
Zm9jdXMtd2l0aGluIC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgLmljb24geworICAg
IGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvSGlkZS5zdmcjd2hpdGUpOworfQorCiBAbWVkaWEgKHBy
ZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFj
a2JveGVkLWdyb3VwIC5pY29uIHsKICAgICAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9IaWRl
LnN2ZyN3aGl0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50Lmpz
CmluZGV4IGFiZGI5MGExNmU5NTUxMTI0YWNhZWNmNGI1NTJmMjlmMzcwZTg4ODcuLjlmY2VmMzcz
ZjAyNWRhNTVmYzkwNTE4YmY4MDUzNzIwOTdhODRhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNr
Ym94ZWRHcm91cFRyZWVFbGVtZW50LmpzCkBAIC0zOSwxMyArMzksMTkgQEAgV0kuQmxhY2tib3hl
ZEdyb3VwVHJlZUVsZW1lbnQgPSBjbGFzcyBCbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudCBleHRl
bmRzIFdJLkdlbmUKIAogICAgICAgICBzdXBlcihjbGFzc05hbWVzLCB0aXRsZSwgc3VidGl0bGUp
OwogCi0gICAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICB0aGlzLnRvZ2ds
ZU9uQ2xpY2sgPSB0cnVlOwogICAgICAgICB0aGlzLl9jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsK
ICAgICB9CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCBjYWxsRnJhbWVzKCkgeyByZXR1cm4g
dGhpcy5fY2FsbEZyYW1lczsgfQorCisgICAgZ2V0IGV4cGFuZGFibGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgZXhwYW5kKCkKICAgICB7CiAgICAgICAgIFdJ
LmRlYnVnZ2VyTWFuYWdlci5yZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4
cGFuZCh0aGlzLl9jYWxsRnJhbWVzKTsKQEAgLTU2LDQgKzYyLDE2IEBAIFdJLkJsYWNrYm94ZWRH
cm91cFRyZWVFbGVtZW50ID0gY2xhc3MgQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXSS5HZW5lCiAKICAgICAgICAgdGhpcy5wYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7CiAgICAg
fQorCisgICAgb25lbnRlcigpCisgICAgeworICAgICAgICB0aGlzLmV4cGFuZCgpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBvbnNwYWNlKCkKKyAgICB7CisgICAgICAgIHRo
aXMuZXhwYW5kKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVUcmVl
RWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bGxGcmFtZVRyZWVFbGVtZW50LmpzCmluZGV4IDU3YzNjNDFiZjU0MDgyMzBkNzY1ODVhZTBmM2Y2
OGZlYjgyODRiNTUuLjg0NGI1YThlMjFiZDRiYmFkOTY3NjVlMjY0NzFlMDZkOWQyNzI4ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbGxG
cmFtZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbGxGcmFtZVRyZWVFbGVtZW50LmpzCkBAIC0zMCw3ICszMCw3IEBAIFdJLkNh
bGxGcmFtZVRyZWVFbGVtZW50ID0gY2xhc3MgQ2FsbEZyYW1lVHJlZUVsZW1lbnQgZXh0ZW5kcyBX
SS5HZW5lcmFsVHJlZUVsZW1lCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbGxGcmFtZSBpbnN0
YW5jZW9mIFdJLkNhbGxGcmFtZSk7CiAKICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IFdJLkNhbGxG
cmFtZVZpZXcuaWNvbkNsYXNzTmFtZUZvckNhbGxGcmFtZShjYWxsRnJhbWUpOwotICAgICAgICBs
ZXQgdGl0bGUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdJLlVJU3RyaW5nKCIoYW5vbnlt
b3VzIGZ1bmN0aW9uKSIpOworICAgICAgICBsZXQgdGl0bGUgPSBjYWxsRnJhbWUuZGlzcGxheU5h
bWU7CiAgICAgICAgIGNvbnN0IHN1YnRpdGxlID0gbnVsbDsKICAgICAgICAgc3VwZXIoWyJjYWxs
LWZyYW1lIiwgY2xhc3NOYW1lXSwgdGl0bGUsIHN1YnRpdGxlLCBjYWxsRnJhbWUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJh
bWVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2Fs
bEZyYW1lVmlldy5qcwppbmRleCBkYzliOTBjMzg4YTMwNmRmMGIwNmIxMmY0NzkwMDdmMzQ0MDk1
NWQ5Li45ZTA5NTUyMTY3Mzg1OTg3Y2JlMjk5OTFkYmY3ZjJmN2IyZTlkZjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbGxG
cmFtZVZpZXcuanMKQEAgLTY5LDcgKzY5LDcgQEAgV0kuQ2FsbEZyYW1lVmlldyA9IGNsYXNzIENh
bGxGcmFtZVZpZXcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHZhciBpbWdFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CiAgICAgICAgICAgICBpbWdFbGVtZW50
LmNsYXNzTGlzdC5hZGQoImljb24iKTsKIAotICAgICAgICAgICAgdGl0bGVFbGVtZW50LmFwcGVu
ZChpbWdFbGVtZW50LCBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdJLlVJU3RyaW5nKCIoYW5v
bnltb3VzIGZ1bmN0aW9uKSIpKTsKKyAgICAgICAgICAgIHRpdGxlRWxlbWVudC5hcHBlbmQoaW1n
RWxlbWVudCwgY2FsbEZyYW1lLmRpc3BsYXlOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGNh
bGxGcmFtZUVsZW1lbnQuYXBwZW5kKHRpdGxlRWxlbWVudCwgc3VidGl0bGVFbGVtZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNv
bGVNZXNzYWdlVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qcwppbmRleCA1ZDFhYWQ2OTI4NzEzMmUwZDQ4NmM3Yzlk
YTI2YzczNDljYWEyYmViLi4xMWQzNDYzZWYwOTZmZTc0YWZmODM5NDU0ZTYxNDdlMTM5ODgyYTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
b25zb2xlTWVzc2FnZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzCkBAIC0yMzcsNyArMjM3LDcgQEAgV0ku
Q29uc29sZU1lc3NhZ2VWaWV3ID0gY2xhc3MgQ29uc29sZU1lc3NhZ2VWaWV3IGV4dGVuZHMgV0ku
T2JqZWN0CiAKICAgICAgICAgaWYgKGhhc1N0YWNrVHJhY2UpIHsKICAgICAgICAgICAgIHRoaXMu
X21lc3NhZ2Uuc3RhY2tUcmFjZS5jYWxsRnJhbWVzLmZvckVhY2goZnVuY3Rpb24oZnJhbWUpIHsK
LSAgICAgICAgICAgICAgICBjbGlwYm9hcmRTdHJpbmcgKz0gIlxuXHQiICsgKGZyYW1lLmZ1bmN0
aW9uTmFtZSB8fCBXSS5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbikiKSk7CisgICAgICAg
ICAgICAgICAgY2xpcGJvYXJkU3RyaW5nICs9ICJcblx0IiArIGZyYW1lLmRpc3BsYXlOYW1lOwog
ICAgICAgICAgICAgICAgIGlmIChmcmFtZS5zb3VyY2VDb2RlTG9jYXRpb24pCiAgICAgICAgICAg
ICAgICAgICAgIGNsaXBib2FyZFN0cmluZyArPSAiICgiICsgZnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uLm9yaWdpbmFsTG9jYXRpb25TdHJpbmcoKSArICIpIjsKICAgICAgICAgICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01UcmVlT3V0bGluZS5qcwppbmRleCA1ZDUyMTFlMDJlYjI3MDJjOWQ2MmQ4Y2YxN2E2MjM3NmE5
OTc0ZDM5Li4wZTMzNDQwOGZhMmZjZTViODE3ODM3ZWNmMjdmNWZhYmQ5ZDlmZDNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0
bGluZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01UcmVlT3V0bGluZS5qcwpAQCAtMTg0LDcgKzE4NCw3IEBAIFdJLkRPTVRyZWVPdXRsaW5lID0g
Y2xhc3MgRE9NVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5UcmVlT3V0bGluZQogICAgICAgICAgICAg
ICAgIHRoaXMuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQpOwogICAgICAgICAgICAgICAgIG5vZGUg
PSBub2RlLm5leHRTaWJsaW5nOwogCi0gICAgICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50Lmhh
c0NoaWxkcmVuICYmICF0cmVlRWxlbWVudC5leHBhbmRlZCkKKyAgICAgICAgICAgICAgICBpZiAo
dHJlZUVsZW1lbnQuZXhwYW5kYWJsZSAmJiAhdHJlZUVsZW1lbnQuZXhwYW5kZWQpCiAgICAgICAg
ICAgICAgICAgICAgIHRyZWVFbGVtZW50LmV4cGFuZCgpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmlu
ZGV4IDFiNWI1YWMyZGY5MTQ2ZjE4MTY4YTVlOWNjMTkzYjM3Y2JmMmQ2OWIuLjc0M2NiNDY0NTRm
MThlM2I2ZGMzM2U5MjBhOTA4ZjYwYmIwZDVlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJj
ZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC02NzksNyArNjc5LDIyIEBAIFdJLlNvdXJj
ZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXCiAgICAgICAgIGxldCB0aHJlYWRzID0gW107CiAgICAgICAgIGxldCBh
c3luY0JvdW5kYXJ5ID0gbnVsbDsKIAotICAgICAgICB3aGlsZSAodHJlZUVsZW1lbnQpIHsKKyAg
ICAgICAgZnVuY3Rpb24gYWRkQ2FsbEZyYW1lKGNhbGxGcmFtZSkgeworICAgICAgICAgICAgaWYg
KGFzeW5jQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICB0aHJlYWRzLmxhc3RWYWx1ZS5mcmFt
ZXMucHVzaCgiLS0tICIgKyBhc3luY0JvdW5kYXJ5ICsgIiAtLS0iKTsKKyAgICAgICAgICAgICAg
ICBhc3luY0JvdW5kYXJ5ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0
IGxpbmUgPSBjYWxsRnJhbWUuZGlzcGxheU5hbWU7CisKKyAgICAgICAgICAgIGxldCBzb3VyY2VD
b2RlTG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAgICAg
aWYgKHNvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAgICAgICAgICBsaW5lICs9ICIgKCIgKyBz
b3VyY2VDb2RlTG9jYXRpb24uZGlzcGxheUxvY2F0aW9uU3RyaW5nKCkgKyAiKSI7CisKKyAgICAg
ICAgICAgIHRocmVhZHMubGFzdFZhbHVlLmZyYW1lcy5wdXNoKGxpbmUpOworICAgICAgICB9CisK
KyAgICAgICAgZm9yICg7IHRyZWVFbGVtZW50OyB0cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LnRy
YXZlcnNlTmV4dFRyZWVFbGVtZW50KHNraXBVbnJldmVhbGVkLCBzdGF5V2l0aGluLCBkb250UG9w
dWxhdGUpKSB7CiAgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXSS5UaHJl
YWRUcmVlRWxlbWVudCkgewogICAgICAgICAgICAgICAgIHRocmVhZHMucHVzaCh7CiAgICAgICAg
ICAgICAgICAgICAgIG5hbWU6IHRyZWVFbGVtZW50Lm1haW5UaXRsZSwKQEAgLTY4NywyNiArNzAy
LDI3IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05h
dmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAgICAgICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgICAgICAgICBhc3luY0JvdW5kYXJ5ID0gbnVsbDsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXSS5DYWxsRnJhbWVUcmVlRWxlbWVudCkgewotICAg
ICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5pc0FzeW5jQm91bmRhcnlDYWxsRnJhbWUpIHsK
LSAgICAgICAgICAgICAgICAgICAgYXN5bmNCb3VuZGFyeSA9IHRyZWVFbGVtZW50Lm1haW5UaXRs
ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkVHJlZUVsZW1lbnRzLmhhcyh0
cmVlRWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFzeW5jQm91bmRhcnkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZHMubGFzdFZhbHVlLmZyYW1lcy5wdXNoKCIt
LS0gIiArIGFzeW5jQm91bmRhcnkgKyAiIC0tLSIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YXN5bmNCb3VuZGFyeSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgICAgICBsZXQgbGluZSA9IHRyZWVFbGVtZW50Lm1haW5UaXRsZTsKLQotICAgICAgICAg
ICAgICAgICAgICBsZXQgc291cmNlQ29kZUxvY2F0aW9uID0gdHJlZUVsZW1lbnQuY2FsbEZyYW1l
LnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUNvZGVM
b2NhdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgKz0gIiAoIiArIHNvdXJjZUNv
ZGVMb2NhdGlvbi5kaXNwbGF5TG9jYXRpb25TdHJpbmcoKSArICIpIjsKLQotICAgICAgICAgICAg
ICAgICAgICB0aHJlYWRzLmxhc3RWYWx1ZS5mcmFtZXMucHVzaChsaW5lKTsKLSAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQudHJhdmVyc2VOZXh0VHJlZUVsZW1lbnQo
c2tpcFVucmV2ZWFsZWQsIHN0YXlXaXRoaW4sIGRvbnRQb3B1bGF0ZSk7CisgICAgICAgICAgICBp
ZiAodHJlZUVsZW1lbnQuaXNBc3luY0JvdW5kYXJ5Q2FsbEZyYW1lKQorICAgICAgICAgICAgICAg
IGFzeW5jQm91bmRhcnkgPSB0cmVlRWxlbWVudC5tYWluVGl0bGU7CisKKyAgICAgICAgICAgIGlm
ICghc2VsZWN0ZWRUcmVlRWxlbWVudHMuaGFzKHRyZWVFbGVtZW50KSkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV0ku
Q2FsbEZyYW1lVHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBhZGRDYWxsRnJhbWUodHJl
ZUVsZW1lbnQuY2FsbEZyYW1lKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV0kuQmxhY2ti
b3hlZEdyb3VwVHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBjYWxsRnJh
bWUgb2YgdHJlZUVsZW1lbnQuY2FsbEZyYW1lcykKKyAgICAgICAgICAgICAgICAgICAgYWRkQ2Fs
bEZyYW1lKGNhbGxGcmFtZSk7CisKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGxldCBtdWx0aXBsZUZyYW1lc1NlbGVjdGVkID0g
dGhyZWFkcy5maWx0ZXIoKHtmcmFtZXN9KSA9PiBmcmFtZXMubGVuZ3RoKS5sZW5ndGggPiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJl
ZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
cmVlRWxlbWVudC5qcwppbmRleCBhYzU2YmYyMGE3ZTZmNzU0ZDIwMzE0OTY1N2M1MTljMjQ3ZDJl
NjRlLi5jNjkwNjk5ZmViZDBlYzllYTI4Y2M4Njc0ZTlkOWIzZTk4ZjYyZGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxlbWVudC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UcmVlRWxl
bWVudC5qcwpAQCAtODEsNiArODEsMTEgQEAgV0kuVHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxl
bWVudCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9zZWxlY3RhYmxlID0geDsKICAg
ICB9CiAKKyAgICBnZXQgZXhwYW5kYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5o
YXNDaGlsZHJlbjsKKyAgICB9CisKICAgICBnZXQgbGlzdEl0ZW1FbGVtZW50KCkKICAgICB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9saXN0SXRlbU5vZGU7CkBAIC0zMDgsOCArMzEzLDcgQEAgV0ku
VHJlZUVsZW1lbnQgPSBjbGFzcyBUcmVlRWxlbWVudCBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICBpZiAoIXRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCB0
b2dnbGVPbkNsaWNrID0gdHJlZUVsZW1lbnQudG9nZ2xlT25DbGljayAmJiAhdHJlZUVsZW1lbnQu
c2VsZWN0YWJsZTsKLSAgICAgICAgaWYgKHRvZ2dsZU9uQ2xpY2sgfHwgdHJlZUVsZW1lbnQuaXNF
dmVudFdpdGhpbkRpc2Nsb3N1cmVUcmlhbmdsZShldmVudCkpIHsKKyAgICAgICAgaWYgKHRyZWVF
bGVtZW50LnRvZ2dsZU9uQ2xpY2sgfHwgdHJlZUVsZW1lbnQuaXNFdmVudFdpdGhpbkRpc2Nsb3N1
cmVUcmlhbmdsZShldmVudCkpIHsKICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5leHBhbmRl
ZCkgewogICAgICAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpCiAgICAgICAgICAgICAgICAg
ICAgIHRyZWVFbGVtZW50LmNvbGxhcHNlUmVjdXJzaXZlbHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RyZWVPdXRsaW5lLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKaW5k
ZXggMjAzNWQxNmU4OTEzNTI2NmU5MDQxNzJmODBhZTQxOTg1MzY1ZjMxMi4uOTYyMzYyY2I0ZTAz
NjE5ZWQ3OWFmMjg1ZmJhZGU4ZjIyMjRlNGVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHJlZU91dGxpbmUuanMKQEAgLTI5NCw3
ICsyOTQsNyBAQCBXSS5UcmVlT3V0bGluZSA9IGNsYXNzIFRyZWVPdXRsaW5lIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC50cmF2ZXJzZU5leHRUcmVlRWxl
bWVudChmYWxzZSwgY2hpbGQsIHRydWUpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGNoaWxk
Lmhhc0NoaWxkcmVuICYmIGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBhbmRlZFN0
YXRlW2NoaWxkLmlkZW50aWZpZXJdICE9PSB1bmRlZmluZWQpCisgICAgICAgIGlmIChjaGlsZC5l
eHBhbmRhYmxlICYmIGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBhbmRlZFN0YXRl
W2NoaWxkLmlkZW50aWZpZXJdICE9PSB1bmRlZmluZWQpCiAgICAgICAgICAgICBjaGlsZC5leHBh
bmRlZCA9IGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBhbmRlZFN0YXRlW2NoaWxk
LmlkZW50aWZpZXJdOwogCiAgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbkxpc3ROb2RlKQpAQCAt
NTg3LDcgKzU4Nyw3IEBAIFdJLlRyZWVPdXRsaW5lID0gY2xhc3MgVHJlZU91dGxpbmUgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVu
dC5yZXZlYWxlZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmVlRWxl
bWVudC5yZXZlYWwoKTsKICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQuaGFzQ2hpbGRy
ZW4pIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVu
dC5leHBhbmRhYmxlKSB7CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LmV4cGFuZGVkKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0U2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxl
Y3RlZFRyZWVFbGVtZW50LmNoaWxkcmVuWzBdOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>