<?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>86621</bug_id>
          
          <creation_ts>2012-05-16 06:48:48 -0700</creation_ts>
          <short_desc>Web Inspector: Copy ... actions in the context menu don&apos;t work in the remote debugging mode.</short_desc>
          <delta_ts>2012-05-17 12:38:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (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>0</everconfirmed>
          <reporter name="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625361</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 06:48:48 -0700</bug_when>
    <thetext>Programmatic access to clipboard is disabled by default.

For Chrome, this can be solved by installing a simple extension like this one: http://pastebin.com/kDxUacJd

We also need to support copying in InspectorFrontendHostStub.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625365</commentid>
    <comment_count>1</comment_count>
      <attachid>142244</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 06:50:56 -0700</bug_when>
    <thetext>Created attachment 142244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625368</commentid>
    <comment_count>2</comment_count>
      <attachid>142244</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-05-16 06:56:14 -0700</bug_when>
    <thetext>Comment on attachment 142244
Patch

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

You don&apos;t seem to have added a corresponding localizedStrings.js entry for the message.

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:117
&gt; +            event.clipboardData.setData(&apos;text&apos;, this._textToCopy);

We use double-quotes around strings in the frontend.

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:121
&gt; +        } else {

We don&apos;t use braces around one-line blocks

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:129
&gt; +        if (!document.execCommand(&apos;copy&apos;)) {

We use double-quotes around strings in the frontend.

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:206
&gt; +    p.textContent = WebInspector.UIString(&quot;You need to install \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;);

Missing &quot;the&quot;? &quot;...install the \&quot;Chrome.....&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625375</commentid>
    <comment_count>3</comment_count>
      <attachid>142244</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 07:02:01 -0700</bug_when>
    <thetext>Comment on attachment 142244
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:117
&gt;&gt; +            event.clipboardData.setData(&apos;text&apos;, this._textToCopy);
&gt; 
&gt; We use double-quotes around strings in the frontend.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:121
&gt;&gt; +        } else {
&gt; 
&gt; We don&apos;t use braces around one-line blocks

Sorry, I was thinking they need to be symmetrical for both if branches. Removed.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:129
&gt;&gt; +        if (!document.execCommand(&apos;copy&apos;)) {
&gt; 
&gt; We use double-quotes around strings in the frontend.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:206
&gt;&gt; +    p.textContent = WebInspector.UIString(&quot;You need to install \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;);
&gt; 
&gt; Missing &quot;the&quot;? &quot;...install the \&quot;Chrome.....&quot;

Added, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625376</commentid>
    <comment_count>4</comment_count>
      <attachid>142250</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 07:02:51 -0700</bug_when>
    <thetext>Created attachment 142250
Comments addressed

I will add strings to localizedStrings once we agree on wording.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625385</commentid>
    <comment_count>5</comment_count>
      <attachid>142250</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-05-16 07:09:28 -0700</bug_when>
    <thetext>Comment on attachment 142250
Comments addressed

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

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:205
&gt; +    p.textContent = WebInspector.UIString(&quot;You need to install the \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;);

Since this code is in WebCore, it probably shouldn&apos;t be referring to specific products (in this case, Chrome)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625427</commentid>
    <comment_count>6</comment_count>
      <attachid>142250</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 07:42:06 -0700</bug_when>
    <thetext>Comment on attachment 142250
Comments addressed

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

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:114
&gt; +    documentCopy: function(event)

Why do you override this document&apos;s copy?

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:205
&gt;&gt; +    p.textContent = WebInspector.UIString(&quot;You need to install the \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;);
&gt; 
&gt; Since this code is in WebCore, it probably shouldn&apos;t be referring to specific products (in this case, Chrome)?

This code should be in WebKit/chromium/src/js/DevTools.js. Who is going to own this extension? Could it be more generic (i.e. &quot;Clipboard access enabler&quot;?) Or we could combine it with the Chrome extension used for filesystem persistence. I would not want to see a separate &quot;Chrome Developer Tools Front-end&quot; as an extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625470</commentid>
    <comment_count>7</comment_count>
      <attachid>142250</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 08:36:13 -0700</bug_when>
    <thetext>Comment on attachment 142250
Comments addressed

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

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:114
&gt;&gt; +    documentCopy: function(event)
&gt; 
&gt; Why do you override this document&apos;s copy?

We need to get the Event instance passed to the copy command handler in order to set clipboardData. I&apos;ve changed the code insert FrontendHost&apos;s action after the event has been processed by the default documentCopy handler.

&gt;&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:205
&gt;&gt;&gt; +    p.textContent = WebInspector.UIString(&quot;You need to install the \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;);
&gt;&gt; 
&gt;&gt; Since this code is in WebCore, it probably shouldn&apos;t be referring to specific products (in this case, Chrome)?
&gt; 
&gt; This code should be in WebKit/chromium/src/js/DevTools.js. Who is going to own this extension? Could it be more generic (i.e. &quot;Clipboard access enabler&quot;?) Or we could combine it with the Chrome extension used for filesystem persistence. I would not want to see a separate &quot;Chrome Developer Tools Front-end&quot; as an extension.

Moved platform-specific code to DevTools.js

The extension (in fact, this is a simple Web App) specifies the starting URL (localhost:9222), adds clipboard access permissions, and specifies the frontend hosting URL as the App&apos;s URL. I&apos;ve posted a link to the sample already, have you seen it? http://pastebin.com/kDxUacJd

Do you already have the extension used for filesystem persistence? Can you please point me to it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625471</commentid>
    <comment_count>8</comment_count>
      <attachid>142270</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-16 08:36:40 -0700</bug_when>
    <thetext>Created attachment 142270
Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625490</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 08:48:07 -0700</bug_when>
    <thetext>&gt; We need to get the Event instance passed to the copy command handler in order to set clipboardData. I&apos;ve changed the code insert FrontendHost&apos;s action after the event has been processed by the default documentCopy handler.

You can only use event object while it is being dispatched. Storing it is not right.

&gt; The extension (in fact, this is a simple Web App) specifies the starting URL (localhost:9222), adds clipboard access permissions, and specifies the frontend hosting URL as the App&apos;s URL. I&apos;ve posted a link to the sample already, have you seen it? http://pastebin.com/kDxUacJd

Nope, now that I&apos;ve seen it, name slearly looks wrong (&quot;Chrome Developer Tools Frontend&quot;). You probably want to point to a wiki describing how to enable copy / paste or something.

&gt; Do you already have the extension used for filesystem persistence? Can you please point me to it?

https://github.com/NV/chrome-devtools-autosave,
http://code.google.com/p/devtools-save/,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625493</commentid>
    <comment_count>10</comment_count>
      <attachid>142270</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 08:49:40 -0700</bug_when>
    <thetext>Comment on attachment 142270
Comments addressed

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

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:116
&gt; +        if (!this._textToCopy)

I still don&apos;t understand what is happening here...

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:195
&gt; +function clipboardAccessDeniedMessage() {

{ on the next line. You should not declare top-level functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625512</commentid>
    <comment_count>11</comment_count>
      <attachid>142270</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 09:00:37 -0700</bug_when>
    <thetext>Comment on attachment 142270
Comments addressed

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

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:120
&gt; +        this._textToCopy = null;

delete this._textToCopy.

&gt; Source/WebKit/chromium/src/js/DevTools.js:60
&gt; +    return &quot;You need to install the \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;;

You need to install Chrome extension that allows clipboard access for this page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626454</commentid>
    <comment_count>12</comment_count>
      <attachid>142270</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-17 04:42:20 -0700</bug_when>
    <thetext>Comment on attachment 142270
Comments addressed

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

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:116
&gt;&gt; +        if (!this._textToCopy)
&gt; 
&gt; I still don&apos;t understand what is happening here...

Discussed offline.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:120
&gt;&gt; +        this._textToCopy = null;
&gt; 
&gt; delete this._textToCopy.

Done.

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:195
&gt;&gt; +function clipboardAccessDeniedMessage() {
&gt; 
&gt; { on the next line. You should not declare top-level functions.

Done.

&gt;&gt; Source/WebKit/chromium/src/js/DevTools.js:60
&gt;&gt; +    return &quot;You need to install the \&quot;Chrome Developer Tools Frontend\&quot; Chrome extension.&quot;;
&gt; 
&gt; You need to install Chrome extension that allows clipboard access for this page.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626455</commentid>
    <comment_count>13</comment_count>
      <attachid>142452</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-17 04:42:59 -0700</bug_when>
    <thetext>Created attachment 142452
Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626560</commentid>
    <comment_count>14</comment_count>
      <attachid>142452</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-17 07:35:33 -0700</bug_when>
    <thetext>Comment on attachment 142452
Comments addressed

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

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:216
&gt; +}

Please remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626818</commentid>
    <comment_count>15</comment_count>
      <attachid>142452</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-17 12:04:51 -0700</bug_when>
    <thetext>Comment on attachment 142452
Comments addressed

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

&gt;&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:216
&gt;&gt; +}
&gt; 
&gt; Please remove this.

What do you mean by &quot;this&quot;? The bracket is a closing for the one in the beginning of the file: &quot;if (!window.InspectorFrontendHost) {&quot;. It&apos;s the highlighting that is a bit misguiding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626861</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-05-17 12:38:42 -0700</bug_when>
    <thetext>Committed r117481: &lt;http://trac.webkit.org/changeset/117481&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142244</attachid>
            <date>2012-05-16 06:50:56 -0700</date>
            <delta_ts>2012-05-16 07:02:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-86621</filename>
            <type>text/plain</type>
            <size>5164</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZWFmMDZkLi4wNWEyNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDUtMTYgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IENvcHkgLi4uIGFjdGlvbnMgZm9yIHRoZSBXZWIgSW5zcGVjdG9y
IHJlbW90ZSBkZWJ1Z2dpbmcgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9z
dFN0dWIuanM6CisgICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0
dWIpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLnBy
b3RvdHlwZS5kb2N1bWVudENvcHkpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JG
cm9udGVuZEhvc3RTdHViLnByb3RvdHlwZS5jb3B5VGV4dCk6CisgICAgICAgICguV2ViSW5zcGVj
dG9yLkV4dGVuc2lvbk5vdGlmaWNhdGlvblNjcmVlbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVudENvcHkpOgorCiAyMDEy
LTA1LTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnVieSBh
bm5vdGF0aW9uIGlzIGluY29ycmVjdGx5IGlkZW50aWZpZWQgYXMgYSBwYXJhZ3JhcGggYm91bmRh
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0U3R1Yi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcwppbmRleCAzNDg1NWNjLi4zMTI1NTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZy
b250ZW5kSG9zdFN0dWIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCkBAIC0zNyw2ICszNyw4IEBAIFdlYkluc3Bl
Y3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMu
X2F0dGFjaGVkV2luZG93SGVpZ2h0ID0gMDsKICAgICB0aGlzLmlzU3R1YiA9IHRydWU7CisgICAg
dGhpcy5fdGV4dFRvQ29weSA9IG51bGw7CisgICAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUlu
dGVyY2VwdG9yID0gdGhpcy5kb2N1bWVudENvcHkuYmluZCh0aGlzKTsKIH0KIAogV2ViSW5zcGVj
dG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIucHJvdG90eXBlID0gewpAQCAtMTA5LDggKzEx
MSwyNSBAQCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFByZWZl
cmVuY2VzLmFwcGxpY2F0aW9uVGl0bGUsIHVybCk7CiAgICAgfSwKIAotICAgIGNvcHlUZXh0OiBm
dW5jdGlvbigpCisgICAgZG9jdW1lbnRDb3B5OiBmdW5jdGlvbihldmVudCkKICAgICB7CisgICAg
ICAgIGlmICh0aGlzLl90ZXh0VG9Db3B5KSB7CisgICAgICAgICAgICBldmVudC5jbGlwYm9hcmRE
YXRhLnNldERhdGEoJ3RleHQnLCB0aGlzLl90ZXh0VG9Db3B5KTsKKyAgICAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICB0aGlzLl90ZXh0VG9Db3B5ID0gbnVsbDsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSwKKworICAgIGNvcHlUZXh0OiBmdW5jdGlv
bih0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdGV4dFRvQ29weSA9IHRleHQ7CisgICAgICAg
IGlmICghZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKSkgeworICAgICAgICAgICAgdmFyIHNj
cmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uTm90aWZpY2F0aW9uU2NyZWVuKCk7Cisg
ICAgICAgICAgICBzY3JlZW4uc2hvdygpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIG9wZW5J
bk5ld1RhYjogZnVuY3Rpb24odXJsKQpAQCAtMTc1LDUgKzE5NCwxOSBAQCBXZWJJbnNwZWN0b3Iu
SW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUgPSB7CiB2YXIgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0ID0gbmV3IFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViKCk7
CiBQcmVmZXJlbmNlcy5sb2NhbGl6ZVVJID0gZmFsc2U7CiAKKy8qKgorICogQGNvbnN0cnVjdG9y
CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlbHBTY3JlZW59CisgKi8KK1dlYkluc3BlY3Rv
ci5FeHRlbnNpb25Ob3RpZmljYXRpb25TY3JlZW4gPSBmdW5jdGlvbigpCit7CisgICAgV2ViSW5z
cGVjdG9yLkhlbHBTY3JlZW4uY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsaXBi
b2FyZCBhY2Nlc3MgaXMgZGVuaWVkIikpOworICAgIHZhciBwID0gdGhpcy5jb250ZW50RWxlbWVu
dC5jcmVhdGVDaGlsZCgicCIpOworICAgIHAuYWRkU3R5bGVDbGFzcygiaGVscC1zZWN0aW9uIik7
CisgICAgcC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiWW91IG5lZWQgdG8g
aW5zdGFsbCBcIkNocm9tZSBEZXZlbG9wZXIgVG9vbHMgRnJvbnRlbmRcIiBDaHJvbWUgZXh0ZW5z
aW9uLiIpOworfQorCitXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uTm90aWZpY2F0aW9uU2NyZWVuLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGU7CisK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWwKaW5kZXggNTI5OTY4Ny4uZjA0OWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC00NSw2ICs0NSw3IEBAIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW5zcGVjdG9yRnJv
bnRlbmRBUEkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ik9iamVjdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iU2V0dGluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9IkhlbHBTY3JlZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ikluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkZpbGVN
YW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJDaGVja2JveC5qcyI+PC9zY3JpcHQ+CkBAIC0xOTUsNyArMTk2LDYgQEAgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU92ZXJ2aWV3
UGFuZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRlc3RDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJIZWxwU2NyZWVuLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEaWFsb2cuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkdvVG9M
aW5lRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBhNTBj
MDBmLi5hMmMzZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwpAQCAtNzcxLDYgKzc3MSw4IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENh
bkNvcHkgPSBmdW5jdGlvbihldmVudCkKIAogV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weSA9IGZ1
bmN0aW9uKGV2ZW50KQogeworICAgIGlmIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5SW50ZXJj
ZXB0b3IgJiYgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUludGVyY2VwdG9yKGV2ZW50KSkKKyAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50
UGFuZWwoKSAmJiBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKS5oYW5k
bGVDb3B5RXZlbnQpCiAgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQ
YW5lbCgpLmhhbmRsZUNvcHlFdmVudChldmVudCk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="148518"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142250</attachid>
            <date>2012-05-16 07:02:51 -0700</date>
            <delta_ts>2012-05-16 08:36:40 -0700</delta_ts>
            <desc>Comments addressed</desc>
            <filename>patch-86621</filename>
            <type>text/plain</type>
            <size>5155</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZWFmMDZkLi4wNWEyNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDUtMTYgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IENvcHkgLi4uIGFjdGlvbnMgZm9yIHRoZSBXZWIgSW5zcGVjdG9y
IHJlbW90ZSBkZWJ1Z2dpbmcgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9z
dFN0dWIuanM6CisgICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0
dWIpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLnBy
b3RvdHlwZS5kb2N1bWVudENvcHkpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JG
cm9udGVuZEhvc3RTdHViLnByb3RvdHlwZS5jb3B5VGV4dCk6CisgICAgICAgICguV2ViSW5zcGVj
dG9yLkV4dGVuc2lvbk5vdGlmaWNhdGlvblNjcmVlbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVudENvcHkpOgorCiAyMDEy
LTA1LTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnVieSBh
bm5vdGF0aW9uIGlzIGluY29ycmVjdGx5IGlkZW50aWZpZWQgYXMgYSBwYXJhZ3JhcGggYm91bmRh
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0U3R1Yi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcwppbmRleCAzNDg1NWNjLi41YzI3MTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZy
b250ZW5kSG9zdFN0dWIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCkBAIC0zNyw2ICszNyw4IEBAIFdlYkluc3Bl
Y3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMu
X2F0dGFjaGVkV2luZG93SGVpZ2h0ID0gMDsKICAgICB0aGlzLmlzU3R1YiA9IHRydWU7CisgICAg
dGhpcy5fdGV4dFRvQ29weSA9IG51bGw7CisgICAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUlu
dGVyY2VwdG9yID0gdGhpcy5kb2N1bWVudENvcHkuYmluZCh0aGlzKTsKIH0KIAogV2ViSW5zcGVj
dG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIucHJvdG90eXBlID0gewpAQCAtMTA5LDggKzEx
MSwyNCBAQCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFByZWZl
cmVuY2VzLmFwcGxpY2F0aW9uVGl0bGUsIHVybCk7CiAgICAgfSwKIAotICAgIGNvcHlUZXh0OiBm
dW5jdGlvbigpCisgICAgZG9jdW1lbnRDb3B5OiBmdW5jdGlvbihldmVudCkKICAgICB7CisgICAg
ICAgIGlmICh0aGlzLl90ZXh0VG9Db3B5KSB7CisgICAgICAgICAgICBldmVudC5jbGlwYm9hcmRE
YXRhLnNldERhdGEoInRleHQiLCB0aGlzLl90ZXh0VG9Db3B5KTsKKyAgICAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICB0aGlzLl90ZXh0VG9Db3B5ID0gbnVsbDsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgY29weVRleHQ6IGZ1bmN0aW9uKHRleHQpCisgICAg
eworICAgICAgICB0aGlzLl90ZXh0VG9Db3B5ID0gdGV4dDsKKyAgICAgICAgaWYgKCFkb2N1bWVu
dC5leGVjQ29tbWFuZCgiY29weSIpKSB7CisgICAgICAgICAgICB2YXIgc2NyZWVuID0gbmV3IFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25Ob3RpZmljYXRpb25TY3JlZW4oKTsKKyAgICAgICAgICAgIHNj
cmVlbi5zaG93KCk7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgb3BlbkluTmV3VGFiOiBmdW5j
dGlvbih1cmwpCkBAIC0xNzUsNSArMTkzLDE5IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9u
dGVuZEhvc3RTdHViLnByb3RvdHlwZSA9IHsKIHZhciBJbnNwZWN0b3JGcm9udGVuZEhvc3QgPSBu
ZXcgV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIoKTsKIFByZWZlcmVuY2Vz
LmxvY2FsaXplVUkgPSBmYWxzZTsKIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0KKyAqLworV2ViSW5zcGVjdG9yLkV4dGVuc2lvbk5v
dGlmaWNhdGlvblNjcmVlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpcGJvYXJkIGFjY2VzcyBp
cyBkZW5pZWQiKSk7CisgICAgdmFyIHAgPSB0aGlzLmNvbnRlbnRFbGVtZW50LmNyZWF0ZUNoaWxk
KCJwIik7CisgICAgcC5hZGRTdHlsZUNsYXNzKCJoZWxwLXNlY3Rpb24iKTsKKyAgICBwLnRleHRD
b250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZb3UgbmVlZCB0byBpbnN0YWxsIHRoZSBc
IkNocm9tZSBEZXZlbG9wZXIgVG9vbHMgRnJvbnRlbmRcIiBDaHJvbWUgZXh0ZW5zaW9uLiIpOwor
fQorCitXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uTm90aWZpY2F0aW9uU2NyZWVuLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGU7CisKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRt
bCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5k
ZXggNTI5OTY4Ny4uZjA0OWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC00NSw2ICs0NSw3IEBAIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW5zcGVjdG9yRnJvbnRlbmRBUEku
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik9i
amVjdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iU2V0dGluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkhlbHBTY3JlZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ikluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkZpbGVNYW5hZ2VyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDaGVj
a2JveC5qcyI+PC9zY3JpcHQ+CkBAIC0xOTUsNyArMTk2LDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxp
bmVGcmFtZUNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlRlc3RDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJIZWxwU2NyZWVuLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEaWFsb2cuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkdvVG9MaW5lRGlhbG9n
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJG
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBhNTBjMDBmLi5hMmMz
ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcwpAQCAtNzcxLDYgKzc3MSw4IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENhbkNvcHkgPSBm
dW5jdGlvbihldmVudCkKIAogV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weSA9IGZ1bmN0aW9uKGV2
ZW50KQogeworICAgIGlmIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5SW50ZXJjZXB0b3IgJiYg
V2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUludGVyY2VwdG9yKGV2ZW50KSkKKyAgICAgICAgcmV0
dXJuOwogICAgIGlmIChXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKSAm
JiBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKS5oYW5kbGVDb3B5RXZl
bnQpCiAgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpLmhh
bmRsZUNvcHlFdmVudChldmVudCk7CiB9Cg==
</data>
<flag name="review"
          id="148522"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="148523"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142270</attachid>
            <date>2012-05-16 08:36:40 -0700</date>
            <delta_ts>2012-05-17 04:42:59 -0700</delta_ts>
            <desc>Comments addressed</desc>
            <filename>patch-86621</filename>
            <type>text/plain</type>
            <size>6414</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZWFmMDZkLi40ZWE5NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMDUtMTYgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IENvcHkgLi4uIGFjdGlvbnMgZm9yIHRoZSBXZWIgSW5zcGVjdG9y
IHJlbW90ZSBkZWJ1Z2dpbmcgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9z
dFN0dWIuanM6CisgICAgICAgICguV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0
dWIpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLnBy
b3RvdHlwZS5kb2N1bWVudENvcHkpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JG
cm9udGVuZEhvc3RTdHViLnByb3RvdHlwZS5jb3B5VGV4dCk6CisgICAgICAgICguY2xpcGJvYXJk
QWNjZXNzRGVuaWVkTWVzc2FnZSk6CisgICAgICAgICguV2ViSW5zcGVjdG9yLkNsaXBib2FyZEFj
Y2Vzc0RlbmllZFNjcmVlbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVudENvcHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LmRvY3VtZW50Q29weUV2ZW50RmlyZWQpOgorCiAyMDEyLTA1LTE1ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnVieSBhbm5vdGF0aW9uIGlzIGluY29ycmVjdGx5
IGlkZW50aWZpZWQgYXMgYSBwYXJhZ3JhcGggYm91bmRhcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
U3R1Yi5qcwppbmRleCAzNDg1NWNjLi43NDQ3NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RT
dHViLmpzCkBAIC0zNyw2ICszNyw4IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhv
c3RTdHViID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuX2F0dGFjaGVkV2luZG93SGVpZ2h0ID0g
MDsKICAgICB0aGlzLmlzU3R1YiA9IHRydWU7CisgICAgdGhpcy5fdGV4dFRvQ29weSA9IG51bGw7
CisgICAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUV2ZW50RmlyZWQgPSB0aGlzLmRvY3VtZW50
Q29weS5iaW5kKHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0
U3R1Yi5wcm90b3R5cGUgPSB7CkBAIC0xMDksOCArMTExLDIyIEBAIFdlYkluc3BlY3Rvci5JbnNw
ZWN0b3JGcm9udGVuZEhvc3RTdHViLnByb3RvdHlwZSA9IHsKICAgICAgICAgZG9jdW1lbnQudGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoUHJlZmVyZW5jZXMuYXBwbGljYXRpb25UaXRsZSwg
dXJsKTsKICAgICB9LAogCi0gICAgY29weVRleHQ6IGZ1bmN0aW9uKCkKKyAgICBkb2N1bWVudENv
cHk6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl90ZXh0VG9Db3B5
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBldmVudC5jbGlwYm9hcmREYXRhLnNldERh
dGEoInRleHQiLCB0aGlzLl90ZXh0VG9Db3B5KTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICAgICAgdGhpcy5fdGV4dFRvQ29weSA9IG51bGw7CisgICAgfSwKKworICAgIGNv
cHlUZXh0OiBmdW5jdGlvbih0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdGV4dFRvQ29weSA9
IHRleHQ7CisgICAgICAgIGlmICghZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSkgeworICAg
ICAgICAgICAgdmFyIHNjcmVlbiA9IG5ldyBXZWJJbnNwZWN0b3IuQ2xpcGJvYXJkQWNjZXNzRGVu
aWVkU2NyZWVuKCk7CisgICAgICAgICAgICBzY3JlZW4uc2hvdygpOworICAgICAgICB9CiAgICAg
fSwKIAogICAgIG9wZW5Jbk5ld1RhYjogZnVuY3Rpb24odXJsKQpAQCAtMTc1LDUgKzE5MSwyNiBA
QCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUgPSB7CiB2
YXIgSW5zcGVjdG9yRnJvbnRlbmRIb3N0ID0gbmV3IFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9u
dGVuZEhvc3RTdHViKCk7CiBQcmVmZXJlbmNlcy5sb2NhbGl6ZVVJID0gZmFsc2U7CiAKKy8vIERl
ZmF1bHQgaW1wbGVtZW50YXRpb247IHBsYXRmb3JtcyB3aWxsIG92ZXJyaWRlLgorZnVuY3Rpb24g
Y2xpcGJvYXJkQWNjZXNzRGVuaWVkTWVzc2FnZSgpIHsKKyAgICByZXR1cm4gIiI7CiB9CiAKKy8q
KgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlbHBTY3JlZW59
CisgKi8KK1dlYkluc3BlY3Rvci5DbGlwYm9hcmRBY2Nlc3NEZW5pZWRTY3JlZW4gPSBmdW5jdGlv
bigpCit7CisgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uY2FsbCh0aGlzLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkNsaXBib2FyZCBhY2Nlc3MgaXMgZGVuaWVkIikpOworICAgIHZhciBwbGF0
Zm9ybU1lc3NhZ2UgPSBjbGlwYm9hcmRBY2Nlc3NEZW5pZWRNZXNzYWdlKCk7CisgICAgaWYgKHBs
YXRmb3JtTWVzc2FnZSkgeworICAgICAgICB2YXIgcCA9IHRoaXMuY29udGVudEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoInAiKTsKKyAgICAgICAgcC5hZGRTdHlsZUNsYXNzKCJoZWxwLXNlY3Rpb24iKTsK
KyAgICAgICAgcC50ZXh0Q29udGVudCA9IHBsYXRmb3JtTWVzc2FnZTsKKyAgICB9Cit9CisKK1dl
Ykluc3BlY3Rvci5DbGlwYm9hcmRBY2Nlc3NEZW5pZWRTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3RvdHlwZTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggNTI5OTY4
Ny4uZjA0OWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC00NSw2ICs0NSw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik9iamVjdC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2V0dGlu
Z3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkhlbHBTY3JlZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ikluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkZpbGVNYW5hZ2VyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDaGVja2JveC5qcyI+
PC9zY3JpcHQ+CkBAIC0xOTUsNyArMTk2LDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVGcmFtZUNv
bnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IlRlc3RDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJIZWxwU2NyZWVuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJEaWFsb2cuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkdvVG9MaW5lRGlhbG9nLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJGaWx0ZXJlZEl0
ZW1TZWxlY3Rpb25EaWFsb2cuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBhNTBjMDBmLi41ZmRhYjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAt
NzczLDYgKzc3MywxMSBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5ID0gZnVuY3Rpb24oZXZl
bnQpCiB7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgp
ICYmIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpLmhhbmRsZUNvcHlF
dmVudCkKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCku
aGFuZGxlQ29weUV2ZW50KGV2ZW50KTsKKyAgICBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5RXZl
bnRGaXJlZChldmVudCk7Cit9CisKK1dlYkluc3BlY3Rvci5kb2N1bWVudENvcHlFdmVudEZpcmVk
ID0gZnVuY3Rpb24oZXZlbnQpCit7CiB9CiAKIFdlYkluc3BlY3Rvci5jb250ZXh0TWVudUV2ZW50
RmlyZWQgPSBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjFl
NTdiZS4uMTYxNGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0wNS0xNiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFN1cHBvcnQgQ29weSAuLi4gYWN0aW9ucyBmb3IgdGhlIFdlYiBJbnNwZWN0b3Ig
cmVtb3RlIGRlYnVnZ2luZyBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY2MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHNyYy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKGNsaXBib2FyZEFj
Y2Vzc0RlbmllZE1lc3NhZ2UpOgorCiAyMDEyLTA1LTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNjgx
MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpz
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGV2VG9vbHMuanMKaW5kZXggNDk5YjYw
NC4uMzkzMzhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGV2
VG9vbHMuanMKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGV2VG9vbHMuanMK
QEAgLTU0LDMgKzU0LDggQEAgV2ViSW5zcGVjdG9yLnNldEluc3BlY3RlZFRhYklkID0gZnVuY3Rp
b24odGFiSWQpCiB7CiAgICAgV2ViSW5zcGVjdG9yLl9pbnNwZWN0ZWRUYWJJZCA9IHRhYklkOwog
fQorCitmdW5jdGlvbiBjbGlwYm9hcmRBY2Nlc3NEZW5pZWRNZXNzYWdlKCkKK3sKKyAgICByZXR1
cm4gIllvdSBuZWVkIHRvIGluc3RhbGwgdGhlIFwiQ2hyb21lIERldmVsb3BlciBUb29scyBGcm9u
dGVuZFwiIENocm9tZSBleHRlbnNpb24uIjsKK30K
</data>
<flag name="review"
          id="148551"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="148552"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142452</attachid>
            <date>2012-05-17 04:42:59 -0700</date>
            <delta_ts>2012-05-17 12:04:51 -0700</delta_ts>
            <desc>Comments addressed</desc>
            <filename>patch-86621</filename>
            <type>text/plain</type>
            <size>7496</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OTg0NGRlLi4wMDhiMzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDUtMTcgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IENvcHkgLi4uIGFjdGlvbnMgZm9yIHRoZSBXZWIgSW5zcGVjdG9y
IHJlbW90ZSBkZWJ1Z2dpbmcgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzOgor
ICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViKToKKyAgICAg
ICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUuZG9j
dW1lbnRDb3B5KToKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0
U3R1Yi5wcm90b3R5cGUuY29weVRleHQpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5jbGlwYm9h
cmRBY2Nlc3NEZW5pZWRNZXNzYWdlKToKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuQ2xpcGJvYXJk
QWNjZXNzRGVuaWVkU2NyZWVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuZG9jdW1lbnRDb3B5RXZlbnRGaXJlZCk6CisKIDIwMTItMDUtMTcgIFNoaW55YSBLYXdhbmFr
YSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNoYWRvd1Jvb3Quc2VsZWN0aW9u
IHNob3VsZCBiZSBTaGFkb3dSb290LmdldFNlbGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNmEwNjgyZjQ5NGY3MzI3
NTNkMzg1YTZhZDM2M2EyOGMxZjAzNjBhYy4uOGM1MWNhN2Q0M2E4ZmQ2YjIxYWEwZmM4MzcwOTg4
YWMzNDRlYWFlNSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxMDEKemNtYk8+blJVdykp
YGwmTig+JGxeY3J2Tz83QkZGJW9iWk5FVVYkTnpBc0dsJDhII35XZmd1eDJyVTNiUUt6OGNuClU+
XkYpVTFrXkMzRmVvdXRHaks1ZzA5MCVqMzsrTkMKCmRlbHRhIDExClNjbWRsb2c+fjl3KWBsJk4o
Pnd0a1J8SnAlCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCmluZGV4IDM0ODU1Y2MuLmE2
Zjk4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKQEAgLTM3LDYgKzM3LDcgQEAg
V2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIgPSBmdW5jdGlvbigpCiB7CiAg
ICAgdGhpcy5fYXR0YWNoZWRXaW5kb3dIZWlnaHQgPSAwOwogICAgIHRoaXMuaXNTdHViID0gdHJ1
ZTsKKyAgICBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5RXZlbnRGaXJlZCA9IHRoaXMuZG9jdW1l
bnRDb3B5LmJpbmQodGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhv
c3RTdHViLnByb3RvdHlwZSA9IHsKQEAgLTEwOSw4ICsxMTAsMjIgQEAgV2ViSW5zcGVjdG9yLklu
c3BlY3RvckZyb250ZW5kSG9zdFN0dWIucHJvdG90eXBlID0gewogICAgICAgICBkb2N1bWVudC50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZyhQcmVmZXJlbmNlcy5hcHBsaWNhdGlvblRpdGxl
LCB1cmwpOwogICAgIH0sCiAKLSAgICBjb3B5VGV4dDogZnVuY3Rpb24oKQorICAgIGRvY3VtZW50
Q29weTogZnVuY3Rpb24oZXZlbnQpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX3RleHRUb0Nv
cHkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGV2ZW50LmNsaXBib2FyZERhdGEuc2V0
RGF0YSgidGV4dCIsIHRoaXMuX3RleHRUb0NvcHkpOworICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworICAgICAgICBkZWxldGUgdGhpcy5fdGV4dFRvQ29weTsKKyAgICB9LAorCisgICAg
Y29weVRleHQ6IGZ1bmN0aW9uKHRleHQpCisgICAgeworICAgICAgICB0aGlzLl90ZXh0VG9Db3B5
ID0gdGV4dDsKKyAgICAgICAgaWYgKCFkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpKSB7Cisg
ICAgICAgICAgICB2YXIgc2NyZWVuID0gbmV3IFdlYkluc3BlY3Rvci5DbGlwYm9hcmRBY2Nlc3NE
ZW5pZWRTY3JlZW4oKTsKKyAgICAgICAgICAgIHNjcmVlbi5zaG93TW9kYWwoKTsKKyAgICAgICAg
fQogICAgIH0sCiAKICAgICBvcGVuSW5OZXdUYWI6IGZ1bmN0aW9uKHVybCkKQEAgLTE3NSw1ICsx
OTAsMjcgQEAgV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIucHJvdG90eXBl
ID0gewogdmFyIEluc3BlY3RvckZyb250ZW5kSG9zdCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5zcGVj
dG9yRnJvbnRlbmRIb3N0U3R1YigpOwogUHJlZmVyZW5jZXMubG9jYWxpemVVSSA9IGZhbHNlOwog
CisvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uOyBwbGF0Zm9ybXMgd2lsbCBvdmVycmlkZS4KK1dl
Ykluc3BlY3Rvci5jbGlwYm9hcmRBY2Nlc3NEZW5pZWRNZXNzYWdlID0gZnVuY3Rpb24oKQorewor
ICAgIHJldHVybiAiIjsKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuSGVscFNjcmVlbn0KKyAqLworV2ViSW5zcGVjdG9yLkNsaXBib2FyZEFjY2Vz
c0RlbmllZFNjcmVlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuSGVscFNjcmVl
bi5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpcGJvYXJkIGFjY2VzcyBpcyBk
ZW5pZWQiKSk7CisgICAgdmFyIHBsYXRmb3JtTWVzc2FnZSA9IFdlYkluc3BlY3Rvci5jbGlwYm9h
cmRBY2Nlc3NEZW5pZWRNZXNzYWdlKCk7CisgICAgaWYgKHBsYXRmb3JtTWVzc2FnZSkgeworICAg
ICAgICB2YXIgcCA9IHRoaXMuY29udGVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoInAiKTsKKyAgICAg
ICAgcC5hZGRTdHlsZUNsYXNzKCJoZWxwLXNlY3Rpb24iKTsKKyAgICAgICAgcC50ZXh0Q29udGVu
dCA9IHBsYXRmb3JtTWVzc2FnZTsKKyAgICB9CiB9CiAKK1dlYkluc3BlY3Rvci5DbGlwYm9hcmRB
Y2Nlc3NEZW5pZWRTY3JlZW4ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWxw
U2NyZWVuLnByb3RvdHlwZTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggZTVjZWMwOS4uNTI1MWI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC00
NSw2ICs0NSw4IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik9iamVjdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2V0dGluZ3MuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlZpZXcuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhlbHBTY3JlZW4uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ikluc3BlY3Rv
ckZyb250ZW5kSG9zdFN0dWIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IkZpbGVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDaGVja2JveC5qcyI+PC9zY3JpcHQ+CkBAIC01NCw3
ICs1Niw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iVGV4dFByb21wdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iUG9wb3Zlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iUGxhY2FyZC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGFiYmVkUGFuZS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRHJhd2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb25zb2xlTW9kZWwuanMi
Pjwvc2NyaXB0PgpAQCAtMTk1LDcgKzE5Niw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVPdmVydmlld1BhbmUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lRnJhbWVD
b250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJUZXN0Q29udHJvbGxlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGVscFNjcmVlbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGlhbG9nLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJHb1RvTGluZURpYWxvZy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNDRjMDhmMS4uYWE3YmUxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAg
LTc3MSw2ICs3NzEsMTEgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weSA9IGZ1bmN0aW9uKGV2
ZW50KQogewogICAgIGlmIChXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwo
KSAmJiBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKS5oYW5kbGVDb3B5
RXZlbnQpCiAgICAgICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgp
LmhhbmRsZUNvcHlFdmVudChldmVudCk7CisgICAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weUV2
ZW50RmlyZWQoZXZlbnQpOworfQorCitXZWJJbnNwZWN0b3IuZG9jdW1lbnRDb3B5RXZlbnRGaXJl
ZCA9IGZ1bmN0aW9uKGV2ZW50KQorewogfQogCiBXZWJJbnNwZWN0b3IuY29udGV4dE1lbnVFdmVu
dEZpcmVkID0gZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg0
ZjE1NDUuLjI5N2UxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDUtMTcgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBTdXBwb3J0IENvcHkgLi4uIGFjdGlvbnMgZm9yIHRoZSBXZWIgSW5zcGVjdG9y
IHJlbW90ZSBkZWJ1Z2dpbmcgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2NjIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzcmMvanMvRGV2VG9vbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuY2xpcGJvYXJkQWNjZXNzRGVuaWVkTWVzc2FnZSk6CisKIDIwMTItMDUtMTcgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0
IHRvIGZpeCBhIFdpbmRvd3MgYnVpbGQgYnJlYWthZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDQ5OWI2MDQuLmM0ZDU0MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBAIC01NCwzICs1NCw4IEBAIFdlYkluc3Bl
Y3Rvci5zZXRJbnNwZWN0ZWRUYWJJZCA9IGZ1bmN0aW9uKHRhYklkKQogewogICAgIFdlYkluc3Bl
Y3Rvci5faW5zcGVjdGVkVGFiSWQgPSB0YWJJZDsKIH0KKworV2ViSW5zcGVjdG9yLmNsaXBib2Fy
ZEFjY2Vzc0RlbmllZE1lc3NhZ2UgPSBmdW5jdGlvbigpCit7CisgICAgcmV0dXJuICJZb3UgbmVl
ZCB0byBpbnN0YWxsIGEgQ2hyb21lIGV4dGVuc2lvbiB0aGF0IGdyYW50cyBjbGlwYm9hcmQgYWNj
ZXNzIHRvIERldmVsb3BlciBUb29scy4iOworfQo=
</data>
<flag name="review"
          id="148794"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="148795"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
      

    </bug>

</bugzilla>