<?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>162515</bug_id>
          
          <creation_ts>2016-09-23 14:54:23 -0700</creation_ts>
          <short_desc>Web Inspector: Pretty print / type info / code coverage buttons disappear after switching tabs</short_desc>
          <delta_ts>2017-06-14 18:44:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Baker">mattbaker</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233005</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-09-23 14:54:23 -0700</bug_when>
    <thetext>Summary:
Pretty print / type info / code coverage buttons disappear after switching tabs.

Steps to Reproduce:
1. Inspect data:text/html,&lt;script&gt;debugger;&lt;/script&gt;
2. Reload page
  =&gt; Pause in Debugger tab
3. Switch to Resources tab
  =&gt; Buttons disappear

The problem affects the Debugger tab as well, with buttons disappearing after some combination of reloading the page and switching tabs. However I couldn&apos;t reliably reproduce this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233007</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-09-23 14:54:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/28455322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249459</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2016-11-09 13:23:59 -0800</bug_when>
    <thetext>I was able to reproduce it.

This isn&apos;t a recent regression. I reproduced it in Safari 10 (macOS Sierra).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313002</commentid>
    <comment_count>3</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-25 18:58:35 -0700</bug_when>
    <thetext>
    removeNavigationItem (NavigationBar.js:114)
    insertNavigationItem (NavigationBar.js:70)
    (anonymous function) (ContentBrowser.js:407)
    forEach
    _updateContentViewNavigationItems (ContentBrowser.js:399)
    _currentContentViewDidChange (ContentBrowser.js:483)
    dispatch (Object.js:170)
    dispatchEventToListeners (Object.js:177)
    showBackForwardEntryForIndex (ContentViewContainer.js:166)
    showContentView (ContentViewContainer.js:138)
    showDefaultContentView (ResourceSidebarPanel.js:104)
    shown (ContentBrowserTabContentView.js:103)
    prepareToShow (BackForwardEntry.js:86)
    _showEntry (ContentViewContainer.js:445)
    showBackForwardEntryForIndex (ContentViewContainer.js:162)
    showContentView (ContentViewContainer.js:138)
    _tabBarItemSelected (TabBrowser.js:239)
    dispatch (Object.js:170)
    dispatchEventToListeners (Object.js:177)
    selectedTabBarItem (TabBar.js:376)
    _handleMouseDown (TabBar.js:569)
    _handleMouseDown

