<?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>79912</bug_id>
          
          <creation_ts>2012-02-29 07:31:09 -0800</creation_ts>
          <short_desc>Web Inspector: Implement suggestions in Watch Expressions</short_desc>
          <delta_ts>2012-03-02 03:17:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567612</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-29 07:31:09 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568589</commentid>
    <comment_count>1</comment_count>
      <attachid>129686</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-01 05:38:57 -0800</bug_when>
    <thetext>Created attachment 129686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568638</commentid>
    <comment_count>2</comment_count>
      <attachid>129686</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-01 07:05:06 -0800</bug_when>
    <thetext>Comment on attachment 129686
Patch

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

&gt; Source/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js:419
&gt; +    const ExpressionStopCharacters = &quot; =:[({;,!+-*/&amp;|^&lt;&gt;.&quot;; // Same as in ConsoleView.js + &quot;.&quot;

Can we expose a constant on ConsoleView.js ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568640</commentid>
    <comment_count>3</comment_count>
      <attachid>129686</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-01 07:06:01 -0800</bug_when>
    <thetext>Comment on attachment 129686
Patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleView.js:345
&gt; +    completionsForElement: function(promptElement, wordRange, force, completionsReadyCallback)

This looks like a bad design. TextPrompt should pass itself or its element into the callback.

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:324
&gt; +        this.update();

Why did this change?

&gt; Source/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js:361
&gt; +        this._prompt = new WebInspector.WatchExpressionPrompt(this.editingCommitted.bind(this, null, this.nameElement.textContent, context.previousContent, context), this.editingCancelled.bind(this, null, context));

This seems wrong: you bind this and this&apos;s properties such as nameElement, context.previousContent, etc.

&gt; Source/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js:396
&gt; +        WebInspector.ObjectPropertyTreeElement.prototype.editingEnded.call(this, context);

Why do we need this? It would be great if ObjectPropertyTreeElement supported the same functionality.

&gt; Source/WebCore/inspector/front-end/WatchExpressionsSidebarPane.js:419
&gt; +    const ExpressionStopCharacters = &quot; =:[({;,!+-*/&amp;|^&lt;&gt;.&quot;; // Same as in ConsoleView.js + &quot;.&quot;

Move to a common place?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568763</commentid>
    <comment_count>4</comment_count>
      <attachid>129724</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-01 10:23:41 -0800</bug_when>
    <thetext>Created attachment 129724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568780</commentid>
    <comment_count>5</comment_count>
      <attachid>129724</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 11:14:58 -0800</bug_when>
    <thetext>Comment on attachment 129724
Patch

Attachment 129724 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11766564

New failing tests:
fast/workers/storage/use-same-database-in-page-and-workers.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569492</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-02 03:17:15 -0800</bug_when>
    <thetext>Committed r109545: &lt;http://trac.webkit.org/changeset/109545&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129686</attachid>
            <date>2012-03-01 05:38:57 -0800</date>
            <delta_ts>2012-03-01 10:23:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79912-20120301173855.patch</filename>
            <type>text/plain</type>
            <size>12887</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdjOTUwMTZiZGEwN2Vh
ZTE3MWEzYTJmMWFmYjUwYjYxZmRiZjkxOC4uOWE0MGJkNzg5OWY2OTRkMjk5OTRjMTE1MmQwNjVk
M2NmMGNiMmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTAxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IHN1Z2dlc3Rpb25zIGluIFdhdGNoIEV4cHJlc3Npb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTkxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmNvbXBsZXRpb25z
Rm9yRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0
aWVzU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVF
bGVtZW50LnByb3RvdHlwZS5lZGl0aW5nQ2FuY2VsbGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5lZGl0aW5nQ29tbWl0dGVkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25UcmVlRWxlbWVudC5w
cm90b3R5cGUuc3RhcnRFZGl0aW5nLmJsdXJMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV2F0Y2hFeHByZXNzaW9uVHJlZUVsZW1lbnQucHJvdG90eXBlLnN0YXJ0RWRpdGluZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9wcm9tcHRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25U
cmVlRWxlbWVudC5wcm90b3R5cGUuZWRpdGluZ0NhbmNlbGxlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uVHJlZUVsZW1lbnQucHJvdG90eXBlLmVkaXRpbmdFbmRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uUHJvbXB0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25Qcm9tcHQucHJvdG90eXBlLl9idWlsZFByb3Bl
cnR5Q29tcGxldGlvbnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmNzczoKKyAgICAgICAgKC53YXRjaC1leHByZXNzaW9ucyA+IGxpLmVkaXRpbmctc3ViLXBhcnQg
LnRleHQtcHJvbXB0KToKKwogMjAxMi0wMi0yOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIERPTSBjb3VudGVyIGdy
YXBocyBvdXQgb2YgZXhwZXJpbWVudGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCBhZGRlMDY5ODIxYTAwMWMxNzU0OTdmNjlm
Nzk4NGY2Nzk5MjY0NDE2Li45ZjA0YjVhZWJlMTIzYmUyMjZiZGEzNDcxZDUzYWQxMTc1MmMzYWU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZp
ZXcuanMKQEAgLTExMSw3ICsxMTEsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5j
dGlvbihoaWRlQ29udGV4dFNlbGVjdG9yKQogCiAgICAgdGhpcy5fbGlua2lmaWVyID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuY3JlYXRlTGlua2lmaWVyKCk7CiAKLSAg
ICB0aGlzLnByb21wdCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0b3J5KHRo
aXMuY29tcGxldGlvbnMuYmluZCh0aGlzKSwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzICsgIi4i
KTsKKyAgICB0aGlzLnByb21wdCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0
b3J5KHRoaXMuY29tcGxldGlvbnNGb3JFbGVtZW50LmJpbmQodGhpcywgdGhpcy5wcm9tcHRFbGVt
ZW50KSwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzICsgIi4iKTsKICAgICB0aGlzLnByb21wdC5z
ZXRTdWdnZXN0Qm94RW5hYmxlZCgiZ2VuZXJpYy1zdWdnZXN0Iik7CiAgICAgdGhpcy5wcm9tcHQu
cmVuZGVyQXNCbG9jaygpOwogICAgIHRoaXMucHJvbXB0LmF0dGFjaCh0aGlzLnByb21wdEVsZW1l
bnQpOwpAQCAtMzQyLDE2ICszNDIsMTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fbGlua2lmaWVyLnJlc2V0KCk7CiAgICAgfSwKIAotICAg
IGNvbXBsZXRpb25zOiBmdW5jdGlvbih3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5
Q2FsbGJhY2spCisgICAgY29tcGxldGlvbnNGb3JFbGVtZW50OiBmdW5jdGlvbihwcm9tcHRFbGVt
ZW50LCB3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewog
ICAgICAgICAvLyBQYXNzIGxlc3Mgc3RvcCBjaGFyYWN0ZXJzIHRvIHJhbmdlT2ZXb3JkIHNvIHRo
ZSByYW5nZSB3aWxsIGJlIGEgbW9yZSBjb21wbGV0ZSBleHByZXNzaW9uLgotICAgICAgICB2YXIg
ZXhwcmVzc2lvblJhbmdlID0gd29yZFJhbmdlLnN0YXJ0Q29udGFpbmVyLnJhbmdlT2ZXb3JkKHdv
cmRSYW5nZS5zdGFydE9mZnNldCwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzLCB0aGlzLnByb21w
dEVsZW1lbnQsICJiYWNrd2FyZCIpOworICAgICAgICB2YXIgZXhwcmVzc2lvblJhbmdlID0gd29y
ZFJhbmdlLnN0YXJ0Q29udGFpbmVyLnJhbmdlT2ZXb3JkKHdvcmRSYW5nZS5zdGFydE9mZnNldCwg
RXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzLCBwcm9tcHRFbGVtZW50LCAiYmFja3dhcmQiKTsKICAg
ICAgICAgdmFyIGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uUmFuZ2UudG9TdHJpbmcoKTsK
ICAgICAgICAgdmFyIHByZWZpeCA9IHdvcmRSYW5nZS50b1N0cmluZygpOwotICAgICAgICB0aGlz
Ll9jb21wbGV0aW9ucyhleHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIGZvcmNlLCBjb21wbGV0aW9u
c1JlYWR5Q2FsbGJhY2spOworICAgICAgICB0aGlzLmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbihl
eHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2sp
OwogICAgIH0sCiAKLSAgICBfY29tcGxldGlvbnM6IGZ1bmN0aW9uKGV4cHJlc3Npb25TdHJpbmcs
IHByZWZpeCwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKKyAgICBjb21wbGV0aW9u
c0ZvckV4cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJlc3Npb25TdHJpbmcsIHByZWZpeCwgZm9yY2Us
IGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciBsYXN0SW5kZXgg
PSBleHByZXNzaW9uU3RyaW5nLmxlbmd0aCAtIDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpz
CmluZGV4IDIwYWNmOTEzMzQ5YmE0MDQ5MzdkZjhkYjQwYTU3NzY0OTcwODY5NTkuLmVmNjRhMWIy
NTY4YmY2MzUwNjU4NzY1NzVhZWJlNDFhZmQxMGE4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlv
bi5qcwpAQCAtMzIwLDggKzMyMCw4IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVF
bGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIGVkaXRpbmdDYW5jZWxsZWQ6IGZ1bmN0aW9uKGVs
ZW1lbnQsIGNvbnRleHQpCiAgICAgewotICAgICAgICB0aGlzLnVwZGF0ZSgpOwogICAgICAgICB0
aGlzLmVkaXRpbmdFbmRlZChjb250ZXh0KTsKKyAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICB9
LAogCiAgICAgZWRpdGluZ0NvbW1pdHRlZDogZnVuY3Rpb24oZWxlbWVudCwgdXNlcklucHV0LCBw
cmV2aW91c0NvbnRlbnQsIGNvbnRleHQpCkBAIC0zMjksOSArMzI5LDggQEAgV2ViSW5zcGVjdG9y
Lk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBpZiAodXNl
cklucHV0ID09PSBwcmV2aW91c0NvbnRlbnQpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5lZGl0
aW5nQ2FuY2VsbGVkKGVsZW1lbnQsIGNvbnRleHQpOyAvLyBub3RoaW5nIGNoYW5nZWQsIHNvIGNh
bmNlbAogCi0gICAgICAgIHRoaXMuYXBwbHlFeHByZXNzaW9uKHVzZXJJbnB1dCwgdHJ1ZSk7Ci0K
ICAgICAgICAgdGhpcy5lZGl0aW5nRW5kZWQoY29udGV4dCk7CisgICAgICAgIHRoaXMuYXBwbHlF
eHByZXNzaW9uKHVzZXJJbnB1dCwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIGFwcGx5RXhwcmVzc2lv
bjogZnVuY3Rpb24oZXhwcmVzc2lvbiwgdXBkYXRlSW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lv
bnNTaWRlYmFyUGFuZS5qcwppbmRleCAyODg3YjFkNjI3M2Y4MDIzNjBmY2ZhMjBjMjkyMWYzODY3
ZjQzZmUzLi42MTg5YWEyOTQ3OTg0ZDg0ZjY1MzdmZjc3MDc4MGY4YTRkMmQyZDM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNT
aWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dh
dGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwpAQCAtMzUxLDE0ICszNTEsMzMgQEAgV2ViSW5z
cGVjdG9yLldhdGNoRXhwcmVzc2lvblRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICB0aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5wcm9wZXJ0eS5uYW1lLnRyaW0o
KTsKIAotICAgICAgICB2YXIgY29udGV4dCA9IHsgZXhwYW5kZWQ6IHRoaXMuZXhwYW5kZWQgfTsK
KyAgICAgICAgdmFyIGNvbnRleHQgPSB7IGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLCBwcmV2aW91
c0NvbnRlbnQ6IHRoaXMubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgfTsKIAogICAgICAgICAvLyBj
b2xsYXBzZSB0ZW1wb3JhcmlseSwgaWYgcmVxdWlyZWQKICAgICAgICAgdGhpcy5oYXNDaGlsZHJl
biA9IGZhbHNlOwogCiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
ImVkaXRpbmctc3ViLXBhcnQiKTsKIAotICAgICAgICBXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5n
KHRoaXMubmFtZUVsZW1lbnQsIG5ldyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZyh0aGlzLmVk
aXRpbmdDb21taXR0ZWQuYmluZCh0aGlzKSwgdGhpcy5lZGl0aW5nQ2FuY2VsbGVkLmJpbmQodGhp
cyksIGNvbnRleHQpKTsKKyAgICAgICAgdGhpcy5fcHJvbXB0ID0gbmV3IFdlYkluc3BlY3Rvci5X
YXRjaEV4cHJlc3Npb25Qcm9tcHQodGhpcy5lZGl0aW5nQ29tbWl0dGVkLmJpbmQodGhpcywgbnVs
bCwgdGhpcy5uYW1lRWxlbWVudC50ZXh0Q29udGVudCwgY29udGV4dC5wcmV2aW91c0NvbnRlbnQs
IGNvbnRleHQpLCB0aGlzLmVkaXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzLCBudWxsLCBjb250ZXh0
KSk7CisKKyAgICAgICAgZnVuY3Rpb24gYmx1ckxpc3RlbmVyKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdGhpcy5lZGl0aW5nQ29tbWl0dGVkKG51bGwsIHRoaXMubmFtZUVsZW1lbnQudGV4dENv
bnRlbnQsIGNvbnRleHQucHJldmlvdXNDb250ZW50LCBjb250ZXh0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBwcm94eUVsZW1lbnQgPSB0aGlzLl9wcm9tcHQuYXR0YWNoQW5kU3RhcnRFZGl0
aW5nKHRoaXMubmFtZUVsZW1lbnQsIGJsdXJMaXN0ZW5lci5iaW5kKHRoaXMpKTsKKyAgICAgICAg
d2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGhpcy5uYW1lRWxlbWVudCwg
MCwgdGhpcy5uYW1lRWxlbWVudCwgMSk7CisgICAgICAgIHByb3h5RWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fcHJvbXB0S2V5RG93bi5iaW5kKHRoaXMsIGNvbnRleHQp
LCBmYWxzZSk7CisgICAgfSwKKworICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihjb250ZXh0
LCBldmVudCkKKyAgICB7CisgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLmVkaXRpbmdDb21taXR0ZWQobnVsbCwgdGhpcy5uYW1lRWxlbWVudC50
ZXh0Q29udGVudCwgY29udGV4dC5wcmV2aW91c0NvbnRlbnQsIGNvbnRleHQpOworICAgICAgICBp
ZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDAxQiIpIHsgLy8gRXNjCisgICAgICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRp
bmdDYW5jZWxsZWQobnVsbCwgY29udGV4dCk7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgZWRp
dGluZ0NhbmNlbGxlZDogZnVuY3Rpb24oZWxlbWVudCwgY29udGV4dCkKQEAgLTM2Niw4ICszODUs
MTUgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvblRyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCF0aGlzLm5hbWVFbGVtZW50LnRleHRDb250ZW50KQogICAgICAgICAg
ICAgdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLnVwZGF0ZUV4cHJlc3Npb24odGhpcywgbnVsbCk7
CiAKLSAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICAgICAgdGhpcy5lZGl0aW5nRW5kZWQoY29u
dGV4dCk7CisgICAgICAgIHRoaXMudXBkYXRlKCk7CisgICAgfSwKKworICAgIGVkaXRpbmdFbmRl
ZDogZnVuY3Rpb24oY29udGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb21wdC5kZXRhY2go
KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3Byb21wdDsKKyAgICAgICAgV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLmVkaXRpbmdFbmRlZC5jYWxsKHRoaXMs
IGNvbnRleHQpOwogICAgIH0sCiAKICAgICBhcHBseUV4cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJl
c3Npb24sIHVwZGF0ZUludGVyZmFjZSkKQEAgLTM4MywzICs0MDksMjQgQEAgV2ViSW5zcGVjdG9y
LldhdGNoRXhwcmVzc2lvblRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVj
dG9yLldhdGNoRXhwcmVzc2lvblRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGU7CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlRleHRQcm9tcHR9CisgKi8K
K1dlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25Qcm9tcHQgPSBmdW5jdGlvbihjb21taXRIYW5k
bGVyLCBjYW5jZWxIYW5kbGVyKQoreworICAgIGNvbnN0IEV4cHJlc3Npb25TdG9wQ2hhcmFjdGVy
cyA9ICIgPTpbKHs7LCErLSovJnxePD4uIjsgLy8gU2FtZSBhcyBpbiBDb25zb2xlVmlldy5qcyAr
ICIuIgorICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LmNhbGwodGhpcywgdGhpcy5fYnVpbGRQ
cm9wZXJ0eUNvbXBsZXRpb25zLmJpbmQodGhpcyksIEV4cHJlc3Npb25TdG9wQ2hhcmFjdGVycyk7
CisgICAgdGhpcy5zZXRTdWdnZXN0Qm94RW5hYmxlZCgiZ2VuZXJpYy1zdWdnZXN0Iik7CisgICAg
dGhpcy5yZW5kZXJBc0Jsb2NrKCk7Cit9CisKK1dlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25Q
cm9tcHQucHJvdG90eXBlID0geworICAgIF9idWlsZFByb3BlcnR5Q29tcGxldGlvbnM6IGZ1bmN0
aW9uKHdvcmRSYW5nZSwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckVsZW1lbnQodGhp
cy5fZWxlbWVudCwgd29yZFJhbmdlLCBmb3JjZSwgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKTsK
KyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25Qcm9tcHQucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCAyODk3
OGQ4YmE1MjkxOGIxMTgzN2VhOTU3YjQ5NTI1YjQ3MjRjNzNkLi42MmUxOTQ5YzMwMzZmY2RkN2Fi
MmE0NjI3YTM4N2ZlYmRhOGZkNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0xMzc5LDcgKzEzNzksNyBAQCBsaS5lZGl0aW5n
IC5zd2F0Y2gsIGxpLmVkaXRpbmcgLmVuYWJsZWQtYnV0dG9uLCAgbGkuZWRpdGluZy1zdWItcGFy
dCAuZGVsZXRlLWJ1dAogICAgIHBhZGRpbmctdG9wOiAycHg7CiB9CiAKLS53YXRjaC1leHByZXNz
aW9ucyA+IGxpLmVkaXRpbmctc3ViLXBhcnQgLm5hbWUgeworLndhdGNoLWV4cHJlc3Npb25zID4g
bGkuZWRpdGluZy1zdWItcGFydCAudGV4dC1wcm9tcHQgewogICAgIGRpc3BsYXk6IGJsb2NrOwog
ICAgIHdpZHRoOiAxMDAlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyNDk3N2M5M2NmMDU1N2NlZDYxMWViMDgzZWIw
N2U3ODA5MjhmYWEuLjEwZmZhY2I3YTY4MTljY2MyY2E1YzZiY2ZjMjM2ZmYwNjRlMjE3MTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZs
b3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBzdWdn
ZXN0aW9ucyBpbiBXYXRjaCBFeHByZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29t
cGxldGlvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29t
cGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sOgorCiAyMDEyLTAyLTI5ICBOaWtvbGFzIFppbW1l
cm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gTmV4
dCBjaHVuayBvZiBTTCBwaXhlbCB0ZXN0IHVwZGF0ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwK
aW5kZXggMWM5MGExZTgwYmFlZDQ2MDQ4NDc2MjQzZTQ4Y2VlM2E4ZWM0MjBiZS4uZWU2MDY2MjBj
YWJjZDJmOTdmMTliMDBiYzQ3NzYwNDNjYTJiZTg3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtY2QtY29tcGxldGlvbnMuaHRt
bApAQCAtMjIsNyArMjIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBvcHRpb24uc2VsZWN0ZWQg
PSB0cnVlOwogCiAKLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuX2NvbXBsZXRpb25zKCIi
LCAibXlHbG9iIiwgZmFsc2UsIGNoZWNrQ29tcGxldGlvbnMuYmluZCh0aGlzKSk7CisgICAgV2Vi
SW5zcGVjdG9yLmNvbnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgIm15R2xv
YiIsIGZhbHNlLCBjaGVja0NvbXBsZXRpb25zLmJpbmQodGhpcykpOwogICAgIGZ1bmN0aW9uIGNo
ZWNrQ29tcGxldGlvbnMoY29tcGxldGlvbnMpCiAgICAgewogICAgICAgICB2YXIgZXhwZWN0ZWQg
PSBbIm15R2xvYmFsVmFyIiwgIm15R2xvYmFsRnVuY3Rpb24iXTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21wbGV0aW9ucy1vbi1jYWxsLWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxl
dGlvbnMtb24tY2FsbC1mcmFtZS5odG1sCmluZGV4IDkwMDQzOTMwN2FkZmIzZmMxMDNjOTEzNzk0
ZDNiNGU0M2M2ZDBhMmQuLjg2Y2YzMjg4ZWEwMDMyOGMyODUxZmRhZTc4YmU2NzAwZjViMGQ2NmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21w
bGV0aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUuaHRtbApAQCAtMjMsMzIg
KzIzLDMyIEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQog
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwg
InZhciIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ2YXIxIiwgInZh
cjIiIF0sIFtdLCBzdGVwMykpOworICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29t
cGxldGlvbnNGb3JFeHByZXNzaW9uKCIiLCAidmFyIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRl
bi5iaW5kKHRoaXMsIFsgInZhcjEiLCAidmFyMiIgXSwgW10sIHN0ZXAzKSk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVW
aWV3Ll9jb21wbGV0aW9ucygiIiwgImRpIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5k
KHRoaXMsIFsgImRpciIsICJkaXJ4bWwiIF0sIFtdLCBzdGVwNCkpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCIiLCAiZGkiLCBmYWxz
ZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAiZGlyIiwgImRpcnhtbCIgXSwgW10s
IHN0ZXA0KSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDQoKQogICAgIHsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwgIndpbiIsIGZhbHNlLCBj
aGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ3aW5kb3ciIF0sIFtdLCBzdGVwNSkpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9u
KCIiLCAid2luIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgIndpbmRv
dyIgXSwgW10sIHN0ZXA1KSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDUoKQogICAgIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwgInQiLCBm
YWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidGhpcyIgXSwgW10sIHN0ZXA2
KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5jb21wbGV0aW9uc0ZvckV4cHJl
c3Npb24oIiIsICJ0IiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRo
aXMiIF0sIFtdLCBzdGVwNikpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA2KCkKICAgICB7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMoInZhcjEiLCAi
dG9FeHAiLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgWyAidG9FeHBvbmVu
dGlhbCIgXSwgW10sIHN0ZXA3KSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5j
b21wbGV0aW9uc0ZvckV4cHJlc3Npb24oInZhcjEiLCAidG9FeHAiLCBmYWxzZSwgY2hlY2tBZ2Fp
bnN0R29sZGVuLmJpbmQodGhpcywgWyAidG9FeHBvbmVudGlhbCIgXSwgW10sIHN0ZXA3KSk7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDcoKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9y
LmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiMTIzIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdh
aW5zdEdvbGRlbi5iaW5kKHRoaXMsIFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBzdGVwOCkpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9u
KCIxMjMiLCAidG9FeHAiLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQodGhpcywgW10s
IFsgInRvRXhwb25lbnRpYWwiIF0sIHN0ZXA4KSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3Rl
cDgoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129724</attachid>
            <date>2012-03-01 10:23:41 -0800</date>
            <delta_ts>2012-03-02 01:37:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79912-20120301222339.patch</filename>
            <type>text/plain</type>
            <size>19647</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdjOTUwMTZiZGEwN2Vh
ZTE3MWEzYTJmMWFmYjUwYjYxZmRiZjkxOC4uNTNkYjViMDdlY2FkY2Q5ZjlhNzE1NzQzZDVlMTM2
NjFkMmNkN2Q4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTAxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IHN1Z2dlc3Rpb25zIGluIFdhdGNoIEV4cHJlc3Npb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTkxMgorCisgICAgICAg
IERyaXZlLWJ5OiBtYWtlIHN1YnByb3BlcnRpZXMgaW4gT2JqZWN0UHJvcGVydHlTZWN0aW9ucyBl
ZGl0YWJsZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLmNvbXBsZXRpb25zRm9yVGV4dFByb21wdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9i
amVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxhdGUuY2FsbGJhY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9ucG9wdWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVs
ZW1lbnQucHJvdG90eXBlLm9uZGJsY2xpY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVj
dFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLnJlbmRlclByb21wdEFzQmxvY2spOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLmVs
ZW1lbnRBbmRWYWx1ZVRvRWRpdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVy
dHlUcmVlRWxlbWVudC5wcm90b3R5cGUuc3RhcnRFZGl0aW5nLmJsdXJMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUuc3Rh
cnRFZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVt
ZW50LnByb3RvdHlwZS5lZGl0aW5nRW5kZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVj
dFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLmVkaXRpbmdDYW5jZWxsZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlLmVkaXRp
bmdDb21taXR0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVs
ZW1lbnQucHJvdG90eXBlLl9wcm9tcHRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5P
YmplY3RQcm9wZXJ0eVByb21wdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9t
cHQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuY29tcGxl
dGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGVi
YXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvblRyZWVFbGVt
ZW50LnByb3RvdHlwZS5yZW5kZXJQcm9tcHRBc0Jsb2NrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5XYXRjaEV4cHJlc3Npb25UcmVlRWxlbWVudC5wcm90b3R5cGUuZWxlbWVudEFuZFZhbHVlVG9F
ZGl0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25UcmVlRWxlbWVudC5w
cm90b3R5cGUuZWRpdGluZ0NhbmNlbGxlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLndhdGNoLWV4cHJlc3Npb25zID4gbGkuZWRpdGlu
Zy1zdWItcGFydCAudGV4dC1wcm9tcHQpOgorCiAyMDEyLTAyLTI4ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgRE9N
IGNvdW50ZXIgZ3JhcGhzIG91dCBvZiBleHBlcmltZW50YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IGFkZGUwNjk4MjFhMDAx
YzE3NTQ5N2Y2OWY3OTg0ZjY3OTkyNjQ0MTYuLmI3NzdhZGUwYWZkM2YxZjI4NDRiOWY1YTgxYzBm
ZjFlYjc1YTUxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcwpAQCAtMTExLDcgKzExMSw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
VmlldyA9IGZ1bmN0aW9uKGhpZGVDb250ZXh0U2VsZWN0b3IpCiAKICAgICB0aGlzLl9saW5raWZp
ZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5jcmVhdGVMaW5raWZp
ZXIoKTsKIAotICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0V2l0
aEhpc3RvcnkodGhpcy5jb21wbGV0aW9ucy5iaW5kKHRoaXMpLCBFeHByZXNzaW9uU3RvcENoYXJh
Y3RlcnMgKyAiLiIpOworICAgIHRoaXMucHJvbXB0ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UHJv
bXB0V2l0aEhpc3RvcnkodGhpcy5jb21wbGV0aW9uc0ZvclRleHRQcm9tcHQuYmluZCh0aGlzKSwg
RXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzICsgIi4iKTsKICAgICB0aGlzLnByb21wdC5zZXRTdWdn
ZXN0Qm94RW5hYmxlZCgiZ2VuZXJpYy1zdWdnZXN0Iik7CiAgICAgdGhpcy5wcm9tcHQucmVuZGVy
QXNCbG9jaygpOwogICAgIHRoaXMucHJvbXB0LmF0dGFjaCh0aGlzLnByb21wdEVsZW1lbnQpOwpA
QCAtMzQyLDE2ICszNDIsMTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fbGlua2lmaWVyLnJlc2V0KCk7CiAgICAgfSwKIAotICAgIGNvbXBs
ZXRpb25zOiBmdW5jdGlvbih3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJh
Y2spCisgICAgY29tcGxldGlvbnNGb3JUZXh0UHJvbXB0OiBmdW5jdGlvbih0ZXh0UHJvbXB0LCB3
b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewogICAgICAg
ICAvLyBQYXNzIGxlc3Mgc3RvcCBjaGFyYWN0ZXJzIHRvIHJhbmdlT2ZXb3JkIHNvIHRoZSByYW5n
ZSB3aWxsIGJlIGEgbW9yZSBjb21wbGV0ZSBleHByZXNzaW9uLgotICAgICAgICB2YXIgZXhwcmVz
c2lvblJhbmdlID0gd29yZFJhbmdlLnN0YXJ0Q29udGFpbmVyLnJhbmdlT2ZXb3JkKHdvcmRSYW5n
ZS5zdGFydE9mZnNldCwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzLCB0aGlzLnByb21wdEVsZW1l
bnQsICJiYWNrd2FyZCIpOworICAgICAgICB2YXIgZXhwcmVzc2lvblJhbmdlID0gd29yZFJhbmdl
LnN0YXJ0Q29udGFpbmVyLnJhbmdlT2ZXb3JkKHdvcmRSYW5nZS5zdGFydE9mZnNldCwgRXhwcmVz
c2lvblN0b3BDaGFyYWN0ZXJzLCB0ZXh0UHJvbXB0LnByb3h5RWxlbWVudCwgImJhY2t3YXJkIik7
CiAgICAgICAgIHZhciBleHByZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvblJhbmdlLnRvU3RyaW5n
KCk7CiAgICAgICAgIHZhciBwcmVmaXggPSB3b3JkUmFuZ2UudG9TdHJpbmcoKTsKLSAgICAgICAg
dGhpcy5fY29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywgcHJlZml4LCBmb3JjZSwgY29tcGxl
dGlvbnNSZWFkeUNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5jb21wbGV0aW9uc0ZvckV4cHJlc3Np
b24oZXhwcmVzc2lvblN0cmluZywgcHJlZml4LCBmb3JjZSwgY29tcGxldGlvbnNSZWFkeUNhbGxi
YWNrKTsKICAgICB9LAogCi0gICAgX2NvbXBsZXRpb25zOiBmdW5jdGlvbihleHByZXNzaW9uU3Ry
aW5nLCBwcmVmaXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCisgICAgY29tcGxl
dGlvbnNGb3JFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uU3RyaW5nLCBwcmVmaXgsIGZv
cmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgbGFzdElu
ZGV4ID0gZXhwcmVzc2lvblN0cmluZy5sZW5ndGggLSAxOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwppbmRleCBi
ZTIzM2ExNzM5YjUyMzAyZmNhZWI1MzA2Zjk1NjFjNDlkYTJjYTQ2Li5mOTI4ZWMwY2RhNTE1ZTdk
NTBiYjYwYTRhMzQzMjM4N2ZiMjU1OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKQEAgLTYxLDcgKzYxLDcg
QEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHRoaXMucHJvbXB0Lm1vdmVDYXJldFRvRW5kT2ZQcm9tcHQoKTsKICAgICB9LAogICAgIAot
ICAgIGNvbXBsZXRpb25zOiBmdW5jdGlvbih3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1Jl
YWR5Q2FsbGJhY2spCisgICAgY29tcGxldGlvbnM6IGZ1bmN0aW9uKHRleHRQcm9tcHQsIHdvcmRS
YW5nZSwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZh
ciBwcmVmaXggPSB3b3JkUmFuZ2UudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICBp
ZiAoIXByZWZpeC5sZW5ndGggJiYgIWZvcmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5k
ZXggMjBhY2Y5MTMzNDliYTQwNDkzN2RmOGRiNDBhNTc3NjQ5NzA4Njk1OS4uYjEzYTJmOGQxOTVm
MWI2OThmM2Y4ZWZhYTliMjBiNWU4YjM2NTllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpz
CkBAIC0xNzgsNiArMTc4LDcgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBwcm9wZXJ0aWVzLnNvcnQoV2ViSW5zcGVj
dG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uLkNvbXBhcmVQcm9wZXJ0aWVzKTsKICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgICAgIHByb3BlcnRpZXNbaV0ucGFyZW50T2JqZWN0ID0gdGhpcy5wcm9wZXJ0eS52YWx1
ZTsKICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyB0aGlzLnRyZWVPdXRsaW5l
LnNlY3Rpb24udHJlZUVsZW1lbnRDb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzW2ldKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH07CkBAIC0xODcsNyArMTg4LDcgQEAgV2ViSW5zcGVjdG9yLk9iamVj
dFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIG9uZGJsY2xpY2s6IGZ1bmN0
aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMucHJvcGVydHkud3JpdGFibGUpCi0g
ICAgICAgICAgICB0aGlzLnN0YXJ0RWRpdGluZygpOworICAgICAgICAgICAgdGhpcy5zdGFydEVk
aXRpbmcoZXZlbnQpOwogICAgIH0sCiAKICAgICBvbmF0dGFjaDogZnVuY3Rpb24oKQpAQCAtMjkw
LDI4ICsyOTEsNTYgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5wYXJlbnQuc2hvdWxkUmVmcmVzaENoaWxkcmVu
ID0gdHJ1ZTsKICAgICB9LAogCi0gICAgc3RhcnRFZGl0aW5nOiBmdW5jdGlvbigpCisgICAgcmVu
ZGVyUHJvbXB0QXNCbG9jazogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5pc0JlaW5nRWRpdGVkKHRoaXMudmFsdWVFbGVtZW50KSB8fCAhdGhpcy50cmVlT3V0bGlu
ZS5zZWN0aW9uLmVkaXRhYmxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7RXZlbnQ9fSBldmVudAorICAgICAqLworICAgIGVsZW1lbnRB
bmRWYWx1ZVRvRWRpdDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICByZXR1cm4gW3Ro
aXMudmFsdWVFbGVtZW50LCAodHlwZW9mIHRoaXMudmFsdWVFbGVtZW50Ll9vcmlnaW5hbFRleHRD
b250ZW50ID09PSAic3RyaW5nIikgPyB0aGlzLnZhbHVlRWxlbWVudC5fb3JpZ2luYWxUZXh0Q29u
dGVudCA6IHVuZGVmaW5lZF07CisgICAgfSwKKworICAgIHN0YXJ0RWRpdGluZzogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgZWxlbWVudEFuZFZhbHVlVG9FZGl0ID0gdGhpcy5l
bGVtZW50QW5kVmFsdWVUb0VkaXQoZXZlbnQpOworICAgICAgICB2YXIgZWxlbWVudFRvRWRpdCA9
IGVsZW1lbnRBbmRWYWx1ZVRvRWRpdFswXTsKKyAgICAgICAgdmFyIHZhbHVlVG9FZGl0ID0gZWxl
bWVudEFuZFZhbHVlVG9FZGl0WzFdOworCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNCZWlu
Z0VkaXRlZChlbGVtZW50VG9FZGl0KSB8fCAhdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLmVkaXRh
YmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBjb250ZXh0ID0geyBleHBh
bmRlZDogdGhpcy5leHBhbmRlZCB9OworICAgICAgICAvLyBFZGl0IG9yaWdpbmFsIHNvdXJjZS4K
KyAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvRWRpdCAhPT0gInVuZGVmaW5lZCIpCisgICAgICAg
ICAgICBlbGVtZW50VG9FZGl0LnRleHRDb250ZW50ID0gdmFsdWVUb0VkaXQ7CisKKyAgICAgICAg
dmFyIGNvbnRleHQgPSB7IGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLCBlbGVtZW50VG9FZGl0OiBl
bGVtZW50VG9FZGl0LCBwcmV2aW91c0NvbnRlbnQ6IGVsZW1lbnRUb0VkaXQudGV4dENvbnRlbnQg
fTsKIAogICAgICAgICAvLyBMaWUgYWJvdXQgb3VyIGNoaWxkcmVuIHRvIHByZXZlbnQgZXhwYW5k
aW5nIG9uIGRvdWJsZSBjbGljayBhbmQgdG8gY29sbGFwc2Ugc3VicHJvcGVydGllcy4KICAgICAg
ICAgdGhpcy5oYXNDaGlsZHJlbiA9IGZhbHNlOwogCiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoImVkaXRpbmctc3ViLXBhcnQiKTsKIAotICAgICAgICAvLyBFZGl0
IG9yaWdpbmFsIHNvdXJjZS4KLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlRWxlbWVudC5f
b3JpZ2luYWxUZXh0Q29udGVudCA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICB0aGlzLnZhbHVl
RWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMudmFsdWVFbGVtZW50Ll9vcmlnaW5hbFRleHRDb250
ZW50OworICAgICAgICB0aGlzLl9wcm9tcHQgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3Bl
cnR5UHJvbXB0KHRoaXMuZWRpdGluZ0NvbW1pdHRlZC5iaW5kKHRoaXMsIG51bGwsIGVsZW1lbnRU
b0VkaXQudGV4dENvbnRlbnQsIGNvbnRleHQucHJldmlvdXNDb250ZW50LCBjb250ZXh0KSwgdGhp
cy5lZGl0aW5nQ2FuY2VsbGVkLmJpbmQodGhpcywgbnVsbCwgY29udGV4dCksIHRoaXMucmVuZGVy
UHJvbXB0QXNCbG9jaygpKTsKIAotICAgICAgICB2YXIgY29uZmlnID0gbmV3IFdlYkluc3BlY3Rv
ci5FZGl0aW5nQ29uZmlnKHRoaXMuZWRpdGluZ0NvbW1pdHRlZC5iaW5kKHRoaXMpLCB0aGlzLmVk
aXRpbmdDYW5jZWxsZWQuYmluZCh0aGlzKSwgY29udGV4dCk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5zdGFydEVkaXRpbmcodGhpcy52YWx1ZUVsZW1lbnQsIGNvbmZpZyk7CisgICAgICAgIGZ1bmN0
aW9uIGJsdXJMaXN0ZW5lcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZWRpdGluZ0Nv
bW1pdHRlZChudWxsLCBlbGVtZW50VG9FZGl0LnRleHRDb250ZW50LCBjb250ZXh0LnByZXZpb3Vz
Q29udGVudCwgY29udGV4dCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcHJveHlFbGVtZW50
ID0gdGhpcy5fcHJvbXB0LmF0dGFjaEFuZFN0YXJ0RWRpdGluZyhlbGVtZW50VG9FZGl0LCBibHVy
TGlzdGVuZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRC
YXNlQW5kRXh0ZW50KGVsZW1lbnRUb0VkaXQsIDAsIGVsZW1lbnRUb0VkaXQsIDEpOworICAgICAg
ICBwcm94eUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX3Byb21wdEtl
eURvd24uYmluZCh0aGlzLCBjb250ZXh0KSwgZmFsc2UpOwogICAgIH0sCiAKICAgICBlZGl0aW5n
RW5kZWQ6IGZ1bmN0aW9uKGNvbnRleHQpCiAgICAgeworICAgICAgICB0aGlzLl9wcm9tcHQuZGV0
YWNoKCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wcm9tcHQ7CisKICAgICAgICAgdGhpcy5saXN0
SXRlbUVsZW1lbnQuc2Nyb2xsTGVmdCA9IDA7CiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoImVkaXRpbmctc3ViLXBhcnQiKTsKICAgICAgICAgaWYgKGNvbnRl
eHQuZXhwYW5kZWQpCkBAIC0zMjAsOCArMzQ5LDggQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgZWRpdGluZ0NhbmNlbGxlZDogZnVu
Y3Rpb24oZWxlbWVudCwgY29udGV4dCkKICAgICB7Ci0gICAgICAgIHRoaXMudXBkYXRlKCk7CiAg
ICAgICAgIHRoaXMuZWRpdGluZ0VuZGVkKGNvbnRleHQpOworICAgICAgICB0aGlzLnVwZGF0ZSgp
OwogICAgIH0sCiAKICAgICBlZGl0aW5nQ29tbWl0dGVkOiBmdW5jdGlvbihlbGVtZW50LCB1c2Vy
SW5wdXQsIHByZXZpb3VzQ29udGVudCwgY29udGV4dCkKQEAgLTMyOSw5ICszNTgsMTggQEAgV2Vi
SW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAodXNlcklucHV0ID09PSBwcmV2aW91c0NvbnRlbnQpCiAgICAgICAgICAgICByZXR1cm4g
dGhpcy5lZGl0aW5nQ2FuY2VsbGVkKGVsZW1lbnQsIGNvbnRleHQpOyAvLyBub3RoaW5nIGNoYW5n
ZWQsIHNvIGNhbmNlbAogCisgICAgICAgIHRoaXMuZWRpdGluZ0VuZGVkKGNvbnRleHQpOwogICAg
ICAgICB0aGlzLmFwcGx5RXhwcmVzc2lvbih1c2VySW5wdXQsIHRydWUpOworICAgIH0sCiAKLSAg
ICAgICAgdGhpcy5lZGl0aW5nRW5kZWQoY29udGV4dCk7CisgICAgX3Byb21wdEtleURvd246IGZ1
bmN0aW9uKGNvbnRleHQsIGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKGlzRW50ZXJLZXkoZXZl
bnQpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGluZ0NvbW1pdHRlZChudWxsLCBjb250
ZXh0LmVsZW1lbnRUb0VkaXQudGV4dENvbnRlbnQsIGNvbnRleHQucHJldmlvdXNDb250ZW50LCBj
b250ZXh0KTsKKyAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVKzAwMUIiKSB7
IC8vIEVzYworICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5lZGl0aW5nQ2FuY2VsbGVkKG51bGwsIGNvbnRleHQpOworICAgICAgICB9
CiAgICAgfSwKIAogICAgIGFwcGx5RXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVzc2lvbiwgdXBk
YXRlSW50ZXJmYWNlKQpAQCAtMzU5LDMgKzM5NywxOSBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJv
cGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5PYmplY3RQ
cm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBUcmVlRWxlbWVudC5wcm90
b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LlRleHRQcm9tcHR9CisgKiBAcGFyYW0ge2Jvb2xlYW49fSByZW5kZXJBc0Jsb2NrCisgKi8KK1dl
Ykluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVByb21wdCA9IGZ1bmN0aW9uKGNvbW1pdEhhbmRsZXIs
IGNhbmNlbEhhbmRsZXIsIHJlbmRlckFzQmxvY2spCit7CisgICAgY29uc3QgRXhwcmVzc2lvblN0
b3BDaGFyYWN0ZXJzID0gIiA9OlsoezssISstKi8mfF48Pi4iOyAvLyBTYW1lIGFzIGluIENvbnNv
bGVWaWV3LmpzICsgIi4iCisgICAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuY2FsbCh0aGlzLCBX
ZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JUZXh0UHJvbXB0LmJpbmQoV2Vi
SW5zcGVjdG9yLmNvbnNvbGVWaWV3KSwgRXhwcmVzc2lvblN0b3BDaGFyYWN0ZXJzKTsKKyAgICB0
aGlzLnNldFN1Z2dlc3RCb3hFbmFibGVkKCJnZW5lcmljLXN1Z2dlc3QiKTsKKyAgICBpZiAocmVu
ZGVyQXNCbG9jaykKKyAgICAgICAgdGhpcy5yZW5kZXJBc0Jsb2NrKCk7Cit9CisKK1dlYkluc3Bl
Y3Rvci5PYmplY3RQcm9wZXJ0eVByb21wdC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlRleHRQcm9tcHQucHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXggYzYyODYwMjE2ZDBl
NmU0NDlkOTcxNDRiZmM1MTg4MTMwNzIyZjcxYS4uNWRkNDhlNjNiZjVkMzNkZGRiNTg3MmQ5OTRm
Y2NiYzk2MzE4ODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0yNTgxLDcgKzI1ODEsNyBAQCBXZWJJ
bnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVydHlQcm9tcHQucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSwKIAotICAgIF9idWlsZFByb3BlcnR5Q29t
cGxldGlvbnM6IGZ1bmN0aW9uKHdvcmRSYW5nZSwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxs
YmFjaykKKyAgICBfYnVpbGRQcm9wZXJ0eUNvbXBsZXRpb25zOiBmdW5jdGlvbih0ZXh0UHJvbXB0
LCB3b3JkUmFuZ2UsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCiAgICAgewogICAg
ICAgICB2YXIgcHJlZml4ID0gd29yZFJhbmdlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTsKICAg
ICAgICAgaWYgKCFwcmVmaXggJiYgIWZvcmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCmluZGV4IDNjNDNmNjkwZDlkMWNmN2RkMDZmODUw
NjNhZDM5MTVkNDU4YjQ3YWQuLjEzZWZhMzMxY2QzN2I5NTEyZTMxYjA0ZDMyNjUxMzU1MThlMmMx
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFBy
b21wdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9t
cHQuanMKQEAgLTMwLDcgKzMwLDcgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0Ci0gKiBAcGFyYW0ge2Z1bmN0aW9uKFJhbmdlLCBib29sZWFu
LCBmdW5jdGlvbihBcnJheS48c3RyaW5nPj0pKX0gY29tcGxldGlvbnMKKyAqIEBwYXJhbSB7ZnVu
Y3Rpb24oV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQsIFJhbmdlLCBib29sZWFuLCBmdW5jdGlvbihB
cnJheS48c3RyaW5nPj0pKX0gY29tcGxldGlvbnMKICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9wQ2hh
cmFjdGVycwogICovCiBXZWJJbnNwZWN0b3IuVGV4dFByb21wdCA9IGZ1bmN0aW9uKGNvbXBsZXRp
b25zLCBzdG9wQ2hhcmFjdGVycykKQEAgLTM4Myw3ICszODMsNyBAQCBXZWJJbnNwZWN0b3IuVGV4
dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgd29yZFByZWZp
eFJhbmdlID0gc2VsZWN0aW9uUmFuZ2Uuc3RhcnRDb250YWluZXIucmFuZ2VPZldvcmQoc2VsZWN0
aW9uUmFuZ2Uuc3RhcnRPZmZzZXQsIHRoaXMuX2NvbXBsZXRpb25TdG9wQ2hhcmFjdGVycywgdGhp
cy5fZWxlbWVudCwgImJhY2t3YXJkIik7Ci0gICAgICAgIHRoaXMuX2xvYWRDb21wbGV0aW9ucyh3
b3JkUHJlZml4UmFuZ2UsIGZvcmNlLCB0aGlzLl9jb21wbGV0aW9uc1JlYWR5LmJpbmQodGhpcywg
c2VsZWN0aW9uLCBhdXRvLCB3b3JkUHJlZml4UmFuZ2UsICEhcmV2ZXJzZSkpOworICAgICAgICB0
aGlzLl9sb2FkQ29tcGxldGlvbnModGhpcywgd29yZFByZWZpeFJhbmdlLCBmb3JjZSwgdGhpcy5f
Y29tcGxldGlvbnNSZWFkeS5iaW5kKHRoaXMsIHNlbGVjdGlvbiwgYXV0bywgd29yZFByZWZpeFJh
bmdlLCAhIXJldmVyc2UpKTsKICAgICB9LAogCiAgICAgX2JveEZvckFuY2hvckF0U3RhcnQ6IGZ1
bmN0aW9uKHNlbGVjdGlvbiwgdGV4dFJhbmdlKQpAQCAtNzQ4LDcgKzc0OCw3IEBAIFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZTsKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLlRleHRQcm9tcHR9Ci0gKiBAcGFyYW0ge2Z1bmN0aW9uKFJhbmdlLCBib29sZWFuLCBmdW5j
dGlvbihBcnJheS48c3RyaW5nPj0pKX0gY29tcGxldGlvbnMKKyAqIEBwYXJhbSB7ZnVuY3Rpb24o
V2ViSW5zcGVjdG9yLlRleHRQcm9tcHQsIFJhbmdlLCBib29sZWFuLCBmdW5jdGlvbihBcnJheS48
c3RyaW5nPj0pKX0gY29tcGxldGlvbnMKICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9wQ2hhcmFjdGVy
cwogICovCiBXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0b3J5ID0gZnVuY3Rpb24oY29t
cGxldGlvbnMsIHN0b3BDaGFyYWN0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5q
cwppbmRleCAyODg3YjFkNjI3M2Y4MDIzNjBmY2ZhMjBjMjkyMWYzODY3ZjQzZmUzLi5jZTNkZTVj
YWQyN2MwMTkxNTIzMWM0MDY1MzQwNjkyMTY5OGI5OTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNT
aWRlYmFyUGFuZS5qcwpAQCAtMzQ0LDMwICszNDQsMjUgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhw
cmVzc2lvblRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS5zZWN0aW9uLnVwZGF0ZUV4cHJlc3Npb24odGhpcywgbnVsbCk7CiAgICAgfSwKIAotICAgIHN0
YXJ0RWRpdGluZzogZnVuY3Rpb24oKQorICAgIHJlbmRlclByb21wdEFzQmxvY2s6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZCh0aGlzLm5h
bWVFbGVtZW50KSB8fCAhdGhpcy50cmVlT3V0bGluZS5zZWN0aW9uLmVkaXRhYmxlKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0
aGlzLnByb3BlcnR5Lm5hbWUudHJpbSgpOwotCi0gICAgICAgIHZhciBjb250ZXh0ID0geyBleHBh
bmRlZDogdGhpcy5leHBhbmRlZCB9OwotCi0gICAgICAgIC8vIGNvbGxhcHNlIHRlbXBvcmFyaWx5
LCBpZiByZXF1aXJlZAotICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gZmFsc2U7Ci0KLSAgICAg
ICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZWRpdGluZy1zdWItcGFydCIp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAogCi0gICAgICAgIFdlYkluc3BlY3Rvci5z
dGFydEVkaXRpbmcodGhpcy5uYW1lRWxlbWVudCwgbmV3IFdlYkluc3BlY3Rvci5FZGl0aW5nQ29u
ZmlnKHRoaXMuZWRpdGluZ0NvbW1pdHRlZC5iaW5kKHRoaXMpLCB0aGlzLmVkaXRpbmdDYW5jZWxs
ZWQuYmluZCh0aGlzKSwgY29udGV4dCkpOworICAgIC8qKgorICAgICAqIEBwYXJhbSB7RXZlbnQ9
fSBldmVudAorICAgICAqLworICAgIGVsZW1lbnRBbmRWYWx1ZVRvRWRpdDogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICByZXR1cm4gW3RoaXMubmFtZUVsZW1lbnQsIHRoaXMucHJvcGVy
dHkubmFtZS50cmltKCldOwogICAgIH0sCiAKICAgICBlZGl0aW5nQ2FuY2VsbGVkOiBmdW5jdGlv
bihlbGVtZW50LCBjb250ZXh0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLm5hbWVFbGVtZW50
LnRleHRDb250ZW50KQorICAgICAgICBpZiAoIWNvbnRleHQuZWxlbWVudFRvRWRpdC50ZXh0Q29u
dGVudCkKICAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbi51cGRhdGVFeHByZXNz
aW9uKHRoaXMsIG51bGwpOwogCi0gICAgICAgIHRoaXMudXBkYXRlKCk7Ci0gICAgICAgIHRoaXMu
ZWRpdGluZ0VuZGVkKGNvbnRleHQpOworICAgICAgICBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVy
dGllc1NlY3Rpb24ucHJvdG90eXBlLmVkaXRpbmdDYW5jZWxsZWQuY2FsbCh0aGlzLCBlbGVtZW50
LCBjb250ZXh0KTsKICAgICB9LAogCiAgICAgYXBwbHlFeHByZXNzaW9uOiBmdW5jdGlvbihleHBy
ZXNzaW9uLCB1cGRhdGVJbnRlcmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggMjg5NzhkOGJhNTI5MThiMTE4MzdlYTk1N2I0
OTUyNWI0NzI0YzczZC4uNjJlMTk0OWMzMDM2ZmNkZDdhYjJhNDYyN2EzODdmZWJkYThmZDRmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
Y3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cwpAQCAtMTM3OSw3ICsxMzc5LDcgQEAgbGkuZWRpdGluZyAuc3dhdGNoLCBsaS5lZGl0aW5nIC5l
bmFibGVkLWJ1dHRvbiwgIGxpLmVkaXRpbmctc3ViLXBhcnQgLmRlbGV0ZS1idXQKICAgICBwYWRk
aW5nLXRvcDogMnB4OwogfQogCi0ud2F0Y2gtZXhwcmVzc2lvbnMgPiBsaS5lZGl0aW5nLXN1Yi1w
YXJ0IC5uYW1lIHsKKy53YXRjaC1leHByZXNzaW9ucyA+IGxpLmVkaXRpbmctc3ViLXBhcnQgLnRl
eHQtcHJvbXB0IHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICB3aWR0aDogMTAwJTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiMjQ5NzdjOTNjZjA1NTdjZWQ2MTFlYjA4M2ViMDdlNzgwOTI4ZmFhLi4xMGZmYWNiN2E2
ODE5Y2NjMmNhNWM2YmNmYzIzNmZmMDY0ZTIxNzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDMtMDEgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc3VnZ2VzdGlvbnMgaW4gV2F0Y2ggRXhwcmVz
c2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5
OTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUu
aHRtbDoKKwogMjAxMi0wMi0yOSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIE5leHQgY2h1bmsgb2YgU0wgcGl4ZWwgdGVz
dCB1cGRhdGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS1jZC1jb21wbGV0aW9ucy5odG1sCmluZGV4IDFjOTBhMWU4MGJhZWQ0NjA0
ODQ3NjI0M2U0OGNlZTNhOGVjNDIwYmUuLmVlNjA2NjIwY2FiY2QyZjk3ZjE5YjAwYmM0Nzc2MDQz
Y2EyYmU4NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUtY2QtY29tcGxldGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLWNkLWNvbXBsZXRpb25zLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTsKIAogCi0gICAgV2ViSW5z
cGVjdG9yLmNvbnNvbGVWaWV3Ll9jb21wbGV0aW9ucygiIiwgIm15R2xvYiIsIGZhbHNlLCBjaGVj
a0NvbXBsZXRpb25zLmJpbmQodGhpcykpOworICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5j
b21wbGV0aW9uc0ZvckV4cHJlc3Npb24oIiIsICJteUdsb2IiLCBmYWxzZSwgY2hlY2tDb21wbGV0
aW9ucy5iaW5kKHRoaXMpKTsKICAgICBmdW5jdGlvbiBjaGVja0NvbXBsZXRpb25zKGNvbXBsZXRp
b25zKQogICAgIHsKICAgICAgICAgdmFyIGV4cGVjdGVkID0gWyJteUdsb2JhbFZhciIsICJteUds
b2JhbEZ1bmN0aW9uIl07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWNvbXBsZXRpb25zLW9uLWNhbGwtZnJhbWUuaHRt
bAppbmRleCA5MDA0MzkzMDdhZGZiM2ZjMTAzYzkxMzc5NGQzYjRlNDNjNmQwYTJkLi44NmNmMzI4
OGVhMDAzMjhjMjg1MWZkYWU3OGJlNjcwMGY1YjBkNjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItY29tcGxldGlvbnMtb24tY2FsbC1mcmFtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1jb21wbGV0
aW9ucy1vbi1jYWxsLWZyYW1lLmh0bWwKQEAgLTIzLDMyICsyMywzMiBAQCB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMoIiIsICJ2YXIiLCBmYWxzZSwgY2hlY2tBZ2Fp
bnN0R29sZGVuLmJpbmQodGhpcywgWyAidmFyMSIsICJ2YXIyIiBdLCBbXSwgc3RlcDMpKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigi
IiwgInZhciIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ2YXIxIiwg
InZhcjIiIF0sIFtdLCBzdGVwMykpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAzKCkKICAg
ICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlvbnMoIiIsICJk
aSIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJkaXIiLCAiZGlyeG1s
IiBdLCBbXSwgc3RlcDQpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3LmNvbXBs
ZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgImRpIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5i
aW5kKHRoaXMsIFsgImRpciIsICJkaXJ4bWwiIF0sIFtdLCBzdGVwNCkpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIHN0ZXA0KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmll
dy5fY29tcGxldGlvbnMoIiIsICJ3aW4iLCBmYWxzZSwgY2hlY2tBZ2FpbnN0R29sZGVuLmJpbmQo
dGhpcywgWyAid2luZG93IiBdLCBbXSwgc3RlcDUpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiIiwgIndpbiIsIGZhbHNlLCBjaGVj
a0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ3aW5kb3ciIF0sIFtdLCBzdGVwNSkpOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA1KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlVmlldy5fY29tcGxldGlvbnMoIiIsICJ0IiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRl
bi5iaW5kKHRoaXMsIFsgInRoaXMiIF0sIFtdLCBzdGVwNikpOworICAgICAgICBXZWJJbnNwZWN0
b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9uKCIiLCAidCIsIGZhbHNlLCBj
aGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBbICJ0aGlzIiBdLCBbXSwgc3RlcDYpKTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBzdGVwNigpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
Y29uc29sZVZpZXcuX2NvbXBsZXRpb25zKCJ2YXIxIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdh
aW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsgInRvRXhwb25lbnRpYWwiIF0sIFtdLCBzdGVwNykpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZpZXcuY29tcGxldGlvbnNGb3JFeHByZXNzaW9u
KCJ2YXIxIiwgInRvRXhwIiwgZmFsc2UsIGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFsg
InRvRXhwb25lbnRpYWwiIF0sIFtdLCBzdGVwNykpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0
ZXA3KCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fY29tcGxldGlv
bnMoIjEyMyIsICJ0b0V4cCIsIGZhbHNlLCBjaGVja0FnYWluc3RHb2xkZW4uYmluZCh0aGlzLCBb
XSwgWyAidG9FeHBvbmVudGlhbCIgXSwgc3RlcDgpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNv
bnNvbGVWaWV3LmNvbXBsZXRpb25zRm9yRXhwcmVzc2lvbigiMTIzIiwgInRvRXhwIiwgZmFsc2Us
IGNoZWNrQWdhaW5zdEdvbGRlbi5iaW5kKHRoaXMsIFtdLCBbICJ0b0V4cG9uZW50aWFsIiBdLCBz
dGVwOCkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXA4KCkK
</data>
<flag name="review"
          id="132479"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="132482"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>