<?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>34250</bug_id>
          
          <creation_ts>2010-01-28 02:43:21 -0800</creation_ts>
          <short_desc>Web Inspector: Add navigation items into the Elements panel context menu.</short_desc>
          <delta_ts>2010-09-10 06:08:12 -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>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185400</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-28 02:43:21 -0800</bug_when>
    <thetext>There should be context menu actions offering to open resource in resources panel and/or in a separate tab when invoked on an URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276421</commentid>
    <comment_count>1</comment_count>
      <attachid>67023</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-09 06:02:34 -0700</bug_when>
    <thetext>Created attachment 67023
[PATCH] Suggested solution

The following items are added at the top of context menu for URLs in the Elements panel (DOM tree and url(...) property values in the Styles sidebar pane):

Open Link in New Window
Open Link in Resources Panel

The latter item is only added if the respective URL denotes a resource present in the Resources panel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276422</commentid>
    <comment_count>2</comment_count>
      <attachid>67024</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-09 06:05:14 -0700</bug_when>
    <thetext>Created attachment 67024
[PATCH] Patch with localizedStrings.js diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276446</commentid>
    <comment_count>3</comment_count>
      <attachid>67024</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-09 07:38:03 -0700</bug_when>
    <thetext>Comment on attachment 67024
[PATCH] Patch with localizedStrings.js diff

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

&gt; WebCore/ChangeLog:5
&gt; +        Web Inspector: Add navigation items into the Elements panel context menu.
Please provide detailed description of the added actions.

&gt; WebCore/inspector/front-end/ElementsTreeOutline.js:293
&gt; +            var needSeparator = true;
Please declare this variable outside the if block.

&gt; WebCore/inspector/front-end/StylesSidebarPane.js:130
&gt; +        // Keep these consistent with those added in WebInspector.ElementsTreeElement.prototype._populateHrefContextMenu().
This code is exactly the same in both places. Please extract it into a utility function or reassign WebInspector.ElementsTreeElement.prototype._populateHrefContextMenu function to WebInspector.StylesSidebarPane.prototype._populateHrefContextMenu like we do in some other places. Personally I&apos;d prefer the former approach. r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276465</commentid>
    <comment_count>4</comment_count>
      <attachid>67032</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-09 08:08:52 -0700</bug_when>
    <thetext>Created attachment 67032
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276548</commentid>
    <comment_count>5</comment_count>
      <attachid>67051</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-09 10:17:14 -0700</bug_when>
    <thetext>Created attachment 67051
[PATCH] Rebase + style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277121</commentid>
    <comment_count>6</comment_count>
      <attachid>67051</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-10 04:41:00 -0700</bug_when>
    <thetext>Comment on attachment 67051
[PATCH] Rebase + style fix

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

&gt; WebCore/inspector/front-end/StylesSidebarPane.js:120
&gt; +    _populateHrefContextMenu: function(contextMenu, event, anchorElement)
Please remove this before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277141</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-10 05:44:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67191 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67183
http://trac.webkit.org/changeset/67191</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277154</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-10 06:08:12 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/English.lproj/localizedStrings.js
        M       WebCore/inspector/front-end/ElementsPanel.js
        M       WebCore/inspector/front-end/ElementsTreeOutline.js
        M       WebCore/inspector/front-end/StylesSidebarPane.js
        M       WebCore/inspector/front-end/inspector.js
Committed r67191</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67023</attachid>
            <date>2010-09-09 06:02:34 -0700</date>
            <delta_ts>2010-09-09 06:05:14 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>navurls.patch</filename>
            <type>text/plain</type>
            <size>9712</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDNjMTc5Yi4uZWQyNWE4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOS0wOSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBuYXZpZ2F0aW9uIGl0ZW1z