Looks like when a navigation item is inserted, it gets removed from the previous navigationBar.

    insertNavigationItem(navigationItem, index, parentElement)
    {
        console.assert(navigationItem instanceof WebInspector.NavigationItem);
        if (!(navigationItem instanceof WebInspector.NavigationItem))
            return null;

        if (navigationItem.parentNavigationBar)
            navigationItem.parentNavigationBar.removeNavigationItem(navigationItem);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313347</commentid>
    <comment_count>4</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-26 19:37:14 -0700</bug_when>
    <thetext>The bug reproduces when switching from Debugger to Resources (or vice versa) and when (and only when) the both tabs have the same selected script file.

_updateContentViewNavigationItems doesn&apos;t necessarily get called when switching tabs. Always calling it when switching tabs would be one way of solving this.

Another way would be to clone navigation items before attaching them to the new content view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313356</commentid>
    <comment_count>5</comment_count>
      <attachid>311405</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-26 20:49:57 -0700</bug_when>
    <thetext>Created attachment 311405
Patch

(In reply to Nikita Vasilyev from comment #4)
&gt; The bug reproduces when switching from Debugger to Resources (or vice versa)
&gt; and when (and only when) the both tabs have the same selected script file.
&gt; 
&gt; _updateContentViewNavigationItems doesn&apos;t necessarily get called when
&gt; switching tabs. Always calling it when switching tabs would be one way of
&gt; solving this.

I tried this approach and it worked.

I made updateContentViewNavigationItems public. I&apos;ll try to find a more elegant way of fixing it that doesn&apos;t require making _updateContentViewNavigationItems public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313461</commentid>
    <comment_count>6</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-27 20:31:17 -0700</bug_when>
    <thetext>My patch introduced a failing assert:

    [Error] Assertion Failed: Cannot remove item with unexpected parent bar. – ActivateButtonNavigationItem
    removeNavigationItem (NavigationBar.js:107)
    _removeAllNavigationItems (ContentBrowser.js:435)
    updateContentViewNavigationItems (ContentBrowser.js:326)
    (anonymous function) (ContentBrowser.js:101)
    dispatch (Object.js:170)
    dispatchEventToListeners (Object.js:185)
    _tabBarItemSelected (TabBrowser.js:262)
    dispatch (Object.js:170)
    dispatchEventToListeners (Object.js:177)
    selectedTabBarItem (TabBar.js:376)
    _handleMouseDown (TabBar.js:569)
    _handleMouseDown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313463</commentid>
    <comment_count>7</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-27 20:40:56 -0700</bug_when>
    <thetext>I don&apos;t understand why each tab has its own NavigationBar instance, but NavigationItem instances are shared (get removed from one NavigationBar and attached to another). Is it an inheritance from pre-tabs UI? If so, does it make sense to stop moving NavigationItem instances from one NavigationBar to another now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313961</commentid>
    <comment_count>8</comment_count>
      <attachid>311562</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-05-30 17:44:11 -0700</bug_when>
    <thetext>Created attachment 311562
Patch

This patch is using the same approach as the previous one, but I fixed the assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314321</commentid>
    <comment_count>9</comment_count>
      <attachid>311562</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-31 14:27:24 -0700</bug_when>
    <thetext>Comment on attachment 311562
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:10
&gt; +        Pretty print, type info, and code coverage buttons disappear because NavigationBar#insertNavigationItem
&gt; +        removes them from NavigationBar of the previous tab. Switching tabs does not update ContentBrowser&apos;s

Lets provide a clearer description of the problem.

    Each ContentView owns a list of NavigationItems. When the ContentView moves across
    Tabs (ContentBrowsers) it removes its NavigationItems from the old Tab&apos;s NavigationBar
    and adds them to the new Tab&apos;s NavigationBar. When switching back to the original tab
    the ContentView is restored, but its NavigationItems are not carried back.

Just writing this really makes me think that Tombstone restoration should solve this problem by dispatching a WebInspector.ContentView.Event.NavigationItemsDidChange event in the right place. The changes below make it the ContentBrowser&apos;s responsibility that when it is shown/reshown that it updates its ContentView. This is potentially a waste of work if the ContentView was not a Tombstone. I really think we should take another look at the Tombstone restoration path.

&gt; Source/WebInspectorUI/UserInterface/Views/ContentBrowser.js:292
&gt; +        var currentContentView = this.currentContentView;

Nit: Lets upgrade this to `let`

&gt; Source/WebInspectorUI/UserInterface/Views/TabBrowser.js:254
&gt; +        const forceUpdate = true;
&gt; +        tabContentView.contentBrowser.updateContentViewNavigationItems(forceUpdate);

This has a couple minor issues:

• Code above and below assume tabContentView can be null, so this would throw an exception in that case.
• This assumes that the tabContentView has a contentBrowser, which is not always the case (NetTabContentView, SettingsTabContentView).

---

If we can&apos;t solve this with tombstone restoration lets take this opportunity to generalize this (selecting a tab) as an action on TabContentView. We already call tabContentView.updateLayout below, lets create something new.

How about:

    tabContentView.updateCurrentContentViewComponents()

The default TabContentView can have an empty implementation. ContentBrowserTabContentView can then forward that on to the ContentBrowser:

    contentBrowser.updateCurrentContentViewComponents()

Which can just call into the existing private function (_updateContentViewNavigationItems). We don&apos;t seem to have to update path components right now, but in the future if we needed to we could do that in here as well.

I think this is clearer for a few reasons:

    1. TabBrowser isn&apos;t reaching into the Tab assuming any knowledge
    2. This creates a public API documenting &quot;Sometimes we need to update the UI coming back to a Tab / ContentBrowser for its current ContentView, and these are the operations...)

So in the case if something else runs into this problem this may be a suitable API to solve the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315186</commentid>
    <comment_count>10</comment_count>
      <attachid>311853</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-06-02 13:28:34 -0700</bug_when>
    <thetext>Created attachment 311853
Patch

(In reply to Joseph Pecoraro from comment #9)
&gt; ---
&gt; 
&gt; If we can&apos;t solve this with tombstone restoration lets take this opportunity
&gt; to generalize this (selecting a tab) as an action on TabContentView. We
&gt; already call tabContentView.updateLayout below, lets create something new.
&gt; 
&gt; How about:
&gt; 
&gt;     tabContentView.updateCurrentContentViewComponents()
&gt; 
&gt; The default TabContentView can have an empty implementation.
&gt; ContentBrowserTabContentView can then forward that on to the ContentBrowser:
&gt; 
&gt;     contentBrowser.updateCurrentContentViewComponents()
&gt; 
&gt; Which can just call into the existing private function
&gt; (_updateContentViewNavigationItems). We don&apos;t seem to have to update path
&gt; components right now, but in the future if we needed to we could do that in
&gt; here as well.
&gt; 
&gt; I think this is clearer for a few reasons:
&gt; 
&gt;     1. TabBrowser isn&apos;t reaching into the Tab assuming any knowledge
&gt;     2. This creates a public API documenting &quot;Sometimes we need to update
&gt; the UI coming back to a Tab / ContentBrowser for its current ContentView,
&gt; and these are the operations...)
&gt; 
&gt; So in the case if something else runs into this problem this may be a
&gt; suitable API to solve the problem.

I did it in this patch and it worked.

I&apos;m looking at the tombstone restoration. If it doesn&apos;t work, I&apos;ll set this patch to &quot;r?&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317759</commentid>
    <comment_count>11</comment_count>
      <attachid>312527</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-06-09 18:36:02 -0700</bug_when>
    <thetext>Created attachment 312527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319379</commentid>
    <comment_count>12</comment_count>
      <attachid>312527</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-06-14 17:15:23 -0700</bug_when>
    <thetext>Comment on attachment 312527
Patch

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

r=me, I think this is a more correct approach!

&gt; Source/WebInspectorUI/ChangeLog:16
&gt; +        Add forceUpdate property that is needed when navigationItems are unchanged but navigationBar is

Nit: &quot;Add forceUpdate property&quot; =&gt; &quot;Add a forceUpdate parameter&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319403</commentid>
    <comment_count>13</comment_count>
      <attachid>312940</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-06-14 18:06:41 -0700</bug_when>
    <thetext>Created attachment 312940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319414</commentid>
    <comment_count>14</comment_count>
      <attachid>312940</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-14 18:44:44 -0700</bug_when>
    <thetext>Comment on attachment 312940
Patch

Clearing flags on attachment: 312940

Committed r218305: &lt;http://trac.webkit.org/changeset/218305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319415</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-14 18:44:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311405</attachid>
            <date>2017-05-26 20:49:57 -0700</date>
            <delta_ts>2017-05-30 17:44:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8077</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBiOGFjYzMuLjc1M2MzNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTA1LTI2ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByZXR0
eSBwcmludCAvIHR5cGUgaW5mbyAvIGNvZGUgY292ZXJhZ2UgYnV0dG9ucyBkaXNhcHBlYXIgYWZ0
ZXIgc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg0NTUzMjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCBDb250ZW50
QnJvd3NlciN1cGRhdGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcyBvbiBldmVyeSB0YWIgc3dp
dGNoLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUudXBkYXRlQ29u
dGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b250ZW50QnJvd3Nlci5wcm90b3R5cGUuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1z
KTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5
cGUuX2NvbnRlbnRWaWV3U2VsZWN0aW9uUGF0aENvbXBvbmVudERpZENoYW5nZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90eXBlLl9jdXJyZW50Q29udGVudFZp
ZXdEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3Rv
dHlwZS5fY29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXNEaWRDaGFuZ2UpOgorICAgICAgICBNYWtl
IHVwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zIG1ldGhvZCBwdWJsaWMuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RhYkJyb3dzZXIuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGFiQnJvd3Nlci5wcm90b3R5cGUuX3RhYkJhckl0ZW1TZWxlY3RlZCk6CisKIDIwMTct
MDUtMjQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAg
ICAgW0dUS10gV2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGljb25zIGZvciBnYXJiYWdlIGNv
bGxlY3QgYW5kIGNsZWFuIGJ1dHRvbnMgaW4gQ29uc29sZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpp
bmRleCA4NTZlODgwLi4yODlhMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtMjg3LDYg
KzI4Nyw0OSBAQCBXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJv
d3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgICAgICB0aGlzLl9maW5kQmFu
bmVyLmRpc2FibGVLZXlib2FyZFNob3J0Y3V0cygpOwogICAgIH0KIAorICAgIHVwZGF0ZUNvbnRl
bnRWaWV3TmF2aWdhdGlvbkl0ZW1zKGZvcmNlVXBkYXRlKQorICAgIHsKKyAgICAgICAgdmFyIGN1
cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICBpZiAo
IWN1cnJlbnRDb250ZW50VmlldykgeworICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsTmF2aWdh
dGlvbkl0ZW1zKCk7CisgICAgICAgICAgICB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMgPSBbXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICghZm9yY2VVcGRhdGUpIHsKKyAgICAgICAgICAgIGxldCBwcmV2aW91c0l0ZW1zID0gdGhp
cy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gIShp
dGVtIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSkpOworICAg
ICAgICAgICAgbGV0IGlzVW5jaGFuZ2VkID0gQXJyYXkuc2hhbGxvd0VxdWFsKHByZXZpb3VzSXRl
bXMsIGN1cnJlbnRDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOworCisgICAgICAgICAgICBp
ZiAoaXNVbmNoYW5nZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgdGhpcy5fcmVtb3ZlQWxsTmF2aWdhdGlvbkl0ZW1zKCk7CisKKyAgICAgICAgbGV0IG5h
dmlnYXRpb25CYXIgPSB0aGlzLm5hdmlnYXRpb25CYXI7CisgICAgICAgIGxldCBpbnNlcnRpb25J
bmRleCA9IG5hdmlnYXRpb25CYXIubmF2aWdhdGlvbkl0ZW1zLmluZGV4T2YodGhpcy5fZGl2aWRp
bmdGbGV4aWJsZVNwYWNlTmF2aWdhdGlvbkl0ZW0pICsgMTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoaW5zZXJ0aW9uSW5kZXggPj0gMCk7CisKKyAgICAgICAgLy8gS2VlcCB0cmFjayBvZiBpdGVt
cyB3ZSdsbCBiZSBhZGRpbmcgdG8gdGhlIG5hdmlnYXRpb24gYmFyLgorICAgICAgICBsZXQgbmV3
TmF2aWdhdGlvbkl0ZW1zID0gW107CisKKyAgICAgICAgLy8gR28gdGhyb3VnaCBlYWNoIG9mIHRo
ZSBpdGVtcyBvZiB0aGUgbmV3IGNvbnRlbnQgdmlldyBhbmQgYWRkIGEgZGl2aWRlciBiZWZvcmUg
dGhlbS4KKyAgICAgICAgY3VycmVudENvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcy5mb3JFYWNo
KGZ1bmN0aW9uKG5hdmlnYXRpb25JdGVtLCBpbmRleCkgeworICAgICAgICAgICAgLy8gQWRkIGRp
dmlkZXJzIGJlZm9yZSBpdGVtcyB1bmxlc3MgaXQncyB0aGUgZmlyc3QgaXRlbSBhbmQgbm90IGEg
YnV0dG9uLgorICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAwIHx8IG5hdmlnYXRpb25JdGVtIGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJ1dHRvbk5hdmlnYXRpb25JdGVtKSB7CisgICAgICAgICAg
ICAgICAgbGV0IGRpdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRpdmlkZXJOYXZpZ2F0aW9uSXRl
bTsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uQmFyLmluc2VydE5hdmlnYXRpb25JdGVtKGRp
dmlkZXIsIGluc2VydGlvbkluZGV4KyspOworICAgICAgICAgICAgICAgIG5ld05hdmlnYXRpb25J
dGVtcy5wdXNoKGRpdmlkZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmF2aWdhdGlv
bkJhci5pbnNlcnROYXZpZ2F0aW9uSXRlbShuYXZpZ2F0aW9uSXRlbSwgaW5zZXJ0aW9uSW5kZXgr
Kyk7CisgICAgICAgICAgICBuZXdOYXZpZ2F0aW9uSXRlbXMucHVzaChuYXZpZ2F0aW9uSXRlbSk7
CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFJlbWVtYmVyIHRoZSBuYXZpZ2F0aW9uIGl0ZW1z
IHdlIGluc2VydGVkIHNvIHdlIGNhbiByZW1vdmUgdGhlbQorICAgICAgICAvLyBmb3IgdGhlIG5l
eHQgY29udGVudCB2aWV3LgorICAgICAgICB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMgPSBuZXdOYXZpZ2F0aW9uSXRlbXM7CisgICAgfQorCiAgICAgLy8gUHJpdmF0ZQog
CiAgICAgX2ZpbmRCYW5uZXJEaWRTaG93KGV2ZW50KQpAQCAtMzY3LDQ3ICs0MTAsNiBAQCBXZWJJ
bnNwZWN0b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMuX2ZvcndhcmROYXZpZ2F0aW9uSXRlbS5lbmFi
bGVkID0gdGhpcy5jYW5Hb0ZvcndhcmQoKTsKICAgICB9CiAKLSAgICBfdXBkYXRlQ29udGVudFZp
ZXdOYXZpZ2F0aW9uSXRlbXMoKQotICAgIHsKLSAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50Vmll
dyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoIWN1cnJlbnRDb250ZW50
VmlldykgewotICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsTmF2aWdhdGlvbkl0ZW1zKCk7Ci0g
ICAgICAgICAgICB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMgPSBbXTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBwcmV2aW91c0l0
ZW1zID0gdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zLmZpbHRlcigoaXRl
bSkgPT4gIShpdGVtIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRpdmlkZXJOYXZpZ2F0aW9uSXRl
bSkpOwotICAgICAgICBsZXQgaXNVbmNoYW5nZWQgPSBBcnJheS5zaGFsbG93RXF1YWwocHJldmlv
dXNJdGVtcywgY3VycmVudENvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7Ci0KLSAgICAgICAg
aWYgKGlzVW5jaGFuZ2VkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3Jl
bW92ZUFsbE5hdmlnYXRpb25JdGVtcygpOwotCi0gICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0g
dGhpcy5uYXZpZ2F0aW9uQmFyOwotICAgICAgICBsZXQgaW5zZXJ0aW9uSW5kZXggPSBuYXZpZ2F0
aW9uQmFyLm5hdmlnYXRpb25JdGVtcy5pbmRleE9mKHRoaXMuX2RpdmlkaW5nRmxleGlibGVTcGFj
ZU5hdmlnYXRpb25JdGVtKSArIDE7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluc2VydGlvbklu
ZGV4ID49IDApOwotCi0gICAgICAgIC8vIEtlZXAgdHJhY2sgb2YgaXRlbXMgd2UnbGwgYmUgYWRk
aW5nIHRvIHRoZSBuYXZpZ2F0aW9uIGJhci4KLSAgICAgICAgbGV0IG5ld05hdmlnYXRpb25JdGVt
cyA9IFtdOwotCi0gICAgICAgIC8vIEdvIHRocm91Z2ggZWFjaCBvZiB0aGUgaXRlbXMgb2YgdGhl
IG5ldyBjb250ZW50IHZpZXcgYW5kIGFkZCBhIGRpdmlkZXIgYmVmb3JlIHRoZW0uCi0gICAgICAg
IGN1cnJlbnRDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMuZm9yRWFjaChmdW5jdGlvbihuYXZp
Z2F0aW9uSXRlbSwgaW5kZXgpIHsKLSAgICAgICAgICAgIC8vIEFkZCBkaXZpZGVycyBiZWZvcmUg
aXRlbXMgdW5sZXNzIGl0J3MgdGhlIGZpcnN0IGl0ZW0gYW5kIG5vdCBhIGJ1dHRvbi4KLSAgICAg
ICAgICAgIGlmIChpbmRleCAhPT0gMCB8fCBuYXZpZ2F0aW9uSXRlbSBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5CdXR0b25OYXZpZ2F0aW9uSXRlbSkgewotICAgICAgICAgICAgICAgIGxldCBkaXZp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5EaXZpZGVyTmF2aWdhdGlvbkl0ZW07Ci0gICAgICAgICAg
ICAgICAgbmF2aWdhdGlvbkJhci5pbnNlcnROYXZpZ2F0aW9uSXRlbShkaXZpZGVyLCBpbnNlcnRp
b25JbmRleCsrKTsKLSAgICAgICAgICAgICAgICBuZXdOYXZpZ2F0aW9uSXRlbXMucHVzaChkaXZp
ZGVyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5hdmlnYXRpb25CYXIuaW5zZXJ0TmF2
aWdhdGlvbkl0ZW0obmF2aWdhdGlvbkl0ZW0sIGluc2VydGlvbkluZGV4KyspOwotICAgICAgICAg
ICAgbmV3TmF2aWdhdGlvbkl0ZW1zLnB1c2gobmF2aWdhdGlvbkl0ZW0pOwotICAgICAgICB9KTsK
LQotICAgICAgICAvLyBSZW1lbWJlciB0aGUgbmF2aWdhdGlvbiBpdGVtcyB3ZSBpbnNlcnRlZCBz
byB3ZSBjYW4gcmVtb3ZlIHRoZW0KLSAgICAgICAgLy8gZm9yIHRoZSBuZXh0IGNvbnRlbnQgdmll
dy4KLSAgICAgICAgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zID0gbmV3
TmF2aWdhdGlvbkl0ZW1zOwotICAgIH0KLQogICAgIF9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMo
KQogICAgIHsKICAgICAgICAgZm9yIChsZXQgbmF2aWdhdGlvbkl0ZW0gb2YgdGhpcy5fY3VycmVu
dENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKQpAQCAtNDQ5LDcgKzQ1MSw3IEBAIFdlYkluc3Bl
Y3Rvci5Db250ZW50QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudFZpZXdTZWxlY3Rpb25QYXRo
TmF2aWdhdGlvbkl0ZW0oZXZlbnQudGFyZ2V0KTsKICAgICAgICAgdGhpcy5fdXBkYXRlQmFja0Zv
cndhcmRCdXR0b25zKCk7CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMoKTsKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVt
cygpOwogCiAgICAgICAgIHRoaXMuX25hdmlnYXRpb25CYXIubmVlZHNMYXlvdXQoKTsKIApAQCAt
NDcyLDcgKzQ3NCw3IEBAIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3NlciA9IGNsYXNzIENvbnRl
bnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgdGhpcy5fdXBkYXRl
Q29udGVudFZpZXdTZWxlY3Rpb25QYXRoTmF2aWdhdGlvbkl0ZW0oY3VycmVudENvbnRlbnRWaWV3
KTsKICAgICAgICAgdGhpcy5fdXBkYXRlQmFja0ZvcndhcmRCdXR0b25zKCk7CiAKLSAgICAgICAg
dGhpcy5fdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMoKTsKKyAgICAgICAgdGhpcy51
cGRhdGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcygpOwogICAgICAgICB0aGlzLl91cGRhdGVG
aW5kQmFubmVyKGN1cnJlbnRDb250ZW50Vmlldyk7CiAKICAgICAgICAgdGhpcy5fbmF2aWdhdGlv
bkJhci5uZWVkc0xheW91dCgpOwpAQCAtNDg3LDcgKzQ4OSw3IEBAIFdlYkluc3BlY3Rvci5Db250
ZW50QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZp
ZXcKICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5jdXJyZW50Q29udGVudFZpZXcp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudFZpZXdO
YXZpZ2F0aW9uSXRlbXMoKTsKKyAgICAgICAgdGhpcy51cGRhdGVDb250ZW50Vmlld05hdmlnYXRp
b25JdGVtcygpOwogICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQmFyLm5lZWRzTGF5b3V0KCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UYWJCcm93c2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGFiQnJvd3Nlci5qcwppbmRleCBhYjE5ZDY0Li5jYmI5MTM2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGFiQnJvd3Nlci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UYWJCcm93c2Vy
LmpzCkBAIC0yNTAsNiArMjUwLDkgQEAgV2ViSW5zcGVjdG9yLlRhYkJyb3dzZXIgPSBjbGFzcyBU
YWJCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgdGhpcy5fc2hvd05h
dmlnYXRpb25TaWRlYmFyUGFuZWxGb3JUYWJDb250ZW50Vmlldyh0YWJDb250ZW50Vmlldyk7CiAg
ICAgICAgIHRoaXMuX3Nob3dEZXRhaWxzU2lkZWJhclBhbmVsc0ZvclRhYkNvbnRlbnRWaWV3KHRh
YkNvbnRlbnRWaWV3KTsKIAorICAgICAgICBjb25zdCBmb3JjZVVwZGF0ZSA9IHRydWU7CisgICAg
ICAgIHRhYkNvbnRlbnRWaWV3LmNvbnRlbnRCcm93c2VyLnVwZGF0ZUNvbnRlbnRWaWV3TmF2aWdh
dGlvbkl0ZW1zKGZvcmNlVXBkYXRlKTsKKwogICAgICAgICAvLyBJZiB0aGUgdGFiIGJyb3dzZXIg
d2FzIHJlc2l6ZWQgcHJpb3IgdG8gc2hvd2luZyB0aGUgdGFiLCB0aGUgbmV3IHRhYiBuZWVkcyB0
byBwZXJmb3JtIGEgcmVzaXplIGxheW91dC4KICAgICAgICAgaWYgKHRhYkNvbnRlbnRWaWV3ICYm
IHRhYkNvbnRlbnRWaWV3W1dlYkluc3BlY3Rvci5UYWJCcm93c2VyLk5lZWRzUmVzaXplTGF5b3V0
U3ltYm9sXSkgewogICAgICAgICAgICAgdGFiQ29udGVudFZpZXdbV2ViSW5zcGVjdG9yLlRhYkJy
b3dzZXIuTmVlZHNSZXNpemVMYXlvdXRTeW1ib2xdID0gZmFsc2U7Cg==
</data>
<flag name="review"
          id="332409"
          type_id="1"
          status="-"
          setter="nvasilyev"
    />
    <flag name="commit-queue"
          id="332410"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311562</attachid>
            <date>2017-05-30 17:44:11 -0700</date>
            <delta_ts>2017-06-02 13:28:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8876</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBiOGFjYzMuLjRjYmEwM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA1LTMwICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByZXR0
eSBwcmludCAvIHR5cGUgaW5mbyAvIGNvZGUgY292ZXJhZ2UgYnV0dG9ucyBkaXNhcHBlYXIgYWZ0
ZXIgc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg0NTUzMjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldHR5IHByaW50
LCB0eXBlIGluZm8sIGFuZCBjb2RlIGNvdmVyYWdlIGJ1dHRvbnMgZGlzYXBwZWFyIGJlY2F1c2Ug
TmF2aWdhdGlvbkJhciNpbnNlcnROYXZpZ2F0aW9uSXRlbQorICAgICAgICByZW1vdmVzIHRoZW0g
ZnJvbSBOYXZpZ2F0aW9uQmFyIG9mIHRoZSBwcmV2aW91cyB0YWIuIFN3aXRjaGluZyB0YWJzIGRv
ZXMgbm90IHVwZGF0ZSBDb250ZW50QnJvd3NlcidzCisgICAgICAgIG5hdmlnYXRpb24gaXRlbXMg
d2hlbiB0aGUgc2FtZSByZXNvdXJjZSBpcyBzZWxlY3RlZCBpbiBib3RoIHRhYnMuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBjYWxscyBDb250ZW50QnJvd3NlciN1cGRhdGVDb250ZW50Vmlld05hdmln
YXRpb25JdGVtcyBvbiBldmVyeSB0YWIgc3dpdGNoLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50
QnJvd3Nlci5wcm90b3R5cGUudXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5fcmVtb3ZlQWxsTmF2
aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgUmVtb3ZlIG5hdmlnYXRpb24gaXRlbXMgZXZlbiB3aGVu
IHRoZWlyIG5hdmlnYXRpb25CYXIgaXMgbm8gbG9uZ2VyIGEgY3VycmVudCBuYXZpZ2F0aW9uQmFy
LAorICAgICAgICBlLmcuIGEgbmF2aWdhdGlvbkJhciBvZiB0aGUgcHJldmlvdXMgdGFiLgorCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90eXBlLl9jb250ZW50Vmll
d1NlbGVjdGlvblBhdGhDb21wb25lbnREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5fY3VycmVudENvbnRlbnRWaWV3RGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX2NvbnRlbnRW
aWV3TmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlKToKKyAgICAgICAgTWFrZSB1cGRhdGVDb250ZW50
Vmlld05hdmlnYXRpb25JdGVtcyBtZXRob2QgcHVibGljLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9UYWJCcm93c2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYkJyb3dz
ZXIucHJvdG90eXBlLl90YWJCYXJJdGVtU2VsZWN0ZWQpOgorCiAyMDE3LTA1LTI0ICBGdWppaSBI
aXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYiBJ
bnNwZWN0b3I6IEFkZCBuZXcgR1RLKyBpY29ucyBmb3IgZ2FyYmFnZSBjb2xsZWN0IGFuZCBjbGVh
biBidXR0b25zIGluIENvbnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMKaW5kZXggODU2ZTg4MC4u
NzhjM2JmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzCkBAIC0yODcsNiArMjg3LDQ5IEBAIFdl
Ykluc3BlY3Rvci5Db250ZW50QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgICAgIHRoaXMuX2ZpbmRCYW5uZXIuZGlzYWJsZUtl
eWJvYXJkU2hvcnRjdXRzKCk7CiAgICAgfQogCisgICAgdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMoZm9yY2VVcGRhdGUpCisgICAgeworICAgICAgICB2YXIgY3VycmVudENvbnRlbnRW
aWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAgIGlmICghY3VycmVudENvbnRl
bnRWaWV3KSB7CisgICAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKTsK
KyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcyA9IFtd
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFmb3JjZVVw
ZGF0ZSkgeworICAgICAgICAgICAgbGV0IHByZXZpb3VzSXRlbXMgPSB0aGlzLl9jdXJyZW50Q29u
dGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuRGl2aWRlck5hdmlnYXRpb25JdGVtKSk7CisgICAgICAgICAgICBsZXQg
aXNVbmNoYW5nZWQgPSBBcnJheS5zaGFsbG93RXF1YWwocHJldmlvdXNJdGVtcywgY3VycmVudENv
bnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7CisKKyAgICAgICAgICAgIGlmIChpc1VuY2hhbmdl
ZCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9y
ZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKTsKKworICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9
IHRoaXMubmF2aWdhdGlvbkJhcjsKKyAgICAgICAgbGV0IGluc2VydGlvbkluZGV4ID0gbmF2aWdh
dGlvbkJhci5uYXZpZ2F0aW9uSXRlbXMuaW5kZXhPZih0aGlzLl9kaXZpZGluZ0ZsZXhpYmxlU3Bh
Y2VOYXZpZ2F0aW9uSXRlbSkgKyAxOworICAgICAgICBjb25zb2xlLmFzc2VydChpbnNlcnRpb25J
bmRleCA+PSAwKTsKKworICAgICAgICAvLyBLZWVwIHRyYWNrIG9mIGl0ZW1zIHdlJ2xsIGJlIGFk
ZGluZyB0byB0aGUgbmF2aWdhdGlvbiBiYXIuCisgICAgICAgIGxldCBuZXdOYXZpZ2F0aW9uSXRl
bXMgPSBbXTsKKworICAgICAgICAvLyBHbyB0aHJvdWdoIGVhY2ggb2YgdGhlIGl0ZW1zIG9mIHRo
ZSBuZXcgY29udGVudCB2aWV3IGFuZCBhZGQgYSBkaXZpZGVyIGJlZm9yZSB0aGVtLgorICAgICAg
ICBjdXJyZW50Q29udGVudFZpZXcubmF2aWdhdGlvbkl0ZW1zLmZvckVhY2goZnVuY3Rpb24obmF2
aWdhdGlvbkl0ZW0sIGluZGV4KSB7CisgICAgICAgICAgICAvLyBBZGQgZGl2aWRlcnMgYmVmb3Jl
IGl0ZW1zIHVubGVzcyBpdCdzIHRoZSBmaXJzdCBpdGVtIGFuZCBub3QgYSBidXR0b24uCisgICAg
ICAgICAgICBpZiAoaW5kZXggIT09IDAgfHwgbmF2aWdhdGlvbkl0ZW0gaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuQnV0dG9uTmF2aWdhdGlvbkl0ZW0pIHsKKyAgICAgICAgICAgICAgICBsZXQgZGl2
aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuRGl2aWRlck5hdmlnYXRpb25JdGVtOworICAgICAgICAg
ICAgICAgIG5hdmlnYXRpb25CYXIuaW5zZXJ0TmF2aWdhdGlvbkl0ZW0oZGl2aWRlciwgaW5zZXJ0
aW9uSW5kZXgrKyk7CisgICAgICAgICAgICAgICAgbmV3TmF2aWdhdGlvbkl0ZW1zLnB1c2goZGl2
aWRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuYXZpZ2F0aW9uQmFyLmluc2VydE5h
dmlnYXRpb25JdGVtKG5hdmlnYXRpb25JdGVtLCBpbnNlcnRpb25JbmRleCsrKTsKKyAgICAgICAg
ICAgIG5ld05hdmlnYXRpb25JdGVtcy5wdXNoKG5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgLy8gUmVtZW1iZXIgdGhlIG5hdmlnYXRpb24gaXRlbXMgd2UgaW5zZXJ0ZWQg
c28gd2UgY2FuIHJlbW92ZSB0aGVtCisgICAgICAgIC8vIGZvciB0aGUgbmV4dCBjb250ZW50IHZp
ZXcuCisgICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcyA9IG5l
d05hdmlnYXRpb25JdGVtczsKKyAgICB9CisKICAgICAvLyBQcml2YXRlCiAKICAgICBfZmluZEJh
bm5lckRpZFNob3coZXZlbnQpCkBAIC0zNjcsNTEgKzQxMCwxMiBAQCBXZWJJbnNwZWN0b3IuQ29u
dGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5W
aWV3CiAgICAgICAgIHRoaXMuX2ZvcndhcmROYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gdGhpcy5j
YW5Hb0ZvcndhcmQoKTsKICAgICB9CiAKLSAgICBfdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9u
SXRlbXMoKQotICAgIHsKLSAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3Vy
cmVudENvbnRlbnRWaWV3OwotICAgICAgICBpZiAoIWN1cnJlbnRDb250ZW50VmlldykgewotICAg
ICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsTmF2aWdhdGlvbkl0ZW1zKCk7Ci0gICAgICAgICAgICB0
aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMgPSBbXTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBwcmV2aW91c0l0ZW1zID0gdGhpcy5f
Y3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gIShpdGVt
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSkpOwotICAgICAg
ICBsZXQgaXNVbmNoYW5nZWQgPSBBcnJheS5zaGFsbG93RXF1YWwocHJldmlvdXNJdGVtcywgY3Vy
cmVudENvbnRlbnRWaWV3Lm5hdmlnYXRpb25JdGVtcyk7Ci0KLSAgICAgICAgaWYgKGlzVW5jaGFu
Z2VkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3JlbW92ZUFsbE5hdmln
YXRpb25JdGVtcygpOwotCi0gICAgICAgIGxldCBuYXZpZ2F0aW9uQmFyID0gdGhpcy5uYXZpZ2F0
aW9uQmFyOwotICAgICAgICBsZXQgaW5zZXJ0aW9uSW5kZXggPSBuYXZpZ2F0aW9uQmFyLm5hdmln
YXRpb25JdGVtcy5pbmRleE9mKHRoaXMuX2RpdmlkaW5nRmxleGlibGVTcGFjZU5hdmlnYXRpb25J
dGVtKSArIDE7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluc2VydGlvbkluZGV4ID49IDApOwot
Ci0gICAgICAgIC8vIEtlZXAgdHJhY2sgb2YgaXRlbXMgd2UnbGwgYmUgYWRkaW5nIHRvIHRoZSBu
YXZpZ2F0aW9uIGJhci4KLSAgICAgICAgbGV0IG5ld05hdmlnYXRpb25JdGVtcyA9IFtdOwotCi0g
ICAgICAgIC8vIEdvIHRocm91Z2ggZWFjaCBvZiB0aGUgaXRlbXMgb2YgdGhlIG5ldyBjb250ZW50
IHZpZXcgYW5kIGFkZCBhIGRpdmlkZXIgYmVmb3JlIHRoZW0uCi0gICAgICAgIGN1cnJlbnRDb250
ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMuZm9yRWFjaChmdW5jdGlvbihuYXZpZ2F0aW9uSXRlbSwg
aW5kZXgpIHsKLSAgICAgICAgICAgIC8vIEFkZCBkaXZpZGVycyBiZWZvcmUgaXRlbXMgdW5sZXNz
IGl0J3MgdGhlIGZpcnN0IGl0ZW0gYW5kIG5vdCBhIGJ1dHRvbi4KLSAgICAgICAgICAgIGlmIChp
bmRleCAhPT0gMCB8fCBuYXZpZ2F0aW9uSXRlbSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5CdXR0
b25OYXZpZ2F0aW9uSXRlbSkgewotICAgICAgICAgICAgICAgIGxldCBkaXZpZGVyID0gbmV3IFdl
Ykluc3BlY3Rvci5EaXZpZGVyTmF2aWdhdGlvbkl0ZW07Ci0gICAgICAgICAgICAgICAgbmF2aWdh
dGlvbkJhci5pbnNlcnROYXZpZ2F0aW9uSXRlbShkaXZpZGVyLCBpbnNlcnRpb25JbmRleCsrKTsK
LSAgICAgICAgICAgICAgICBuZXdOYXZpZ2F0aW9uSXRlbXMucHVzaChkaXZpZGVyKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIG5hdmlnYXRpb25CYXIuaW5zZXJ0TmF2aWdhdGlvbkl0ZW0o
bmF2aWdhdGlvbkl0ZW0sIGluc2VydGlvbkluZGV4KyspOwotICAgICAgICAgICAgbmV3TmF2aWdh
dGlvbkl0ZW1zLnB1c2gobmF2aWdhdGlvbkl0ZW0pOwotICAgICAgICB9KTsKLQotICAgICAgICAv
LyBSZW1lbWJlciB0aGUgbmF2aWdhdGlvbiBpdGVtcyB3ZSBpbnNlcnRlZCBzbyB3ZSBjYW4gcmVt
b3ZlIHRoZW0KLSAgICAgICAgLy8gZm9yIHRoZSBuZXh0IGNvbnRlbnQgdmlldy4KLSAgICAgICAg
dGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zID0gbmV3TmF2aWdhdGlvbkl0
ZW1zOwotICAgIH0KLQogICAgIF9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgbmF2aWdhdGlvbkl0ZW0gb2YgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3
TmF2aWdhdGlvbkl0ZW1zKQotICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmFyLnJlbW92ZU5h
dmlnYXRpb25JdGVtKG5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgZm9yIChsZXQgbmF2aWdhdGlv
bkl0ZW0gb2YgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKSB7CisgICAg
ICAgICAgICBpZiAobmF2aWdhdGlvbkl0ZW0ucGFyZW50TmF2aWdhdGlvbkJhcikKKyAgICAgICAg
ICAgICAgICBuYXZpZ2F0aW9uSXRlbS5wYXJlbnROYXZpZ2F0aW9uQmFyLnJlbW92ZU5hdmlnYXRp
b25JdGVtKG5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF91cGRhdGVG
aW5kQmFubmVyKGN1cnJlbnRDb250ZW50VmlldykKQEAgLTQ0OSw3ICs0NTMsNyBAQCBXZWJJbnNw
ZWN0b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYklu
c3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3U2VsZWN0aW9uUGF0
aE5hdmlnYXRpb25JdGVtKGV2ZW50LnRhcmdldCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUJhY2tG
b3J3YXJkQnV0dG9ucygpOwogCi0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdh
dGlvbkl0ZW1zKCk7CisgICAgICAgIHRoaXMudXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9uSXRl
bXMoKTsKIAogICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQmFyLm5lZWRzTGF5b3V0KCk7CiAKQEAg
LTQ3Miw3ICs0NzYsNyBAQCBXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIgPSBjbGFzcyBDb250
ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMuX3VwZGF0
ZUNvbnRlbnRWaWV3U2VsZWN0aW9uUGF0aE5hdmlnYXRpb25JdGVtKGN1cnJlbnRDb250ZW50Vmll
dyk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUJhY2tGb3J3YXJkQnV0dG9ucygpOwogCi0gICAgICAg
IHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKCk7CisgICAgICAgIHRoaXMu
dXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICAgICAgdGhpcy5fdXBkYXRl
RmluZEJhbm5lcihjdXJyZW50Q29udGVudFZpZXcpOwogCiAgICAgICAgIHRoaXMuX25hdmlnYXRp
b25CYXIubmVlZHNMYXlvdXQoKTsKQEAgLTQ4Nyw3ICs0OTEsNyBAQCBXZWJJbnNwZWN0b3IuQ29u
dGVudEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5W
aWV3CiAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuY3VycmVudENvbnRlbnRWaWV3
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3
TmF2aWdhdGlvbkl0ZW1zKCk7CisgICAgICAgIHRoaXMudXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMoKTsKICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkJhci5uZWVkc0xheW91dCgpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGFiQnJvd3Nlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RhYkJyb3dzZXIuanMKaW5kZXggYWIxOWQ2NC4uY2JiOTEzNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RhYkJyb3dzZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGFiQnJvd3Nl
ci5qcwpAQCAtMjUwLDYgKzI1MCw5IEBAIFdlYkluc3BlY3Rvci5UYWJCcm93c2VyID0gY2xhc3Mg
VGFiQnJvd3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMuX3Nob3dO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsRm9yVGFiQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcpOwog
ICAgICAgICB0aGlzLl9zaG93RGV0YWlsc1NpZGViYXJQYW5lbHNGb3JUYWJDb250ZW50Vmlldyh0
YWJDb250ZW50Vmlldyk7CiAKKyAgICAgICAgY29uc3QgZm9yY2VVcGRhdGUgPSB0cnVlOworICAg
ICAgICB0YWJDb250ZW50Vmlldy5jb250ZW50QnJvd3Nlci51cGRhdGVDb250ZW50Vmlld05hdmln
YXRpb25JdGVtcyhmb3JjZVVwZGF0ZSk7CisKICAgICAgICAgLy8gSWYgdGhlIHRhYiBicm93c2Vy
IHdhcyByZXNpemVkIHByaW9yIHRvIHNob3dpbmcgdGhlIHRhYiwgdGhlIG5ldyB0YWIgbmVlZHMg
dG8gcGVyZm9ybSBhIHJlc2l6ZSBsYXlvdXQuCiAgICAgICAgIGlmICh0YWJDb250ZW50VmlldyAm
JiB0YWJDb250ZW50Vmlld1tXZWJJbnNwZWN0b3IuVGFiQnJvd3Nlci5OZWVkc1Jlc2l6ZUxheW91
dFN5bWJvbF0pIHsKICAgICAgICAgICAgIHRhYkNvbnRlbnRWaWV3W1dlYkluc3BlY3Rvci5UYWJC
cm93c2VyLk5lZWRzUmVzaXplTGF5b3V0U3ltYm9sXSA9IGZhbHNlOwo=
</data>
<flag name="review"
          id="332532"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311853</attachid>
            <date>2017-06-02 13:28:34 -0700</date>
            <delta_ts>2017-06-09 18:36:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6778</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBiOGFjYzMuLjc3NjBjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA2LTAyICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByZXR0
eSBwcmludCAvIHR5cGUgaW5mbyAvIGNvZGUgY292ZXJhZ2UgYnV0dG9ucyBkaXNhcHBlYXIgYWZ0
ZXIgc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg0NTUzMjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWFjaCBDb250ZW50
VmlldyBvd25zIGEgbGlzdCBvZiBOYXZpZ2F0aW9uSXRlbXMuIFdoZW4gdGhlIENvbnRlbnRWaWV3
IG1vdmVzIGFjcm9zcworICAgICAgICB0YWJzIChDb250ZW50QnJvd3NlcnMpIGl0IHJlbW92ZXMg
aXRzIE5hdmlnYXRpb25JdGVtcyBmcm9tIHRoZSBvbGQgdGFiJ3MgTmF2aWdhdGlvbkJhcgorICAg
ICAgICBhbmQgYWRkcyB0aGVtIHRvIHRoZSBuZXcgdGFiJ3MgTmF2aWdhdGlvbkJhci4gV2hlbiBz
d2l0Y2hpbmcgYmFjayB0byB0aGUgb3JpZ2luYWwgdGFiCisgICAgICAgIHRoZSBDb250ZW50Vmll
dyBpcyByZXN0b3JlZCwgYnV0IGl0cyBOYXZpZ2F0aW9uSXRlbXMgYXJlIG5vdCBjYXJyaWVkIGJh
Y2suCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS51cGRhdGVDdXJy
ZW50Q29udGVudFZpZXdDb21wb25lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50
QnJvd3Nlci5wcm90b3R5cGUuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKToKKyAg
ICAgICAgQWRkIGZvcmNlVXBkYXRlIHByb3BlcnR5IHRoYXQgaXMgbmVlZGVkIHdoZW4gbmF2aWdh
dGlvbkl0ZW1zIGFyZSB1bmNoYW5nZWQgYnV0IG5hdmlnYXRpb25CYXIgaXMKKyAgICAgICAgZGlm
ZmVyZW50LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90eXBl
Ll9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICBSZW1vdmUgbmF2aWdhdGlvbiBp
dGVtcyBldmVuIHdoZW4gdGhlaXIgbmF2aWdhdGlvbkJhciBpcyBubyBsb25nZXIgYSBjdXJyZW50
IG5hdmlnYXRpb25CYXIsCisgICAgICAgIGUuZy4gYSBuYXZpZ2F0aW9uQmFyIG9mIHRoZSBwcmV2
aW91cyB0YWIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2Vy
VGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudEJyb3dzZXJU
YWJDb250ZW50Vmlldy5wcm90b3R5cGUudXBkYXRlQ3VycmVudENvbnRlbnRWaWV3Q29tcG9uZW50
cyk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50Vmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5wcm90b3R5cGUudXBkYXRlQ3VycmVudENvbnRl
bnRWaWV3Q29tcG9uZW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXdDb250YWluZXIuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250YWluZXIucHJvdG90eXBlLnNob3dC
YWNrRm9yd2FyZEVudHJ5Rm9ySW5kZXgpOgorCiAyMDE3LTA1LTI0ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYiBJbnNwZWN0b3I6
IEFkZCBuZXcgR1RLKyBpY29ucyBmb3IgZ2FyYmFnZSBjb2xsZWN0IGFuZCBjbGVhbiBidXR0b25z
IGluIENvbnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMKaW5kZXggODU2ZTg4MC4uYjQ1NjM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29u
dGVudEJyb3dzZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ29udGVudEJyb3dzZXIuanMKQEAgLTE1Nyw2ICsxNTcsMTIgQEAgV2ViSW5zcGVjdG9y
LkNvbnRlbnRCcm93c2VyID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuVmlldwogICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuY29udGVu
dFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChyZXByZXNlbnRlZE9iamVjdCwgb25seUV4aXN0aW5n
LCBleHRyYUFyZ3VtZW50cyk7CiAgICAgfQogCisgICAgdXBkYXRlQ3VycmVudENvbnRlbnRWaWV3
Q29tcG9uZW50cygpCisgICAgeworICAgICAgICBjb25zdCBmb3JjZVVwZGF0ZSA9IHRydWU7Cisg
ICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKGZvcmNlVXBkYXRl
KTsKKyAgICB9CisKICAgICB1cGRhdGVIaWVyYXJjaGljYWxQYXRoRm9yQ3VycmVudENvbnRlbnRW
aWV3KCkKICAgICB7CiAgICAgICAgIHZhciBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLmN1cnJl
bnRDb250ZW50VmlldzsKQEAgLTM2NywyMCArMzczLDIyIEBAIFdlYkluc3BlY3Rvci5Db250ZW50
QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcK
ICAgICAgICAgdGhpcy5fZm9yd2FyZE5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSB0aGlzLmNhbkdv
Rm9yd2FyZCgpOwogICAgIH0KIAotICAgIF91cGRhdGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVt
cygpCisgICAgX3VwZGF0ZUNvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKGZvcmNlVXBkYXRlKQog
ICAgIHsKLSAgICAgICAgdmFyIGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRl
bnRWaWV3OworICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29u
dGVudFZpZXc7CiAgICAgICAgIGlmICghY3VycmVudENvbnRlbnRWaWV3KSB7CiAgICAgICAgICAg
ICB0aGlzLl9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKTsKICAgICAgICAgICAgIHRoaXMuX2N1
cnJlbnRDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcyA9IFtdOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IHByZXZpb3VzSXRlbXMgPSB0aGlzLl9jdXJyZW50
Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFu
Y2VvZiBXZWJJbnNwZWN0b3IuRGl2aWRlck5hdmlnYXRpb25JdGVtKSk7Ci0gICAgICAgIGxldCBp
c1VuY2hhbmdlZCA9IEFycmF5LnNoYWxsb3dFcXVhbChwcmV2aW91c0l0ZW1zLCBjdXJyZW50Q29u
dGVudFZpZXcubmF2aWdhdGlvbkl0ZW1zKTsKKyAgICAgICAgaWYgKCFmb3JjZVVwZGF0ZSkgewor
ICAgICAgICAgICAgbGV0IHByZXZpb3VzSXRlbXMgPSB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdO
YXZpZ2F0aW9uSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuRGl2aWRlck5hdmlnYXRpb25JdGVtKSk7CisgICAgICAgICAgICBsZXQgaXNVbmNoYW5n
ZWQgPSBBcnJheS5zaGFsbG93RXF1YWwocHJldmlvdXNJdGVtcywgY3VycmVudENvbnRlbnRWaWV3
Lm5hdmlnYXRpb25JdGVtcyk7CiAKLSAgICAgICAgaWYgKGlzVW5jaGFuZ2VkKQotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKGlzVW5jaGFuZ2VkKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3JlbW92ZUFsbE5hdmlnYXRpb25J
dGVtcygpOwogCkBAIC00MTAsOCArNDE4LDEwIEBAIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nl
ciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKIAogICAg
IF9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgbmF2
aWdhdGlvbkl0ZW0gb2YgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKQot
ICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmFyLnJlbW92ZU5hdmlnYXRpb25JdGVtKG5hdmln
YXRpb25JdGVtKTsKKyAgICAgICAgZm9yIChsZXQgbmF2aWdhdGlvbkl0ZW0gb2YgdGhpcy5fY3Vy
cmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKSB7CisgICAgICAgICAgICBpZiAobmF2aWdh
dGlvbkl0ZW0ucGFyZW50TmF2aWdhdGlvbkJhcikKKyAgICAgICAgICAgICAgICBuYXZpZ2F0aW9u
SXRlbS5wYXJlbnROYXZpZ2F0aW9uQmFyLnJlbW92ZU5hdmlnYXRpb25JdGVtKG5hdmlnYXRpb25J
dGVtKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF91cGRhdGVGaW5kQmFubmVyKGN1cnJlbnRD
b250ZW50VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3NlclRhYkNvbnRlbnRWaWV3
LmpzCmluZGV4IGU4ZDgyYWEuLmQ1YjMwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyVGFiQ29udGVudFZpZXcuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJy
b3dzZXJUYWJDb250ZW50Vmlldy5qcwpAQCAtMTkxLDYgKzE5MSwxMiBAQCBXZWJJbnNwZWN0b3Iu
Q29udGVudEJyb3dzZXJUYWJDb250ZW50VmlldyA9IGNsYXNzIENvbnRlbnRCcm93c2VyVGFiQ29u
dGVudFZpZXcgZQogICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2VyLnNob3dDb250ZW50Vmlld0Zv
clJlcHJlc2VudGVkT2JqZWN0KHJlcHJlc2VudGVkT2JqZWN0LCBjb29raWUpOwogICAgIH0KIAor
ICAgIHVwZGF0ZUN1cnJlbnRDb250ZW50Vmlld0NvbXBvbmVudHMoKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMuY29udGVudEJyb3dzZXIpCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRCcm93c2Vy
LnVwZGF0ZUN1cnJlbnRDb250ZW50Vmlld0NvbXBvbmVudHMoKTsKKyAgICB9CisKICAgICAvLyBD
b250ZW50QnJvd3NlciBEZWxlZ2F0ZQogCiAgICAgY29udGVudEJyb3dzZXJUcmVlRWxlbWVudEZv
clJlcHJlc2VudGVkT2JqZWN0KGNvbnRlbnRCcm93c2VyLCByZXByZXNlbnRlZE9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRl
bnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29u
dGVudFZpZXcuanMKaW5kZXggMWY3ZmYwYi4uZGYxYjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXcuanMKQEAg
LTQ0Nyw2ICs0NDcsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3ID0gY2xhc3MgQ29udGVu
dFZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgIHsKICAgICAgICAgLy8gSW1wbGVt
ZW50ZWQgYnkgc3ViY2xhc3Nlcy4KICAgICB9CisKKyAgICB1cGRhdGVDdXJyZW50Q29udGVudFZp
ZXdDb21wb25lbnRzKCkKKyAgICB7CisgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1YmNsYXNz
ZXMuCisgICAgfQogfTsKIAogV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3LkV2ZW50ID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVu
dFZpZXdDb250YWluZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Db250ZW50Vmlld0NvbnRhaW5lci5qcwppbmRleCA3ZDk4NjVkLi4xN2I4NmQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50
Vmlld0NvbnRhaW5lci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Db250ZW50Vmlld0NvbnRhaW5lci5qcwpAQCAtMTYzLDYgKzE2Myw4IEBAIFdlYklu
c3BlY3Rvci5Db250ZW50Vmlld0NvbnRhaW5lciA9IGNsYXNzIENvbnRlbnRWaWV3Q29udGFpbmVy
IGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5fc2hv
d0VudHJ5KGN1cnJlbnRFbnRyeSwgZmFsc2UpOwogCisgICAgICAgIGN1cnJlbnRFbnRyeS5jb250
ZW50Vmlldy51cGRhdGVDdXJyZW50Q29udGVudFZpZXdDb21wb25lbnRzKCk7CisKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3Q29u
dGFpbmVyLkV2ZW50LkN1cnJlbnRDb250ZW50Vmlld0RpZENoYW5nZSk7CiAgICAgfQogCg==
</data>
<flag name="commit-queue"
          id="332810"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312527</attachid>
            <date>2017-06-09 18:36:02 -0700</date>
            <delta_ts>2017-06-14 18:06:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5332</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBiOGFjYzMuLjdlNTE0NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA2LTA5ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByZXR0
eSBwcmludCAvIHR5cGUgaW5mbyAvIGNvZGUgY292ZXJhZ2UgYnV0dG9ucyBkaXNhcHBlYXIgYWZ0
ZXIgc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg0NTUzMjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWFjaCBDb250ZW50
VmlldyBvd25zIGEgbGlzdCBvZiBOYXZpZ2F0aW9uSXRlbXMuIFdoZW4gdGhlIENvbnRlbnRWaWV3
IG1vdmVzIGFjcm9zcworICAgICAgICBUYWJzIChDb250ZW50QnJvd3NlcnMpIGl0IHJlbW92ZXMg
aXRzIE5hdmlnYXRpb25JdGVtcyBmcm9tIHRoZSBvbGQgVGFiJ3MgTmF2aWdhdGlvbkJhcgorICAg
ICAgICBhbmQgYWRkcyB0aGVtIHRvIHRoZSBuZXcgVGFiJ3MgTmF2aWdhdGlvbkJhci4gV2hlbiBz
d2l0Y2hpbmcgYmFjayB0byB0aGUgb3JpZ2luYWwgdGFiCisgICAgICAgIHRoZSBDb250ZW50Vmll
dyBpcyByZXN0b3JlZCwgYnV0IGl0cyBOYXZpZ2F0aW9uSXRlbXMgYXJlIG5vdCBjYXJyaWVkIGJh
Y2suCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5fdXBkYXRlQ29u
dGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMpOgorICAgICAgICBBZGQgZm9yY2VVcGRhdGUgcHJvcGVy
dHkgdGhhdCBpcyBuZWVkZWQgd2hlbiBuYXZpZ2F0aW9uSXRlbXMgYXJlIHVuY2hhbmdlZCBidXQg
bmF2aWdhdGlvbkJhciBpcworICAgICAgICBkaWZmZXJlbnQuCisKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX3JlbW92ZUFsbE5hdmlnYXRpb25JdGVtcyk6
CisgICAgICAgIFJlbW92ZSBuYXZpZ2F0aW9uIGl0ZW1zIGV2ZW4gd2hlbiB0aGVpciBuYXZpZ2F0
aW9uQmFyIGlzIG5vIGxvbmdlciBhIGN1cnJlbnQgbmF2aWdhdGlvbkJhciwKKyAgICAgICAgZS5n
LiBhIG5hdmlnYXRpb25CYXIgb2YgdGhlIHByZXZpb3VzIHRhYi4KKworICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnRlbnRCcm93c2VyLnByb3RvdHlwZS5fY29udGVudFZpZXdOYXZpZ2F0aW9uSXRl
bXNEaWRDaGFuZ2UpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXdD
b250YWluZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFZpZXdDb250YWluZXIu
cHJvdG90eXBlLl90YWtlT3duZXJzaGlwT2ZDb250ZW50Vmlldyk6CisKIDIwMTctMDUtMjQgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGljb25zIGZvciBnYXJiYWdlIGNvbGxlY3QgYW5k
IGNsZWFuIGJ1dHRvbnMgaW4gQ29uc29sZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwppbmRleCA4NTZl
ODgwLi42MmVjYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qcwpAQCAtMzY3LDIxICszNjcsMjgg
QEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93c2VyID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICB0aGlzLl9mb3J3YXJkTmF2aWdhdGlvbkl0
ZW0uZW5hYmxlZCA9IHRoaXMuY2FuR29Gb3J3YXJkKCk7CiAgICAgfQogCi0gICAgX3VwZGF0ZUNv
bnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKCkKKyAgICBfdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMoZm9yY2VVcGRhdGUpCiAgICAgewotICAgICAgICB2YXIgY3VycmVudENvbnRlbnRW
aWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZpZXc7CisgICAgICAgIGxldCBjdXJyZW50Q29udGVu
dFZpZXcgPSB0aGlzLmN1cnJlbnRDb250ZW50VmlldzsKICAgICAgICAgaWYgKCFjdXJyZW50Q29u
dGVudFZpZXcpIHsKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFsbE5hdmlnYXRpb25JdGVtcygp
OwogICAgICAgICAgICAgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zID0g
W107CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgcHJldmlv
dXNJdGVtcyA9IHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcy5maWx0ZXIo
KGl0ZW0pID0+ICEoaXRlbSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5EaXZpZGVyTmF2aWdhdGlv
bkl0ZW0pKTsKLSAgICAgICAgbGV0IGlzVW5jaGFuZ2VkID0gQXJyYXkuc2hhbGxvd0VxdWFsKHBy
ZXZpb3VzSXRlbXMsIGN1cnJlbnRDb250ZW50Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOwotCi0gICAg
ICAgIGlmIChpc1VuY2hhbmdlZCkKKyAgICAgICAgLy8gSWYgdGhlIENvbnRlbnRWaWV3IGlzIGEg
dG9tYnN0b25lIHdpdGhpbiBvdXIgQ29udGVudFZpZXdDb250YWluZXIsIGRvbid0IHN0ZWFsIGl0
cyBuYXZpZ2F0aW9uSXRlbXMuCisgICAgICAgIC8vIE9ubHkgdGhlIG93bmluZyBDb250ZW50QnJv
d3NlciBzaG91bGQgaGF2ZSB0aGUgbmF2aWdhdGlvbkl0ZW1zLgorICAgICAgICBpZiAoY3VycmVu
dENvbnRlbnRWaWV3LnBhcmVudENvbnRhaW5lciAhPT0gdGhpcy5fY29udGVudFZpZXdDb250YWlu
ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKCFmb3JjZVVwZGF0ZSkgewor
ICAgICAgICAgICAgbGV0IHByZXZpb3VzSXRlbXMgPSB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdO
YXZpZ2F0aW9uSXRlbXMuZmlsdGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuRGl2aWRlck5hdmlnYXRpb25JdGVtKSk7CisgICAgICAgICAgICBsZXQgaXNVbmNoYW5n
ZWQgPSBBcnJheS5zaGFsbG93RXF1YWwocHJldmlvdXNJdGVtcywgY3VycmVudENvbnRlbnRWaWV3
Lm5hdmlnYXRpb25JdGVtcyk7CisKKyAgICAgICAgICAgIGlmIChpc1VuY2hhbmdlZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9yZW1vdmVBbGxO
YXZpZ2F0aW9uSXRlbXMoKTsKIAogICAgICAgICBsZXQgbmF2aWdhdGlvbkJhciA9IHRoaXMubmF2
aWdhdGlvbkJhcjsKQEAgLTQxMCw4ICs0MTcsMTAgQEAgV2ViSW5zcGVjdG9yLkNvbnRlbnRCcm93
c2VyID0gY2xhc3MgQ29udGVudEJyb3dzZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogCiAg
ICAgX3JlbW92ZUFsbE5hdmlnYXRpb25JdGVtcygpCiAgICAgewotICAgICAgICBmb3IgKGxldCBu
YXZpZ2F0aW9uSXRlbSBvZiB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMp
Ci0gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25CYXIucmVtb3ZlTmF2aWdhdGlvbkl0ZW0obmF2
aWdhdGlvbkl0ZW0pOworICAgICAgICBmb3IgKGxldCBuYXZpZ2F0aW9uSXRlbSBvZiB0aGlzLl9j
dXJyZW50Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMpIHsKKyAgICAgICAgICAgIGlmIChuYXZp
Z2F0aW9uSXRlbS5wYXJlbnROYXZpZ2F0aW9uQmFyKQorICAgICAgICAgICAgICAgIG5hdmlnYXRp
b25JdGVtLnBhcmVudE5hdmlnYXRpb25CYXIucmVtb3ZlTmF2aWdhdGlvbkl0ZW0obmF2aWdhdGlv
bkl0ZW0pOworICAgICAgICB9CiAgICAgfQogCiAgICAgX3VwZGF0ZUZpbmRCYW5uZXIoY3VycmVu
dENvbnRlbnRWaWV3KQpAQCAtNDg3LDcgKzQ5Niw4IEBAIFdlYkluc3BlY3Rvci5Db250ZW50QnJv
d3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAg
ICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gdGhpcy5jdXJyZW50Q29udGVudFZpZXcpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0
aW9uSXRlbXMoKTsKKyAgICAgICAgY29uc3QgZm9yY2VVcGRhdGUgPSB0cnVlOworICAgICAgICB0
aGlzLl91cGRhdGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcyhmb3JjZVVwZGF0ZSk7CiAgICAg
ICAgIHRoaXMuX25hdmlnYXRpb25CYXIubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRWaWV3
Q29udGFpbmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGVudFZpZXdDb250YWluZXIuanMKaW5kZXggN2Q5ODY1ZC4uODNlMTY2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudFZpZXdD
b250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29udGVudFZpZXdDb250YWluZXIuanMKQEAgLTM0OSw2ICszNDksOSBAQCBXZWJJbnNwZWN0
b3IuQ29udGVudFZpZXdDb250YWluZXIgPSBjbGFzcyBDb250ZW50Vmlld0NvbnRhaW5lciBleHRl
bmRzIFdlYkluc3BlYwogICAgICAgICBjb250ZW50Vmlldy5fcGFyZW50Q29udGFpbmVyID0gdGhp
czsKIAogICAgICAgICB0aGlzLl9jbGVhclRvbWJzdG9uZXNGb3JDb250ZW50Vmlldyhjb250ZW50
Vmlldyk7CisKKyAgICAgICAgLy8gVGhlc2UgY29udGVudFZpZXcgbmF2aWdhdGlvbiBpdGVtcyBu
ZWVkIHRvIG1vdmUgdG8gdGhlIG5ldyBjb250ZW50IGJyb3dzZXIuCisgICAgICAgIGNvbnRlbnRW
aWV3LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZl
bnQuTmF2aWdhdGlvbkl0ZW1zRGlkQ2hhbmdlKTsKICAgICB9CiAKICAgICBfcGxhY2VUb21ic3Rv
bmVzRm9yQ29udGVudFZpZXcoY29udGVudFZpZXcpCg==
</data>
<flag name="review"
          id="333455"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312940</attachid>
            <date>2017-06-14 18:06:41 -0700</date>
            <delta_ts>2017-06-14 18:44:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5336</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDBiOGFjYzMuLjQwN2JmMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA2LTE0ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByZXR0
eSBwcmludCAvIHR5cGUgaW5mbyAvIGNvZGUgY292ZXJhZ2UgYnV0dG9ucyBkaXNhcHBlYXIgYWZ0
ZXIgc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjUxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg0NTUzMjI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEVhY2ggQ29udGVu
dFZpZXcgb3ducyBhIGxpc3Qgb2YgTmF2aWdhdGlvbkl0ZW1zLiBXaGVuIHRoZSBDb250ZW50Vmll
dyBtb3ZlcyBhY3Jvc3MKKyAgICAgICAgVGFicyAoQ29udGVudEJyb3dzZXJzKSBpdCByZW1vdmVz
IGl0cyBOYXZpZ2F0aW9uSXRlbXMgZnJvbSB0aGUgb2xkIFRhYidzIE5hdmlnYXRpb25CYXIKKyAg
ICAgICAgYW5kIGFkZHMgdGhlbSB0byB0aGUgbmV3IFRhYidzIE5hdmlnYXRpb25CYXIuIFdoZW4g
c3dpdGNoaW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHRhYgorICAgICAgICB0aGUgQ29udGVudFZp
ZXcgaXMgcmVzdG9yZWQsIGJ1dCBpdHMgTmF2aWdhdGlvbkl0ZW1zIGFyZSBub3QgY2FycmllZCBi
YWNrLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50QnJvd3Nlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX3VwZGF0ZUNv
bnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKToKKyAgICAgICAgQWRkIGEgZm9yY2VVcGRhdGUgcGFy
YW1ldGVyIHRoYXQgaXMgbmVlZGVkIHdoZW4gbmF2aWdhdGlvbkl0ZW1zIGFyZSB1bmNoYW5nZWQg
YnV0IG5hdmlnYXRpb25CYXIgaXMKKyAgICAgICAgZGlmZmVyZW50LgorCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29udGVudEJyb3dzZXIucHJvdG90eXBlLl9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRl
bXMpOgorICAgICAgICBSZW1vdmUgbmF2aWdhdGlvbiBpdGVtcyBldmVuIHdoZW4gdGhlaXIgbmF2
aWdhdGlvbkJhciBpcyBubyBsb25nZXIgYSBjdXJyZW50IG5hdmlnYXRpb25CYXIsCisgICAgICAg
IGUuZy4gYSBuYXZpZ2F0aW9uQmFyIG9mIHRoZSBwcmV2aW91cyB0YWIuCisKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db250ZW50QnJvd3Nlci5wcm90b3R5cGUuX2NvbnRlbnRWaWV3TmF2aWdhdGlv
bkl0ZW1zRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRW
aWV3Q29udGFpbmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3Q29udGFp
bmVyLnByb3RvdHlwZS5fdGFrZU93bmVyc2hpcE9mQ29udGVudFZpZXcpOgorCiAyMDE3LTA1LTI0
ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtH
VEtdIFdlYiBJbnNwZWN0b3I6IEFkZCBuZXcgR1RLKyBpY29ucyBmb3IgZ2FyYmFnZSBjb2xsZWN0
IGFuZCBjbGVhbiBidXR0b25zIGluIENvbnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRCcm93c2VyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMKaW5kZXgg
ODU2ZTg4MC4uNjJlY2I3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGVudEJyb3dzZXIuanMKQEAgLTM2NywyMSArMzY3
LDI4IEBAIFdlYkluc3BlY3Rvci5Db250ZW50QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2Vy
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgdGhpcy5fZm9yd2FyZE5hdmlnYXRp
b25JdGVtLmVuYWJsZWQgPSB0aGlzLmNhbkdvRm9yd2FyZCgpOwogICAgIH0KIAotICAgIF91cGRh
dGVDb250ZW50Vmlld05hdmlnYXRpb25JdGVtcygpCisgICAgX3VwZGF0ZUNvbnRlbnRWaWV3TmF2
aWdhdGlvbkl0ZW1zKGZvcmNlVXBkYXRlKQogICAgIHsKLSAgICAgICAgdmFyIGN1cnJlbnRDb250
ZW50VmlldyA9IHRoaXMuY3VycmVudENvbnRlbnRWaWV3OworICAgICAgICBsZXQgY3VycmVudENv
bnRlbnRWaWV3ID0gdGhpcy5jdXJyZW50Q29udGVudFZpZXc7CiAgICAgICAgIGlmICghY3VycmVu
dENvbnRlbnRWaWV3KSB7CiAgICAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRl
bXMoKTsKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZW50Vmlld05hdmlnYXRpb25JdGVt
cyA9IFtdOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IHBy
ZXZpb3VzSXRlbXMgPSB0aGlzLl9jdXJyZW50Q29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMuZmls
dGVyKChpdGVtKSA9PiAhKGl0ZW0gaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRGl2aWRlck5hdmln
YXRpb25JdGVtKSk7Ci0gICAgICAgIGxldCBpc1VuY2hhbmdlZCA9IEFycmF5LnNoYWxsb3dFcXVh
bChwcmV2aW91c0l0ZW1zLCBjdXJyZW50Q29udGVudFZpZXcubmF2aWdhdGlvbkl0ZW1zKTsKLQot
ICAgICAgICBpZiAoaXNVbmNoYW5nZWQpCisgICAgICAgIC8vIElmIHRoZSBDb250ZW50VmlldyBp
cyBhIHRvbWJzdG9uZSB3aXRoaW4gb3VyIENvbnRlbnRWaWV3Q29udGFpbmVyLCBkb24ndCBzdGVh
bCBpdHMgbmF2aWdhdGlvbkl0ZW1zLgorICAgICAgICAvLyBPbmx5IHRoZSBvd25pbmcgQ29udGVu
dEJyb3dzZXIgc2hvdWxkIGhhdmUgdGhlIG5hdmlnYXRpb25JdGVtcy4KKyAgICAgICAgaWYgKGN1
cnJlbnRDb250ZW50Vmlldy5wYXJlbnRDb250YWluZXIgIT09IHRoaXMuX2NvbnRlbnRWaWV3Q29u
dGFpbmVyKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmICghZm9yY2VVcGRhdGUp
IHsKKyAgICAgICAgICAgIGxldCBwcmV2aW91c0l0ZW1zID0gdGhpcy5fY3VycmVudENvbnRlbnRW
aWV3TmF2aWdhdGlvbkl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gIShpdGVtIGluc3RhbmNlb2YgV2Vi
SW5zcGVjdG9yLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSkpOworICAgICAgICAgICAgbGV0IGlzVW5j
aGFuZ2VkID0gQXJyYXkuc2hhbGxvd0VxdWFsKHByZXZpb3VzSXRlbXMsIGN1cnJlbnRDb250ZW50
Vmlldy5uYXZpZ2F0aW9uSXRlbXMpOworCisgICAgICAgICAgICBpZiAoaXNVbmNoYW5nZWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5fcmVtb3Zl
QWxsTmF2aWdhdGlvbkl0ZW1zKCk7CiAKICAgICAgICAgbGV0IG5hdmlnYXRpb25CYXIgPSB0aGlz
Lm5hdmlnYXRpb25CYXI7CkBAIC00MTAsOCArNDE3LDEwIEBAIFdlYkluc3BlY3Rvci5Db250ZW50
QnJvd3NlciA9IGNsYXNzIENvbnRlbnRCcm93c2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcK
IAogICAgIF9yZW1vdmVBbGxOYXZpZ2F0aW9uSXRlbXMoKQogICAgIHsKLSAgICAgICAgZm9yIChs
ZXQgbmF2aWdhdGlvbkl0ZW0gb2YgdGhpcy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0
ZW1zKQotICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmFyLnJlbW92ZU5hdmlnYXRpb25JdGVt
KG5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgZm9yIChsZXQgbmF2aWdhdGlvbkl0ZW0gb2YgdGhp
cy5fY3VycmVudENvbnRlbnRWaWV3TmF2aWdhdGlvbkl0ZW1zKSB7CisgICAgICAgICAgICBpZiAo
bmF2aWdhdGlvbkl0ZW0ucGFyZW50TmF2aWdhdGlvbkJhcikKKyAgICAgICAgICAgICAgICBuYXZp
Z2F0aW9uSXRlbS5wYXJlbnROYXZpZ2F0aW9uQmFyLnJlbW92ZU5hdmlnYXRpb25JdGVtKG5hdmln
YXRpb25JdGVtKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF91cGRhdGVGaW5kQmFubmVyKGN1
cnJlbnRDb250ZW50VmlldykKQEAgLTQ4Nyw3ICs0OTYsOCBAQCBXZWJJbnNwZWN0b3IuQ29udGVu
dEJyb3dzZXIgPSBjbGFzcyBDb250ZW50QnJvd3NlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3
CiAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IHRoaXMuY3VycmVudENvbnRlbnRWaWV3KQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRWaWV3TmF2
aWdhdGlvbkl0ZW1zKCk7CisgICAgICAgIGNvbnN0IGZvcmNlVXBkYXRlID0gdHJ1ZTsKKyAgICAg
ICAgdGhpcy5fdXBkYXRlQ29udGVudFZpZXdOYXZpZ2F0aW9uSXRlbXMoZm9yY2VVcGRhdGUpOwog
ICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQmFyLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZW50
Vmlld0NvbnRhaW5lci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NvbnRlbnRWaWV3Q29udGFpbmVyLmpzCmluZGV4IDdkOTg2NWQuLjgzZTE2NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRlbnRW
aWV3Q29udGFpbmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRlbnRWaWV3Q29udGFpbmVyLmpzCkBAIC0zNDksNiArMzQ5LDkgQEAgV2ViSW5z
cGVjdG9yLkNvbnRlbnRWaWV3Q29udGFpbmVyID0gY2xhc3MgQ29udGVudFZpZXdDb250YWluZXIg
ZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgY29udGVudFZpZXcuX3BhcmVudENvbnRhaW5lciA9
IHRoaXM7CiAKICAgICAgICAgdGhpcy5fY2xlYXJUb21ic3RvbmVzRm9yQ29udGVudFZpZXcoY29u
dGVudFZpZXcpOworCisgICAgICAgIC8vIFRoZXNlIGNvbnRlbnRWaWV3IG5hdmlnYXRpb24gaXRl
bXMgbmVlZCB0byBtb3ZlIHRvIHRoZSBuZXcgY29udGVudCBicm93c2VyLgorICAgICAgICBjb250
ZW50Vmlldy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3
LkV2ZW50Lk5hdmlnYXRpb25JdGVtc0RpZENoYW5nZSk7CiAgICAgfQogCiAgICAgX3BsYWNlVG9t
YnN0b25lc0ZvckNvbnRlbnRWaWV3KGNvbnRlbnRWaWV3KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>