<?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>233195</bug_id>
          
          <creation_ts>2021-11-16 09:18:45 -0800</creation_ts>
          <short_desc>REGRESSION (r283723): Web Inspector: CSS declarations unexpectedly removed when editing property value</short_desc>
          <delta_ts>2022-01-11 10:54:51 -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="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815527</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-16 09:18:45 -0800</bug_when>
    <thetext>Steps To Reproduce:
1. In the Styles sidebar, click to edit a CSS property name
2. Press backspace until the entire text field is cleared (this is key!)
3. Type in any property name
4. Hit Enter to navigate to the CSS value
5. Hit Enter again to add a new CSS property 

See attached video recording [in Radar].

Results:
The edited CSS declaration should not be removed

Regression:
The edited CSS declaration is unexpectedly removed

Notes:
Bisection points to Bug 178835 as the regression:

Bug 178835 - Web Inspector: Styles: format style declarations after editing
https://bugs.webkit.org/show_bug.cgi?id=178835

&lt;rdar://85345180&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815528</commentid>
    <comment_count>1</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-16 09:20:28 -0800</bug_when>
    <thetext>Note that even before that regression point, the CSS property would still incorrectly display value as unsupported if you replace step 4 with clicking away from the property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815533</commentid>
    <comment_count>2</comment_count>
      <attachid>444403</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-16 09:36:43 -0800</bug_when>
    <thetext>Created attachment 444403
WIP

The problem is when CSS property name is fully cleared (step 2), CSSProperty model gets removed from CSSStyleDeclaration#_properties. Consequent changes to that property don’t get saved. 

The WIP fixes the bug. The fix introduces `_indexBeforeDetached` property, which I don&apos;t like too much. I&apos;m going to explore the alternatives; so far they are worse than the WIP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821115</commentid>
    <comment_count>3</comment_count>
      <attachid>444403</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 10:59:10 -0800</bug_when>
    <thetext>Comment on attachment 444403
WIP

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

Can we add a test for this?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:262
&gt; +        } else if (typeof this._indexBeforeDetached === &quot;number&quot; &amp;&amp; isNaN(this._index)) {

I think we should use `!isNaN(this._indexBeforeDetached)` instead.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:264
&gt; +            console.assert(!this._ownerStyle.properties.includes(this), &quot;Style declaration already has this CSSProperty.&quot;);

This message is redundant from the condition of the assert.  I&apos;d remove it.

It&apos;d also be nice to log `this` as an argument so that if this is hit then we get some information about what caused it.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:266
&gt; +            this._indexBeforeDetached = null;

It seems like other things `.index = NaN`, so maybe we should `this._indexBeforeDetached = NaN;` here for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829595</commentid>
    <comment_count>4</comment_count>
      <attachid>444403</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2022-01-10 12:45:28 -0800</bug_when>
    <thetext>Comment on attachment 444403
WIP

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:262
&gt;&gt; +        } else if (typeof this._indexBeforeDetached === &quot;number&quot; &amp;&amp; isNaN(this._index)) {
&gt; 
&gt; I think we should use `!isNaN(this._indexBeforeDetached)` instead.

`!isNaN` is essentially a double negative — not not a number, so that&apos;s why I didn&apos;t use it. !isNaN is more brief though, so I can go either way.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:266
&gt;&gt; +            this._indexBeforeDetached = null;
&gt; 
&gt; It seems like other things `.index = NaN`, so maybe we should `this._indexBeforeDetached = NaN;` here for consistency.

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829596</commentid>
    <comment_count>5</comment_count>
      <attachid>448787</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2022-01-10 12:45:49 -0800</bug_when>
    <thetext>Created attachment 448787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829626</commentid>
    <comment_count>6</comment_count>
      <attachid>448787</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-10 13:49:02 -0800</bug_when>
    <thetext>Comment on attachment 448787
Patch

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

r-, as this is missing an entry in LayoutTests/ChangeLog

looks good otherwise tho :)

&gt; LayoutTests/inspector/css/modify-css-property.html:328
&gt; +                resolve();

NIT: Rather than capture `resolve` and manually calling it (which btw wont prevent the rest of the code from being run, so you may get weird other output), I&apos;d suggest making it an `async test() { ... }` and using `throw &quot;No declaration found.&quot;;` instead.

&gt; LayoutTests/inspector/css/modify-css-property.html:343
&gt; +            InspectorTest.expectEqual(styleDeclaration.text, ``, `Style declaration text should be empty.`);

NIT: Both of these should be regular double-quoted strings, not template strings.

&gt; LayoutTests/inspector/css/modify-css-property.html:346
&gt; +            let expectedStyleText = `\n    border-color: darkseagreen;\n`;

ditto (:343)

Also, why not inline this?

&gt; LayoutTests/inspector/css/modify-css-property.html:347
&gt; +            InspectorTest.expectEqual(styleDeclaration.text, expectedStyleText, `Style declaration text should have new property name.`);