IGludG8gdGhlIEVsZW1lbnRzIHBhbmVsIGNvbnRleHQgbWVudS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjUwCisKKyAgICAgICAgKiBFbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9wb3B1bGF0ZUhyZWZD
b250ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUuX2F0dHJpYnV0ZUhUTUwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJh
clBhbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1l
bnUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IucmVz
b3VyY2VVUkxGb3JSZWxhdGVkTm9kZSk6CisKIDIwMTAtMDktMDkgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVs
emUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGMyNmMx
NWYuLmYzYjg1M2UgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1dlYkNvcmUvRW5nbGlzaC5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGFuZCBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwppbmRleCAxMDEzMWY0Li5jM2NjNDQyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMjg2
LDExICsyODYsMjEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgY29udGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRN
ZW51KCk7CiAKICAgICAgICAgdmFyIHRhZyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10YWciKTsKKyAgICAgICAgdmFyIGhyZWYgPSBldmVu
dC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtcmVzb3Vy
Y2UtbGluayIpIHx8IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3
ZWJraXQtaHRtbC1leHRlcm5hbC1saW5rIik7CiAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGV2ZW50
LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10ZXh0LW5v
ZGUiKTsKLSAgICAgICAgaWYgKHRhZyAmJiBsaXN0SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVU
YWdDb250ZXh0TWVudSkKKyAgICAgICAgaWYgKGhyZWYgJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQu
X3BvcHVsYXRlSHJlZkNvbnRleHRNZW51KSB7CisgICAgICAgICAgICBsaXN0SXRlbS50cmVlRWxl
bWVudC5fcG9wdWxhdGVIcmVmQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCBocmVmKTsK
KyAgICAgICAgICAgIHZhciBuZWVkU2VwYXJhdG9yID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAodGFnICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51
KSB7CisgICAgICAgICAgICBpZiAobmVlZFNlcGFyYXRvcikKKyAgICAgICAgICAgICAgICBjb250
ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKICAgICAgICAgICAgIGxpc3RJdGVtLnRyZWVFbGVt
ZW50Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7Ci0gICAgICAg
IGVsc2UgaWYgKHRleHROb2RlICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRleHRD
b250ZXh0TWVudSkKKyAgICAgICAgfSBlbHNlIGlmICh0ZXh0Tm9kZSAmJiBsaXN0SXRlbS50cmVl
RWxlbWVudC5fcG9wdWxhdGVUZXh0Q29udGV4dE1lbnUpIHsKKyAgICAgICAgICAgIGlmIChuZWVk
U2VwYXJhdG9yKQorICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigp
OwogICAgICAgICAgICAgbGlzdEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVsYXRlVGV4dENvbnRleHRN
ZW51KGNvbnRleHRNZW51LCB0ZXh0Tm9kZSk7CisgICAgICAgIH0KICAgICAgICAgY29udGV4dE1l
bnUuc2hvdyhldmVudCk7CiAgICAgfQogfQpAQCAtNzgwLDYgKzc5MCwyMyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
CisgICAgX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgZXZl
bnQsIGFuY2hvckVsZW1lbnQpCisgICAgeworICAgICAgICBpZiAoIWFuY2hvckVsZW1lbnQuaHJl
ZikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB2YXIgcmVzb3VyY2VVUkwg
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZShXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLmZvY3VzZWRET01Ob2RlLCBhbmNob3JFbGVtZW50LmhyZWYpOworICAgICAg
ICBpZiAoIXJlc291cmNlVVJMKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IC8vIEFkZCByZXNvdXJjZS1yZWxhdGVkIGFjdGlvbnMuCisgICAgICAgIC8vIEtlZXAgdGhlc2Ug
Y29uc2lzdGVudCB3aXRoIHRob3NlIGFkZGVkIGluIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFy
UGFuZS5wcm90b3R5cGUuX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51KCkuCisgICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGVuIExpbmsgaW4gTmV3
IFdpbmRvdyIpLCBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VV
UkwsIGZhbHNlKSk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwocmVz
b3VyY2VVUkwpKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIk9wZW4gTGluayBpbiBSZXNvdXJjZXMgUGFuZWwiKSwgV2ViSW5zcGVjdG9y
Lm9wZW5SZXNvdXJjZS5iaW5kKG51bGwsIHJlc291cmNlVVJMLCB0cnVlKSk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0sCisKICAgICBfcG9wdWxhdGVUZXh0Q29udGV4dE1lbnU6IGZ1bmN0
aW9uKGNvbnRleHRNZW51LCB0ZXh0Tm9kZSkKICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFZGl0IFRleHQiKSwgdGhpcy5fc3RhcnRF
ZGl0aW5nVGV4dE5vZGUuYmluZCh0aGlzLCB0ZXh0Tm9kZSkpOwpAQCAtMTE4OSwyOSArMTIxNiw2
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoUmVzdWx0cygpOwogICAgIH0sCiAKLSAgICBfcmV3cml0
ZUF0dHJIcmVmOiBmdW5jdGlvbihub2RlLCBocmVmVmFsdWUpCi0gICAgewotICAgICAgICBpZiAo
IWhyZWZWYWx1ZSB8fCBocmVmVmFsdWUuaW5kZXhPZigiOi8vIikgPiAwKQotICAgICAgICAgICAg
cmV0dXJuIGhyZWZWYWx1ZTsKLQotICAgICAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRl
ID0gbm9kZTsgZnJhbWVPd25lckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1l
T3duZXJDYW5kaWRhdGUucGFyZW50Tm9kZSkgewotICAgICAgICAgICAgaWYgKGZyYW1lT3duZXJD
YW5kaWRhdGUuZG9jdW1lbnRVUkwpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gV2Vi
SW5zcGVjdG9yLmNvbXBsZXRlVVJMKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9jdW1lbnRVUkwsIGhy
ZWZWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotCi0gICAgICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMgYmFk
IHZhbHVlCi0gICAgICAgIGZvciAodmFyIHVybCBpbiBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxN
YXApIHsKLSAgICAgICAgICAgIHZhciBtYXRjaCA9IHVybC5tYXRjaChXZWJJbnNwZWN0b3IuVVJM
UmVnRXhwKTsKLSAgICAgICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFs0XSA9PT0gaHJlZlZhbHVl
KQotICAgICAgICAgICAgICAgIHJldHVybiB1cmw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IGhyZWZWYWx1ZTsKLSAgICB9LAotCiAgICAgX2F0dHJpYnV0ZUhUTUw6IGZ1bmN0aW9uKG5hbWUs
IHZhbHVlLCBub2RlLCBsaW5raWZ5KQogICAgIHsKICAgICAgICAgdmFyIGhhc1RleHQgPSAodmFs
dWUubGVuZ3RoID4gMCk7CkBAIC0xMjIxLDcgKzEyMjUsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBodG1sICs9ICI9JiM4MjAz
O1wiIjsKIAogICAgICAgICBpZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9
PT0gImhyZWYiKSkgewotICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSB0aGlzLl9yZXdy
aXRlQXR0ckhyZWYobm9kZSwgdmFsdWUpOworICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYg
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZShub2RlLCB2YWx1ZSk7CiAg
ICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1
MjAwQiIpOwogICAgICAgICAgICAgaHRtbCArPSBsaW5raWZ5KHJld3JpdHRlbkhyZWYsIHZhbHVl
LCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIiwgbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2Fz
ZSgpID09PSAiYSIpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDFkZGRkZTcuLjdjM2ZkMDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMK
QEAgLTY0LDYgKzY0LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lID0gZnVuY3Rp
b24oY29tcHV0ZWRTdHlsZVBhbmUpCiAKICAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudCk7CiAgICAgdGhpcy5fY29tcHV0ZWRTdHlsZVBh
bmUgPSBjb21wdXRlZFN0eWxlUGFuZTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwg
dHJ1ZSk7CiB9CiAKIC8vIFRha2VuIGZyb20gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvcHJv
cGlkeC5odG1sLgpAQCAtMTA1LDYgKzEwNiwzNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJh
clBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1l
bnRbMl0uc2VsZWN0ZWQgPSB0cnVlOwogICAgIH0sCiAKKyAgICBfY29udGV4dE1lbnVFdmVudEZp
cmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBocmVmID0gZXZlbnQudGFy
Z2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXJlc291cmNlLWxp
bmsiKSB8fCBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0
LWh0bWwtZXh0ZXJuYWwtbGluayIpOworICAgICAgICBpZiAoaHJlZikgeworICAgICAgICAgICAg
dmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOworICAgICAg
ICAgICAgdmFyIGZpbGxlZCA9IHRoaXMuX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51KGNvbnRleHRN
ZW51LCBldmVudCwgaHJlZik7CisgICAgICAgICAgICBpZiAoZmlsbGVkKQorICAgICAgICAgICAg
ICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9w
b3B1bGF0ZUhyZWZDb250ZXh0TWVudTogZnVuY3Rpb24oY29udGV4dE1lbnUsIGV2ZW50LCBhbmNo
b3JFbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFhbmNob3JFbGVtZW50LmhyZWYpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgdmFyIHJlc291cmNlVVJMID0gV2ViSW5z
cGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVt
ZW50cy5mb2N1c2VkRE9NTm9kZSwgYW5jaG9yRWxlbWVudC5ocmVmKTsKKyAgICAgICAgaWYgKCFy
ZXNvdXJjZVVSTCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBBZGQg
cmVzb3VyY2UtcmVsYXRlZCBhY3Rpb25zLgorICAgICAgICAvLyBLZWVwIHRoZXNlIGNvbnNpc3Rl
bnQgd2l0aCB0aG9zZSBhZGRlZCBpbiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUuX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51KCkuCisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRv
dyIpLCBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkwsIGZh
bHNlKSk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwocmVzb3VyY2VV
UkwpKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIk9wZW4gTGluayBpbiBSZXNvdXJjZXMgUGFuZWwiKSwgV2ViSW5zcGVjdG9yLm9wZW5S
ZXNvdXJjZS5iaW5kKG51bGwsIHJlc291cmNlVVJMLCB0cnVlKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0sCisKICAgICB1cGRhdGU6IGZ1bmN0aW9uKG5vZGUsIGVkaXRlZFNlY3Rpb24s
IGZvcmNlVXBkYXRlKQogICAgIHsKICAgICAgICAgdmFyIHJlZnJlc2ggPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDg0MDc0NWYuLjRjMzhhNWEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNzg4LDYgKzc4
OCwxNiBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDbGljayA9IGZ1bmN0aW9uKGV2ZW50KQogICAg
IGZvbGxvd0xpbmsoKTsKIH0KIAorV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSA9IGZ1bmN0aW9u
KHJlc291cmNlVVJMLCBpblJlc291cmNlc1BhbmVsKQoreworICAgIHZhciByZXNvdXJjZSA9IFdl
Ykluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCk7CisgICAgaWYgKGluUmVzb3Vy
Y2VzUGFuZWwgJiYgcmVzb3VyY2UpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNv
dXJjZXMuc2hvd1Jlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQ
YW5lbCgicmVzb3VyY2VzIik7CisgICAgfSBlbHNlCisgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
b3BlbkluSW5zcGVjdGVkV2luZG93KHJlc291cmNlID8gcmVzb3VyY2UudXJsIDogcmVzb3VyY2VV
UkwpOworfQorCiBXZWJJbnNwZWN0b3IuX3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rpb24oKQog
ewogICAgIHZhciBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwpAQCAt
MTgyOCw2ICsxODM4LDI5IEBAIFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUgPSBm
dW5jdGlvbih1cmwsIHByZWZlcnJlZFBhbmVsLCBsaW5lTnVtYmVyLCBjCiAgICAgcmV0dXJuIG5v
ZGU7CiB9CiAKK1dlYkluc3BlY3Rvci5yZXNvdXJjZVVSTEZvclJlbGF0ZWROb2RlID0gZnVuY3Rp
b24obm9kZSwgdXJsKQoreworICAgIGlmICghdXJsIHx8IHVybC5pbmRleE9mKCI6Ly8iKSA+IDAp
CisgICAgICAgIHJldHVybiB1cmw7CisKKyAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRl
ID0gbm9kZTsgZnJhbWVPd25lckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1l
T3duZXJDYW5kaWRhdGUucGFyZW50Tm9kZSkgeworICAgICAgICBpZiAoZnJhbWVPd25lckNhbmRp
ZGF0ZS5kb2N1bWVudFVSTCkgeworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFdlYkluc3BlY3Rv
ci5jb21wbGV0ZVVSTChmcmFtZU93bmVyQ2FuZGlkYXRlLmRvY3VtZW50VVJMLCB1cmwpOworICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBkb2N1bWVudFVSTCBu
b3QgZm91bmQgb3IgaGFzIGJhZCB2YWx1ZQorICAgIGZvciAodmFyIHJlc291cmNlVVJMIGluIFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcCkgeworICAgICAgICB2YXIgbWF0Y2ggPSByZXNvdXJj
ZVVSTC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVnRXhwKTsKKyAgICAgICAgaWYgKG1hdGNoICYm
IG1hdGNoWzRdID09PSB1cmwpCisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VVUkw7CisgICAg
fQorICAgIHJldHVybiB1cmw7Cit9LAorCiBXZWJJbnNwZWN0b3IuY29tcGxldGVVUkwgPSBmdW5j
dGlvbihiYXNlVVJMLCBocmVmKQogewogICAgIHZhciBtYXRjaCA9IGJhc2VVUkwubWF0Y2goV2Vi
SW5zcGVjdG9yLlVSTFJlZ0V4cCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67024</attachid>
            <date>2010-09-09 06:05:14 -0700</date>
            <delta_ts>2010-09-09 08:08:52 -0700</delta_ts>
            <desc>[PATCH] Patch with localizedStrings.js diff</desc>
            <filename>navurls.patch</filename>
            <type>text/plain</type>
            <size>9865</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDNjMTc5Yi4uZWQyNWE4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOS0wOSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBuYXZpZ2F0aW9uIGl0ZW1z
