<?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>179622</bug_id>
          
          <creation_ts>2017-11-13 12:08:40 -0800</creation_ts>
          <short_desc>Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property</short_desc>
          <delta_ts>2018-02-02 14:53:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1370994</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-11-13 12:08:40 -0800</bug_when>
    <thetext>Pasting multiple properties should create properties instead of a bad property

Copy this text:
---------
margin: 0;
padding: 0;
---------

Steps to reproduce:
1. Copy the above text
2. Inspect this page
3. Show the Styles sidebar
4. Click to start adding a new property
5. Paste
  =&gt; Bad behavior, expected 2 new properties to be created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370995</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-13 12:09:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/35511170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382426</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-12-15 18:37:17 -0800</bug_when>
    <thetext>Devin, out of all styles sidebar bugs I haven&apos;t started working on, this is the most important one! If you don&apos;t feel like tackling it, please assign back to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382975</commentid>
    <comment_count>3</comment_count>
      <attachid>329708</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-12-18 16:40:34 -0800</bug_when>
    <thetext>Created attachment 329708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383421</commentid>
    <comment_count>4</comment_count>
      <attachid>329708</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-12-19 16:49:49 -0800</bug_when>
    <thetext>Comment on attachment 329708
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:567
&gt; +                    properties.lastValue.value = text.substring(savedIndex, i).trim();

1. This doesn&apos;t look for CSS comments.

2. Pasting the following throws an exception:

    1px;
    padding: 0;

[Error] TypeError: undefined is not an object (evaluating &apos;properties.lastValue.value = text.substring(savedIndex, i).trim()&apos;)
	_handleNamePaste (SpreadsheetStyleProperty.js:569)
	_handleNamePaste

It shouldn&apos;t throw even when the CSS is invalid.

---

I see you&apos;re trying to guess how many properties are being added so you can add a blank property after. I don&apos;t know how to make it simpler just yet, but I strongly suggest to avoid parsing CSS on the front-end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386364</commentid>
    <comment_count>5</comment_count>
      <attachid>329708</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-01-05 16:43:28 -0800</bug_when>
    <thetext>Comment on attachment 329708
Patch

&gt; I see you&apos;re trying to guess how many properties are being added so you can add a blank property after. I don&apos;t know how to make it simpler just yet, but I strongly suggest to avoid parsing CSS on the front-end.

I have an idea how to avoid guessing how many properties are inserted on the front-end.

Say, we are adding a blank property after the first one:

    color: red;
    []
    float: left;
    outline: none;
    

and pasting:

    font-size: 12px;
    font-family: sans-serif;

After pasting, we want to focus on the next property, &quot;float: left&quot;, regardless of how many properties are being added.
During pasting, we know there are 4 properties in the style declaration (the focused property is blank).
&quot;float: left&quot; is the second property from the end. Regardless of how many properties are being added, we always want to focus on the second property from the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391957</commentid>
    <comment_count>6</comment_count>
      <attachid>332000</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-01-22 20:05:41 -0800</bug_when>
    <thetext>Created attachment 332000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392844</commentid>
    <comment_count>7</comment_count>
      <attachid>332000</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-01-24 17:00:07 -0800</bug_when>
    <thetext>Comment on attachment 332000
Patch

The pasted properties don&apos;t appear in the styles sidebar. Looks like layout doesn&apos;t get called on WI.SpreadsheetCSSStyleDeclarationEditor.

This could be related to https://trac.webkit.org/changeset/227370/webkit. I&apos;m looking into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392862</commentid>
    <comment_count>8</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-01-24 17:40:47 -0800</bug_when>
    <thetext>I just checkout out one revision before https://trac.webkit.org/changeset/227370/webkit, and pasting worked fine.
