<?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>77619</bug_id>
          
          <creation_ts>2012-02-02 02:11:36 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce &quot;Copy XPath&quot; popup menu item for DOM elements</short_desc>
          <delta_ts>2012-02-03 10:03:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77749</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</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>547744</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-02 02:11:36 -0800</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547868</commentid>
    <comment_count>1</comment_count>
      <attachid>125134</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-02 08:02:33 -0800</bug_when>
    <thetext>Created attachment 125134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548720</commentid>
    <comment_count>2</comment_count>
      <attachid>125134</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-02-03 08:04:09 -0800</bug_when>
    <thetext>Comment on attachment 125134
Patch

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

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:539
&gt; +    xPathValue: function(optimized)

Should be private as well as _xPathIndex()?

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:549
&gt; +                return new  WebInspector.DOMNode.XPathStep(&quot;//*[@id=\&quot;&quot; + this.getAttribute(&quot;id&quot;) + &quot;\&quot;]&quot;, true);

double space between new and WebInspector.

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:580
&gt; +     * @return -1 in case of error, 0 if no siblings matching the same expression, &lt;XPath index among the same expression-matching sibling nodes&gt; otherwise.

Please add type annotation here and move description to a separate comment inside function.

&gt; Source/WebCore/inspector/front-end/ElementsTreeOutline.js:1710
&gt; +        this.representedObject.copyXPath(true);

Please add this argument to copyXPath() method, r- for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548729</commentid>
    <comment_count>3</comment_count>
      <attachid>125333</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-03 08:19:17 -0800</bug_when>
    <thetext>Created attachment 125333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548736</commentid>
    <comment_count>4</comment_count>
      <attachid>125333</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-02-03 08:25:06 -0800</bug_when>
    <thetext>Comment on attachment 125333
Patch

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

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:300
&gt; +    copyXPath: function(optimized)

Please add @param annotation for optimized.

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:520
&gt; +    xPath: function(optimized)

ditto

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:544
&gt; +    _xPathValue: function(optimized)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548758</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-03 08:43:44 -0800</bug_when>
    <thetext>Committed r106664: &lt;http://trac.webkit.org/changeset/106664&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125134</attachid>
            <date>2012-02-02 08:02:33 -0800</date>
            <delta_ts>2012-02-03 08:19:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77619-20120202200231.patch</filename>
            <type>text/plain</type>
            <size>12377</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3Nzk2MWY2ODJlOTQ0
NzliN2FjZDkyMzEzZWRhMzA5ODI0ZDU2Zi4uOTk1MTYwOTg2ODY3OGI5MmViNWFkODQ1OTljNDEw
YTllNDYzN2Q5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW50cm9kdWNlICJDb3B5IFhQYXRoIiBwb3B1cCBtZW51IGl0ZW0gZm9yIERPTSBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBYUGF0
aCBpcyBvcHRpbWl6ZWQgd2hlbmV2ZXIgYW4gZWxlbWVudCBoYXMgdGhlICJpZCIgYXR0cmlidXRl
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9lbGVtZW50cy9ub2RlLXhwYXRoLnhodG1sCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLlhQYXRoU3RlcCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5YUGF0aFN0
ZXAucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnBy
b3RvdHlwZS5jb3B5WFBhdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90
eXBlLmlzWE1MTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUu
eFBhdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnhQYXRoVmFs
dWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLl94UGF0aEluZGV4
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX3Bv
cHVsYXRlTm9kZUNvbnRleHRNZW51KToKKwogMjAxMi0wMi0wMiAgS2ludWtvIFlhc3VkYSAgPGtp
bnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2xlYW51cDogTW92ZSBjaHJvbWUtc3BlY2lm
aWMgZmlsZXN5c3RlbSB0eXBlIGhhbmRsaW5nIGNvZGUgKGZvciBGaWxlU3lzdGVtIEFQSSkgdW5k
ZXIgY2hyb21pdW0gZGlyZWN0b3J5IChyZS1sYW5kaW5nIHIxMDUzOTUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZDg0OThkOWFj
NzI2NjY5NmI1Njg0YjQyMjA2YjM5YmI3OGY3Y2ViMC4uY2RhZTI3MGM5Mzk1MmExZTk0NjMxOWUw
YjU3NjdkMGMyYmExMzZhNiAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA0NAp4Y21hRUpm
I3VYaW1KTnhIYH4/aF4zPD9ZcDM7XyZAMz8mUjFsTGMoV1M7NCU/NE4+fT1WOyVYUTB7fXMmNFZN
NF8KCmRlbHRhIDE0CldjbVg/Z2s+JCs9bUpOeEhvQSowJUtMLUZoSHdSWSQKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRleCAwNDczMjM1ZDhh
OWI0MDBmYjVlMWYxZGVlZDY0MTliMDUyYTg3MTg5Li4xODU2MTExZDA4NWUzODkzY2NjNTI2Mjdl
YWE1YmJkODc0YWE3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKQEAgLTg0LDYgKzg0LDI0IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0g
ZnVuY3Rpb24oZG9tQWdlbnQsIGRvYywgcGF5bG9hZCkgewogICAgIH0KIH0KIAorLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICogQHBhcmFtIHtib29sZWFu
fSBvcHRpbWl6ZWQKKyAqLworV2ViSW5zcGVjdG9yLkRPTU5vZGUuWFBhdGhTdGVwID0gZnVuY3Rp
b24odmFsdWUsIG9wdGltaXplZCkKK3sKKyAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgdGhp
cy5vcHRpbWl6ZWQgPSBvcHRpbWl6ZWQ7Cit9CisKK1dlYkluc3BlY3Rvci5ET01Ob2RlLlhQYXRo
U3RlcC5wcm90b3R5cGUgPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLnZhbHVlOworICAgIH0KK30KKwogV2ViSW5zcGVjdG9yLkRPTU5vZGUu
cHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CkBAIC0yNzks
NiArMjk3LDExIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAg
RE9NQWdlbnQuZ2V0T3V0ZXJIVE1MKHRoaXMuaWQsIGNvcHkpOwogICAgIH0sCiAKKyAgICBjb3B5
WFBhdGg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5j
b3B5VGV4dCh0aGlzLnhQYXRoKHRydWUpKTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBh
cmFtIHtmdW5jdGlvbig/UHJvdG9jb2wuRXJyb3IpPX0gY2FsbGJhY2sKICAgICAgKi8KQEAgLTQ4
OSw2ICs1MTIsMTEzIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKICAgICBp
c1hNTE5vZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiAhIXRoaXMub3duZXJE
b2N1bWVudCAmJiAhIXRoaXMub3duZXJEb2N1bWVudC54bWxWZXJzaW9uOworICAgIH0sCisKKyAg
ICB4UGF0aDogZnVuY3Rpb24ob3B0aW1pemVkKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX25v
ZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpCisgICAgICAgICAgICByZXR1cm4gIi8iOwor
CisgICAgICAgIHZhciBzdGVwcyA9IFtdOworICAgICAgICB2YXIgY29udGV4dE5vZGUgPSB0aGlz
OworICAgICAgICB3aGlsZSAoY29udGV4dE5vZGUpIHsKKyAgICAgICAgICAgIHZhciBzdGVwID0g
Y29udGV4dE5vZGUueFBhdGhWYWx1ZShvcHRpbWl6ZWQpOworICAgICAgICAgICAgc3RlcHMucHVz
aChzdGVwKTsKKyAgICAgICAgICAgIGlmIChzdGVwLm9wdGltaXplZCkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNvbnRleHROb2RlID0gY29udGV4dE5vZGUucGFyZW50Tm9k
ZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ZXBzLnJldmVyc2UoKTsKKyAgICAgICAgcmV0dXJu
IChzdGVwc1swXS5vcHRpbWl6ZWQgPyAiIiA6ICIvIikgKyBzdGVwcy5qb2luKCIvIik7CisgICAg
fSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5ET01Ob2RlLlhQYXRo
U3RlcH0KKyAgICAgKi8KKyAgICB4UGF0aFZhbHVlOiBmdW5jdGlvbihvcHRpbWl6ZWQpCisgICAg
eworICAgICAgICB2YXIgb3duVmFsdWU7CisgICAgICAgIHZhciBvd25JbmRleCA9IHRoaXMuX3hQ
YXRoSW5kZXgoKTsKKyAgICAgICAgaWYgKG93bkluZGV4ID09PSAtMSkKKyAgICAgICAgICAgIHJl
dHVybiAiIjsgLy8gRXJyb3IuCisKKyAgICAgICAgc3dpdGNoICh0aGlzLl9ub2RlVHlwZSkgewor
ICAgICAgICBjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKG9wdGltaXpl
ZCAmJiB0aGlzLmdldEF0dHJpYnV0ZSgiaWQiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
ICBXZWJJbnNwZWN0b3IuRE9NTm9kZS5YUGF0aFN0ZXAoIi8vKltAaWQ9XCIiICsgdGhpcy5nZXRB
dHRyaWJ1dGUoImlkIikgKyAiXCJdIiwgdHJ1ZSk7CisgICAgICAgICAgICBvd25WYWx1ZSA9IHRo
aXMuX2xvY2FsTmFtZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGUuQVRU
UklCVVRFX05PREU6CisgICAgICAgICAgICBvd25WYWx1ZSA9ICJAIiArIHRoaXMuX25vZGVOYW1l
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5URVhUX05PREU6CisgICAg
ICAgIGNhc2UgTm9kZS5DREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgICAgICBvd25WYWx1ZSA9
ICJ0ZXh0KCkiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5QUk9DRVNT
SU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICBvd25WYWx1ZSA9ICJwcm9jZXNzaW5n
LWluc3RydWN0aW9uKCkiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5D
T01NRU5UX05PREU6CisgICAgICAgICAgICBvd25WYWx1ZSA9ICJjb21tZW50KCkiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9OT0RFOgorICAgICAgICAg
ICAgb3duVmFsdWUgPSAiIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgb3duVmFsdWUgPSAiIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG93bkluZGV4ID4gMCkKKyAgICAgICAgICAgIG93blZhbHVlICs9ICJb
IiArIG93bkluZGV4ICsgIl0iOworCisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkRP
TU5vZGUuWFBhdGhTdGVwKG93blZhbHVlLCB0aGlzLl9ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVO
VF9OT0RFKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiAtMSBpbiBjYXNlIG9m
IGVycm9yLCAwIGlmIG5vIHNpYmxpbmdzIG1hdGNoaW5nIHRoZSBzYW1lIGV4cHJlc3Npb24sIDxY
UGF0aCBpbmRleCBhbW9uZyB0aGUgc2FtZSBleHByZXNzaW9uLW1hdGNoaW5nIHNpYmxpbmcgbm9k
ZXM+IG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBfeFBhdGhJbmRleDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgZnVuY3Rpb24gYXJlTm9kZXNTaW1pbGFyKGxlZnQsIHJpZ2h0KQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAobGVmdCA9PT0gcmlnaHQpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmIChsZWZ0Ll9ub2RlVHlwZSA9PT0gTm9kZS5FTEVN
RU5UX05PREUgJiYgcmlnaHQuX25vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbGVmdC5fbG9jYWxOYW1lID09PSByaWdodC5fbG9jYWxOYW1lOwor
CisgICAgICAgICAgICBpZiAobGVmdC5fbm9kZVR5cGUgPT09IHJpZ2h0Ll9ub2RlVHlwZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgLy8gWFBhdGggdHJlYXRz
IENEQVRBIGFzIHRleHQgbm9kZXMuCisgICAgICAgICAgICB2YXIgbGVmdFR5cGUgPSBsZWZ0Ll9u
b2RlVHlwZSA9PT0gTm9kZS5DREFUQV9TRUNUSU9OX05PREUgPyBOb2RlLlRFWFRfTk9ERSA6IGxl
ZnQuX25vZGVUeXBlOworICAgICAgICAgICAgdmFyIHJpZ2h0VHlwZSA9IHJpZ2h0Ll9ub2RlVHlw
ZSA9PT0gTm9kZS5DREFUQV9TRUNUSU9OX05PREUgPyBOb2RlLlRFWFRfTk9ERSA6IHJpZ2h0Ll9u
b2RlVHlwZTsKKyAgICAgICAgICAgIHJldHVybiBsZWZ0VHlwZSA9PT0gcmlnaHRUeXBlOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIHNpYmxpbmdzID0gdGhpcy5wYXJlbnROb2RlID8gdGhpcy5w
YXJlbnROb2RlLmNoaWxkcmVuIDogbnVsbDsKKyAgICAgICAgaWYgKCFzaWJsaW5ncykKKyAgICAg
ICAgICAgIHJldHVybiAwOyAvLyBSb290IG5vZGUgLSBubyBzaWJsaW5ncy4KKyAgICAgICAgdmFy
IGhhc1NhbWVOYW1lZEVsZW1lbnRzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpYmxp
bmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoYXJlTm9kZXNTaW1pbGFyKHRoaXMs
IHNpYmxpbmdzW2ldKSAmJiBzaWJsaW5nc1tpXSAhPT0gdGhpcykgeworICAgICAgICAgICAgICAg
IGhhc1NhbWVOYW1lZEVsZW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWhhc1NhbWVOYW1lZEVsZW1lbnRz
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHZhciBvd25JbmRleCA9IDE7IC8vIFhQ
YXRoIGluZGljZXMgc3RhcnQgd2l0aCAxLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNp
YmxpbmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoYXJlTm9kZXNTaW1pbGFyKHRo
aXMsIHNpYmxpbmdzW2ldKSkgeworICAgICAgICAgICAgICAgIGlmIChzaWJsaW5nc1tpXSA9PT0g
dGhpcykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG93bkluZGV4OworICAgICAgICAgICAg
ICAgICsrb3duSW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IC0xOyAvLyBBbiBlcnJvciBvY2N1cnJlZDogfHRoaXN8IG5vdCBmb3VuZCBpbiBwYXJlbnQncyBj
aGlsZHJlbi4KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCBhODcyMTgzZDQ0OWEw
YjFjYjJlZWJmMjI3NDk0MWY2YTcxMWE4ZTIxLi45MTQxZGVmYzk5MzhhYTRiZTNmOWZiMTNjNDll
YzZmMzk4MzMzZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC0xMDYyLDYgKzEwNjIsNyBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8v
IEFkZCBmcmVlLWZvcm0gbm9kZS1yZWxhdGVkIGFjdGlvbnMuCiAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFZGl0IGFzIEhUTUwiKSwgdGhpcy5f
ZWRpdEFzSFRNTC5iaW5kKHRoaXMpKTsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvcHkgYXMgSFRNTCIpLCB0aGlzLl9jb3B5SFRNTC5iaW5k
KHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNvcHkgWFBhdGgiKSwgdGhpcy5fY29weVhQYXRoLmJpbmQodGhpcykpOwogICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNwZWN0
b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIkRlbGV0ZSBub2RlIiA6ICJEZWxldGUgTm9k
ZSIpLCB0aGlzLnJlbW92ZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCkBAIC0xNzA0LDYgKzE3MDUs
MTEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNvcHlOb2RlKCk7CiAgICAgfSwKIAorICAgIF9j
b3B5WFBhdGg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuY29weVhQYXRoKHRydWUpOworICAgIH0sCisKICAgICBfaGlnaGxpZ2h0U2VhcmNoUmVzdWx0
czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zZWFyY2hRdWVyeSB8fCAh
dGhpcy5fc2VhcmNoSGlnaGxpZ2h0c1Zpc2libGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWJlZDRiODYwNDNmZjUwMDU1
N2Q3Y2JlMzBiNGI2YjVmNzkzYWIyYS4uMGE3OTUyZmRhNmQ1NDEzODRmODA2MTI1MDVkOWEyMjQ2
M2U1NmJhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTAyICBBbGV4YW5kZXIgUGF2
bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW50
cm9kdWNlICJDb3B5IFhQYXRoIiBwb3B1cCBtZW51IGl0ZW0gZm9yIERPTSBlbGVtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9l
bGVtZW50cy9ub2RlLXhwYXRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL25vZGUteHBhdGgueGh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTAyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUaGUgdGhpcmQgYXJn
dW1lbnQgb2YgYWRkRXZlbnRMaXN0ZW5lci9yZW1vdmVFdmVudExpc3RlbmVyIG9mIFBlZXJDb25u
ZWN0aW9uIHNob3VsZCBiZSBvcHRpb25hbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL25vZGUteHBhdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL25vZGUteHBhdGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNjI3ZDcz
OTYyZTA4MzA1ZjljMGZjZWI0MmVmMDQxZWM0OWQ2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbm9kZS14cGF0aC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzMyBAQAorVGVzdHMgRE9NTm9kZS54UGF0aCgpCisKKzMgUHJlZml4ICBTdWZmaXgKKzQK
KzUKKzYKKycjZG9jdW1lbnQnOicnIC0gJy8nCisgICcnOicgUHJlLWNvbW1lbnQgJyAtICcvY29t
bWVudCgpWzFdJworICAnaHRtbCc6JycgLSAnL2h0bWwnCisgICAgJ2hlYWQnOicnIC0gJy9odG1s
L2hlYWQnCisgICAgICAnc2NyaXB0JzonJyAtICcvLypbQGlkPSJzY3JpcHQtaWQiXScKKyAgICAg
ICdzY3JpcHQnOicnIC0gJy9odG1sL2hlYWQvc2NyaXB0WzJdJworICAgICAgJ3NjcmlwdCc6Jycg
LSAnL2h0bWwvaGVhZC9zY3JpcHRbNF0nCisgICAgICAgICcnOidcbi8vIENvbW1lbnRcbi8vJyAt
ICcvaHRtbC9oZWFkL3NjcmlwdFs0XS90ZXh0KClbMV0nCisgICAgICAgICcnOidcbmZ1bmN0aW9u
IGYoKVxue1xuICAgIGRvY3VtZW50LndyaXRlKCI8Iik7XG59XG4vLycgLSAnL2h0bWwvaGVhZC9z
Y3JpcHRbNF0vdGV4dCgpWzJdJworICAgICdib2R5JzonJyAtICcvaHRtbC9ib2R5JworICAgICAg
J3AnOicnIC0gJy9odG1sL2JvZHkvcCcKKyAgICAgICAgJyc6J1Rlc3RzIERPTU5vZGUueFBhdGgo
KScgLSAnL2h0bWwvYm9keS9wL3RleHQoKScKKyAgICAgICdkaXYnOicnIC0gJy8vKltAaWQ9Imlk
MSJdJworICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQyIl0nCisgICAgICAnZGl2JzonJyAt
ICcvLypbQGlkPSJjb250YWluZXIiXScKKyAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQz
Il0nCisgICAgICAgICAgJyc6JzMgUHJlZml4ICcgLSAnLy8qW0BpZD0iaWQzIl0vdGV4dCgpWzFd
JworICAgICAgICAgICcnOic8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+JyAtICcv
LypbQGlkPSJpZDMiXS90ZXh0KClbMl0nCisgICAgICAgICAgJyc6JyBTdWZmaXgnIC0gJy8vKltA
aWQ9ImlkMyJdL3RleHQoKVszXScKKyAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQ0Il0n
CisgICAgICAgICAgJyc6JzQnIC0gJy8vKltAaWQ9ImlkNCJdL3RleHQoKScKKyAgICAgICAgJ2Rp
dic6JycgLSAnLy8qW0BpZD0iaWQ1Il0nCisgICAgICAgICAgJyc6JzUnIC0gJy8vKltAaWQ9Imlk
NSJdL3RleHQoKScKKyAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQ2Il0nCisgICAgICAg
ICAgJyc6JzYnIC0gJy8vKltAaWQ9ImlkNiJdL3RleHQoKScKKyAgJyc6JyBQb3N0LWNvbW1lbnQg
JyAtICcvY29tbWVudCgpWzJdJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvbm9kZS14cGF0aC54aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9ub2RlLXhwYXRoLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3OWVlMjlkNTMzMGQ1YWUwOTViOWZhZWRm
OTZkMjA4Y2UxNWY3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvbm9kZS14cGF0aC54aHRtbApAQCAtMCwwICsxLDc0IEBACis8IS0tIFByZS1jb21t
ZW50IC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiIGlkPSJzY3JpcHQtaWQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0i
dGVzdC1zY3JpcHQiPgorLy88IVtDREFUQVsKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKGR1bXBOb2Rlcy5iaW5kKG51bGwsICIiKSk7Cisg
ICAgdmFyIGRvYzsKKworICAgIGZ1bmN0aW9uIGR1bXBOb2RlcyhwcmVmaXgsIG5vZGUpCisgICAg
eworICAgICAgICBpZiAoIWRvYykgeworICAgICAgICAgICAgZG9jID0gZ2V0RG9jdW1lbnRFbGVt
ZW50KCk7CisgICAgICAgICAgICBub2RlID0gZG9jOworICAgICAgICB9CisgICAgICAgIGlmIChu
b2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gInRlc3Qtc2NyaXB0IikKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgZHVtcE5vZGVEYXRhKG5vZGUsIHByZWZpeCk7CisgICAgICAgIHZhciBj
aGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBjaGlsZHJl
biAmJiBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBkdW1wTm9kZXMocHJl
Zml4ICsgIiAgIiwgY2hpbGRyZW5baV0pOworICAgICAgICBpZiAobm9kZSA9PT0gZG9jKQorICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBnZXREb2N1bWVudEVsZW1lbnQoKQorICAgIHsKKyAgICAgICAgdmFyIG1hcCA9IFdlYklu
c3BlY3Rvci5kb21BZ2VudC5faWRUb0RPTU5vZGU7CisgICAgICAgIGZvciAodmFyIGlkIGluIG1h
cCkgeworICAgICAgICAgICAgaWYgKG1hcFtpZF0ubm9kZU5hbWUoKSA9PT0gIiNkb2N1bWVudCIp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hcFtpZF07CisgICAgICAgIH0KKworICAgICAgICBy
ZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wTm9kZURhdGEobm9kZSwgcHJl
Zml4KQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IHByZWZpeCArICInIiArIG5vZGUubm9k
ZU5hbWUoKSArICInOiciICsgbm9kZS5ub2RlVmFsdWUoKSArICInIC0gJyIgKyBub2RlLnhQYXRo
KHRydWUpICsgIiciOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXN1bHQucmVw
bGFjZSgvXG4vZywgIlxcbiIpKTsKKyAgICB9Cit9CisvL11dPgorPC9zY3JpcHQ+Cis8c2NyaXB0
PgorLy8gQ29tbWVudAorLy88IVtDREFUQVsKK2Z1bmN0aW9uIGYoKQoreworICAgIGRvY3VtZW50
LndyaXRlKCI8Iik7Cit9CisvL11dPgorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIERPTU5vZGUueFBhdGgoKTwvcD4KKworPGRpdiBpZD0i
aWQxIiBjbGFzcz0iZm9vIj48L2Rpdj4KKzxkaXYgaWQ9ImlkMiIgY2xhc3M9ImZvbyI+PC9kaXY+
CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBpZD0iaWQzIiBjbGFzcz0iZm9vIj4z
IFByZWZpeCA8IVtDREFUQVs8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+XV0+IFN1
ZmZpeDwvZGl2PgorICAgIDxkaXYgaWQ9ImlkNCIgY2xhc3M9ImZvbyI+NDwvZGl2PgorICAgIDxk
aXYgaWQ9ImlkNSIgY2xhc3M9ImZvbyI+NTwvZGl2PgorICAgIDxkaXYgaWQ9ImlkNiIgY2xhc3M9
ImZvbyI+NjwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KKzwhLS0gUG9zdC1jb21t
ZW50IC0tPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125333</attachid>
            <date>2012-02-03 08:19:17 -0800</date>
            <delta_ts>2012-02-03 08:25:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77619-20120203201915.patch</filename>
            <type>text/plain</type>
            <size>12424</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM5MmRiMGM5MjIxYzBk
YTNmNWFhZDBiYWNhODU4ZDFlM2ZiMDY3Mi4uZGMzYWQxNmU4ZmNhY2U0YzcyZjMyOTA5YzAwZDUy
MGEwMzJjOWU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW50cm9kdWNlICJDb3B5IFhQYXRoIiBwb3B1cCBtZW51IGl0ZW0gZm9yIERPTSBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc2
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBYUGF0
aCBpcyBvcHRpbWl6ZWQgd2hlbmV2ZXIgYW4gZWxlbWVudCBoYXMgdGhlICJpZCIgYXR0cmlidXRl
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9lbGVtZW50cy9ub2RlLXhwYXRoLnhodG1sCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLlhQYXRoU3RlcCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5YUGF0aFN0
ZXAucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnBy
b3RvdHlwZS5jb3B5WFBhdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90
eXBlLmlzWE1MTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUu
eFBhdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnhQYXRoVmFs
dWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLl94UGF0aEluZGV4
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX3Bv
cHVsYXRlTm9kZUNvbnRleHRNZW51KToKKwogMjAxMi0wMi0wMyAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHR5cG8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJD
b3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBkODQ5OGQ5YWM3MjY2
Njk2YjU2ODRiNDIyMDZiMzliYjc4ZjdjZWIwLi5jZGFlMjcwYzkzOTUyYTFlOTQ2MzE5ZTBiNTc2
N2QwYzJiYTEzNmE2IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQ0CnhjbWFFSmYjdVhp
bUpOeEhgfj9oXjM8P1lwMztfJkAzPyZSMWxMYyhXUzs0JT80Tj59PVY7JVhRMHt9cyY0Vk00XwoK
ZGVsdGEgMTQKV2NtWD9naz4kKz1tSk54SG9BKjAlS0wtRmhId1JZJAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDk2Mzk0M2Y2YmNhZmUx
MGI5MjA5ZDgyYmRhZjk3YWQwZGIxZDNjZjUuLjlmZWQ4ODEwZWY2ZjgxNDFlZDY0ZjZlNDMyOTNl
ZjA5MjUyNTNjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01BZ2VudC5qcwpAQCAtODQsNiArODQsMjQgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBmdW5j
dGlvbihkb21BZ2VudCwgZG9jLCBwYXlsb2FkKSB7CiAgICAgfQogfQogCisvKioKKyAqIEBjb25z
dHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCisgKiBAcGFyYW0ge2Jvb2xlYW59IG9w
dGltaXplZAorICovCitXZWJJbnNwZWN0b3IuRE9NTm9kZS5YUGF0aFN0ZXAgPSBmdW5jdGlvbih2
YWx1ZSwgb3B0aW1pemVkKQoreworICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB0aGlzLm9w
dGltaXplZCA9IG9wdGltaXplZDsKK30KKworV2ViSW5zcGVjdG9yLkRPTU5vZGUuWFBhdGhTdGVw
LnByb3RvdHlwZSA9IHsKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMudmFsdWU7CisgICAgfQorfQorCiBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90
b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7Ym9vbGVhbn0KQEAgLTI3OSw2ICsy
OTcsMTEgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgICAgICBET01B
Z2VudC5nZXRPdXRlckhUTUwodGhpcy5pZCwgY29weSk7CiAgICAgfSwKIAorICAgIGNvcHlYUGF0
aDogZnVuY3Rpb24ob3B0aW1pemVkKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNvcHlUZXh0KHRoaXMueFBhdGgob3B0aW1pemVkKSk7CisgICAgfSwKKwogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKT19IGNhbGxiYWNrCiAgICAg
ICovCkBAIC00ODksNiArNTEyLDExOSBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUg
PSB7CiAgICAgaXNYTUxOb2RlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gISF0
aGlzLm93bmVyRG9jdW1lbnQgJiYgISF0aGlzLm93bmVyRG9jdW1lbnQueG1sVmVyc2lvbjsKKyAg
ICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIHhQ
YXRoOiBmdW5jdGlvbihvcHRpbWl6ZWQpCisgICAgeworICAgICAgICBpZiAodGhpcy5fbm9kZVR5
cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkKKyAgICAgICAgICAgIHJldHVybiAiLyI7CisKKyAg
ICAgICAgdmFyIHN0ZXBzID0gW107CisgICAgICAgIHZhciBjb250ZXh0Tm9kZSA9IHRoaXM7Cisg
ICAgICAgIHdoaWxlIChjb250ZXh0Tm9kZSkgeworICAgICAgICAgICAgdmFyIHN0ZXAgPSBjb250
ZXh0Tm9kZS5feFBhdGhWYWx1ZShvcHRpbWl6ZWQpOworICAgICAgICAgICAgaWYgKCFzdGVwKQor
ICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBFcnJvciAtIGJhaWwgb3V0IGVhcmx5LgorICAgICAg
ICAgICAgc3RlcHMucHVzaChzdGVwKTsKKyAgICAgICAgICAgIGlmIChzdGVwLm9wdGltaXplZCkK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNvbnRleHROb2RlID0gY29udGV4
dE5vZGUucGFyZW50Tm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ZXBzLnJldmVyc2UoKTsK
KyAgICAgICAgcmV0dXJuIChzdGVwcy5sZW5ndGggJiYgc3RlcHNbMF0ub3B0aW1pemVkID8gIiIg
OiAiLyIpICsgc3RlcHMuam9pbigiLyIpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0
dXJuIHtXZWJJbnNwZWN0b3IuRE9NTm9kZS5YUGF0aFN0ZXB9CisgICAgICovCisgICAgX3hQYXRo
VmFsdWU6IGZ1bmN0aW9uKG9wdGltaXplZCkKKyAgICB7CisgICAgICAgIHZhciBvd25WYWx1ZTsK
KyAgICAgICAgdmFyIG93bkluZGV4ID0gdGhpcy5feFBhdGhJbmRleCgpOworICAgICAgICBpZiAo
b3duSW5kZXggPT09IC0xKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEVycm9yLgorCisg
ICAgICAgIHN3aXRjaCAodGhpcy5fbm9kZVR5cGUpIHsKKyAgICAgICAgY2FzZSBOb2RlLkVMRU1F
TlRfTk9ERToKKyAgICAgICAgICAgIGlmIChvcHRpbWl6ZWQgJiYgdGhpcy5nZXRBdHRyaWJ1dGUo
ImlkIikpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Y
UGF0aFN0ZXAoIi8vKltAaWQ9XCIiICsgdGhpcy5nZXRBdHRyaWJ1dGUoImlkIikgKyAiXCJdIiwg
dHJ1ZSk7CisgICAgICAgICAgICBvd25WYWx1ZSA9IHRoaXMuX2xvY2FsTmFtZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGUuQVRUUklCVVRFX05PREU6CisgICAgICAgICAg
ICBvd25WYWx1ZSA9ICJAIiArIHRoaXMuX25vZGVOYW1lOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZS5URVhUX05PREU6CisgICAgICAgIGNhc2UgTm9kZS5DREFUQV9TRUNU
SU9OX05PREU6CisgICAgICAgICAgICBvd25WYWx1ZSA9ICJ0ZXh0KCkiOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6Cisg
ICAgICAgICAgICBvd25WYWx1ZSA9ICJwcm9jZXNzaW5nLWluc3RydWN0aW9uKCkiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZS5DT01NRU5UX05PREU6CisgICAgICAgICAg
ICBvd25WYWx1ZSA9ICJjb21tZW50KCkiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZS5ET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgb3duVmFsdWUgPSAiIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgb3duVmFsdWUgPSAi
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG93bkluZGV4
ID4gMCkKKyAgICAgICAgICAgIG93blZhbHVlICs9ICJbIiArIG93bkluZGV4ICsgIl0iOworCisg
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUuWFBhdGhTdGVwKG93blZhbHVl
LCB0aGlzLl9ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIF94UGF0aEluZGV4OiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBSZXR1cm5zIC0xIGluIGNhc2Ugb2YgZXJyb3Is
IDAgaWYgbm8gc2libGluZ3MgbWF0Y2hpbmcgdGhlIHNhbWUgZXhwcmVzc2lvbiwgPFhQYXRoIGlu
ZGV4IGFtb25nIHRoZSBzYW1lIGV4cHJlc3Npb24tbWF0Y2hpbmcgc2libGluZyBub2Rlcz4gb3Ro
ZXJ3aXNlLgorICAgICAgICBmdW5jdGlvbiBhcmVOb2Rlc1NpbWlsYXIobGVmdCwgcmlnaHQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChsZWZ0ID09PSByaWdodCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGxlZnQuX25vZGVUeXBlID09PSBOb2Rl
LkVMRU1FTlRfTk9ERSAmJiByaWdodC5fbm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKQor
ICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0Ll9sb2NhbE5hbWUgPT09IHJpZ2h0Ll9sb2NhbE5h
bWU7CisKKyAgICAgICAgICAgIGlmIChsZWZ0Ll9ub2RlVHlwZSA9PT0gcmlnaHQuX25vZGVUeXBl
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICAvLyBYUGF0aCB0
cmVhdHMgQ0RBVEEgYXMgdGV4dCBub2Rlcy4KKyAgICAgICAgICAgIHZhciBsZWZ0VHlwZSA9IGxl
ZnQuX25vZGVUeXBlID09PSBOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERSA/IE5vZGUuVEVYVF9OT0RF
IDogbGVmdC5fbm9kZVR5cGU7CisgICAgICAgICAgICB2YXIgcmlnaHRUeXBlID0gcmlnaHQuX25v
ZGVUeXBlID09PSBOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERSA/IE5vZGUuVEVYVF9OT0RFIDogcmln
aHQuX25vZGVUeXBlOworICAgICAgICAgICAgcmV0dXJuIGxlZnRUeXBlID09PSByaWdodFR5cGU7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgc2libGluZ3MgPSB0aGlzLnBhcmVudE5vZGUgPyB0
aGlzLnBhcmVudE5vZGUuY2hpbGRyZW4gOiBudWxsOworICAgICAgICBpZiAoIXNpYmxpbmdzKQor
ICAgICAgICAgICAgcmV0dXJuIDA7IC8vIFJvb3Qgbm9kZSAtIG5vIHNpYmxpbmdzLgorICAgICAg
ICB2YXIgaGFzU2FtZU5hbWVkRWxlbWVudHM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c2libGluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChhcmVOb2Rlc1NpbWlsYXIo
dGhpcywgc2libGluZ3NbaV0pICYmIHNpYmxpbmdzW2ldICE9PSB0aGlzKSB7CisgICAgICAgICAg
ICAgICAgaGFzU2FtZU5hbWVkRWxlbWVudHMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaGFzU2FtZU5hbWVkRWxl
bWVudHMpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgdmFyIG93bkluZGV4ID0gMTsg
Ly8gWFBhdGggaW5kaWNlcyBzdGFydCB3aXRoIDEuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc2libGluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChhcmVOb2Rlc1NpbWls
YXIodGhpcywgc2libGluZ3NbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKHNpYmxpbmdzW2ld
ID09PSB0aGlzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3duSW5kZXg7CisgICAgICAg
ICAgICAgICAgKytvd25JbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gLTE7IC8vIEFuIGVycm9yIG9jY3VycmVkOiB8dGhpc3wgbm90IGZvdW5kIGluIHBhcmVu
dCdzIGNoaWxkcmVuLgogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDU1M2FhNzZm
ZTY3NTQxMzI5OTdhMzExNjI5ZjE4Zjg4MDUxZjQ0MDMuLjA4ZWUxZGFjZGYzNjRjNWUzY2E4ZmNi
NDhjOGUwZjhhNDJkMGQ2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTEwODcsNiArMTA4Nyw3
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgLy8gQWRkIGZyZWUtZm9ybSBub2RlLXJlbGF0ZWQgYWN0aW9ucy4KICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVkaXQgYXMgSFRNTCIpLCB0
aGlzLl9lZGl0QXNIVE1MLmJpbmQodGhpcykpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJ
dGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29weSBhcyBIVE1MIiksIHRoaXMuX2NvcHlIVE1M
LmJpbmQodGhpcykpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ29weSBYUGF0aCIpLCB0aGlzLl9jb3B5WFBhdGguYmluZCh0aGlzKSk7CiAg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYklu
c3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiRGVsZXRlIG5vZGUiIDogIkRlbGV0
ZSBOb2RlIiksIHRoaXMucmVtb3ZlLmJpbmQodGhpcykpOwogICAgIH0sCiAKQEAgLTE3MjksNiAr
MTczMCwxMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29weU5vZGUoKTsKICAgICB9LAogCisg
ICAgX2NvcHlYUGF0aDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5jb3B5WFBhdGgodHJ1ZSk7CisgICAgfSwKKwogICAgIF9oaWdobGlnaHRTZWFyY2hS
ZXN1bHRzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3NlYXJjaFF1ZXJ5
IHx8ICF0aGlzLl9zZWFyY2hIaWdobGlnaHRzVmlzaWJsZSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNTQ4M2JmODI0NDg3
ZTQwMTE5MjJmZjg5MTIxYTQ3NmMwOGMyYTcxLi5jNTA0MjQzZjY3YTljMjM0NGRhZDk1NmJlOGIw
NWE5MTYyYTkyZTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMDIgIEFsZXhhbmRl
ciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBJbnRyb2R1Y2UgIkNvcHkgWFBhdGgiIHBvcHVwIG1lbnUgaXRlbSBmb3IgRE9NIGVsZW1lbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL25vZGUteHBhdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMvbm9kZS14cGF0aC54aHRtbDogQWRkZWQuCisKIDIwMTItMDEtMjcg
IFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogY29uc29sZSBldmFsdWF0aW9uIGRvZXNuJ3Qgd29yayBvbiBicmVha3BvaW50IGlu
IHBhZ2VzIHdpdGggQ1NQCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvbm9kZS14cGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvbm9kZS14cGF0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2MjdkNzM5NjJlMDgzMDVm
OWMwZmNlYjQyZWYwNDFlYzQ5ZDY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9ub2RlLXhwYXRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBA
CitUZXN0cyBET01Ob2RlLnhQYXRoKCkKKworMyBQcmVmaXggIFN1ZmZpeAorNAorNQorNgorJyNk
b2N1bWVudCc6JycgLSAnLycKKyAgJyc6JyBQcmUtY29tbWVudCAnIC0gJy9jb21tZW50KClbMV0n
CisgICdodG1sJzonJyAtICcvaHRtbCcKKyAgICAnaGVhZCc6JycgLSAnL2h0bWwvaGVhZCcKKyAg
ICAgICdzY3JpcHQnOicnIC0gJy8vKltAaWQ9InNjcmlwdC1pZCJdJworICAgICAgJ3NjcmlwdCc6
JycgLSAnL2h0bWwvaGVhZC9zY3JpcHRbMl0nCisgICAgICAnc2NyaXB0JzonJyAtICcvaHRtbC9o
ZWFkL3NjcmlwdFs0XScKKyAgICAgICAgJyc6J1xuLy8gQ29tbWVudFxuLy8nIC0gJy9odG1sL2hl
YWQvc2NyaXB0WzRdL3RleHQoKVsxXScKKyAgICAgICAgJyc6J1xuZnVuY3Rpb24gZigpXG57XG4g
ICAgZG9jdW1lbnQud3JpdGUoIjwiKTtcbn1cbi8vJyAtICcvaHRtbC9oZWFkL3NjcmlwdFs0XS90
ZXh0KClbMl0nCisgICAgJ2JvZHknOicnIC0gJy9odG1sL2JvZHknCisgICAgICAncCc6JycgLSAn
L2h0bWwvYm9keS9wJworICAgICAgICAnJzonVGVzdHMgRE9NTm9kZS54UGF0aCgpJyAtICcvaHRt
bC9ib2R5L3AvdGV4dCgpJworICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQxIl0nCisgICAg
ICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDIiXScKKyAgICAgICdkaXYnOicnIC0gJy8vKltAaWQ9
ImNvbnRhaW5lciJdJworICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDMiXScKKyAgICAg
ICAgICAnJzonMyBQcmVmaXggJyAtICcvLypbQGlkPSJpZDMiXS90ZXh0KClbMV0nCisgICAgICAg
ICAgJyc6JzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz4nIC0gJy8vKltAaWQ9Imlk
MyJdL3RleHQoKVsyXScKKyAgICAgICAgICAnJzonIFN1ZmZpeCcgLSAnLy8qW0BpZD0iaWQzIl0v
dGV4dCgpWzNdJworICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDQiXScKKyAgICAgICAg
ICAnJzonNCcgLSAnLy8qW0BpZD0iaWQ0Il0vdGV4dCgpJworICAgICAgICAnZGl2JzonJyAtICcv
LypbQGlkPSJpZDUiXScKKyAgICAgICAgICAnJzonNScgLSAnLy8qW0BpZD0iaWQ1Il0vdGV4dCgp
JworICAgICAgICAnZGl2JzonJyAtICcvLypbQGlkPSJpZDYiXScKKyAgICAgICAgICAnJzonNicg
LSAnLy8qW0BpZD0iaWQ2Il0vdGV4dCgpJworICAnJzonIFBvc3QtY29tbWVudCAnIC0gJy9jb21t
ZW50KClbMl0nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9u
b2RlLXhwYXRoLnhodG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL25vZGUteHBh
dGgueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc5ZWUyOWQ1MzMwZDVhZTA5NWI5ZmFlZGY5NmQyMDhjZTE1
Zjc0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9u
b2RlLXhwYXRoLnhodG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhLS0gUHJlLWNvbW1lbnQgLS0+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyIgaWQ9
InNjcmlwdC1pZCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJ0ZXN0LXNjcmlw
dCI+CisvLzwhW0NEQVRBWworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5l
eHBhbmRFbGVtZW50c1RyZWUoZHVtcE5vZGVzLmJpbmQobnVsbCwgIiIpKTsKKyAgICB2YXIgZG9j
OworCisgICAgZnVuY3Rpb24gZHVtcE5vZGVzKHByZWZpeCwgbm9kZSkKKyAgICB7CisgICAgICAg
IGlmICghZG9jKSB7CisgICAgICAgICAgICBkb2MgPSBnZXREb2N1bWVudEVsZW1lbnQoKTsKKyAg
ICAgICAgICAgIG5vZGUgPSBkb2M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGUuZ2V0QXR0
cmlidXRlKCJpZCIpID09PSAidGVzdC1zY3JpcHQiKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBkdW1wTm9kZURhdGEobm9kZSwgcHJlZml4KTsKKyAgICAgICAgdmFyIGNoaWxkcmVuID0g
bm9kZS5jaGlsZHJlbjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGNoaWxkcmVuICYmIGkgPCBj
aGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGR1bXBOb2RlcyhwcmVmaXggKyAiICAi
LCBjaGlsZHJlbltpXSk7CisgICAgICAgIGlmIChub2RlID09PSBkb2MpCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldERv
Y3VtZW50RWxlbWVudCgpCisgICAgeworICAgICAgICB2YXIgbWFwID0gV2ViSW5zcGVjdG9yLmRv
bUFnZW50Ll9pZFRvRE9NTm9kZTsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gbWFwKSB7CisgICAg
ICAgICAgICBpZiAobWFwW2lkXS5ub2RlTmFtZSgpID09PSAiI2RvY3VtZW50IikKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbWFwW2lkXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxs
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBOb2RlRGF0YShub2RlLCBwcmVmaXgpCisgICAg
eworICAgICAgICB2YXIgcmVzdWx0ID0gcHJlZml4ICsgIiciICsgbm9kZS5ub2RlTmFtZSgpICsg
Iic6JyIgKyBub2RlLm5vZGVWYWx1ZSgpICsgIicgLSAnIiArIG5vZGUueFBhdGgodHJ1ZSkgKyAi
JyI7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJlc3VsdC5yZXBsYWNlKC9cbi9n
LCAiXFxuIikpOworICAgIH0KK30KKy8vXV0+Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBDb21t
ZW50CisvLzwhW0NEQVRBWworZnVuY3Rpb24gZigpCit7CisgICAgZG9jdW1lbnQud3JpdGUoIjwi
KTsKK30KKy8vXV0+Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+VGVzdHMgRE9NTm9kZS54UGF0aCgpPC9wPgorCis8ZGl2IGlkPSJpZDEiIGNsYXNz
PSJmb28iPjwvZGl2PgorPGRpdiBpZD0iaWQyIiBjbGFzcz0iZm9vIj48L2Rpdj4KKworPGRpdiBp
ZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlkPSJpZDMiIGNsYXNzPSJmb28iPjMgUHJlZml4IDwh
W0NEQVRBWzxncmVldGluZz5IZWxsbywgd29ybGQhPC9ncmVldGluZz5dXT4gU3VmZml4PC9kaXY+
CisgICAgPGRpdiBpZD0iaWQ0IiBjbGFzcz0iZm9vIj40PC9kaXY+CisgICAgPGRpdiBpZD0iaWQ1
IiBjbGFzcz0iZm9vIj41PC9kaXY+CisgICAgPGRpdiBpZD0iaWQ2IiBjbGFzcz0iZm9vIj42PC9k
aXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorPCEtLSBQb3N0LWNvbW1lbnQgLS0+Cg==
</data>
<flag name="review"
          id="126818"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>