IGludG8gdGhlIEVsZW1lbnRzIHBhbmVsIGNvbnRleHQgbWVudS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjUwCisKKyAgICAgICAgKiBFbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZU91dGxpbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9wb3B1bGF0ZUhyZWZD
b250ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUuX2F0dHJpYnV0ZUhUTUwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJh
clBhbmUucHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1l
bnUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IucmVz
b3VyY2VVUkxGb3JSZWxhdGVkTm9kZSk6CisKIDIwMTAtMDktMDkgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVs
emUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGMyNmMx
NWZkOTZiNTU3MGExOWY1ZDI4YmMzYmRmOGM5NzQ3ZjJhMTYuLmYzYjg1M2UyMTJiN2RjNWVkNzcw
OTIxZjI5M2EwNTQ3NjMyODBiMGIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjA5Cnpj
bWRuP2pPcERBclZUNVRsTTVKOThTKXF1Nzw/RXFmcGoqSTEpPiFne0Q5KStLc3BARVBoclJoQHt8
fjJmZy1qKgp2dGk8NVlLKHgtdTMpYmpyOyNNQzd3NWI/cWVrbnJ7TG8hM15xIzl9QjY7R2FIVzRV
PkdhPSQrU2EtJUlJCgpkZWx0YSAxNApXY21hRiZmQCN8YHJWVDVUSCRQMTJeIz1leStYeDIkCgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxp
bmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5q
cwppbmRleCAxMDEzMWY0Li5jM2NjNDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMjg2LDExICsyODYsMjEgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
Y29udGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KCk7CiAKICAgICAgICAg
dmFyIHRhZyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJr
aXQtaHRtbC10YWciKTsKKyAgICAgICAgdmFyIGhyZWYgPSBldmVudC50YXJnZXQuZW5jbG9zaW5n
Tm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtcmVzb3VyY2UtbGluayIpIHx8IGV2ZW50
LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC1leHRlcm5h
bC1saW5rIik7CiAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKTsKLSAgICAgICAgaWYg
KHRhZyAmJiBsaXN0SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSkKKyAg
ICAgICAgaWYgKGhyZWYgJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVsYXRlSHJlZkNvbnRl
eHRNZW51KSB7CisgICAgICAgICAgICBsaXN0SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVIcmVm
Q29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCBocmVmKTsKKyAgICAgICAgICAgIHZhciBu
ZWVkU2VwYXJhdG9yID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFnICYmIGxpc3RJ
dGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KSB7CisgICAgICAgICAgICBp
ZiAobmVlZFNlcGFyYXRvcikKKyAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBh
cmF0b3IoKTsKICAgICAgICAgICAgIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0Nv
bnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7Ci0gICAgICAgIGVsc2UgaWYgKHRleHROb2Rl
ICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRleHRDb250ZXh0TWVudSkKKyAgICAg
ICAgfSBlbHNlIGlmICh0ZXh0Tm9kZSAmJiBsaXN0SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVU
ZXh0Q29udGV4dE1lbnUpIHsKKyAgICAgICAgICAgIGlmIChuZWVkU2VwYXJhdG9yKQorICAgICAg
ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogICAgICAgICAgICAgbGlz
dEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVsYXRlVGV4dENvbnRleHRNZW51KGNvbnRleHRNZW51LCB0
ZXh0Tm9kZSk7CisgICAgICAgIH0KICAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7CiAg
ICAgfQogfQpAQCAtNzgwLDYgKzc5MCwyMyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgX3BvcHVsYXRlSHJl
ZkNvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgZXZlbnQsIGFuY2hvckVsZW1lbnQp
CisgICAgeworICAgICAgICBpZiAoIWFuY2hvckVsZW1lbnQuaHJlZikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICB2YXIgcmVzb3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VVUkxGb3JSZWxhdGVkTm9kZShXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmZvY3Vz
ZWRET01Ob2RlLCBhbmNob3JFbGVtZW50LmhyZWYpOworICAgICAgICBpZiAoIXJlc291cmNlVVJM
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEFkZCByZXNvdXJjZS1y
ZWxhdGVkIGFjdGlvbnMuCisgICAgICAgIC8vIEtlZXAgdGhlc2UgY29uc2lzdGVudCB3aXRoIHRo
b3NlIGFkZGVkIGluIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3Bv
cHVsYXRlSHJlZkNvbnRleHRNZW51KCkuCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIpLCBXZWJJbnNw
ZWN0b3Iub3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkwsIGZhbHNlKSk7CisgICAg
ICAgIGlmIChXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwocmVzb3VyY2VVUkwpKQorICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wZW4g
TGluayBpbiBSZXNvdXJjZXMgUGFuZWwiKSwgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZS5iaW5k
KG51bGwsIHJlc291cmNlVVJMLCB0cnVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0s
CisKICAgICBfcG9wdWxhdGVUZXh0Q29udGV4dE1lbnU6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCB0
ZXh0Tm9kZSkKICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJFZGl0IFRleHQiKSwgdGhpcy5fc3RhcnRFZGl0aW5nVGV4dE5vZGUuYmlu
ZCh0aGlzLCB0ZXh0Tm9kZSkpOwpAQCAtMTE4OSwyOSArMTIxNiw2IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5faGlnaGxpZ2h0
U2VhcmNoUmVzdWx0cygpOwogICAgIH0sCiAKLSAgICBfcmV3cml0ZUF0dHJIcmVmOiBmdW5jdGlv
bihub2RlLCBocmVmVmFsdWUpCi0gICAgewotICAgICAgICBpZiAoIWhyZWZWYWx1ZSB8fCBocmVm
VmFsdWUuaW5kZXhPZigiOi8vIikgPiAwKQotICAgICAgICAgICAgcmV0dXJuIGhyZWZWYWx1ZTsK
LQotICAgICAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRlID0gbm9kZTsgZnJhbWVPd25l
ckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1lT3duZXJDYW5kaWRhdGUucGFy
ZW50Tm9kZSkgewotICAgICAgICAgICAgaWYgKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9jdW1lbnRV
UkwpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gV2ViSW5zcGVjdG9yLmNvbXBsZXRl
VVJMKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9jdW1lbnRVUkwsIGhyZWZWYWx1ZSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAg
ICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMgYmFkIHZhbHVlCi0gICAgICAgIGZv
ciAodmFyIHVybCBpbiBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXApIHsKLSAgICAgICAgICAg
IHZhciBtYXRjaCA9IHVybC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVnRXhwKTsKLSAgICAgICAg
ICAgIGlmIChtYXRjaCAmJiBtYXRjaFs0XSA9PT0gaHJlZlZhbHVlKQotICAgICAgICAgICAgICAg
IHJldHVybiB1cmw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGhyZWZWYWx1ZTsKLSAgICB9
LAotCiAgICAgX2F0dHJpYnV0ZUhUTUw6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBub2RlLCBsaW5r
aWZ5KQogICAgIHsKICAgICAgICAgdmFyIGhhc1RleHQgPSAodmFsdWUubGVuZ3RoID4gMCk7CkBA
IC0xMjIxLDcgKzEyMjUsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBodG1sICs9ICI9JiM4MjAzO1wiIjsKIAogICAgICAgICBp
ZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9PT0gImhyZWYiKSkgewotICAg
ICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSB0aGlzLl9yZXdyaXRlQXR0ckhyZWYobm9kZSwg
dmFsdWUpOworICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VVUkxGb3JSZWxhdGVkTm9kZShub2RlLCB2YWx1ZSk7CiAgICAgICAgICAgICB2YWx1ZSA9
IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1MjAwQiIpOwogICAgICAgICAg
ICAgaHRtbCArPSBsaW5raWZ5KHJld3JpdHRlbkhyZWYsIHZhbHVlLCAid2Via2l0LWh0bWwtYXR0
cmlidXRlLXZhbHVlIiwgbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiYSIpOwogICAg
ICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0
eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1Np
ZGViYXJQYW5lLmpzCmluZGV4IDFkZGRkZTcuLjdjM2ZkMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTY0LDYgKzY0LDcgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lID0gZnVuY3Rpb24oY29tcHV0ZWRTdHlsZVBh
bmUpCiAKICAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzU2Vs
ZWN0RWxlbWVudCk7CiAgICAgdGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUgPSBjb21wdXRlZFN0eWxl
UGFuZTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0
aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1ZSk7CiB9CiAKIC8vIFRh
a2VuIGZyb20gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvcHJvcGlkeC5odG1sLgpAQCAtMTA1
LDYgKzEwNiwzNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnRbMl0uc2VsZWN0ZWQgPSB0
cnVlOwogICAgIH0sCiAKKyAgICBfY29udGV4dE1lbnVFdmVudEZpcmVkOiBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIHZhciBocmVmID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVP
clNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXJlc291cmNlLWxpbmsiKSB8fCBldmVudC50YXJn
ZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtZXh0ZXJuYWwtbGlu
ayIpOworICAgICAgICBpZiAoaHJlZikgeworICAgICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0g
bmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOworICAgICAgICAgICAgdmFyIGZpbGxlZCA9
IHRoaXMuX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCwgaHJlZik7
CisgICAgICAgICAgICBpZiAoZmlsbGVkKQorICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LnNo
b3coZXZlbnQpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9wb3B1bGF0ZUhyZWZDb250ZXh0
TWVudTogZnVuY3Rpb24oY29udGV4dE1lbnUsIGV2ZW50LCBhbmNob3JFbGVtZW50KQorICAgIHsK
KyAgICAgICAgaWYgKCFhbmNob3JFbGVtZW50LmhyZWYpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgdmFyIHJlc291cmNlVVJMID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJM
Rm9yUmVsYXRlZE5vZGUoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5mb2N1c2VkRE9NTm9k
ZSwgYW5jaG9yRWxlbWVudC5ocmVmKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZVVSTCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBBZGQgcmVzb3VyY2UtcmVsYXRlZCBh
Y3Rpb25zLgorICAgICAgICAvLyBLZWVwIHRoZXNlIGNvbnNpc3RlbnQgd2l0aCB0aG9zZSBhZGRl
ZCBpbiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX3BvcHVsYXRl
SHJlZkNvbnRleHRNZW51KCkuCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIpLCBXZWJJbnNwZWN0b3Iu
b3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkwsIGZhbHNlKSk7CisgICAgICAgIGlm
IChXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwocmVzb3VyY2VVUkwpKQorICAgICAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wZW4gTGluayBp
biBSZXNvdXJjZXMgUGFuZWwiKSwgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZS5iaW5kKG51bGws
IHJlc291cmNlVVJMLCB0cnVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKICAg
ICB1cGRhdGU6IGZ1bmN0aW9uKG5vZGUsIGVkaXRlZFNlY3Rpb24sIGZvcmNlVXBkYXRlKQogICAg
IHsKICAgICAgICAgdmFyIHJlZnJlc2ggPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCmluZGV4IDg0MDc0NWYuLjRjMzhhNWEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNzg4LDYgKzc4OCwxNiBAQCBXZWJJbnNwZWN0
b3IuZG9jdW1lbnRDbGljayA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIGZvbGxvd0xpbmsoKTsKIH0K
IAorV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBpblJl
c291cmNlc1BhbmVsKQoreworICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJj
ZUZvclVSTChyZXNvdXJjZVVSTCk7CisgICAgaWYgKGluUmVzb3VyY2VzUGFuZWwgJiYgcmVzb3Vy
Y2UpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuc2hvd1Jlc291cmNl
KHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7
CisgICAgfSBlbHNlCisgICAgICAgIEluc3BlY3RvckJhY2tlbmQub3BlbkluSW5zcGVjdGVkV2lu
ZG93KHJlc291cmNlID8gcmVzb3VyY2UudXJsIDogcmVzb3VyY2VVUkwpOworfQorCiBXZWJJbnNw
ZWN0b3IuX3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rpb24oKQogewogICAgIHZhciBzaG9ydGN1
dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwpAQCAtMTgyOCw2ICsxODM4LDI5IEBA
IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmwsIHByZWZl
cnJlZFBhbmVsLCBsaW5lTnVtYmVyLCBjCiAgICAgcmV0dXJuIG5vZGU7CiB9CiAKK1dlYkluc3Bl
Y3Rvci5yZXNvdXJjZVVSTEZvclJlbGF0ZWROb2RlID0gZnVuY3Rpb24obm9kZSwgdXJsKQorewor
ICAgIGlmICghdXJsIHx8IHVybC5pbmRleE9mKCI6Ly8iKSA+IDApCisgICAgICAgIHJldHVybiB1
cmw7CisKKyAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRlID0gbm9kZTsgZnJhbWVPd25l
ckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1lT3duZXJDYW5kaWRhdGUucGFy
ZW50Tm9kZSkgeworICAgICAgICBpZiAoZnJhbWVPd25lckNhbmRpZGF0ZS5kb2N1bWVudFVSTCkg
eworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFdlYkluc3BlY3Rvci5jb21wbGV0ZVVSTChmcmFt
ZU93bmVyQ2FuZGlkYXRlLmRvY3VtZW50VVJMLCB1cmwpOworICAgICAgICAgICAgaWYgKHJlc3Vs
dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBkb2N1bWVudFVSTCBub3QgZm91bmQgb3IgaGFzIGJh
ZCB2YWx1ZQorICAgIGZvciAodmFyIHJlc291cmNlVVJMIGluIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVVSTE1hcCkgeworICAgICAgICB2YXIgbWF0Y2ggPSByZXNvdXJjZVVSTC5tYXRjaChXZWJJbnNw
ZWN0b3IuVVJMUmVnRXhwKTsKKyAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzRdID09PSB1cmwp
CisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VVUkw7CisgICAgfQorICAgIHJldHVybiB1cmw7
Cit9LAorCiBXZWJJbnNwZWN0b3IuY29tcGxldGVVUkwgPSBmdW5jdGlvbihiYXNlVVJMLCBocmVm
KQogewogICAgIHZhciBtYXRjaCA9IGJhc2VVUkwubWF0Y2goV2ViSW5zcGVjdG9yLlVSTFJlZ0V4
cCk7Cg==
</data>
<flag name="review"
          id="56201"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67032</attachid>
            <date>2010-09-09 08:08:52 -0700</date>
            <delta_ts>2010-09-09 10:17:14 -0700</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>navurls.patch</filename>
            <type>text/plain</type>
            <size>10530</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDNjMTc5Yi4uNzRkNTA2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0wOSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBuYXZpZ2F0aW9uIGl0ZW1z