ditto (:343)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829631</commentid>
    <comment_count>7</comment_count>
      <attachid>448799</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2022-01-10 14:11:42 -0800</bug_when>
    <thetext>Created attachment 448799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829855</commentid>
    <comment_count>8</comment_count>
      <attachid>448799</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-11 10:49:09 -0800</bug_when>
    <thetext>Comment on attachment 448799
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829857</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-11 10:54:49 -0800</bug_when>
    <thetext>Committed r287891 (245929@main): &lt;https://commits.webkit.org/245929@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448799.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444403</attachid>
            <date>2021-11-16 09:36:43 -0800</date>
            <delta_ts>2022-01-10 12:45:49 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3715</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGZkMzcxY2QyNGU0NS4uNWY1YmQyNjZmZTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0xNiAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjgzNzIzKTogV2ViIEluc3BlY3RvcjogQ1NTIGRlY2xhcmF0aW9ucyB1bmV4cGVjdGVkbHkg
cmVtb3ZlZCB3aGVuIGVkaXRpbmcgcHJvcGVydHkgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJv
cGVydHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IG5hbWUpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanM6Cisg
ICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5uZXdCbGFua1Byb3BlcnR5
KToKKyAgICAgICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmluc2VydFByb3Bl
cnR5KToKKwogMjAyMS0xMS0xMiAgUmF6dmFuIENhbGltYW4gIDxyY2FsaW1hbkBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRXh0cmFjdCByZXVzYWJsZSBsb2dpYyBmcm9tIFJl
c291cmNlUXVlcnlDb250cm9sbGVyLCBSZXNvdXJjZVF1ZXJ5UmVzdWx0IGFuZCBSZXNvdXJjZVF1
ZXJ5TWF0Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwppbmRleCAxMTcyOTU5ZWFmMjMuLjVkMGIyNmI5Yjhm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NQcm9wZXJ0eS5qcwpAQCAtMjU2LDYgKzI1NiwxNiBAQCBXSS5DU1NQcm9wZXJ0
eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmIChuYW1l
ID09PSB0aGlzLl9uYW1lKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmICghbmFt
ZSkgeworICAgICAgICAgICAgLy8gRGVsZXRpbmcgcHJvcGVydHkgbmFtZSBjYXVzZXMgQ1NTUHJv
cGVydHkgdG8gYmUgZGV0YWNoZWQgZnJvbSBDU1NTdHlsZURlY2xhcmF0aW9uLgorICAgICAgICAg
ICAgdGhpcy5faW5kZXhCZWZvcmVEZXRhY2hlZCA9IHRoaXMuX2luZGV4OworICAgICAgICB9IGVs
c2UgaWYgKHR5cGVvZiB0aGlzLl9pbmRleEJlZm9yZURldGFjaGVkID09PSAibnVtYmVyIiAmJiBp
c05hTih0aGlzLl9pbmRleCkpIHsKKyAgICAgICAgICAgIC8vIFJlYXR0YWNoIENTU1Byb3BlcnR5
LgorICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX293bmVyU3R5bGUucHJvcGVydGll
cy5pbmNsdWRlcyh0aGlzKSwgIlN0eWxlIGRlY2xhcmF0aW9uIGFscmVhZHkgaGFzIHRoaXMgQ1NT
UHJvcGVydHkuIik7CisgICAgICAgICAgICB0aGlzLl9vd25lclN0eWxlLmluc2VydFByb3BlcnR5
KHRoaXMsIHRoaXMuX2luZGV4QmVmb3JlRGV0YWNoZWQpOworICAgICAgICAgICAgdGhpcy5faW5k
ZXhCZWZvcmVEZXRhY2hlZCA9IG51bGw7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXJr
TW9kaWZpZWQoKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVN0eWxlVGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcwppbmRleCBl
ZmJmNGFhZjFiMDQuLjQ5MGI1YzY3MzY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRp
b24uanMKQEAgLTQxMywxMSArNDEzLDcgQEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGNsYXNz
IENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICB0aGlzLm1h
cmtNb2RpZmllZCgpOwogICAgICAgICBsZXQgcHJvcGVydHkgPSBuZXcgV0kuQ1NTUHJvcGVydHko
cHJvcGVydHlJbmRleCwgdGV4dCwgbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBlbmFibGVkLCBvdmVy
cmlkZGVuLCBpbXBsaWNpdCwgYW5vbnltb3VzLCB2YWxpZCwgc3R5bGVTaGVldFRleHRSYW5nZSk7
Ci0KLSAgICAgICAgdGhpcy5fcHJvcGVydGllcy5pbnNlcnRBdEluZGV4KHByb3BlcnR5LCBwcm9w
ZXJ0eUluZGV4KTsKLSAgICAgICAgZm9yIChsZXQgaW5kZXggPSBwcm9wZXJ0eUluZGV4ICsgMTsg
aW5kZXggPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaW5kZXgrKykKLSAgICAgICAgICAgIHRo
aXMuX3Byb3BlcnRpZXNbaW5kZXhdLmluZGV4ID0gaW5kZXg7Ci0KKyAgICAgICAgdGhpcy5pbnNl
cnRQcm9wZXJ0eShwcm9wZXJ0eSwgcHJvcGVydHlJbmRleCk7CiAgICAgICAgIHRoaXMudXBkYXRl
KHRoaXMuX3RleHQsIHRoaXMuX3Byb3BlcnRpZXMsIHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFuZ2Us
IHtkb250RmlyZUV2ZW50czogdHJ1ZSwgZm9yY2VVcGRhdGU6IHRydWV9KTsKIAogICAgICAgICBy
ZXR1cm4gcHJvcGVydHk7CkBAIC00NDUsNiArNDQxLDE3IEBAIFdJLkNTU1N0eWxlRGVjbGFyYXRp
b24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IFdJLmNzc01hbmFnZXIuYWRkTW9kaWZpZWRTdHlsZSh0aGlzKTsKICAgICB9CiAKKyAgICBpbnNl
cnRQcm9wZXJ0eShjc3NQcm9wZXJ0eSwgcHJvcGVydHlJbmRleCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3Byb3BlcnRpZXMuaW5zZXJ0QXRJbmRleChjc3NQcm9wZXJ0eSwgcHJvcGVydHlJbmRleCk7
CisgICAgICAgIGZvciAobGV0IGluZGV4ID0gcHJvcGVydHlJbmRleCArIDE7IGluZGV4IDwgdGhp
cy5fcHJvcGVydGllcy5sZW5ndGg7IGluZGV4KyspCisgICAgICAgICAgICB0aGlzLl9wcm9wZXJ0
aWVzW2luZGV4XS5pbmRleCA9IGluZGV4OworCisgICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVk
IHByb3BlcnRpZXMuCisgICAgICAgIHRoaXMuX2VuYWJsZWRQcm9wZXJ0aWVzID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fdmlzaWJsZVByb3BlcnRpZXMgPSBudWxsOworICAgIH0KKwogICAgIHJlbW92
ZVByb3BlcnR5KGNzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgLy8gY3NzUHJvcGVydHkuaW5k
ZXggY291bGQgYmUgc2V0IHRvIE5hTiBieSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlw
ZS51cGRhdGUuCg==
</data>
<flag name="commit-queue"
          id="469412"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448787</attachid>
            <date>2022-01-10 12:45:49 -0800</date>
            <delta_ts>2022-01-10 14:11:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7546</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJv
cGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDU0MjMyMjRjZDU4OS4uNzE1YjJhNzFjNzMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQKQEAgLTQxLDMgKzQxLDcgQEAgUEFTUzogQ29tbWVudGVkIG91dCBw
cm9wZXJ0eSBzaG91bGQgYmUgZGlzYWJsZWQuCiBQQVNTOiBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0
IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCBjb21tZW50ZWQgb3V0IHByb3BlcnR5Lgog
UEFTUzogVW5jb21tZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJsZWQuCiAKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBNb2RpZnlDU1NQcm9wZXJ0eS5SZXBsYWNlUHJvcGVydHlOYW1lCitQQVNT
OiBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCBiZSBlbXB0eS4KK1BBU1M6IFN0eWxlIGRl
Y2xhcmF0aW9uIHRleHQgc2hvdWxkIGhhdmUgbmV3IHByb3BlcnR5IG5hbWUuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKaW5kZXgg
ZDlkYTlhYTBjMDcwLi4wZWNmYTRmZjJmZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0zMTYsNiArMzE2LDM5IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIk1vZGlmeUNTU1Byb3BlcnR5LlJlcGxhY2VQcm9wZXJ0eU5h
bWUiLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGdl
dE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uID0gKCkgPT4geworICAgICAgICAgICAgICAgIGZvciAo
bGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHJ1bGUuc2VsZWN0b3JUZXh0ID09PSAiLnJ1bGUtZSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcnVsZS5zdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJObyBkZWNsYXJhdGlvbiBmb3VuZC4iKTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbGV0IGdl
dFByb3BlcnR5ID0gKHByb3BlcnR5TmFtZSkgPT4geworICAgICAgICAgICAgICAgIGxldCBzdHls
ZURlY2xhcmF0aW9uID0gZ2V0TWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24oKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBzdHlsZURlY2xhcmF0aW9uLnByb3BlcnRpZXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUgPT09IHByb3BlcnR5TmFtZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJObyBwcm9wZXJ0eSBmb3Vu
ZC4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAg
ICAgICAgbGV0IHN0eWxlRGVjbGFyYXRpb24gPSBnZXRNYXRjaGVkU3R5bGVEZWNsYXJhdGlvbigp
OworCisgICAgICAgICAgICBsZXQgY3NzUHJvcGVydHkgPSBnZXRQcm9wZXJ0eSgiY29sb3IiKTsK
KyAgICAgICAgICAgIGNzc1Byb3BlcnR5Lm5hbWUgPSAiIjsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgYCwgYFN0eWxlIGRlY2xh
cmF0aW9uIHRleHQgc2hvdWxkIGJlIGVtcHR5LmApOworCisgICAgICAgICAgICBjc3NQcm9wZXJ0
eS5uYW1lID0gImJvcmRlci1jb2xvciI7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRl
eHQgPSBgXG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrc2VhZ3JlZW47XG5gOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVk
U3R5bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgaGF2ZSBuZXcgcHJvcGVy
dHkgbmFtZS5gKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAgIH0pOwor
CiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewog
ICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3giLCAoY29udGVudE5vZGVJZCkg
PT4gewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2RlSWQpIHsKQEAgLTMzOSw2ICszNzIsNiBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgog
ICAgIDxwPlRlc3RpbmcgdGhhdCBDU1NTdHlsZURlY2xhcmF0aW9uIHVwZGF0ZSBpbW1lZGlhdGVs
eSBhZnRlciBtb2RpZnlpbmcgaXRzIHByb3BlcnRpZXMgd2hlbiBpdCBpcyBub3QgbG9ja2VkLjwv
cD4KLSAgICA8ZGl2IGlkPSJ4IiBjbGFzcz0idGVzdC1ub2RlIHJ1bGUtYSBydWxlLWIgcnVsZS1j
IHJ1bGUtZCIgc3R5bGU9IndpZHRoOiAxMDBweCI+PC9kaXY+CisgICAgPGRpdiBpZD0ieCIgY2xh
c3M9InRlc3Qtbm9kZSBydWxlLWEgcnVsZS1iIHJ1bGUtYyBydWxlLWQgcnVsZS1lIiBzdHlsZT0i
d2lkdGg6IDEwMHB4Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5j
c3MKaW5kZXggNTcwNTQ5ZmVlY2NmLi4yMjg5ZTFlMThkM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHku
Y3NzCkBAIC0xMywzICsxMyw2IEBACiAgICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqLwogfQog
LnJ1bGUtZCB7Lypmb250LXNpemU6IDEzcHg7Ki8vKmJvcmRlcjogMnB4IHNvbGlkIGJyb3duKi99
CisucnVsZS1lIHsKKyAgICBjb2xvcjogZGFya3NlYWdyZWVuOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggZmQzNzFjZDI0ZTQ1Li4yMjYwYjMzZWNmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTExLTE2ICBOaWtpdGEgVmFzaWx5ZXYgIDxu
dmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODM3MjMpOiBXZWIg
SW5zcGVjdG9yOiBDU1MgZGVjbGFyYXRpb25zIHVuZXhwZWN0ZWRseSByZW1vdmVkIHdoZW4gZWRp
dGluZyBwcm9wZXJ0eSB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzMTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmUtYXR0YWNoIENTUyBwcm9wZXJ0eSBpZiBpdCB3YXMgZGV0YWNoZWQgd2hp
bGUgZWRpdGluZy4KKworICAgICAgICBDU1NQcm9wZXJ0eSBpcyBkZXRhY2hlZCB3aGVuIGZvY3Vz
aW5nIG9uIHByb3BlcnR5IG5hbWUgYW5kIGRlbGV0aW5nIGl0LiBDb25zZXF1ZW50IGVkaXRzIG9m
IHRoZSBkZXRhY2hlZAorICAgICAgICBDU1NQcm9wZXJ0eSB3ZXJlIG5vdCBzYXZlZC4gVGhpcyBw
YXRjaCByZS1hdHRhY2hlcyBkZXRhY2hlZCBwcm9wZXJ0eSBhdCB0aGUgcHJldmlvdXMgcG9zaXRp
b24uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAg
ICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5zZXQgbmFtZSk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoKKyAgICAgICAgKFdJLkNT
U1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLm5ld0JsYW5rUHJvcGVydHkpOgorICAgICAgICAo
V0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuaW5zZXJ0UHJvcGVydHkpOgorICAgICAg
ICBJbnRyb2R1Y2UgdGhpcyBtZXRob2Qgc2luY2UgdGhlIGxvZ2ljIGlzIHVzZWQgaW4gdHdvIGRp
ZmZlcmVudCBwbGFjZXMgbm93LgorCiAyMDIxLTExLTEyICBSYXp2YW4gQ2FsaW1hbiAgPHJjYWxp
bWFuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0IHJldXNhYmxl
IGxvZ2ljIGZyb20gUmVzb3VyY2VRdWVyeUNvbnRyb2xsZXIsIFJlc291cmNlUXVlcnlSZXN1bHQg
YW5kIFJlc291cmNlUXVlcnlNYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCmluZGV4IDExNzI5NTllYWYy
My4uZmM0MjgzYmEzMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCkBAIC0yNTYsNiArMjU2LDE3IEBA
IFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgaWYgKG5hbWUgPT09IHRoaXMuX25hbWUpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAg
ICAgICAgaWYgKCFuYW1lKSB7CisgICAgICAgICAgICAvLyBEZWxldGluZyBwcm9wZXJ0eSBuYW1l
IGNhdXNlcyBDU1NQcm9wZXJ0eSB0byBiZSBkZXRhY2hlZCBmcm9tIENTU1N0eWxlRGVjbGFyYXRp
b24uCisgICAgICAgICAgICBjb25zb2xlLmFzc2VydCghaXNOYU4odGhpcy5faW5kZXgpLCB0aGlz
KTsKKyAgICAgICAgICAgIHRoaXMuX2luZGV4QmVmb3JlRGV0YWNoZWQgPSB0aGlzLl9pbmRleDsK
KyAgICAgICAgfSBlbHNlIGlmICghaXNOYU4odGhpcy5faW5kZXhCZWZvcmVEZXRhY2hlZCkgJiYg
aXNOYU4odGhpcy5faW5kZXgpKSB7CisgICAgICAgICAgICAvLyBSZWF0dGFjaCBDU1NQcm9wZXJ0
eS4KKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9vd25lclN0eWxlLnByb3BlcnRp
ZXMuaW5jbHVkZXModGhpcyksIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5p
bnNlcnRQcm9wZXJ0eSh0aGlzLCB0aGlzLl9pbmRleEJlZm9yZURldGFjaGVkKTsKKyAgICAgICAg
ICAgIHRoaXMuX2luZGV4QmVmb3JlRGV0YWNoZWQgPSBOYU47CisgICAgICAgIH0KKwogICAgICAg
ICB0aGlzLl9tYXJrTW9kaWZpZWQoKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAg
ICAgIHRoaXMuX3VwZGF0ZVN0eWxlVGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlv
bi5qcwppbmRleCBlZmJmNGFhZjFiMDQuLjQ5MGI1YzY3MzY0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0
eWxlRGVjbGFyYXRpb24uanMKQEAgLTQxMywxMSArNDEzLDcgQEAgV0kuQ1NTU3R5bGVEZWNsYXJh
dGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKIAogICAg
ICAgICB0aGlzLm1hcmtNb2RpZmllZCgpOwogICAgICAgICBsZXQgcHJvcGVydHkgPSBuZXcgV0ku
Q1NTUHJvcGVydHkocHJvcGVydHlJbmRleCwgdGV4dCwgbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBl
bmFibGVkLCBvdmVycmlkZGVuLCBpbXBsaWNpdCwgYW5vbnltb3VzLCB2YWxpZCwgc3R5bGVTaGVl
dFRleHRSYW5nZSk7Ci0KLSAgICAgICAgdGhpcy5fcHJvcGVydGllcy5pbnNlcnRBdEluZGV4KHBy
b3BlcnR5LCBwcm9wZXJ0eUluZGV4KTsKLSAgICAgICAgZm9yIChsZXQgaW5kZXggPSBwcm9wZXJ0
eUluZGV4ICsgMTsgaW5kZXggPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaW5kZXgrKykKLSAg
ICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXNbaW5kZXhdLmluZGV4ID0gaW5kZXg7Ci0KKyAgICAg
ICAgdGhpcy5pbnNlcnRQcm9wZXJ0eShwcm9wZXJ0eSwgcHJvcGVydHlJbmRleCk7CiAgICAgICAg
IHRoaXMudXBkYXRlKHRoaXMuX3RleHQsIHRoaXMuX3Byb3BlcnRpZXMsIHRoaXMuX3N0eWxlU2hl
ZXRUZXh0UmFuZ2UsIHtkb250RmlyZUV2ZW50czogdHJ1ZSwgZm9yY2VVcGRhdGU6IHRydWV9KTsK
IAogICAgICAgICByZXR1cm4gcHJvcGVydHk7CkBAIC00NDUsNiArNDQxLDE3IEBAIFdJLkNTU1N0
eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIFdJLmNzc01hbmFnZXIuYWRkTW9kaWZpZWRTdHlsZSh0aGlzKTsKICAgICB9
CiAKKyAgICBpbnNlcnRQcm9wZXJ0eShjc3NQcm9wZXJ0eSwgcHJvcGVydHlJbmRleCkKKyAgICB7
CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuaW5zZXJ0QXRJbmRleChjc3NQcm9wZXJ0eSwgcHJv
cGVydHlJbmRleCk7CisgICAgICAgIGZvciAobGV0IGluZGV4ID0gcHJvcGVydHlJbmRleCArIDE7
IGluZGV4IDwgdGhpcy5fcHJvcGVydGllcy5sZW5ndGg7IGluZGV4KyspCisgICAgICAgICAgICB0
aGlzLl9wcm9wZXJ0aWVzW2luZGV4XS5pbmRleCA9IGluZGV4OworCisgICAgICAgIC8vIEludmFs
aWRhdGUgY2FjaGVkIHByb3BlcnRpZXMuCisgICAgICAgIHRoaXMuX2VuYWJsZWRQcm9wZXJ0aWVz
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fdmlzaWJsZVByb3BlcnRpZXMgPSBudWxsOworICAgIH0K
KwogICAgIHJlbW92ZVByb3BlcnR5KGNzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgLy8gY3Nz
UHJvcGVydHkuaW5kZXggY291bGQgYmUgc2V0IHRvIE5hTiBieSBXSS5DU1NTdHlsZURlY2xhcmF0
aW9uLnByb3RvdHlwZS51cGRhdGUuCg==
</data>
<flag name="review"
          id="474736"
          type_id="1"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448799</attachid>
            <date>2022-01-10 14:11:42 -0800</date>
            <delta_ts>2022-01-11 10:54:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8181</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NzAwNTM5MzY1MTIuLjFmYmRkZjI4MjkzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIyLTAxLTEwICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04gKHIyODM3MjMpOiBXZWIgSW5zcGVjdG9yOiBDU1MgZGVjbGFyYXRp