I&apos;m looking into making pasting work with the new locking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392883</commentid>
    <comment_count>9</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-01-24 19:02:54 -0800</bug_when>
    <thetext>This seems to fix it:

    _propertiesChanged(event)
    {
+       let hasPastedProperties = !isNaN(this._pendingAddBlankPropertyIndexOffset);
-       if (this.editing) {
+       if (this.editing &amp;&amp; !hasPastedProperties) {
            for (let propertyView of this._propertyViews)
                propertyView.updateStatus();
        } else
            this.needsLayout();
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393827</commentid>
    <comment_count>10</comment_count>
      <attachid>332463</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-01-27 00:44:36 -0800</bug_when>
    <thetext>Created attachment 332463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393895</commentid>
    <comment_count>11</comment_count>
      <attachid>332463</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-01-27 19:31:01 -0800</bug_when>
    <thetext>Comment on attachment 332463
Patch

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

It works as expected now. Good work!

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:126
&gt; +    remove(replacement = &quot;&quot;)

Nit: I&apos;d introduce a new method and call it `replace` or `replaceWithText`.

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:566
&gt; +    _handleNamePaste(event)

This patch only addresses pasting CSS properties into name fields. I imagine this is the most common case so it&apos;s fine. Eventually, it would be nice to handle pasting into value fields as well.

    color: []

Pasting:

    red;
    font-size: 12px;

Should result in:

    color: red;
    font-size: 12px;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395647</commentid>
    <comment_count>12</comment_count>
      <attachid>332463</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-02-01 15:06:22 -0800</bug_when>
    <thetext>Comment on attachment 332463
Patch

r- for the following:

Pasting multiple commented properties doesn&apos;t work, and leaves the Style {} UI in an unusable state.

Paste `/*color: red; margin: 0;*/` in the blank property created after clicking in the Style {} UI.

Expected:
Style {
    [ ] /* color: red; */
    [ ] /* margin: 0; */
    [ ] _
}

Actual:
Style {
}

The Style {} UI is blank, and clicking inside it no longer creates a new blank property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395694</commentid>
    <comment_count>13</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-02-01 16:40:36 -0800</bug_when>
    <thetext>(In reply to Matt Baker from comment #12)
&gt; Comment on attachment 332463 [details]
&gt; Patch
&gt; 
&gt; r- for the following:
&gt; 
&gt; Pasting multiple commented properties doesn&apos;t work, and leaves the Style {}
&gt; UI in an unusable state.
&gt; 
&gt; Paste `/*color: red; margin: 0;*/` in the blank property created after
&gt; clicking in the Style {} UI.
&gt; 
&gt; Expected:
&gt; Style {
&gt;     [ ] /* color: red; */
&gt;     [ ] /* margin: 0; */
&gt;     [ ] _
&gt; }
&gt; 
&gt; Actual:
&gt; Style {
&gt; }
&gt; 
&gt; The Style {} UI is blank, and clicking inside it no longer creates a new
&gt; blank property.

This isn&apos;t specific to CSS pasting. A resource with `/*color: red; margin: 0;*/` don&apos;t display two individually commented out properties.

CSS parser on the backend only identifies a single commented out property as disabled.

Disabled property:

    /* color: red */

Not a property:

    /*color: red; margin: 0;*/

Pasting a single commented out CSS property, such as &quot;/* color: red */&quot;, works as expected.
We use the same CSS parser as Chrome, so Chrome DevTools have the exact same issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395697</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-02-01 16:43:39 -0800</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #13)
&gt; (In reply to Matt Baker from comment #12)
&gt; &gt; Comment on attachment 332463 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; r- for the following:
&gt; &gt; 
&gt; &gt; Pasting multiple commented properties doesn&apos;t work, and leaves the Style {}
&gt; &gt; UI in an unusable state.
&gt; &gt; 
&gt; &gt; Paste `/*color: red; margin: 0;*/` in the blank property created after
&gt; &gt; clicking in the Style {} UI.
&gt; &gt; 
&gt; &gt; Expected:
&gt; &gt; Style {
&gt; &gt;     [ ] /* color: red; */
&gt; &gt;     [ ] /* margin: 0; */
&gt; &gt;     [ ] _
&gt; &gt; }
&gt; &gt; 
&gt; &gt; Actual:
&gt; &gt; Style {
&gt; &gt; }
&gt; &gt; 
&gt; &gt; The Style {} UI is blank, and clicking inside it no longer creates a new
&gt; &gt; blank property.
&gt; 
&gt; This isn&apos;t specific to CSS pasting. A resource with `/*color: red; margin:
&gt; 0;*/` don&apos;t display two individually commented out properties.
&gt; 
&gt; CSS parser on the backend only identifies a single commented out property as
&gt; disabled.
&gt; 
&gt; Disabled property:
&gt; 
&gt;     /* color: red */
&gt; 
&gt; Not a property:
&gt; 
&gt;     /*color: red; margin: 0;*/
&gt; 
&gt; Pasting a single commented out CSS property, such as &quot;/* color: red */&quot;,
&gt; works as expected.
&gt; We use the same CSS parser as Chrome, so Chrome DevTools have the exact same
&gt; issues.

Okay that&apos;s fine, but still r- until the issue with the UI being broken after pasting is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395703</commentid>
    <comment_count>15</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-02-01 16:53:26 -0800</bug_when>
    <thetext>Oh, it is broken when pasting `/*color: red; margin: 0;*/` to a rule (such as a style attribute) without any existing properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395773</commentid>
    <comment_count>16</comment_count>
      <attachid>332945</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-02-02 00:14:18 -0800</bug_when>
    <thetext>Created attachment 332945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395993</commentid>
    <comment_count>17</comment_count>
      <attachid>332945</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2018-02-02 14:28:17 -0800</bug_when>
    <thetext>Comment on attachment 332945
Patch

r=me, nice work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396005</commentid>
    <comment_count>18</comment_count>
      <attachid>332945</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-02 14:53:01 -0800</bug_when>
    <thetext>Comment on attachment 332945
Patch

Clearing flags on attachment: 332945

Committed r228030: &lt;https://trac.webkit.org/changeset/228030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396006</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-02 14:53:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329708</attachid>
            <date>2017-12-18 16:40:34 -0800</date>
            <delta_ts>2018-01-22 20:05:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179622-20171218174033.patch</filename>
            <type>text/plain</type>
            <size>9981</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDNhNjA1NjJiNjFlNDA5ZjQwZTJlNGRhM2QyMWI4
OGEwMzVhYTY1YjkuLmU2ZDYyNGZmZTY4YTg5YjA3YWNmOTRhMGJjZWVkYjRjMjIwZTIzZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE3LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogUGFzdGluZyBtdWx0aXBsZSBwcm9wZXJ0aWVzIHNob3VsZCBj
cmVhdGUgcHJvcGVydGllcyBpbnN0ZWFkIG9mIGEgYmFkIHByb3BlcnR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2MjIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM1NTExMTcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkuanM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkucHJvdG90eXBlLl9y
ZW1vdmUpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5f
dXBkYXRlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUu
c3ByZWFkc2hlZXRUZXh0RmllbGREaWRDb21taXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LnByb3RvdHlwZS5faGFuZGxlTmFtZVBhc3RlKToKKyAgICAgICAgV2hlbiB0
aGUgdXNlciBwYXN0ZXMgaW50byB0aGUgbmFtZSBmaWVsZCwgcGFyc2UgdGhlIHRleHQgZm9yIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzIGFuZAorICAgICAgICByZXBsYWNlIHRoZSBwcm9wZXJ0
eSBiZWluZyBlZGl0ZWQgd2l0aCB0aGUgdGV4dCBvZiB0aG9zZSBwYWlycy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yKToK
KyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5
cGUubGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5wcm90b3R5cGUuYWRkQmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9w
ZXJ0eUZvY3VzTW92ZWQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yLnByb3RvdHlwZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvckZvY3VzTW92
ZWQpOiBEZWxldGVkLgorICAgICAgICBDYWxsaW5nIGBhZGRCbGFua1Byb3BlcnR5YCB3aWxsIHRy
aWdnZXIgYSBsYXlvdXQgb24gdGhlIG5leHQgZnJhbWUsIGJ1dCB0aGF0IG1pZ2h0IGJlIGJlZm9y
ZQorICAgICAgICB0aGUgQ1NTQWdlbnQgaGFzIGhhZCBhIGNoYW5jZSB0byBmaW5pc2ggcmVmcmVz
aGluZywgc28gd2UgbmVlZCBhIHdheSB0byBkZWZlciB0aGUgY3JlYXRpb24KKyAgICAgICAgb2Yg
YSBuZXcgcHJvcGVydHkgdW50aWwgYWZ0ZXIgd2UgaGF2ZSBmaW5pc2hlZCB0aGUgbmV4dCBsYXlv
dXQgKHdoaWNoIGlzIGFmdGVyIHRoZSByZWZyZXNoKS4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBu
YW1pbmcgb2Ygc29tZSBkZWxlZ2F0ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZS5yZW1vdmUpOgorICAgICAgICBQcm92aWRlIGEgd2F5IGZvciByZXBsYWNpbmcgdGhlIHBy
b3BlcnR5IHdpdGggbmV3IHRleHQgd2hlbiByZW1vdmluZyBpdC4KKworMjAxNy0xMi0xOCAgRGV2
aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBTdHlsZXMgUmVkZXNpZ246IGFkZCBpbmxpbmUgc3dhdGNoIGZvciBDU1MgdmFyaWFibGVz
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3OTgK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NTU1Byb3BlcnR5LmpzCmluZGV4IGMwNDhhMWRlMTJmYWFjNjg4NGQ2NDFmZjkwZDA5ZDU2
YWY5ZDlmOGIuLmFkODQxMDlmOGU2ZWRlMGRmM2I3YjMzZjc0YTM1NmMxMzE4NTA3M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9w
ZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q1NTUHJvcGVydHkuanMKQEAgLTExOCwxMiArMTE4LDE2IEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xh
c3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkNTU1Byb3BlcnR5LkV2ZW50LkNoYW5nZWQpOwogICAgIH0K
IAotICAgIHJlbW92ZSgpCisgICAgcmVtb3ZlKHJlcGxhY2VtZW50ID0gIiIpCiAgICAgewotICAg
ICAgICAvLyBTZXR0aW5nIG5hbWUgb3IgdmFsdWUgdG8gYW4gZW1wdHkgc3RyaW5nIHJlbW92ZXMg
dGhlIGVudGlyZSBDU1NQcm9wZXJ0eS4KLSAgICAgICAgdGhpcy5fbmFtZSA9ICIiOwogICAgICAg
ICBjb25zdCBmb3JjZVJlbW92ZSA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVN0eWxlVGV4
dChmb3JjZVJlbW92ZSk7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCkKKyAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIHJlcGxhY2VtZW50LCBmb3JjZVJl
bW92ZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gU2V0dGluZyBuYW1lIG9yIHZh
bHVlIHRvIGFuIGVtcHR5IHN0cmluZyByZW1vdmVzIHRoZSBlbnRpcmUgQ1NTUHJvcGVydHkuCisg
ICAgICAgICAgICB0aGlzLl9uYW1lID0gIiI7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTdHls
ZVRleHQoZm9yY2VSZW1vdmUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgY29tbWVudE91dChk
aXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNs
YXJhdGlvbkVkaXRvci5qcwppbmRleCA1Zjk2NTc4ZDk4OWFlNDY3OTA3MDExNjIzMzY2NTE1NzZk
NGFjNWRmLi42M2JiZDM2NmJiZDNhZjRkMDgzM2IzYWM1MmUzMTAxNGFiMDkxODFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzCkBAIC0zNSw2ICszNSw3IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRo
aXMuc3R5bGUgPSBzdHlsZTsKICAgICAgICAgdGhpcy5fcHJvcGVydHlWaWV3cyA9IFtdOwogICAg
ICAgICB0aGlzLl9wcm9wZXJ0eVBlbmRpbmdTdGFydEVkaXRpbmcgPSBudWxsOworICAgICAgICB0
aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4ID0gTmFOOwogICAgICAgICB0aGlzLl9m
aWx0ZXJUZXh0ID0gbnVsbDsKICAgICB9CiAKQEAgLTcwLDYgKzcxLDkgQEAgV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWQKIAogICAgICAgICBpZiAodGhpcy5fZmlsdGVyVGV4dCkKICAgICAgICAgICAg
IHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5fZmlsdGVyVGV4dCk7CisKKyAgICAgICAgaWYgKCFpc05h
Tih0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4KSkKKyAgICAgICAgICAgIHRoaXMu
YWRkQmxhbmtQcm9wZXJ0eSh0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4KTsKICAg
ICB9CiAKICAgICBkZXRhY2hlZCgpCkBAIC0xNzMsNiArMTc3LDggQEAgV0kuU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xh
cmF0aW9uRWQKIAogICAgIGFkZEJsYW5rUHJvcGVydHkoaW5kZXgpCiAgICAgeworICAgICAgICB0
aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4ID0gTmFOOworCiAgICAgICAgIGlmIChp
bmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kLgogICAgICAg
ICAgICAgaW5kZXggPSB0aGlzLl9wcm9wZXJ0eVZpZXdzLmxlbmd0aDsKQEAgLTE4Miw5ICsxODgs
OSBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7
CiAgICAgfQogCi0gICAgc3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yRm9jdXNN
b3ZlZCh7ZGlyZWN0aW9uLCBtb3ZlZEZyb21Qcm9wZXJ0eSwgd2lsbFJlbW92ZVByb3BlcnR5fSkK
KyAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlGb2N1c01vdmVkKHByb3BlcnR5Vmlldywge2Rp
cmVjdGlvbiwgd2lsbFJlbW92ZVByb3BlcnR5fSkKICAgICB7Ci0gICAgICAgIGxldCBtb3ZlZEZy
b21JbmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MuaW5kZXhPZihtb3ZlZEZyb21Qcm9wZXJ0eSk7
CisgICAgICAgIGxldCBtb3ZlZEZyb21JbmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MuaW5kZXhP
Zihwcm9wZXJ0eVZpZXcpOwogICAgICAgICBjb25zb2xlLmFzc2VydChtb3ZlZEZyb21JbmRleCAh
PT0gLTEsICJQcm9wZXJ0eSBkb2Vzbid0IGV4aXN0LCBmb2N1c2luZyBvbiBhIHNlbGVjdG9yIGFz
IGEgZmFsbGJhY2suIik7CiAgICAgICAgIGlmIChtb3ZlZEZyb21JbmRleCA9PT0gLTEpIHsKICAg
ICAgICAgICAgIGlmICh0aGlzLl9zdHlsZS5zZWxlY3RvckVkaXRhYmxlKQpAQCAtMjIxLDYgKzIy
NywxMSBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBT
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB9CiAgICAgfQogCisgICAg
c3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5QWRkQmxhbmtQcm9wZXJ0eVNvb24ocHJvcGVydHlWaWV3
LCB7aW5kZXh9KQorICAgIHsKKyAgICAgICAgdGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJ
bmRleCA9ICFpc05hTihpbmRleCkgPyBpbmRleCA6IHRoaXMuX3Byb3BlcnR5Vmlld3MubGVuZ3Ro
OworICAgIH0KKwogICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVJlbW92ZWQocHJvcGVydHlW
aWV3KQogICAgIHsKICAgICAgICAgdGhpcy5fcHJvcGVydHlWaWV3cy5yZW1vdmUocHJvcGVydHlW
aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwppbmRleCA0ZWM0
MWFkMDE5YmQ4YWJkM2NhYTRlOWRhNzFmZGQzY2M1ZWFlOTFiLi5hZDdlOTlmOWU0OTYwNWY1ZmU1
YjU5NTMyY2RkOWRlMzMzMzNlZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5LmpzCkBAIC0xNDMsMTAgKzE0MywxMCBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmUoKQorICAgIF9yZW1vdmUocmVwbGFjZW1lbnQg
PSAiIikKICAgICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgdGhp
cy5fcHJvcGVydHkucmVtb3ZlKCk7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlbW92ZShyZXBs
YWNlbWVudCk7CiAgICAgICAgIHRoaXMuZGV0YWNoZWQoKTsKIAogICAgICAgICBpZiAodGhpcy5f
ZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eVJlbW92ZWQgPT09ICJmdW5jdGlvbiIpCkBAIC0xODksNiArMTg5LDcgQEAgV0kuU3ByZWFkc2hl
ZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eS5lZGl0YWJsZSAmJiB0aGlzLl9w
cm9wZXJ0eS5lbmFibGVkKSB7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC50YWJJbmRl
eCA9IDA7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJi
ZWZvcmVpbnB1dCIsIHRoaXMuX2hhbmRsZU5hbWVCZWZvcmVJbnB1dC5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIHRoaXMuX25hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgdGhp
cy5faGFuZGxlTmFtZVBhc3RlLmJpbmQodGhpcykpOwogCiAgICAgICAgICAgICB0aGlzLl9uYW1l
VGV4dEZpZWxkID0gbmV3IFdJLlNwcmVhZHNoZWV0VGV4dEZpZWxkKHRoaXMsIHRoaXMuX25hbWVF
bGVtZW50LCB0aGlzLl9uYW1lQ29tcGxldGlvbkRhdGFQcm92aWRlci5iaW5kKHRoaXMpKTsKIApA
QCAtMjU1LDkgKzI1Niw5IEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNw
cmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JGb2N1c01vdmVkID09PSAiZnVuY3Rpb24iKSB7Cisg
ICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5
Rm9jdXNNb3ZlZCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgLy8gTW92ZSBmb2N1cyBh
d2F5IGZyb20gdGhlIGN1cnJlbnQgcHJvcGVydHksIHRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIG9u
ZSwgaWYgZXhpc3RzLCBvciB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBydWxlLCBpZiBleGlzdHMu
Ci0gICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRp
b25FZGl0b3JGb2N1c01vdmVkKHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eSwgbW92ZWRG
cm9tUHJvcGVydHk6IHRoaXN9KTsKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eUZvY3VzTW92ZWQodGhpcywge2RpcmVjdGlvbiwgd2lsbFJlbW92ZVBy
b3BlcnR5fSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAod2lsbFJlbW92ZVByb3BlcnR5KQpA
QCAtNTQwLDYgKzU0MSw1MCBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgPSBjbGFzcyBT
cHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5f
dmFsdWVUZXh0RmllbGQuc3RhcnRFZGl0aW5nKCk7CiAgICAgfQogCisgICAgX2hhbmRsZU5hbWVQ
YXN0ZShldmVudCkKKyAgICB7CisgICAgICAgIGxldCB0ZXh0ID0gZXZlbnQuY2xpcGJvYXJkRGF0
YS5nZXREYXRhKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIGlmICghdGV4dCB8fCAhdGV4dC5pbmNs
dWRlcygiOiIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBwcm9wZXJ0aWVz
ID0gW107CisgICAgICAgIGxldCBpblNpbmdsZVF1b3RlcyA9IGZhbHNlOworICAgICAgICBsZXQg
aW5Eb3VibGVRdW90ZXMgPSBmYWxzZTsKKyAgICAgICAgbGV0IHNhdmVkSW5kZXggPSAwOworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
IGlmICh0ZXh0W2ldID09PSAiXCIiKQorICAgICAgICAgICAgICAgIGluRG91YmxlUXVvdGVzID0g
IWluRG91YmxlUXVvdGVzOworICAgICAgICAgICAgZWxzZSBpZiAodGV4dFtpXSA9PT0gIlwnIikK
KyAgICAgICAgICAgICAgICBpblNpbmdsZVF1b3RlcyA9ICFpblNpbmdsZVF1b3RlczsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKCFpblNpbmdsZVF1b3RlcyAmJiAhaW5Eb3VibGVRdW90ZXMpIHsKKyAg
ICAgICAgICAgICAgICBpZiAodGV4dFtpXSA9PT0gIjoiKSB7CisgICAgICAgICAgICAgICAgICAg
IHByb3BlcnRpZXMucHVzaCh7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0ZXh0LnN1
YnN0cmluZyhzYXZlZEluZGV4LCBpKS50cmltKCksCisgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZTogIiIsCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBz
YXZlZEluZGV4ID0gaSArIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXh0W2ldID09
PSAiOyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5sYXN0VmFsdWUudmFsdWUg
PSB0ZXh0LnN1YnN0cmluZyhzYXZlZEluZGV4LCBpKS50cmltKCk7CisgICAgICAgICAgICAgICAg
ICAgIHNhdmVkSW5kZXggPSBpICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXByb3BlcnRpZXMgfHwgKHByb3BlcnRpZXMubGVu
Z3RoID09PSAxICYmICFwcm9wZXJ0aWVzWzBdLnZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworCisgICAgICAgIGxldCByZXBsYWNl
bWVudCA9IHByb3BlcnRpZXMubWFwKCh7bmFtZSwgdmFsdWV9KSA9PiBgJHtuYW1lfTogJHt2YWx1
ZX07YCkuam9pbigiXG4iKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlKHJlcGxhY2VtZW50KTsKKwor
ICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5QWRkQmxh
bmtQcm9wZXJ0eVNvb24pIHsKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0
U3R5bGVQcm9wZXJ0eUFkZEJsYW5rUHJvcGVydHlTb29uKHRoaXMsIHsKKyAgICAgICAgICAgICAg
ICBpbmRleDogcGFyc2VJbnQodGhpcy5fZWxlbWVudC5kYXRhc2V0LnByb3BlcnR5SW5kZXgpICsg
cHJvcGVydGllcy5sZW5ndGgsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIF9uYW1lQ29tcGxldGlvbkRhdGFQcm92aWRlcihwcmVmaXgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBsZXRpb25zLnN0YXJ0c1dpdGgocHJl
Zml4KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332000</attachid>
            <date>2018-01-22 20:05:41 -0800</date>
            <delta_ts>2018-01-27 00:44:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179622-20180122210536.patch</filename>
            <type>text/plain</type>
            <size>8932</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiN2I3ZThhZDZmZGI2OGI4MGM1NjA1ZDZhMzRk
NTkwNjVhNzQ3ODAuLjRmMWE2Y2EwZGE4NTkwZTg1YzRiMDNlY2NiNGU5M2IwMjA4Zjc1MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTAxLTIyICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogUGFzdGluZyBtdWx0aXBsZSBwcm9wZXJ0aWVzIHNob3VsZCBj
cmVhdGUgcHJvcGVydGllcyBpbnN0ZWFkIG9mIGEgYmFkIHByb3BlcnR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2MjIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM1NTExMTcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkuanM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkucHJvdG90eXBlLl9y
ZW1vdmUpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5f
dXBkYXRlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUu
c3ByZWFkc2hlZXRUZXh0RmllbGREaWRDb21taXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LnByb3RvdHlwZS5faGFuZGxlTmFtZVBhc3RlKToKKyAgICAgICAgV2hlbiB0
aGUgdXNlciBwYXN0ZXMgaW50byB0aGUgbmFtZSBmaWVsZCwgcGFyc2UgdGhlIHRleHQgZm9yIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzIGFuZAorICAgICAgICByZXBsYWNlIHRoZSBwcm9wZXJ0
eSBiZWluZyBlZGl0ZWQgd2l0aCB0aGUgdGV4dCBvZiB0aG9zZSBwYWlycy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yKToK
KyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5
cGUubGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5wcm90b3R5cGUuYWRkQmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9w
ZXJ0eUZvY3VzTW92ZWQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yLnByb3RvdHlwZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvckZvY3VzTW92
ZWQpOiBEZWxldGVkLgorICAgICAgICBDYWxsaW5nIGBhZGRCbGFua1Byb3BlcnR5YCB3aWxsIHRy
aWdnZXIgYSBsYXlvdXQgb24gdGhlIG5leHQgZnJhbWUsIGJ1dCB0aGF0IG1pZ2h0IGJlIGJlZm9y
ZQorICAgICAgICB0aGUgQ1NTQWdlbnQgaGFzIGhhZCBhIGNoYW5jZSB0byBmaW5pc2ggcmVmcmVz
aGluZywgc28gd2UgbmVlZCBhIHdheSB0byBkZWZlciB0aGUgY3JlYXRpb24KKyAgICAgICAgb2Yg
YSBuZXcgcHJvcGVydHkgdW50aWwgYWZ0ZXIgd2UgaGF2ZSBmaW5pc2hlZCB0aGUgbmV4dCBsYXlv
dXQgKHdoaWNoIGlzIGFmdGVyIHRoZSByZWZyZXNoKS4KKyAgICAgICAgRHJpdmUtYnk6IGZpeCBu
YW1pbmcgb2Ygc29tZSBkZWxlZ2F0ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZS5yZW1vdmUpOgorICAgICAgICBQcm92aWRlIGEgd2F5IGZvciByZXBsYWNpbmcgdGhlIHBy
b3BlcnR5IHdpdGggbmV3IHRleHQgd2hlbiByZW1vdmluZyBpdC4KKwogMjAxOC0wMS0xOSAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTGF5ZXJzIHRhYiBzaG91bGQgZG8gYXdheSB3aXRoIHBvcG92ZXJzIChpZiBwb3NzaWJs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NQcm9wZXJ0eS5qcwppbmRleCBjMDQ4YTFkZTEyZmFhYzY4ODRkNjQxZmY5MGQwOWQ1
NmFmOWQ5ZjhiLi5hZDg0MTA5ZjhlNmVkZTBkZjNiN2IzM2Y3NGEzNTZjMTMxODUwNzNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJv
cGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzCkBAIC0xMTgsMTIgKzExOCwxNiBAQCBXSS5DU1NQcm9wZXJ0eSA9IGNs
YXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DU1NQcm9wZXJ0eS5FdmVudC5DaGFuZ2VkKTsKICAgICB9
CiAKLSAgICByZW1vdmUoKQorICAgIHJlbW92ZShyZXBsYWNlbWVudCA9ICIiKQogICAgIHsKLSAg
ICAgICAgLy8gU2V0dGluZyBuYW1lIG9yIHZhbHVlIHRvIGFuIGVtcHR5IHN0cmluZyByZW1vdmVz
IHRoZSBlbnRpcmUgQ1NTUHJvcGVydHkuCi0gICAgICAgIHRoaXMuX25hbWUgPSAiIjsKICAgICAg
ICAgY29uc3QgZm9yY2VSZW1vdmUgPSB0cnVlOwotICAgICAgICB0aGlzLl91cGRhdGVTdHlsZVRl
eHQoZm9yY2VSZW1vdmUpOworICAgICAgICBpZiAocmVwbGFjZW1lbnQpCisgICAgICAgICAgICB0
aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCh0aGlzLl90ZXh0LCByZXBsYWNlbWVudCwgZm9yY2VS
ZW1vdmUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIFNldHRpbmcgbmFtZSBvciB2
YWx1ZSB0byBhbiBlbXB0eSBzdHJpbmcgcmVtb3ZlcyB0aGUgZW50aXJlIENTU1Byb3BlcnR5Lgor
ICAgICAgICAgICAgdGhpcy5fbmFtZSA9ICIiOworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU3R5
bGVUZXh0KGZvcmNlUmVtb3ZlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGNvbW1lbnRPdXQo
ZGlzYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3IuanMKaW5kZXggZDk5YmYwMDg3N2M4NGE1ZmZiYjZiNmU2YzZkNDQ3NTQz
NTQyNzg0OC4uMjlkOTJhMGZjMzc4ZTQ0OTlhYmY5ZWVjOGQ3ZTU1ZTNiYjRlZjE1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRv
ci5qcwpAQCAtMzUsNiArMzUsNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0
aGlzLnN0eWxlID0gc3R5bGU7CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5Vmlld3MgPSBbXTsKICAg
ICAgICAgdGhpcy5fcHJvcGVydHlQZW5kaW5nU3RhcnRFZGl0aW5nID0gbnVsbDsKKyAgICAgICAg
dGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9mZnNldCA9IE5hTjsKICAgICAgICAg
dGhpcy5fZmlsdGVyVGV4dCA9IG51bGw7CiAgICAgfQogCkBAIC03MCw2ICs3MSw5IEBAIFdJLlNw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkCiAKICAgICAgICAgaWYgKHRoaXMuX2ZpbHRlclRleHQpCiAgICAg
ICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQpOworCisgICAgICAgIGlm
ICghaXNOYU4odGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9mZnNldCkpCisgICAg
ICAgICAgICB0aGlzLmFkZEJsYW5rUHJvcGVydHkodGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGgg
LSB0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4T2Zmc2V0KTsKICAgICB9CiAKICAg
ICBkZXRhY2hlZCgpCkBAIC0xNzQsNiArMTc4LDggQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQK
IAogICAgIGFkZEJsYW5rUHJvcGVydHkoaW5kZXgpCiAgICAgeworICAgICAgICB0aGlzLl9wZW5k
aW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4T2Zmc2V0ID0gTmFOOworCiAgICAgICAgIGlmIChpbmRl
eCA9PT0gLTEpIHsKICAgICAgICAgICAgIC8vIEFwcGVuZCB0byB0aGUgZW5kLgogICAgICAgICAg
ICAgaW5kZXggPSB0aGlzLl9wcm9wZXJ0eVZpZXdzLmxlbmd0aDsKQEAgLTE4Myw5ICsxODksOSBA
QCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAg
ICAgfQogCi0gICAgc3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yRm9jdXNNb3Zl
ZCh7ZGlyZWN0aW9uLCBtb3ZlZEZyb21Qcm9wZXJ0eSwgd2lsbFJlbW92ZVByb3BlcnR5fSkKKyAg
ICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlGb2N1c01vdmVkKHByb3BlcnR5Vmlldywge2RpcmVj
dGlvbiwgd2lsbFJlbW92ZVByb3BlcnR5fSkKICAgICB7Ci0gICAgICAgIGxldCBtb3ZlZEZyb21J
bmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MuaW5kZXhPZihtb3ZlZEZyb21Qcm9wZXJ0eSk7Cisg
ICAgICAgIGxldCBtb3ZlZEZyb21JbmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MuaW5kZXhPZihw
cm9wZXJ0eVZpZXcpOwogICAgICAgICBjb25zb2xlLmFzc2VydChtb3ZlZEZyb21JbmRleCAhPT0g
LTEsICJQcm9wZXJ0eSBkb2Vzbid0IGV4aXN0LCBmb2N1c2luZyBvbiBhIHNlbGVjdG9yIGFzIGEg
ZmFsbGJhY2suIik7CiAgICAgICAgIGlmIChtb3ZlZEZyb21JbmRleCA9PT0gLTEpIHsKICAgICAg
ICAgICAgIGlmICh0aGlzLl9zdHlsZS5zZWxlY3RvckVkaXRhYmxlKQpAQCAtMjIyLDYgKzIyOCwx
MyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB9CiAgICAgfQogCisgICAgc3By
ZWFkc2hlZXRTdHlsZVByb3BlcnR5QWRkQmxhbmtQcm9wZXJ0eVNvb24ocHJvcGVydHlWaWV3LCB7
aW5kZXh9KQorICAgIHsKKyAgICAgICAgaWYgKGlzTmFOKGluZGV4KSkKKyAgICAgICAgICAgIGlu
ZGV4ID0gdGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGg7CisgICAgICAgIHRoaXMuX3BlbmRpbmdB
ZGRCbGFua1Byb3BlcnR5SW5kZXhPZmZzZXQgPSB0aGlzLl9wcm9wZXJ0eVZpZXdzLmxlbmd0aCAt
IGluZGV4OworICAgIH0KKwogICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVJlbW92ZWQocHJv
cGVydHlWaWV3KQogICAgIHsKICAgICAgICAgdGhpcy5fcHJvcGVydHlWaWV3cy5yZW1vdmUocHJv
cGVydHlWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwppbmRl
eCBkNjljMTQ3NGI3YjZmMWEzZjg2MjMxZTNkMDg2OTczZDM0MmE2ZWMyLi45YzlmOTQ5YzQyNjZj
ZWQ3NWM5MTE2MjY1YmEzNWYwZDgyMDBmOWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LmpzCkBAIC0xNDQsMTAgKzE0NCwxMCBAQCBXSS5TcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmUoKQorICAgIF9yZW1vdmUocmVwbGFj
ZW1lbnQgPSAiIikKICAgICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAg
ICAgdGhpcy5fcHJvcGVydHkucmVtb3ZlKCk7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlbW92
ZShyZXBsYWNlbWVudCk7CiAgICAgICAgIHRoaXMuZGV0YWNoZWQoKTsKIAogICAgICAgICBpZiAo
dGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQ
cm9wZXJ0eVJlbW92ZWQgPT09ICJmdW5jdGlvbiIpCkBAIC0xOTIsNiArMTkyLDcgQEAgV0kuU3By
ZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eS5lZGl0YWJsZSAmJiB0
aGlzLl9wcm9wZXJ0eS5lbmFibGVkKSB7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC50
YWJJbmRleCA9IDA7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJiZWZvcmVpbnB1dCIsIHRoaXMuX2hhbmRsZU5hbWVCZWZvcmVJbnB1dC5iaW5kKHRoaXMp
KTsKKyAgICAgICAgICAgIHRoaXMuX25hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhc3Rl
IiwgdGhpcy5faGFuZGxlTmFtZVBhc3RlLmJpbmQodGhpcykpOwogCiAgICAgICAgICAgICB0aGlz
Ll9uYW1lVGV4dEZpZWxkID0gbmV3IFdJLlNwcmVhZHNoZWV0VGV4dEZpZWxkKHRoaXMsIHRoaXMu
X25hbWVFbGVtZW50LCB0aGlzLl9uYW1lQ29tcGxldGlvbkRhdGFQcm92aWRlci5iaW5kKHRoaXMp
KTsKIApAQCAtMjYxLDkgKzI2Miw5IEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNs
YXNzIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5zcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JGb2N1c01vdmVkID09PSAiZnVuY3Rpb24i
KSB7CisgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5Rm9jdXNNb3ZlZCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgLy8gTW92ZSBm
b2N1cyBhd2F5IGZyb20gdGhlIGN1cnJlbnQgcHJvcGVydHksIHRvIHRoZSBuZXh0IG9yIHByZXZp
b3VzIG9uZSwgaWYgZXhpc3RzLCBvciB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBydWxlLCBpZiBl
eGlzdHMuCi0gICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3JGb2N1c01vdmVkKHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eSwg
bW92ZWRGcm9tUHJvcGVydHk6IHRoaXN9KTsKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNw
cmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUZvY3VzTW92ZWQodGhpcywge2RpcmVjdGlvbiwgd2lsbFJl
bW92ZVByb3BlcnR5fSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAod2lsbFJlbW92ZVByb3Bl
cnR5KQpAQCAtNTQ2LDYgKzU0NywyMyBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgPSBj
bGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
dGhpcy5fdmFsdWVUZXh0RmllbGQuc3RhcnRFZGl0aW5nKCk7CiAgICAgfQogCisgICAgX2hhbmRs
ZU5hbWVQYXN0ZShldmVudCkKKyAgICB7CisgICAgICAgIGxldCB0ZXh0ID0gZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIGlmICghdGV4dCB8fCAhdGV4
dC5pbmNsdWRlcygiOiIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAgdGhpcy5fcmVtb3ZlKHRleHQpOworCisgICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbikgeworICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5QWRkQmxhbmtQcm9wZXJ0eVNvb24odGhpcywgeworICAgICAgICAgICAgICAgIGluZGV4
OiBwYXJzZUludCh0aGlzLl9lbGVtZW50LmRhdGFzZXQucHJvcGVydHlJbmRleCkgKyAxLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBfbmFtZUNvbXBsZXRpb25EYXRh
UHJvdmlkZXIocHJlZml4KQogICAgIHsKICAgICAgICAgcmV0dXJuIFdJLkNTU0NvbXBsZXRpb25z
LmNzc05hbWVDb21wbGV0aW9ucy5zdGFydHNXaXRoKHByZWZpeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332463</attachid>
            <date>2018-01-27 00:44:36 -0800</date>
            <delta_ts>2018-02-02 00:14:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179622-20180127004435.patch</filename>
            <type>text/plain</type>
            <size>9388</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDk3ZWQzOTJlZjRkZjQ4ZGIyZWNlYjAwYmM2ZWEz
NzdlNjNiMjIyMDMuLmY3ODY1OTk4MThhZWRiODc4YjAzZmYwZDY3ZDRjODYxZDZkMjg4NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTAxLTI3ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogUGFzdGluZyBtdWx0aXBsZSBwcm9wZXJ0aWVzIHNob3VsZCBj
cmVhdGUgcHJvcGVydGllcyBpbnN0ZWFkIG9mIGEgYmFkIHByb3BlcnR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2MjIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM1NTExMTcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkuanM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkucHJvdG90eXBlLl9y
ZW1vdmUpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5f
dXBkYXRlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUu
c3ByZWFkc2hlZXRUZXh0RmllbGREaWRDb21taXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LnByb3RvdHlwZS5faGFuZGxlTmFtZVBhc3RlKToKKyAgICAgICAgV2hlbiB0
aGUgdXNlciBwYXN0ZXMgaW50byB0aGUgbmFtZSBmaWVsZCwgcGFyc2UgdGhlIHRleHQgZm9yIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzIGFuZAorICAgICAgICByZXBsYWNlIHRoZSBwcm9wZXJ0
eSBiZWluZyBlZGl0ZWQgd2l0aCB0aGUgdGV4dCBvZiB0aG9zZSBwYWlycy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yKToK
KyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5
cGUubGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5wcm90b3R5cGUuYWRkQmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9w
ZXJ0eUZvY3VzTW92ZWQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yLnByb3RvdHlwZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLl9wcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvbkVkaXRvckZvY3VzTW92ZWQpOiBEZWxldGVkLgorICAgICAgICBDYWxsaW5nIGBh
ZGRCbGFua1Byb3BlcnR5YCB3aWxsIHRyaWdnZXIgYSBsYXlvdXQgb24gdGhlIG5leHQgZnJhbWUs
IGJ1dCB0aGF0IG1pZ2h0IGJlIGJlZm9yZQorICAgICAgICB0aGUgQ1NTQWdlbnQgaGFzIGhhZCBh
IGNoYW5jZSB0byBmaW5pc2ggcmVmcmVzaGluZywgc28gd2UgbmVlZCBhIHdheSB0byBkZWZlciB0
aGUgY3JlYXRpb24KKyAgICAgICAgb2YgYSBuZXcgcHJvcGVydHkgdW50aWwgYWZ0ZXIgd2UgaGF2
ZSBmaW5pc2hlZCB0aGUgbmV4dCBsYXlvdXQgKHdoaWNoIGlzIGFmdGVyIHRoZSByZWZyZXNoKS4K
KyAgICAgICAgRHJpdmUtYnk6IGZpeCBuYW1pbmcgb2Ygc29tZSBkZWxlZ2F0ZSBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAg
ICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5yZW1vdmUpOgorICAgICAgICBQcm92aWRlIGEg
d2F5IGZvciByZXBsYWNpbmcgdGhlIHByb3BlcnR5IHdpdGggbmV3IHRleHQgd2hlbiByZW1vdmlu
ZyBpdC4KKwogMjAxOC0wMS0yNiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogVGFiQmFyIHJlZGVzaWduOiBpbXByb3ZlbWVudHMgdG8g
dGFiIGxheW91dCBhbmQgcmVzaXplIGJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKaW5kZXggZGRj
MmNkNGJlOGE1MzE4ODQ1YTdjMWY3M2FhZjdhYmZmMGQ3MTFmYS4uMWE5ZGJiMWQxNTk0ODU3OTA5
NzU1ODY1NDE0ZGU0OTk4NzBjNjhmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwpAQCAtMTIzLDEyICsx
MjMsMTYgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQ1NTUHJv
cGVydHkuRXZlbnQuQ2hhbmdlZCk7CiAgICAgfQogCi0gICAgcmVtb3ZlKCkKKyAgICByZW1vdmUo
cmVwbGFjZW1lbnQgPSAiIikKICAgICB7Ci0gICAgICAgIC8vIFNldHRpbmcgbmFtZSBvciB2YWx1
ZSB0byBhbiBlbXB0eSBzdHJpbmcgcmVtb3ZlcyB0aGUgZW50aXJlIENTU1Byb3BlcnR5LgotICAg
ICAgICB0aGlzLl9uYW1lID0gIiI7CiAgICAgICAgIGNvbnN0IGZvcmNlUmVtb3ZlID0gdHJ1ZTsK
LSAgICAgICAgdGhpcy5fdXBkYXRlU3R5bGVUZXh0KGZvcmNlUmVtb3ZlKTsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50KQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhp
cy5fdGV4dCwgcmVwbGFjZW1lbnQsIGZvcmNlUmVtb3ZlKTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAvLyBTZXR0aW5nIG5hbWUgb3IgdmFsdWUgdG8gYW4gZW1wdHkgc3RyaW5nIHJlbW92
ZXMgdGhlIGVudGlyZSBDU1NQcm9wZXJ0eS4KKyAgICAgICAgICAgIHRoaXMuX25hbWUgPSAiIjsK
KyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0eWxlVGV4dChmb3JjZVJlbW92ZSk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBjb21tZW50T3V0KGRpc2FibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmpzCmluZGV4IDRjN2U1
NzFiMmQwNGUyNWFlZjBiZmU4ZTk2MjhjZjE1YWE2NmI0ZDguLmFkYWU3OTVjOTFmMDIxY2ZiY2Ni
ZWY5YTEyNGNmOGYwNTlhYmU1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRz
aGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMKQEAgLTM5LDYgKzM5LDcgQEAgV0kuU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlOwogCiAgICAg
ICAgIHRoaXMuX3Byb3BlcnR5UGVuZGluZ1N0YXJ0RWRpdGluZyA9IG51bGw7CisgICAgICAgIHRo
aXMuX3BlbmRpbmdBZGRCbGFua1Byb3BlcnR5SW5kZXhPZmZzZXQgPSBOYU47CiAgICAgICAgIHRo
aXMuX2ZpbHRlclRleHQgPSBudWxsOwogICAgIH0KIApAQCAtOTAsNiArOTEsOSBAQCBXSS5TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25FZAogCiAgICAgICAgIGlmICh0aGlzLl9maWx0ZXJUZXh0KQogICAgICAg
ICAgICAgdGhpcy5hcHBseUZpbHRlcih0aGlzLl9maWx0ZXJUZXh0KTsKKworICAgICAgICBpZiAo
IWlzTmFOKHRoaXMuX3BlbmRpbmdBZGRCbGFua1Byb3BlcnR5SW5kZXhPZmZzZXQpKQorICAgICAg
ICAgICAgdGhpcy5hZGRCbGFua1Byb3BlcnR5KHRoaXMuX3Byb3BlcnR5Vmlld3MubGVuZ3RoIC0g
MSAtIHRoaXMuX3BlbmRpbmdBZGRCbGFua1Byb3BlcnR5SW5kZXhPZmZzZXQpOwogICAgIH0KIAog
ICAgIGRldGFjaGVkKCkKQEAgLTIwNCw2ICsyMDgsOCBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxl
RGVjbGFyYXRpb25FZGl0b3IgPSBjbGFzcyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25F
ZAogCiAgICAgYWRkQmxhbmtQcm9wZXJ0eShpbmRleCkKICAgICB7CisgICAgICAgIHRoaXMuX3Bl
bmRpbmdBZGRCbGFua1Byb3BlcnR5SW5kZXhPZmZzZXQgPSBOYU47CisKICAgICAgICAgaWYgKGlu
ZGV4ID09PSAtMSkgewogICAgICAgICAgICAgLy8gQXBwZW5kIHRvIHRoZSBlbmQuCiAgICAgICAg
ICAgICBpbmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MubGVuZ3RoOwpAQCAtMjEzLDkgKzIxOSw5
IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsK
ICAgICB9CiAKLSAgICBzcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JGb2N1c01v
dmVkKHtkaXJlY3Rpb24sIG1vdmVkRnJvbVByb3BlcnR5LCB3aWxsUmVtb3ZlUHJvcGVydHl9KQor
ICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUZvY3VzTW92ZWQocHJvcGVydHlWaWV3LCB7ZGly
ZWN0aW9uLCB3aWxsUmVtb3ZlUHJvcGVydHl9KQogICAgIHsKLSAgICAgICAgbGV0IG1vdmVkRnJv
bUluZGV4ID0gdGhpcy5fcHJvcGVydHlWaWV3cy5pbmRleE9mKG1vdmVkRnJvbVByb3BlcnR5KTsK
KyAgICAgICAgbGV0IG1vdmVkRnJvbUluZGV4ID0gdGhpcy5fcHJvcGVydHlWaWV3cy5pbmRleE9m
KHByb3BlcnR5Vmlldyk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1vdmVkRnJvbUluZGV4ICE9
PSAtMSwgIlByb3BlcnR5IGRvZXNuJ3QgZXhpc3QsIGZvY3VzaW5nIG9uIGEgc2VsZWN0b3IgYXMg
YSBmYWxsYmFjay4iKTsKICAgICAgICAgaWYgKG1vdmVkRnJvbUluZGV4ID09PSAtMSkgewogICAg
ICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLnNlbGVjdG9yRWRpdGFibGUpCkBAIC0yNTQsNiArMjYw
LDEzIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAKICAgICAvLyBTcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkgZGVsZWdhdGUKIAorICAgIHNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUFkZEJsYW5r
UHJvcGVydHlTb29uKHByb3BlcnR5Vmlldywge2luZGV4fSkKKyAgICB7CisgICAgICAgIGlmIChp
c05hTihpbmRleCkpCisgICAgICAgICAgICBpbmRleCA9IHRoaXMuX3Byb3BlcnR5Vmlld3MubGVu
Z3RoOworICAgICAgICB0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4T2Zmc2V0ID0g
dGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGggLSBpbmRleDsKKyAgICB9CisKICAgICBzcHJlYWRz
aGVldFN0eWxlUHJvcGVydHlSZW1vdmVkKHByb3BlcnR5VmlldykKICAgICB7CiAgICAgICAgIHRo
aXMuX3Byb3BlcnR5Vmlld3MucmVtb3ZlKHByb3BlcnR5Vmlldyk7CkBAIC0zMjIsNyArMzM1LDcg
QEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3MgU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKIAogICAgIF9wcm9wZXJ0aWVzQ2hhbmdlZChldmVu
dCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmVkaXRpbmcpIHsKKyAgICAgICAgaWYgKHRoaXMu
ZWRpdGluZyAmJiBpc05hTih0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4T2Zmc2V0
KSkgewogICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3IG9mIHRoaXMuX3Byb3BlcnR5
Vmlld3MpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlWaWV3LnVwZGF0ZVN0YXR1cygpOwogICAg
ICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwppbmRl
eCBhM2M1YTgzOWI4MGQxMzdhNDE5ZWY0ZmY1ZTc2NmQ5NzM1YjY4ODcyLi5hOWIzNmFkZWE3MTQ0
YzU4YWI2YjI3YjRkZTY0NDNkNTFiNjdjYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LmpzCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBXSS5TcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmUoKQorICAgIF9yZW1vdmUocmVwbGFj
ZW1lbnQgPSAiIikKICAgICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAg
ICAgdGhpcy5fcHJvcGVydHkucmVtb3ZlKCk7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlbW92
ZShyZXBsYWNlbWVudCk7CiAgICAgICAgIHRoaXMuZGV0YWNoZWQoKTsKIAogICAgICAgICBpZiAo
dGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQ
cm9wZXJ0eVJlbW92ZWQgPT09ICJmdW5jdGlvbiIpCkBAIC0xOTYsNiArMTk2LDcgQEAgV0kuU3By
ZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eS5lZGl0YWJsZSAmJiB0
aGlzLl9wcm9wZXJ0eS5lbmFibGVkKSB7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC50
YWJJbmRleCA9IDA7CiAgICAgICAgICAgICB0aGlzLl9uYW1lRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJiZWZvcmVpbnB1dCIsIHRoaXMuX2hhbmRsZU5hbWVCZWZvcmVJbnB1dC5iaW5kKHRoaXMp
KTsKKyAgICAgICAgICAgIHRoaXMuX25hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhc3Rl
IiwgdGhpcy5faGFuZGxlTmFtZVBhc3RlLmJpbmQodGhpcykpOwogCiAgICAgICAgICAgICB0aGlz
Ll9uYW1lVGV4dEZpZWxkID0gbmV3IFdJLlNwcmVhZHNoZWV0VGV4dEZpZWxkKHRoaXMsIHRoaXMu
X25hbWVFbGVtZW50LCB0aGlzLl9uYW1lQ29tcGxldGlvbkRhdGFQcm92aWRlci5iaW5kKHRoaXMp
KTsKIApAQCAtMjY1LDkgKzI2Niw5IEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNs
YXNzIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5zcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JGb2N1c01vdmVkID09PSAiZnVuY3Rpb24i
KSB7CisgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5Rm9jdXNNb3ZlZCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgLy8gTW92ZSBm
b2N1cyBhd2F5IGZyb20gdGhlIGN1cnJlbnQgcHJvcGVydHksIHRvIHRoZSBuZXh0IG9yIHByZXZp
b3VzIG9uZSwgaWYgZXhpc3RzLCBvciB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBydWxlLCBpZiBl
eGlzdHMuCi0gICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldENTU1N0eWxlRGVj
bGFyYXRpb25FZGl0b3JGb2N1c01vdmVkKHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eSwg
bW92ZWRGcm9tUHJvcGVydHk6IHRoaXN9KTsKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNw
cmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUZvY3VzTW92ZWQodGhpcywge2RpcmVjdGlvbiwgd2lsbFJl
bW92ZVByb3BlcnR5fSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAod2lsbFJlbW92ZVByb3Bl
cnR5KQpAQCAtNTYyLDYgKzU2MywyMyBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgPSBj
bGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
dGhpcy5fdmFsdWVUZXh0RmllbGQuc3RhcnRFZGl0aW5nKCk7CiAgICAgfQogCisgICAgX2hhbmRs
ZU5hbWVQYXN0ZShldmVudCkKKyAgICB7CisgICAgICAgIGxldCB0ZXh0ID0gZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIGlmICghdGV4dCB8fCAhdGV4
dC5pbmNsdWRlcygiOiIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAgdGhpcy5fcmVtb3ZlKHRleHQpOworCisgICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbikgeworICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVBy
b3BlcnR5QWRkQmxhbmtQcm9wZXJ0eVNvb24odGhpcywgeworICAgICAgICAgICAgICAgIGluZGV4
OiBwYXJzZUludCh0aGlzLl9lbGVtZW50LmRhdGFzZXQucHJvcGVydHlJbmRleCkgKyAxLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBfbmFtZUNvbXBsZXRpb25EYXRh
UHJvdmlkZXIocHJlZml4KQogICAgIHsKICAgICAgICAgcmV0dXJuIFdJLkNTU0NvbXBsZXRpb25z
LmNzc05hbWVDb21wbGV0aW9ucy5zdGFydHNXaXRoKHByZWZpeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332945</attachid>
            <date>2018-02-02 00:14:18 -0800</date>
            <delta_ts>2018-02-02 14:53:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179622-20180202001417.patch</filename>
            <type>text/plain</type>
            <size>9432</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRiM2ZlZmQ1MmZjMDFjZTE3ZjA4ZTI5ODIxOGJl
Mzg1MGNmZTM2NDYuLmQxYjU5MjNmNThlMGE2OTMzYTk3MmU4YjkzZTEyODBkYzk2YmQyYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE4LTAyLTAxICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlcyBSZWRlc2lnbjogUGFzdGluZyBtdWx0aXBsZSBwcm9wZXJ0aWVzIHNob3VsZCBj
cmVhdGUgcHJvcGVydGllcyBpbnN0ZWFkIG9mIGEgYmFkIHByb3BlcnR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk2MjIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM1NTExMTcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVy
dHkuanM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkucHJvdG90eXBlLl9y
ZW1vdmUpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5f
dXBkYXRlKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUu
c3ByZWFkc2hlZXRUZXh0RmllbGREaWRDb21taXQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5LnByb3RvdHlwZS5faGFuZGxlTmFtZVBhc3RlKToKKyAgICAgICAgV2hlbiB0
aGUgdXNlciBwYXN0ZXMgaW50byB0aGUgbmFtZSBmaWVsZCwgcGFyc2UgdGhlIHRleHQgZm9yIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzIGFuZAorICAgICAgICByZXBsYWNlIHRoZSBwcm9wZXJ0
eSBiZWluZyBlZGl0ZWQgd2l0aCB0aGUgdGV4dCBvZiB0aG9zZSBwYWlycy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9y
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yKToK
KyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5wcm90b3R5
cGUubGF5b3V0KToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVk
aXRvci5wcm90b3R5cGUuYWRkQmxhbmtQcm9wZXJ0eSk6CisgICAgICAgIChXSS5TcHJlYWRzaGVl
dENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9w
ZXJ0eUZvY3VzTW92ZWQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uRWRpdG9yLnByb3RvdHlwZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFua1Byb3Bl
cnR5U29vbik6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IucHJvdG90eXBlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eVJlbW92ZWQpOgorICAgICAgICAo
V0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLnByb3RvdHlwZS5fcHJvcGVy
dGllc0NoYW5nZWQpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9u
RWRpdG9yLnByb3RvdHlwZS5zcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3JGb2N1
c01vdmVkKTogRGVsZXRlZC4KKyAgICAgICAgQ2FsbGluZyBgYWRkQmxhbmtQcm9wZXJ0eWAgd2ls
bCB0cmlnZ2VyIGEgbGF5b3V0IG9uIHRoZSBuZXh0IGZyYW1lLCBidXQgdGhhdCBtaWdodCBiZSBi
ZWZvcmUKKyAgICAgICAgdGhlIENTU0FnZW50IGhhcyBoYWQgYSBjaGFuY2UgdG8gZmluaXNoIHJl
ZnJlc2hpbmcsIHNvIHdlIG5lZWQgYSB3YXkgdG8gZGVmZXIgdGhlIGNyZWF0aW9uCisgICAgICAg
IG9mIGEgbmV3IHByb3BlcnR5IHVudGlsIGFmdGVyIHdlIGhhdmUgZmluaXNoZWQgdGhlIG5leHQg
bGF5b3V0ICh3aGljaCBpcyBhZnRlciB0aGUgcmVmcmVzaCkuCisgICAgICAgIERyaXZlLWJ5OiBm
aXggbmFtaW5nIG9mIHNvbWUgZGVsZWdhdGUgZnVuY3Rpb25zLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5w
cm90b3R5cGUucmVwbGFjZVdpdGhUZXh0KToKKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgcmVw
bGFjaW5nIHRoZSBwcm9wZXJ0eSB3aXRoIG5ldyB0ZXh0LgorCiAyMDE4LTAxLTMwICBEZXZpbiBS
b3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFJlcGxhY2UgT2JqZWN0LnNoYWxsb3dNZXJnZSB3aXRoIEVTMjAxOCBzcHJlYWQgb3BlcmF0b3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
U1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NQcm9wZXJ0eS5qcwppbmRleCBkZGMyY2Q0YmU4YTUzMTg4NDVhN2MxZjczYWFmN2FiZmYw
ZDcxMWZhLi4yYTZkNjRmNjhmM2IwNjcxMzFjODc4MmQ1ZGY3ZjNkMTZmZTYxZmJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVy
dHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1Byb3BlcnR5LmpzCkBAIC0xMzEsNiArMTMxLDExIEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3Mg
Q1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fdXBkYXRlU3R5bGVU
ZXh0KGZvcmNlUmVtb3ZlKTsKICAgICB9CiAKKyAgICByZXBsYWNlV2l0aFRleHQodGV4dCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIHRleHQs
IHRydWUpOworICAgIH0KKwogICAgIGNvbW1lbnRPdXQoZGlzYWJsZWQpCiAgICAgewogICAgICAg
ICBjb25zb2xlLmFzc2VydCh0aGlzLl9lbmFibGVkID09PSBkaXNhYmxlZCwgIkNTUyBwcm9wZXJ0
eSBpcyBhbHJlYWR5ICIgKyAoZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogImVuYWJsZWQiKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJl
YWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IuanMKaW5kZXggNGM3ZTU3MWIyZDA0ZTI1YWVmMGJmZThlOTYyOGNmMTVhYTY2YjRkOC4uYTMx
MzRiNThkYzZmZGJkOWNkZGQ1MTAzODdkYzg4YjYzMzBlN2ZhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURl
Y2xhcmF0aW9uRWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5qcwpAQCAtMzks
NiArMzksNyBAQCBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0b3IgPSBjbGFz
cyBTcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZAogICAgICAgICB0aGlzLl9mb2N1c2Vk
ID0gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fcHJvcGVydHlQZW5kaW5nU3RhcnRFZGl0aW5nID0g
bnVsbDsKKyAgICAgICAgdGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9mZnNldCA9
IE5hTjsKICAgICAgICAgdGhpcy5fZmlsdGVyVGV4dCA9IG51bGw7CiAgICAgfQogCkBAIC05MCw2
ICs5MSw5IEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNz
IFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAKICAgICAgICAgaWYgKHRoaXMuX2Zp
bHRlclRleHQpCiAgICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuX2ZpbHRlclRleHQp
OworCisgICAgICAgIGlmICghaXNOYU4odGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRl
eE9mZnNldCkpCisgICAgICAgICAgICB0aGlzLmFkZEJsYW5rUHJvcGVydHkodGhpcy5fcHJvcGVy
dHlWaWV3cy5sZW5ndGggLSAxIC0gdGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9m
ZnNldCk7CiAgICAgfQogCiAgICAgZGV0YWNoZWQoKQpAQCAtMjA0LDYgKzIwOCw4IEBAIFdJLlNw
cmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvbkVkCiAKICAgICBhZGRCbGFua1Byb3BlcnR5KGluZGV4KQogICAgIHsK
KyAgICAgICAgdGhpcy5fcGVuZGluZ0FkZEJsYW5rUHJvcGVydHlJbmRleE9mZnNldCA9IE5hTjsK
KwogICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgICAvLyBBcHBlbmQgdG8g
dGhlIGVuZC4KICAgICAgICAgICAgIGluZGV4ID0gdGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGg7
CkBAIC0yMTMsOSArMjE5LDkgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRp
dG9yID0gY2xhc3MgU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKICAgICAgICAgdGhp
cy5uZWVkc0xheW91dCgpOwogICAgIH0KIAotICAgIHNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJh
dGlvbkVkaXRvckZvY3VzTW92ZWQoe2RpcmVjdGlvbiwgbW92ZWRGcm9tUHJvcGVydHksIHdpbGxS
ZW1vdmVQcm9wZXJ0eX0pCisgICAgc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5Rm9jdXNNb3ZlZChw
cm9wZXJ0eVZpZXcsIHtkaXJlY3Rpb24sIHdpbGxSZW1vdmVQcm9wZXJ0eX0pCiAgICAgewotICAg
ICAgICBsZXQgbW92ZWRGcm9tSW5kZXggPSB0aGlzLl9wcm9wZXJ0eVZpZXdzLmluZGV4T2YobW92
ZWRGcm9tUHJvcGVydHkpOworICAgICAgICBsZXQgbW92ZWRGcm9tSW5kZXggPSB0aGlzLl9wcm9w
ZXJ0eVZpZXdzLmluZGV4T2YocHJvcGVydHlWaWV3KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQo
bW92ZWRGcm9tSW5kZXggIT09IC0xLCAiUHJvcGVydHkgZG9lc24ndCBleGlzdCwgZm9jdXNpbmcg
b24gYSBzZWxlY3RvciBhcyBhIGZhbGxiYWNrLiIpOwogICAgICAgICBpZiAobW92ZWRGcm9tSW5k
ZXggPT09IC0xKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fc3R5bGUuc2VsZWN0b3JFZGl0YWJs
ZSkKQEAgLTI1NCwxMiArMjYwLDIxIEBAIFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
bkVkaXRvciA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkCiAKICAgICAv
LyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZGVsZWdhdGUKIAorICAgIHNwcmVhZHNoZWV0U3R5
bGVQcm9wZXJ0eUFkZEJsYW5rUHJvcGVydHlTb29uKHByb3BlcnR5Vmlldywge2luZGV4fSkKKyAg
ICB7CisgICAgICAgIGlmIChpc05hTihpbmRleCkpCisgICAgICAgICAgICBpbmRleCA9IHRoaXMu
X3Byb3BlcnR5Vmlld3MubGVuZ3RoOworICAgICAgICB0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9w
ZXJ0eUluZGV4T2Zmc2V0ID0gdGhpcy5fcHJvcGVydHlWaWV3cy5sZW5ndGggLSBpbmRleDsKKyAg
ICB9CisKICAgICBzcHJlYWRzaGVldFN0eWxlUHJvcGVydHlSZW1vdmVkKHByb3BlcnR5VmlldykK
ICAgICB7CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5Vmlld3MucmVtb3ZlKHByb3BlcnR5Vmlldyk7
CiAKICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuX3Byb3BlcnR5Vmll
d3MubGVuZ3RoOyBpbmRleCsrKQogICAgICAgICAgICAgdGhpcy5fcHJvcGVydHlWaWV3c1tpbmRl
eF0uaW5kZXggPSBpbmRleDsKKworICAgICAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7CiAgICAg
fQogCiAgICAgc3R5bGVQcm9wZXJ0eUlubGluZVN3YXRjaEFjdGl2YXRlZCgpCkBAIC0zMjIsNyAr
MzM3LDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yID0gY2xhc3Mg
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWQKIAogICAgIF9wcm9wZXJ0aWVzQ2hhbmdl
ZChldmVudCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmVkaXRpbmcpIHsKKyAgICAgICAgaWYg
KHRoaXMuZWRpdGluZyAmJiBpc05hTih0aGlzLl9wZW5kaW5nQWRkQmxhbmtQcm9wZXJ0eUluZGV4
T2Zmc2V0KSkgewogICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlWaWV3IG9mIHRoaXMuX3By
b3BlcnR5Vmlld3MpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlWaWV3LnVwZGF0ZVN0YXR1cygp
OwogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5q
cwppbmRleCBhM2M1YTgzOWI4MGQxMzdhNDE5ZWY0ZmY1ZTc2NmQ5NzM1YjY4ODcyLi4yOTVkNDg2
MTcxM2MwZjg4NjE1MGJlMjVmMGZiMWUxYThjMWZlYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHku
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LmpzCkBAIC0xNDgsMTAgKzE0OCwxNSBAQCBXSS5TcHJlYWRzaGVl
dFN0eWxlUHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBX
SS5PYmplY3QKIAogICAgIC8vIFByaXZhdGUKIAotICAgIF9yZW1vdmUoKQorICAgIF9yZW1vdmUo
cmVwbGFjZW1lbnQgPSAiIikKICAgICB7CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmUoKTsK
LSAgICAgICAgdGhpcy5fcHJvcGVydHkucmVtb3ZlKCk7CisKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50KQorICAgICAgICAgICAgdGhpcy5fcHJvcGVydHkucmVwbGFjZVdpdGhUZXh0KHJlcGxhY2Vt
ZW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fcHJvcGVydHkucmVtb3ZlKCk7
CisKICAgICAgICAgdGhpcy5kZXRhY2hlZCgpOwogCiAgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0
ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5UmVtb3Zl
ZCA9PT0gImZ1bmN0aW9uIikKQEAgLTE5Niw2ICsyMDEsNyBAQCBXSS5TcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5LmVkaXRhYmxlICYmIHRoaXMuX3Byb3BlcnR5
LmVuYWJsZWQpIHsKICAgICAgICAgICAgIHRoaXMuX25hbWVFbGVtZW50LnRhYkluZGV4ID0gMDsK
ICAgICAgICAgICAgIHRoaXMuX25hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZWlu
cHV0IiwgdGhpcy5faGFuZGxlTmFtZUJlZm9yZUlucHV0LmJpbmQodGhpcykpOworICAgICAgICAg
ICAgdGhpcy5fbmFtZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLCB0aGlzLl9oYW5k
bGVOYW1lUGFzdGUuYmluZCh0aGlzKSk7CiAKICAgICAgICAgICAgIHRoaXMuX25hbWVUZXh0Rmll
bGQgPSBuZXcgV0kuU3ByZWFkc2hlZXRUZXh0RmllbGQodGhpcywgdGhpcy5fbmFtZUVsZW1lbnQs
IHRoaXMuX25hbWVDb21wbGV0aW9uRGF0YVByb3ZpZGVyLmJpbmQodGhpcykpOwogCkBAIC0yNjUs
OSArMjcxLDkgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hl
ZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0Q1NTU3R5
bGVEZWNsYXJhdGlvbkVkaXRvckZvY3VzTW92ZWQgPT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAg
aWYgKHR5cGVvZiB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlGb2N1c01v
dmVkID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAvLyBNb3ZlIGZvY3VzIGF3YXkgZnJv
bSB0aGUgY3VycmVudCBwcm9wZXJ0eSwgdG8gdGhlIG5leHQgb3IgcHJldmlvdXMgb25lLCBpZiBl
eGlzdHMsIG9yIHRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIHJ1bGUsIGlmIGV4aXN0cy4KLSAgICAg
ICAgICAgIHRoaXMuX2RlbGVnYXRlLnNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRv
ckZvY3VzTW92ZWQoe2RpcmVjdGlvbiwgd2lsbFJlbW92ZVByb3BlcnR5LCBtb3ZlZEZyb21Qcm9w
ZXJ0eTogdGhpc30pOworICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3ByZWFkc2hlZXRTdHls
ZVByb3BlcnR5Rm9jdXNNb3ZlZCh0aGlzLCB7ZGlyZWN0aW9uLCB3aWxsUmVtb3ZlUHJvcGVydHl9
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh3aWxsUmVtb3ZlUHJvcGVydHkpCkBAIC01NjIs
NiArNTY4LDIzIEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl92YWx1ZVRl
eHRGaWVsZC5zdGFydEVkaXRpbmcoKTsKICAgICB9CiAKKyAgICBfaGFuZGxlTmFtZVBhc3RlKGV2
ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHRleHQgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERh
dGEoInRleHQvcGxhaW4iKTsKKyAgICAgICAgaWYgKCF0ZXh0IHx8ICF0ZXh0LmluY2x1ZGVzKCI6
IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKKworICAgICAgICB0aGlzLl9yZW1vdmUodGV4dCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2Rl
bGVnYXRlLnNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eUFkZEJsYW5rUHJvcGVydHlTb29uKSB7Cisg
ICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zcHJlYWRzaGVldFN0eWxlUHJvcGVydHlBZGRCbGFu
a1Byb3BlcnR5U29vbih0aGlzLCB7CisgICAgICAgICAgICAgICAgaW5kZXg6IHBhcnNlSW50KHRo
aXMuX2VsZW1lbnQuZGF0YXNldC5wcm9wZXJ0eUluZGV4KSArIDEsCisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIF9uYW1lQ29tcGxldGlvbkRhdGFQcm92aWRlcihwcmVm
aXgpCiAgICAgewogICAgICAgICByZXR1cm4gV0kuQ1NTQ29tcGxldGlvbnMuY3NzTmFtZUNvbXBs
ZXRpb25zLnN0YXJ0c1dpdGgocHJlZml4KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>