IGludG8gdGhlIEVsZW1lbnRzIHBhbmVsIGNvbnRleHQgbWVudS4KKworICAgICAgICBGb3IgYWxs
IGFuY2hvcnMgdGhhdCBoYXZlIHRoZSBjbGFzcyBvZiAid2Via2l0LWh0bWwtcmVzb3VyY2UtbGlu
ayIgb3IgIndlYmtpdC1odG1sLWV4dGVybmFsLWxpbmsiLAorICAgICAgICBhIGN1c3RvbSBjb250
ZXh0IG1lbnUgd2l0aCB0aGUgaXRlbXMgIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiAoaW52b2tl
cyBJbnNwZWN0b3JCYWNrZW5kLm9wZW5Jbkluc3BlY3RlZFdpbmRvdygpIHdpdGgKKyAgICAgICAg
dGhlIHJlbGF0ZWQgVVJMKSBhbmQgIk9wZW4gTGluayBpbiBSZXNvdXJjZXMgUGFuZWwiIChvcGVu
cyB0aGUgcmVsYXRlZCByZXNvdXJjZSBpbiB0aGUgUmVzb3VyY2VzIHBhbmVsKSBpcyBzaG93bgor
ICAgICAgICAodGhlIGxhdHRlciBpdGVtIGlzIGRpc3BsYXllZCBvbmx5IGlmIHRoZSBjb3JyZXNw
b25kaW5nIHJlc291cmNlIGlzIGtub3duIHRvIHRoZSBXZWIgSW5zcGVjdG9yKS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjUwCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwucHJvdG90eXBlLnBvcHVsYXRlSHJlZkNvbnRleHRNZW51KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX2NvbnRleHRNZW51RXZlbnRG
aXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5
cGUuX2F0dHJpYnV0ZUhUTUwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUu
cHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1lbnUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLm9wZW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IucmVzb3VyY2VV
UkxGb3JSZWxhdGVkTm9kZSk6CisKIDIwMTAtMDktMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGMyNmMxNWZkOTZi
NTU3MGExOWY1ZDI4YmMzYmRmOGM5NzQ3ZjJhMTYuLmYzYjg1M2UyMTJiN2RjNWVkNzcwOTIxZjI5
M2EwNTQ3NjMyODBiMGIgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjA5CnpjbWRuP2pP
cERBclZUNVRsTTVKOThTKXF1Nzw/RXFmcGoqSTEpPiFne0Q5KStLc3BARVBoclJoQHt8fjJmZy1q
Kgp2dGk8NVlLKHgtdTMpYmpyOyNNQzd3NWI/cWVrbnJ7TG8hM15xIzl9QjY7R2FIVzRVPkdhPSQr
U2EtJUlJCgpkZWx0YSAxNApXY21hRiZmQCN8YHJWVDVUSCRQMTJeIz1leStYeDIkCgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCBjNjBkNGIxLi43
MjhjNDhlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQ
YW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cwpAQCAtMjYxLDYgKzI2MSwyMyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX25vZGVTZWFyY2hCdXR0b24udG9nZ2xlZCA9IGZhbHNlOwog
ICAgIH0sCiAKKyAgICBwb3B1bGF0ZUhyZWZDb250ZXh0TWVudTogZnVuY3Rpb24oY29udGV4dE1l
bnUsIGV2ZW50LCBhbmNob3JFbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFhbmNob3JFbGVt
ZW50LmhyZWYpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgdmFyIHJlc291
cmNlVVJMID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUodGhpcy5mb2N1
c2VkRE9NTm9kZSwgYW5jaG9yRWxlbWVudC5ocmVmKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZVVS
TCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBBZGQgcmVzb3VyY2Ut
cmVsYXRlZCBhY3Rpb25zLgorICAgICAgICAvLyBLZWVwIHRoZXNlIGNvbnNpc3RlbnQgd2l0aCB0
aG9zZSBhZGRlZCBpbiBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLl9w
b3B1bGF0ZUhyZWZDb250ZXh0TWVudSgpLgorICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVt
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3BlbiBMaW5rIGluIE5ldyBXaW5kb3ciKSwgV2ViSW5z
cGVjdG9yLm9wZW5SZXNvdXJjZS5iaW5kKG51bGwsIHJlc291cmNlVVJMLCBmYWxzZSkpOworICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHJlc291cmNlVVJMKSkKKyAgICAg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGVu
IExpbmsgaW4gUmVzb3VyY2VzIFBhbmVsIiksIFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UuYmlu
ZChudWxsLCByZXNvdXJjZVVSTCwgdHJ1ZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
LAorCiAgICAgX3VwZGF0ZU1hdGNoZXNDb3VudDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudCh0aGlzLl9zZWFyY2hSZXN1bHRz
Lmxlbmd0aCwgdGhpcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDEwMTMxZjQuLmY3YzU0MjcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC0yODUs
MTIgKzI4NSwyMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0
TWVudSgpOwogCisgICAgICAgIHZhciBocmVmID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVP
clNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXJlc291cmNlLWxpbmsiKSB8fCBldmVudC50YXJn
ZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtZXh0ZXJuYWwtbGlu
ayIpOwogICAgICAgICB2YXIgdGFnID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZX
aXRoQ2xhc3MoIndlYmtpdC1odG1sLXRhZyIpOwogICAgICAgICB2YXIgdGV4dE5vZGUgPSBldmVu
dC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtdGV4dC1u
b2RlIik7Ci0gICAgICAgIGlmICh0YWcgJiYgbGlzdEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVsYXRl
VGFnQ29udGV4dE1lbnUpCisgICAgICAgIHZhciBuZWVkU2VwYXJhdG9yOworICAgICAgICBpZiAo
aHJlZikgCisgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy5wb3B1bGF0ZUhyZWZDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQsIGhyZWYp
OworICAgICAgICBpZiAodGFnICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0Nv
bnRleHRNZW51KSB7CisgICAgICAgICAgICBpZiAobmVlZFNlcGFyYXRvcikKKyAgICAgICAgICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKICAgICAgICAgICAgIGxpc3RJdGVt
LnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCk7
Ci0gICAgICAgIGVsc2UgaWYgKHRleHROb2RlICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1
bGF0ZVRleHRDb250ZXh0TWVudSkKKyAgICAgICAgfSBlbHNlIGlmICh0ZXh0Tm9kZSAmJiBsaXN0
SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVUZXh0Q29udGV4dE1lbnUpIHsKKyAgICAgICAgICAg
IGlmIChuZWVkU2VwYXJhdG9yKQorICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNl
cGFyYXRvcigpOwogICAgICAgICAgICAgbGlzdEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVsYXRlVGV4
dENvbnRleHRNZW51KGNvbnRleHRNZW51LCB0ZXh0Tm9kZSk7CisgICAgICAgIH0KICAgICAgICAg
Y29udGV4dE1lbnUuc2hvdyhldmVudCk7CiAgICAgfQogfQpAQCAtMTE4OSwyOSArMTE5OCw2IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5faGlnaGxpZ2h0U2VhcmNoUmVzdWx0cygpOwogICAgIH0sCiAKLSAgICBfcmV3cml0ZUF0
dHJIcmVmOiBmdW5jdGlvbihub2RlLCBocmVmVmFsdWUpCi0gICAgewotICAgICAgICBpZiAoIWhy
ZWZWYWx1ZSB8fCBocmVmVmFsdWUuaW5kZXhPZigiOi8vIikgPiAwKQotICAgICAgICAgICAgcmV0
dXJuIGhyZWZWYWx1ZTsKLQotICAgICAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlkYXRlID0g
bm9kZTsgZnJhbWVPd25lckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZyYW1lT3du
ZXJDYW5kaWRhdGUucGFyZW50Tm9kZSkgewotICAgICAgICAgICAgaWYgKGZyYW1lT3duZXJDYW5k
aWRhdGUuZG9jdW1lbnRVUkwpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gV2ViSW5z
cGVjdG9yLmNvbXBsZXRlVVJMKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9jdW1lbnRVUkwsIGhyZWZW
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMgYmFkIHZh
bHVlCi0gICAgICAgIGZvciAodmFyIHVybCBpbiBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXAp
IHsKLSAgICAgICAgICAgIHZhciBtYXRjaCA9IHVybC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVn
RXhwKTsKLSAgICAgICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFs0XSA9PT0gaHJlZlZhbHVlKQot
ICAgICAgICAgICAgICAgIHJldHVybiB1cmw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGhy
ZWZWYWx1ZTsKLSAgICB9LAotCiAgICAgX2F0dHJpYnV0ZUhUTUw6IGZ1bmN0aW9uKG5hbWUsIHZh
bHVlLCBub2RlLCBsaW5raWZ5KQogICAgIHsKICAgICAgICAgdmFyIGhhc1RleHQgPSAodmFsdWUu
bGVuZ3RoID4gMCk7CkBAIC0xMjIxLDcgKzEyMDcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBodG1sICs9ICI9JiM4MjAzO1wi
IjsKIAogICAgICAgICBpZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9PT0g
ImhyZWYiKSkgewotICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSB0aGlzLl9yZXdyaXRl
QXR0ckhyZWYobm9kZSwgdmFsdWUpOworICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZShub2RlLCB2YWx1ZSk7CiAgICAg
ICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1MjAw
QiIpOwogICAgICAgICAgICAgaHRtbCArPSBsaW5raWZ5KHJld3JpdHRlbkhyZWYsIHZhbHVlLCAi
d2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIiwgbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp
ID09PSAiYSIpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDFkZGRkZTcuLmZjOTRjOWQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAg
LTY0LDYgKzY0LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lID0gZnVuY3Rpb24o
Y29tcHV0ZWRTdHlsZVBhbmUpCiAKICAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZCh0
aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudCk7CiAgICAgdGhpcy5fY29tcHV0ZWRTdHlsZVBhbmUg
PSBjb21wdXRlZFN0eWxlUGFuZTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1
ZSk7CiB9CiAKIC8vIFRha2VuIGZyb20gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvcHJvcGlk
eC5odG1sLgpAQCAtMTA1LDYgKzEwNiwzNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBh
bmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnRb
Ml0uc2VsZWN0ZWQgPSB0cnVlOwogICAgIH0sCiAKKyAgICBfY29udGV4dE1lbnVFdmVudEZpcmVk
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBocmVmID0gZXZlbnQudGFyZ2V0
LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXJlc291cmNlLWxpbmsi
KSB8fCBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0
bWwtZXh0ZXJuYWwtbGluayIpOworICAgICAgICBpZiAoaHJlZikgeworICAgICAgICAgICAgdmFy
IGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOworICAgICAgICAg
ICAgdmFyIGZpbGxlZCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMucG9wdWxhdGVIcmVm
Q29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCBocmVmKTsKKyAgICAgICAgICAgIGlmIChm
aWxsZWQpCisgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7CisgICAgICAg
IH0KKyAgICB9LAorCisgICAgX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51OiBmdW5jdGlvbihjb250
ZXh0TWVudSwgZXZlbnQsIGFuY2hvckVsZW1lbnQpCisgICAgeworICAgICAgICBpZiAoIWFuY2hv
ckVsZW1lbnQuaHJlZikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB2YXIg
cmVzb3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZShXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmZvY3VzZWRET01Ob2RlLCBhbmNob3JFbGVtZW50Lmhy
ZWYpOworICAgICAgICBpZiAoIXJlc291cmNlVVJMKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIC8vIEFkZCByZXNvdXJjZS1yZWxhdGVkIGFjdGlvbnMuCisgICAgICAgIC8v
IEtlZXAgdGhlc2UgY29uc2lzdGVudCB3aXRoIHRob3NlIGFkZGVkIGluIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1lbnUoKS4K
KyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9w
ZW4gTGluayBpbiBOZXcgV2luZG93IiksIFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UuYmluZChu
dWxsLCByZXNvdXJjZVVSTCwgZmFsc2UpKTsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5yZXNv
dXJjZUZvclVSTChyZXNvdXJjZVVSTCkpCisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJ
dGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3BlbiBMaW5rIGluIFJlc291cmNlcyBQYW5lbCIp
LCBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkwsIHRydWUp
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKwogICAgIHVwZGF0ZTogZnVuY3Rpb24o
bm9kZSwgZWRpdGVkU2VjdGlvbiwgZm9yY2VVcGRhdGUpCiAgICAgewogICAgICAgICB2YXIgcmVm
cmVzaCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5k
ZXggODQwNzQ1Zi4uNGMzOGE1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCkBAIC03ODgsNiArNzg4LDE2IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENsaWNrID0g
ZnVuY3Rpb24oZXZlbnQpCiAgICAgZm9sbG93TGluaygpOwogfQogCitXZWJJbnNwZWN0b3Iub3Bl
blJlc291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2VVUkwsIGluUmVzb3VyY2VzUGFuZWwpCit7Cisg
ICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHJlc291cmNlVVJM
KTsKKyAgICBpZiAoaW5SZXNvdXJjZXNQYW5lbCAmJiByZXNvdXJjZSkgeworICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2UpOworICAgICAg
ICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJyZXNvdXJjZXMiKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3cocmVzb3VyY2UgPyByZXNv
dXJjZS51cmwgOiByZXNvdXJjZVVSTCk7Cit9CisKIFdlYkluc3BlY3Rvci5fcmVnaXN0ZXJTaG9y
dGN1dHMgPSBmdW5jdGlvbigpCiB7CiAgICAgdmFyIHNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQ7CkBAIC0xODI4LDYgKzE4MzgsMjkgQEAgV2ViSW5zcGVjdG9yLmxpbmtp
ZnlSZXNvdXJjZUFzTm9kZSA9IGZ1bmN0aW9uKHVybCwgcHJlZmVycmVkUGFuZWwsIGxpbmVOdW1i
ZXIsIGMKICAgICByZXR1cm4gbm9kZTsKIH0KIAorV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMRm9y
UmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCit7CisgICAgaWYgKCF1cmwgfHwgdXJs
LmluZGV4T2YoIjovLyIpID4gMCkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIGZvciAodmFy
IGZyYW1lT3duZXJDYW5kaWRhdGUgPSBub2RlOyBmcmFtZU93bmVyQ2FuZGlkYXRlOyBmcmFtZU93
bmVyQ2FuZGlkYXRlID0gZnJhbWVPd25lckNhbmRpZGF0ZS5wYXJlbnROb2RlKSB7CisgICAgICAg
IGlmIChmcmFtZU93bmVyQ2FuZGlkYXRlLmRvY3VtZW50VVJMKSB7CisgICAgICAgICAgICB2YXIg
cmVzdWx0ID0gV2ViSW5zcGVjdG9yLmNvbXBsZXRlVVJMKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9j
dW1lbnRVUkwsIHVybCk7CisgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMgYmFkIHZhbHVlCisgICAgZm9yICh2
YXIgcmVzb3VyY2VVUkwgaW4gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwKSB7CisgICAgICAg
IHZhciBtYXRjaCA9IHJlc291cmNlVVJMLm1hdGNoKFdlYkluc3BlY3Rvci5VUkxSZWdFeHApOwor
ICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbNF0gPT09IHVybCkKKyAgICAgICAgICAgIHJldHVy
biByZXNvdXJjZVVSTDsKKyAgICB9CisgICAgcmV0dXJuIHVybDsKK30sCisKIFdlYkluc3BlY3Rv
ci5jb21wbGV0ZVVSTCA9IGZ1bmN0aW9uKGJhc2VVUkwsIGhyZWYpCiB7CiAgICAgdmFyIG1hdGNo
ID0gYmFzZVVSTC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVnRXhwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67051</attachid>
            <date>2010-09-09 10:17:14 -0700</date>
            <delta_ts>2010-09-10 04:41:00 -0700</delta_ts>
            <desc>[PATCH] Rebase + style fix</desc>
            <filename>navurls.patch</filename>
            <type>text/plain</type>
            <size>10536</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2QxZmNhYi4uY2MzMWIxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0wOSAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBuYXZpZ2F0aW9uIGl0ZW1z