b25zIHVuZXhwZWN0ZWRseSByZW1vdmVkIHdoZW4gZWRpdGluZyBwcm9wZXJ0eSB2YWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCByZW1vdmlu
ZyBDU1MgcHJvcGVydHkgbmFtZS4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvbW9kaWZ5LWNz
cy1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnkt
Y3NzLXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9k
aWZ5LWNzcy1wcm9wZXJ0eS5jc3M6CisgICAgICAgICgucnVsZS1lKToKKwogMjAyMS0xMS0xNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGBDcm9zcy1PcmlnaW4t
RW1iZWRkZXItUG9saWN5OiByZXF1aXJlLWNvcnBgIHByZXZlbnRzIGxvYWRpbmcgb2YgZGF0YSBV
UkwgaW1hZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1j
c3MtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2Rp
ZnktY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCA1NDIzMjI0Y2Q1ODkuLjcxNWIyYTcx
YzczMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXBy
b3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlm
eS1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC00MSwzICs0MSw3IEBAIFBBU1M6IENvbW1l
bnRlZCBvdXQgcHJvcGVydHkgc2hvdWxkIGJlIGRpc2FibGVkLgogUEFTUzogU3R5bGUgZGVjbGFy
YXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggY29tbWVudGVkIG91dCBw
cm9wZXJ0eS4KIFBBU1M6IFVuY29tbWVudGVkIHByb3BlcnR5IHNob3VsZCBiZSBlbmFibGVkLgog
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogTW9kaWZ5Q1NTUHJvcGVydHkuUmVwbGFjZVByb3BlcnR5
TmFtZQorUEFTUzogU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgYmUgZW1wdHkuCitQQVNT
OiBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCBoYXZlIG5ldyBwcm9wZXJ0eSBuYW1lLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVy
dHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5o
dG1sCmluZGV4IGQ5ZGE5YWEwYzA3MC4uODQ5OWNhNzYyNmE2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbApAQCAtMzE2LDYgKzMx
NiwzNSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB9CiAgICAgfSk7CiAKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJNb2RpZnlDU1NQcm9wZXJ0eS5SZXBsYWNl
UHJvcGVydHlOYW1lIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBn
ZXRNYXRjaGVkU3R5bGVEZWNsYXJhdGlvbiA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBmb3Ig
KGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChydWxlLnNlbGVjdG9yVGV4dCA9PT0gIi5ydWxlLWUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJ1bGUuc3R5bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHRocm93ICJObyBkZWNsYXJhdGlvbiBmb3VuZC4iOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIGxldCBnZXRQcm9wZXJ0eSA9IChwcm9wZXJ0eU5hbWUpID0+IHsKKyAgICAgICAg
ICAgICAgICBsZXQgc3R5bGVEZWNsYXJhdGlvbiA9IGdldE1hdGNoZWRTdHlsZURlY2xhcmF0aW9u
KCk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2Ygc3R5bGVEZWNsYXJhdGlv
bi5wcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lID09
PSBwcm9wZXJ0eU5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRocm93ICJObyBwcm9wZXJ0eSBm
b3VuZC4iOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGxldCBzdHlsZURlY2xhcmF0aW9u
ID0gZ2V0TWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24oKTsKKworICAgICAgICAgICAgbGV0IGNzc1By
b3BlcnR5ID0gZ2V0UHJvcGVydHkoImNvbG9yIik7CisgICAgICAgICAgICBjc3NQcm9wZXJ0eS5u
YW1lID0gIiI7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVj
bGFyYXRpb24udGV4dCwgIiIsICJTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCBiZSBlbXB0
eS4iKTsKKworICAgICAgICAgICAgY3NzUHJvcGVydHkubmFtZSA9ICJib3JkZXItY29sb3IiOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRl
eHQsIGBcbiAgICBib3JkZXItY29sb3I6IGRhcmtzZWFncmVlbjtcbmAsICJTdHlsZSBkZWNsYXJh
dGlvbiB0ZXh0IHNob3VsZCBoYXZlIG5ldyBwcm9wZXJ0eSBuYW1lLiIpOworICAgICAgICB9Cisg
ICAgfSk7CisKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2Rl
KSA9PiB7CiAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjeCIsIChjb250ZW50
Tm9kZUlkKSA9PiB7CiAgICAgICAgICAgICBpZiAoY29udGVudE5vZGVJZCkgewpAQCAtMzM5LDYg
KzM2OCw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+CiAgICAgPHA+VGVzdGluZyB0aGF0IENTU1N0eWxlRGVjbGFyYXRpb24gdXBkYXRlIGlt
bWVkaWF0ZWx5IGFmdGVyIG1vZGlmeWluZyBpdHMgcHJvcGVydGllcyB3aGVuIGl0IGlzIG5vdCBs
b2NrZWQuPC9wPgotICAgIDxkaXYgaWQ9IngiIGNsYXNzPSJ0ZXN0LW5vZGUgcnVsZS1hIHJ1bGUt
YiBydWxlLWMgcnVsZS1kIiBzdHlsZT0id2lkdGg6IDEwMHB4Ij48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJ4IiBjbGFzcz0idGVzdC1ub2RlIHJ1bGUtYSBydWxlLWIgcnVsZS1jIHJ1bGUtZCBydWxlLWUi
IHN0eWxlPSJ3aWR0aDogMTAwcHgiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0
eS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Jlc291cmNlcy9tb2RpZnktY3NzLXBy
b3BlcnR5LmNzcwppbmRleCA1NzA1NDlmZWVjY2YuLjIyODllMWUxOGQzYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5j
c3MKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1w
cm9wZXJ0eS5jc3MKQEAgLTEzLDMgKzEzLDYgQEAKICAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7
ICovCiB9CiAucnVsZS1kIHsvKmZvbnQtc2l6ZTogMTNweDsqLy8qYm9yZGVyOiAycHggc29saWQg
YnJvd24qL30KKy5ydWxlLWUgeworICAgIGNvbG9yOiBkYXJrc2VhZ3JlZW47Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwppbmRleCBmZDM3MWNkMjRlNDUuLjFmNmY0NzgwM2VhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDEtMTAgIE5pa2l0YSBWYXNp
bHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4Mzcy
Myk6IFdlYiBJbnNwZWN0b3I6IENTUyBkZWNsYXJhdGlvbnMgdW5leHBlY3RlZGx5IHJlbW92ZWQg
d2hlbiBlZGl0aW5nIHByb3BlcnR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZS1hdHRhY2ggQ1NTIHByb3BlcnR5IGlmIGl0IHdhcyBkZXRh
Y2hlZCB3aGlsZSBlZGl0aW5nLgorCisgICAgICAgIENTU1Byb3BlcnR5IGlzIGRldGFjaGVkIHdo
ZW4gZm9jdXNpbmcgb24gcHJvcGVydHkgbmFtZSBhbmQgZGVsZXRpbmcgaXQuIENvbnNlcXVlbnQg
ZWRpdHMgb2YgdGhlIGRldGFjaGVkCisgICAgICAgIENTU1Byb3BlcnR5IHdlcmUgbm90IHNhdmVk
LiBUaGlzIHBhdGNoIHJlLWF0dGFjaGVzIGRldGFjaGVkIHByb3BlcnR5IGF0IHRoZSBwcmV2aW91
cyBwb3NpdGlvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzOgorICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldCBuYW1lKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzOgorICAgICAg
ICAoV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUubmV3QmxhbmtQcm9wZXJ0eSk6Cisg
ICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pbnNlcnRQcm9wZXJ0eSk6
CisgICAgICAgIEludHJvZHVjZSB0aGlzIG1ldGhvZCBzaW5jZSB0aGUgbG9naWMgaXMgdXNlZCBp
biB0d28gZGlmZmVyZW50IHBsYWNlcyBub3cuCisKIDIwMjEtMTEtMTIgIFJhenZhbiBDYWxpbWFu
ICA8cmNhbGltYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV4dHJhY3Qg
cmV1c2FibGUgbG9naWMgZnJvbSBSZXNvdXJjZVF1ZXJ5Q29udHJvbGxlciwgUmVzb3VyY2VRdWVy
eVJlc3VsdCBhbmQgUmVzb3VyY2VRdWVyeU1hdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKaW5kZXggMTE3
Mjk1OWVhZjIzLi5mYzQyODNiYTMxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKQEAgLTI1Niw2ICsy
NTYsMTcgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICBpZiAobmFtZSA9PT0gdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAorICAgICAgICBpZiAoIW5hbWUpIHsKKyAgICAgICAgICAgIC8vIERlbGV0aW5nIHByb3Bl
cnR5IG5hbWUgY2F1c2VzIENTU1Byb3BlcnR5IHRvIGJlIGRldGFjaGVkIGZyb20gQ1NTU3R5bGVE
ZWNsYXJhdGlvbi4KKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFpc05hTih0aGlzLl9pbmRl
eCksIHRoaXMpOworICAgICAgICAgICAgdGhpcy5faW5kZXhCZWZvcmVEZXRhY2hlZCA9IHRoaXMu
X2luZGV4OworICAgICAgICB9IGVsc2UgaWYgKCFpc05hTih0aGlzLl9pbmRleEJlZm9yZURldGFj
aGVkKSAmJiBpc05hTih0aGlzLl9pbmRleCkpIHsKKyAgICAgICAgICAgIC8vIFJlYXR0YWNoIENT
U1Byb3BlcnR5LgorICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX293bmVyU3R5bGUu
cHJvcGVydGllcy5pbmNsdWRlcyh0aGlzKSwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9vd25l
clN0eWxlLmluc2VydFByb3BlcnR5KHRoaXMsIHRoaXMuX2luZGV4QmVmb3JlRGV0YWNoZWQpOwor
ICAgICAgICAgICAgdGhpcy5faW5kZXhCZWZvcmVEZXRhY2hlZCA9IE5hTjsKKyAgICAgICAgfQor
CiAgICAgICAgIHRoaXMuX21hcmtNb2RpZmllZCgpOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKICAgICAgICAgdGhpcy5fdXBkYXRlU3R5bGVUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURl
Y2xhcmF0aW9uLmpzCmluZGV4IGVmYmY0YWFmMWIwNC4uNDkwYjVjNjczNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcwpAQCAtNDEzLDExICs0MTMsNyBAQCBXSS5DU1NTdHls
ZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVj
dAogCiAgICAgICAgIHRoaXMubWFya01vZGlmaWVkKCk7CiAgICAgICAgIGxldCBwcm9wZXJ0eSA9
IG5ldyBXSS5DU1NQcm9wZXJ0eShwcm9wZXJ0eUluZGV4LCB0ZXh0LCBuYW1lLCB2YWx1ZSwgcHJp
b3JpdHksIGVuYWJsZWQsIG92ZXJyaWRkZW4sIGltcGxpY2l0LCBhbm9ueW1vdXMsIHZhbGlkLCBz
dHlsZVNoZWV0VGV4dFJhbmdlKTsKLQotICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLmluc2VydEF0
SW5kZXgocHJvcGVydHksIHByb3BlcnR5SW5kZXgpOwotICAgICAgICBmb3IgKGxldCBpbmRleCA9
IHByb3BlcnR5SW5kZXggKyAxOyBpbmRleCA8IHRoaXMuX3Byb3BlcnRpZXMubGVuZ3RoOyBpbmRl
eCsrKQotICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllc1tpbmRleF0uaW5kZXggPSBpbmRleDsK
LQorICAgICAgICB0aGlzLmluc2VydFByb3BlcnR5KHByb3BlcnR5LCBwcm9wZXJ0eUluZGV4KTsK
ICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5fdGV4dCwgdGhpcy5fcHJvcGVydGllcywgdGhpcy5f
c3R5bGVTaGVldFRleHRSYW5nZSwge2RvbnRGaXJlRXZlbnRzOiB0cnVlLCBmb3JjZVVwZGF0ZTog
dHJ1ZX0pOwogCiAgICAgICAgIHJldHVybiBwcm9wZXJ0eTsKQEAgLTQ0NSw2ICs0NDEsMTcgQEAg
V0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgV0kuY3NzTWFuYWdlci5hZGRNb2RpZmllZFN0eWxlKHRoaXMp
OwogICAgIH0KIAorICAgIGluc2VydFByb3BlcnR5KGNzc1Byb3BlcnR5LCBwcm9wZXJ0eUluZGV4
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvcGVydGllcy5pbnNlcnRBdEluZGV4KGNzc1Byb3Bl
cnR5LCBwcm9wZXJ0eUluZGV4KTsKKyAgICAgICAgZm9yIChsZXQgaW5kZXggPSBwcm9wZXJ0eUlu
ZGV4ICsgMTsgaW5kZXggPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaW5kZXgrKykKKyAgICAg
ICAgICAgIHRoaXMuX3Byb3BlcnRpZXNbaW5kZXhdLmluZGV4ID0gaW5kZXg7CisKKyAgICAgICAg
Ly8gSW52YWxpZGF0ZSBjYWNoZWQgcHJvcGVydGllcy4KKyAgICAgICAgdGhpcy5fZW5hYmxlZFBy
b3BlcnRpZXMgPSBudWxsOworICAgICAgICB0aGlzLl92aXNpYmxlUHJvcGVydGllcyA9IG51bGw7
CisgICAgfQorCiAgICAgcmVtb3ZlUHJvcGVydHkoY3NzUHJvcGVydHkpCiAgICAgewogICAgICAg
ICAvLyBjc3NQcm9wZXJ0eS5pbmRleCBjb3VsZCBiZSBzZXQgdG8gTmFOIGJ5IFdJLkNTU1N0eWxl
RGVjbGFyYXRpb24ucHJvdG90eXBlLnVwZGF0ZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>