IGludG8gdGhlIEVsZW1lbnRzIHBhbmVsIGNvbnRleHQgbWVudS4KKworICAgICAgICBGb3IgYWxs
IGFuY2hvcnMgdGhhdCBoYXZlIHRoZSBjbGFzcyBvZiAid2Via2l0LWh0bWwtcmVzb3VyY2UtbGlu
ayIgb3IgIndlYmtpdC1odG1sLWV4dGVybmFsLWxpbmsiLAorICAgICAgICBhIGN1c3RvbSBjb250
ZXh0IG1lbnUgd2l0aCB0aGUgaXRlbXMgIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiAoaW52b2tl
cyBJbnNwZWN0b3JCYWNrZW5kLm9wZW5Jbkluc3BlY3RlZFdpbmRvdygpIHdpdGgKKyAgICAgICAg
dGhlIHJlbGF0ZWQgVVJMKSBhbmQgIk9wZW4gTGluayBpbiBSZXNvdXJjZXMgUGFuZWwiIChvcGVu
cyB0aGUgcmVsYXRlZCByZXNvdXJjZSBpbiB0aGUgUmVzb3VyY2VzIHBhbmVsKSBpcyBzaG93bgor
ICAgICAgICAodGhlIGxhdHRlciBpdGVtIGlzIGRpc3BsYXllZCBvbmx5IGlmIHRoZSBjb3JyZXNw
b25kaW5nIHJlc291cmNlIGlzIGtub3duIHRvIHRoZSBXZWIgSW5zcGVjdG9yKS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjUwCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzUGFuZWwucHJvdG90eXBlLnBvcHVsYXRlSHJlZkNvbnRleHRNZW51KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX2NvbnRleHRNZW51RXZlbnRG
aXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5
cGUuX2F0dHJpYnV0ZUhUTUwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVz
U2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUu
cHJvdG90eXBlLl9jb250ZXh0TWVudUV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1lbnUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLm9wZW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IucmVzb3VyY2VV
UkxGb3JSZWxhdGVkTm9kZSk6CisKIDIwMTAtMDktMDkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMjhjZGYxYWZh
MWM5ZTBmZDVkZTYxYWExM2MxOWM1ZjZlYTM2NGU1Yy4uMzhkYmE5Yjg4OTk2MmQ1NjdiNjMzZDEw
MzQ4MjE5MmQ3NDA5MDkyNiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAyMTAKemNtWnA4
JmF+cXQofXZIPHNSYXpGNDAjTCszX2M4KktzcD05MD9gVCNlbjliWkFSUHxvciFlRkxjfWZoaUtv
TUlZCnlSJH1tSEFWS0hraDlxNWVUPFV7PkhXZFRTRkombFZOTT1aIz57VFBKaVE5Ql4pZGUre24/
RU1eYHZVLU4qRFklUgoKZGVsdGEgMTQKVmNtZG4tbEJ3WjIofXZIPG8zJkdXe1EpYE0yUW1OdgoK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggYzYw
ZDRiMS4uNzI4YzQ4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKQEAgLTI2MSw2ICsyNjEsMjMgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQgPSBm
YWxzZTsKICAgICB9LAogCisgICAgcG9wdWxhdGVIcmVmQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGNv
bnRleHRNZW51LCBldmVudCwgYW5jaG9yRWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmICghYW5j
aG9yRWxlbWVudC5ocmVmKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHZh
ciByZXNvdXJjZVVSTCA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTEZvclJlbGF0ZWROb2RlKHRo
aXMuZm9jdXNlZERPTU5vZGUsIGFuY2hvckVsZW1lbnQuaHJlZik7CisgICAgICAgIGlmICghcmVz
b3VyY2VVUkwpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gQWRkIHJl
c291cmNlLXJlbGF0ZWQgYWN0aW9ucy4KKyAgICAgICAgLy8gS2VlcCB0aGVzZSBjb25zaXN0ZW50
IHdpdGggdGhvc2UgYWRkZWQgaW4gV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3Rv
dHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1lbnUoKS4KKyAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93Iiks
IFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UuYmluZChudWxsLCByZXNvdXJjZVVSTCwgZmFsc2Up
KTsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCkp
CisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiT3BlbiBMaW5rIGluIFJlc291cmNlcyBQYW5lbCIpLCBXZWJJbnNwZWN0b3Iub3BlblJlc291
cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkwsIHRydWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfSwKKwogICAgIF91cGRhdGVNYXRjaGVzQ291bnQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVTZWFyY2hNYXRjaGVzQ291bnQodGhpcy5fc2VhcmNo
UmVzdWx0cy5sZW5ndGgsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCAxMDEzMWY0Li4xODg4YTE3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpA
QCAtMjg1LDEyICsyODUsMjEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJv
dG90eXBlID0gewogCiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29udGV4dE1lbnUoKTsKIAorICAgICAgICB2YXIgaHJlZiA9IGV2ZW50LnRhcmdldC5lbmNsb3Np
bmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC1yZXNvdXJjZS1saW5rIikgfHwgZXZl
bnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLWV4dGVy
bmFsLWxpbmsiKTsKICAgICAgICAgdmFyIHRhZyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10YWciKTsKICAgICAgICAgdmFyIHRleHROb2Rl
ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1s
LXRleHQtbm9kZSIpOwotICAgICAgICBpZiAodGFnICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9w
b3B1bGF0ZVRhZ0NvbnRleHRNZW51KQorICAgICAgICB2YXIgbmVlZFNlcGFyYXRvcjsKKyAgICAg
ICAgaWYgKGhyZWYpCisgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gV2ViSW5zcGVjdG9yLnBh
bmVscy5lbGVtZW50cy5wb3B1bGF0ZUhyZWZDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZlbnQs
IGhyZWYpOworICAgICAgICBpZiAodGFnICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0
ZVRhZ0NvbnRleHRNZW51KSB7CisgICAgICAgICAgICBpZiAobmVlZFNlcGFyYXRvcikKKyAgICAg
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKICAgICAgICAgICAgIGxp
c3RJdGVtLnRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KGNvbnRleHRNZW51LCBl
dmVudCk7Ci0gICAgICAgIGVsc2UgaWYgKHRleHROb2RlICYmIGxpc3RJdGVtLnRyZWVFbGVtZW50
Ll9wb3B1bGF0ZVRleHRDb250ZXh0TWVudSkKKyAgICAgICAgfSBlbHNlIGlmICh0ZXh0Tm9kZSAm
JiBsaXN0SXRlbS50cmVlRWxlbWVudC5fcG9wdWxhdGVUZXh0Q29udGV4dE1lbnUpIHsKKyAgICAg
ICAgICAgIGlmIChuZWVkU2VwYXJhdG9yKQorICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZFNlcGFyYXRvcigpOwogICAgICAgICAgICAgbGlzdEl0ZW0udHJlZUVsZW1lbnQuX3BvcHVs
YXRlVGV4dENvbnRleHRNZW51KGNvbnRleHRNZW51LCB0ZXh0Tm9kZSk7CisgICAgICAgIH0KICAg
ICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7CiAgICAgfQogfQpAQCAtMTE4OSwyOSArMTE5
OCw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5faGlnaGxpZ2h0U2VhcmNoUmVzdWx0cygpOwogICAgIH0sCiAKLSAgICBfcmV3
cml0ZUF0dHJIcmVmOiBmdW5jdGlvbihub2RlLCBocmVmVmFsdWUpCi0gICAgewotICAgICAgICBp
ZiAoIWhyZWZWYWx1ZSB8fCBocmVmVmFsdWUuaW5kZXhPZigiOi8vIikgPiAwKQotICAgICAgICAg
ICAgcmV0dXJuIGhyZWZWYWx1ZTsKLQotICAgICAgICBmb3IgKHZhciBmcmFtZU93bmVyQ2FuZGlk
YXRlID0gbm9kZTsgZnJhbWVPd25lckNhbmRpZGF0ZTsgZnJhbWVPd25lckNhbmRpZGF0ZSA9IGZy
YW1lT3duZXJDYW5kaWRhdGUucGFyZW50Tm9kZSkgewotICAgICAgICAgICAgaWYgKGZyYW1lT3du
ZXJDYW5kaWRhdGUuZG9jdW1lbnRVUkwpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0g
V2ViSW5zcGVjdG9yLmNvbXBsZXRlVVJMKGZyYW1lT3duZXJDYW5kaWRhdGUuZG9jdW1lbnRVUkws
IGhyZWZWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMg
YmFkIHZhbHVlCi0gICAgICAgIGZvciAodmFyIHVybCBpbiBXZWJJbnNwZWN0b3IucmVzb3VyY2VV
UkxNYXApIHsKLSAgICAgICAgICAgIHZhciBtYXRjaCA9IHVybC5tYXRjaChXZWJJbnNwZWN0b3Iu
VVJMUmVnRXhwKTsKLSAgICAgICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFs0XSA9PT0gaHJlZlZh
bHVlKQotICAgICAgICAgICAgICAgIHJldHVybiB1cmw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIGhyZWZWYWx1ZTsKLSAgICB9LAotCiAgICAgX2F0dHJpYnV0ZUhUTUw6IGZ1bmN0aW9uKG5h
bWUsIHZhbHVlLCBub2RlLCBsaW5raWZ5KQogICAgIHsKICAgICAgICAgdmFyIGhhc1RleHQgPSAo
dmFsdWUubGVuZ3RoID4gMCk7CkBAIC0xMjIxLDcgKzEyMDcsNyBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBodG1sICs9ICI9JiM4
MjAzO1wiIjsKIAogICAgICAgICBpZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFt
ZSA9PT0gImhyZWYiKSkgewotICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhyZWYgPSB0aGlzLl9y
ZXdyaXRlQXR0ckhyZWYobm9kZSwgdmFsdWUpOworICAgICAgICAgICAgdmFyIHJld3JpdHRlbkhy
ZWYgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9kZShub2RlLCB2YWx1ZSk7
CiAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIk
MVx1MjAwQiIpOwogICAgICAgICAgICAgaHRtbCArPSBsaW5raWZ5KHJld3JpdHRlbkhyZWYsIHZh
bHVlLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIiwgbm9kZS5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpID09PSAiYSIpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDFkZGRkZTcuLmZjOTRjOWQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMKQEAgLTY0LDYgKzY0LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lID0gZnVu
Y3Rpb24oY29tcHV0ZWRTdHlsZVBhbmUpCiAKICAgICB0aGlzLnRpdGxlRWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudCk7CiAgICAgdGhpcy5fY29tcHV0ZWRTdHls
ZVBhbmUgPSBjb21wdXRlZFN0eWxlUGFuZTsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlz
KSwgdHJ1ZSk7CiB9CiAKIC8vIFRha2VuIGZyb20gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEv
cHJvcGlkeC5odG1sLgpAQCAtMTA1LDYgKzEwNiwzNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lk
ZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVs
ZW1lbnRbMl0uc2VsZWN0ZWQgPSB0cnVlOwogICAgIH0sCiAKKyAgICBfY29udGV4dE1lbnVFdmVu
dEZpcmVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBocmVmID0gZXZlbnQu
dGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXJlc291cmNl
LWxpbmsiKSB8fCBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Vi
a2l0LWh0bWwtZXh0ZXJuYWwtbGluayIpOworICAgICAgICBpZiAoaHJlZikgeworICAgICAgICAg
ICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOworICAg
ICAgICAgICAgdmFyIGZpbGxlZCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMucG9wdWxh
dGVIcmVmQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50LCBocmVmKTsKKyAgICAgICAgICAg
IGlmIChmaWxsZWQpCisgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7Cisg
ICAgICAgIH0KKyAgICB9LAorCisgICAgX3BvcHVsYXRlSHJlZkNvbnRleHRNZW51OiBmdW5jdGlv
bihjb250ZXh0TWVudSwgZXZlbnQsIGFuY2hvckVsZW1lbnQpCisgICAgeworICAgICAgICBpZiAo
IWFuY2hvckVsZW1lbnQuaHJlZikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICB2YXIgcmVzb3VyY2VVUkwgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxGb3JSZWxhdGVkTm9k
ZShXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmZvY3VzZWRET01Ob2RlLCBhbmNob3JFbGVt
ZW50LmhyZWYpOworICAgICAgICBpZiAoIXJlc291cmNlVVJMKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIC8vIEFkZCByZXNvdXJjZS1yZWxhdGVkIGFjdGlvbnMuCisgICAg
ICAgIC8vIEtlZXAgdGhlc2UgY29uc2lzdGVudCB3aXRoIHRob3NlIGFkZGVkIGluIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fcG9wdWxhdGVIcmVmQ29udGV4dE1l
bnUoKS4KKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiksIFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2Uu
YmluZChudWxsLCByZXNvdXJjZVVSTCwgZmFsc2UpKTsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5yZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCkpCisgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3BlbiBMaW5rIGluIFJlc291cmNlcyBQ
YW5lbCIpLCBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlLmJpbmQobnVsbCwgcmVzb3VyY2VVUkws
IHRydWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKwogICAgIHVwZGF0ZTogZnVu
Y3Rpb24obm9kZSwgZWRpdGVkU2VjdGlvbiwgZm9yY2VVcGRhdGUpCiAgICAgewogICAgICAgICB2
YXIgcmVmcmVzaCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggODQwNzQ1Zi4uNGMzOGE1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCkBAIC03ODgsNiArNzg4LDE2IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENs
aWNrID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgZm9sbG93TGluaygpOwogfQogCitXZWJJbnNwZWN0
b3Iub3BlblJlc291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2VVUkwsIGluUmVzb3VyY2VzUGFuZWwp
Cit7CisgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHJlc291
cmNlVVJMKTsKKyAgICBpZiAoaW5SZXNvdXJjZXNQYW5lbCAmJiByZXNvdXJjZSkgeworICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3VyY2UpOwor
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJyZXNvdXJjZXMiKTsKKyAgICB9IGVsc2UK
KyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3cocmVzb3VyY2Ug
PyByZXNvdXJjZS51cmwgOiByZXNvdXJjZVVSTCk7Cit9CisKIFdlYkluc3BlY3Rvci5fcmVnaXN0
ZXJTaG9ydGN1dHMgPSBmdW5jdGlvbigpCiB7CiAgICAgdmFyIHNob3J0Y3V0ID0gV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQ7CkBAIC0xODI4LDYgKzE4MzgsMjkgQEAgV2ViSW5zcGVjdG9y
LmxpbmtpZnlSZXNvdXJjZUFzTm9kZSA9IGZ1bmN0aW9uKHVybCwgcHJlZmVycmVkUGFuZWwsIGxp
bmVOdW1iZXIsIGMKICAgICByZXR1cm4gbm9kZTsKIH0KIAorV2ViSW5zcGVjdG9yLnJlc291cmNl
VVJMRm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCit7CisgICAgaWYgKCF1cmwg
fHwgdXJsLmluZGV4T2YoIjovLyIpID4gMCkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIGZv
ciAodmFyIGZyYW1lT3duZXJDYW5kaWRhdGUgPSBub2RlOyBmcmFtZU93bmVyQ2FuZGlkYXRlOyBm
cmFtZU93bmVyQ2FuZGlkYXRlID0gZnJhbWVPd25lckNhbmRpZGF0ZS5wYXJlbnROb2RlKSB7Cisg
ICAgICAgIGlmIChmcmFtZU93bmVyQ2FuZGlkYXRlLmRvY3VtZW50VVJMKSB7CisgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gV2ViSW5zcGVjdG9yLmNvbXBsZXRlVVJMKGZyYW1lT3duZXJDYW5kaWRh
dGUuZG9jdW1lbnRVUkwsIHVybCk7CisgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKworICAgIC8vIGRvY3VtZW50VVJMIG5vdCBmb3VuZCBvciBoYXMgYmFkIHZhbHVlCisgICAg
Zm9yICh2YXIgcmVzb3VyY2VVUkwgaW4gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwKSB7Cisg
ICAgICAgIHZhciBtYXRjaCA9IHJlc291cmNlVVJMLm1hdGNoKFdlYkluc3BlY3Rvci5VUkxSZWdF
eHApOworICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbNF0gPT09IHVybCkKKyAgICAgICAgICAg
IHJldHVybiByZXNvdXJjZVVSTDsKKyAgICB9CisgICAgcmV0dXJuIHVybDsKK30sCisKIFdlYklu
c3BlY3Rvci5jb21wbGV0ZVVSTCA9IGZ1bmN0aW9uKGJhc2VVUkwsIGhyZWYpCiB7CiAgICAgdmFy
IG1hdGNoID0gYmFzZVVSTC5tYXRjaChXZWJJbnNwZWN0b3IuVVJMUmVnRXhwKTsK
</data>
<flag name="review"
          id="56236"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>