<?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>112138</bug_id>
          
          <creation_ts>2013-03-12 05:28:14 -0700</creation_ts>
          <short_desc>Web Inspector: [CodeMirror] add smart braces functionality</short_desc>
          <delta_ts>2013-03-19 01:09:33 -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="Andrey Lushnikov">lushnikov</reporter>
          <assigned_to name="Andrey Lushnikov">lushnikov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>853373</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-03-12 05:28:14 -0700</bug_when>
    <thetext>Add smart braces functionality for CodeMirror:
- When a &quot;(&quot; typed, a pair of &quot;()&quot; should be inserted
- When a &quot;)&quot; is typed and cursor is before a closing matched &quot;)&quot;, nothing should be inserted, but the cursor should skip the brace
- When a backspace is hit between brace pair &quot;(|)&quot;, both braces should be deleted.

Same should work for curly braces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853380</commentid>
    <comment_count>1</comment_count>
      <attachid>192717</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-03-12 05:31:55 -0700</bug_when>
    <thetext>Created attachment 192717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853390</commentid>
    <comment_count>2</comment_count>
      <attachid>192717</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-03-12 05:47:45 -0700</bug_when>
    <thetext>Comment on attachment 192717
Patch

Looks like there&apos;s a better way to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853444</commentid>
    <comment_count>3</comment_count>
      <attachid>192733</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-03-12 07:39:22 -0700</bug_when>
    <thetext>Created attachment 192733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854219</commentid>
    <comment_count>4</comment_count>
      <attachid>192733</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-13 05:24:04 -0700</bug_when>
    <thetext>Comment on attachment 192733
Patch

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

&gt; Source/WebCore/inspector/front-end/CodeMirrorTextEditor.js:68
&gt; +    this._smartBracesController = new WebInspector.CodeMirrorTextEditor.SmartBracesController(this._codeMirror);

Please move this behind a setting

&gt; Source/WebCore/inspector/front-end/CodeMirrorTextEditor.js:515
&gt; +            if (WebInspector.TextUtils.isWordChar(char) || (!WebInspector.TextUtils.isBraceChar(char) &amp;&amp; WebInspector.TextUtils.isStopChar(char)))

if (!whitespace &amp;&amp; !clsoingBrace) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856994</commentid>
    <comment_count>5</comment_count>
      <attachid>193532</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-03-18 04:48:14 -0700</bug_when>
    <thetext>Created attachment 193532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858024</commentid>
    <comment_count>6</comment_count>
      <attachid>193532</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 01:09:29 -0700</bug_when>
    <thetext>Comment on attachment 193532
Patch

Clearing flags on attachment: 193532

Committed r146188: &lt;http://trac.webkit.org/changeset/146188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858025</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 01:09:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192717</attachid>
            <date>2013-03-12 05:31:55 -0700</date>
            <delta_ts>2013-03-12 07:39:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112138-20130312162753.patch</filename>
            <type>text/plain</type>
            <size>5920</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM0NzU0ZThiMjZhNTgz
YzU1YTlkMjhhNTJiMjI2N2ZjYzk0YzAwZC4uNDhkMGQ2Y2I5YzQ0NzVjZTVmOTFmYzI0NmU5MTgy
YTU1Y2YzNTM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTEyICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbQ29kZU1pcnJvcl0gYWRkIHNtYXJ0IGJyYWNlcyBmdW5jdGlvbmFsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTIxMzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgU21h
cnRCcmFjZUNvbnRyb2xsZXIgd2hpY2ggd2lsbCBvdmVycmlkZSB1c2VyIGlucHV0IGluCisgICAg
ICAgIGNlcnRhaW4gY2FzZXMgd2l0aCB0aGUgaGVscCBvZiBDb2RlTWlycm9yLmJlZm9yZUNoYW5n
ZSBldmVudC4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvZGVNaXJyb3JUZXh0RWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9y
VGV4dEVkaXRvci5TbWFydEJyYWNlc0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvZGVNaXJyb3JUZXh0RWRpdG9yLlNtYXJ0QnJhY2VzQ29udHJvbGxlci5wcm90b3R5cGUuX3dp
bGxDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JUZXh0RWRpdG9yLlNt
YXJ0QnJhY2VzQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRsZU9wZW5pbmdCcmFjZUluc2VydGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRleHRFZGl0b3IuU21hcnRCcmFj
ZXNDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlQ2xvc2luZ0JyYWNlSW5zZXJ0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvci5TbWFydEJyYWNlc0NvbnRy
b2xsZXIucHJvdG90eXBlLl9oYW5kbGVPcGVuaW5nQnJhY2VEZWxldGlvbik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0VXRpbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFV0aWxzLm1hdGNoaW5nQnJhY2UpOiBBZGRlZC4gUmV0dXJucyBtYXRjaGluZyBicmFjZSB0
byB0aGUgZ2l2ZW4gb25lLgorCiAyMDEzLTAzLTExICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5p
a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ29kZU1pcnJvcl0g
aGlnaGxpZ2h0IG1hdGNoaW5nIGJyYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3IuanMKaW5kZXggOTkwNTk1
MzI1OGRmMmY0NzE1OTAwYTg2MTA1YzFjNGMxZjA5ZjEzNi4uOGY2MmU2NWJiNzc4MGMyOGRkYmQw
MjkxYTVkZmNkMzljZTYxMGU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzCkBAIC02Nyw2ICs2Nyw3
IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvciA9IGZ1bmN0aW9uKHVybCwgZGVs
ZWdhdGUpCiAgICAgfQogCiAgICAgdGhpcy5fdG9rZW5IaWdobGlnaHRlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuQ29kZU1pcnJvclRleHRFZGl0b3IuVG9rZW5IaWdobGlnaHRlcih0aGlzLl9jb2RlTWly
cm9yKTsKKyAgICB0aGlzLl9zbWFydEJyYWNlc0NvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkNvZGVNaXJyb3JUZXh0RWRpdG9yLlNtYXJ0QnJhY2VzQ29udHJvbGxlcih0aGlzLl9jb2RlTWly
cm9yKTsKIAogICAgIHRoaXMuX2NvZGVNaXJyb3Iub24oImNoYW5nZSIsIHRoaXMuX2NoYW5nZS5i
aW5kKHRoaXMpKTsKICAgICB0aGlzLl9jb2RlTWlycm9yLm9uKCJndXR0ZXJDbGljayIsIHRoaXMu
X2d1dHRlckNsaWNrLmJpbmQodGhpcykpOwpAQCAtNDc4LDMgKzQ3OSw3NCBAQCBXZWJJbnNwZWN0
b3IuQ29kZU1pcnJvclRleHRFZGl0b3IuVG9rZW5IaWdobGlnaHRlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX2NvZGVNaXJyb3IuYWRkT3ZlcmxheSh0aGlzLl9vdmVybGF5TW9kZSk7CiAg
ICAgfQogfQorCitXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRleHRFZGl0b3IuU21hcnRCcmFjZXND
b250cm9sbGVyID0gZnVuY3Rpb24oY29kZU1pcnJvcikKK3sKKyAgICB0aGlzLl9jb2RlTWlycm9y
ID0gY29kZU1pcnJvcjsKKyAgICB0aGlzLl9jb2RlTWlycm9yLm9uKCJiZWZvcmVDaGFuZ2UiLCB0
aGlzLl93aWxsQ2hhbmdlLmJpbmQodGhpcykpOworfQorCitXZWJJbnNwZWN0b3IuQ29kZU1pcnJv
clRleHRFZGl0b3IuU21hcnRCcmFjZXNDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKKyAgICBfd2ls
bENoYW5nZTogZnVuY3Rpb24oY29kZU1pcnJvciwgY2hhbmdlKQorICAgIHsKKyAgICAgICAgaWYg
KGNoYW5nZS50ZXh0Lmxlbmd0aCAhPT0gMSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoY2hhbmdlLm9yaWdpbiA9PT0gIitpbnB1dCIgJiYgY2hhbmdlLnRleHRbMF0ubGVuZ3Ro
ID09PSAxKSB7CisgICAgICAgICAgICB2YXIgaW5zZXJ0ZWRDaGFyID0gY2hhbmdlLnRleHRbMF07
CisgICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLlRleHRVdGlscy5pc09wZW5pbmdCcmFjZUNo
YXIoaW5zZXJ0ZWRDaGFyKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nQnJh
Y2VJbnNlcnRpb24oaW5zZXJ0ZWRDaGFyLCBjaGFuZ2UpOworICAgICAgICAgICAgZWxzZSBpZiAo
V2ViSW5zcGVjdG9yLlRleHRVdGlscy5pc0Nsb3NpbmdCcmFjZUNoYXIoaW5zZXJ0ZWRDaGFyKSkK
KyAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nQnJhY2VJbnNlcnRpb24oaW5zZXJ0
ZWRDaGFyLCBjaGFuZ2UpOworICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS5vcmlnaW4gPT09ICIr
ZGVsZXRlIikgeworICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmdCcmFjZURlbGV0
aW9uKGNoYW5nZSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2hhbmRsZU9wZW5pbmdCcmFj
ZUluc2VydGlvbjogZnVuY3Rpb24oYnJhY2UsIGNoYW5nZSkKKyAgICB7CisgICAgICAgIHZhciBs
aW5lID0gdGhpcy5fY29kZU1pcnJvci5nZXRMaW5lKGNoYW5nZS5mcm9tLmxpbmUpOworICAgICAg
ICBpZiAoY2hhbmdlLmZyb20uY2ggPCBsaW5lLmxlbmd0aCkgeworICAgICAgICAgICAgdmFyIGNo
YXIgPSBsaW5lLmNoYXJBdChjaGFuZ2UuZnJvbS5jaCk7CisgICAgICAgICAgICBpZiAoV2ViSW5z
cGVjdG9yLlRleHRVdGlscy5pc1dvcmRDaGFyKGNoYXIpIHx8ICghV2ViSW5zcGVjdG9yLlRleHRV
dGlscy5pc0JyYWNlQ2hhcihjaGFyKSAmJiBXZWJJbnNwZWN0b3IuVGV4dFV0aWxzLmlzU3RvcENo
YXIoY2hhcikpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBj
aGFuZ2UuY2FuY2VsKCk7CisKKyAgICAgICAgdmFyIGJyYWNlUGFpciA9IGJyYWNlICsgV2ViSW5z
cGVjdG9yLlRleHRVdGlscy5tYXRjaGluZ0JyYWNlKGJyYWNlKTsKKyAgICAgICAgdGhpcy5fY29k
ZU1pcnJvci5yZXBsYWNlUmFuZ2UoYnJhY2VQYWlyLCBjaGFuZ2UuZnJvbSk7CisgICAgICAgIHRo
aXMuX2NvZGVNaXJyb3Iuc2V0Q3Vyc29yKHsKKyAgICAgICAgICAgIGxpbmU6IGNoYW5nZS5mcm9t
LmxpbmUsCisgICAgICAgICAgICBjaDogY2hhbmdlLmZyb20uY2ggKyAxCisgICAgICAgIH0pOwor
ICAgIH0sCisKKyAgICBfaGFuZGxlQ2xvc2luZ0JyYWNlSW5zZXJ0aW9uOiBmdW5jdGlvbihicmFj
ZSwgY2hhbmdlKQorICAgIHsKKyAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl9jb2RlTWlycm9yLmdl
dExpbmUoY2hhbmdlLmZyb20ubGluZSk7CisgICAgICAgIGlmIChsaW5lLmNoYXJBdChjaGFuZ2Uu
ZnJvbS5jaCkgIT09IGJyYWNlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbWF0
Y2hpbmdCcmFjZSA9IHRoaXMuX2NvZGVNaXJyb3IuZmluZE1hdGNoaW5nQnJhY2tldCgpOworICAg
ICAgICBpZiAobWF0Y2hpbmdCcmFjZSAmJiBtYXRjaGluZ0JyYWNlLm1hdGNoKSB7CisgICAgICAg
ICAgICBjaGFuZ2UuY2FuY2VsKCk7CisgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnNldEN1
cnNvcih7CisgICAgICAgICAgICAgICAgbGluZTogY2hhbmdlLmZyb20ubGluZSwKKyAgICAgICAg
ICAgICAgICBjaDogY2hhbmdlLmZyb20uY2ggKyAxCisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0sCisKKyAgICBfaGFuZGxlT3BlbmluZ0JyYWNlRGVsZXRpb246IGZ1bmN0aW9uKGNo
YW5nZSkKKyAgICB7CisgICAgICAgIHZhciBsaW5lID0gdGhpcy5fY29kZU1pcnJvci5nZXRMaW5l
KGNoYW5nZS5mcm9tLmxpbmUpOworICAgICAgICB2YXIgYnJhY2UgPSBsaW5lLmNoYXJBdChjaGFu
Z2UuZnJvbS5jaCk7CisgICAgICAgIHZhciBtYXRjaGluZ0JyYWNlID0gV2ViSW5zcGVjdG9yLlRl
eHRVdGlscy5tYXRjaGluZ0JyYWNlKGJyYWNlKTsKKyAgICAgICAgaWYgKGxpbmUuY2hhckF0KGNo
YW5nZS5mcm9tLmNoICsgMSkgIT09IG1hdGNoaW5nQnJhY2UpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHZhciB0byA9IHsKKyAgICAgICAgICAgIGxpbmU6IGNoYW5nZS50by5saW5lLAor
ICAgICAgICAgICAgY2g6IGNoYW5nZS50by5jaCArIDEKKyAgICAgICAgfTsKKyAgICAgICAgY2hh
bmdlLnVwZGF0ZShjaGFuZ2UuZnJvbSwgdG8sICIiKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0VXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRVdGlscy5qcwppbmRleCBlNjAzYTBjNTQyMjZmOTRlZTZlMTk0MjBlYjhlZDFhYmFhYmY3MDNh
Li5iOWE1MzE1NjEzZDdhMzljNjBhMzU1Nzg5MmI1MDY4OWRjY2NjMzU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRVdGlscy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRVdGlscy5qcwpAQCAtOTMsNiArOTMs
MjEgQEAgV2ViSW5zcGVjdG9yLlRleHRVdGlscyA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBjaGFyCisgICAgICogQHJldHVybiB7P3N0cmluZ30KKyAgICAgKi8KKyAgICBt
YXRjaGluZ0JyYWNlOiBmdW5jdGlvbihjaGFyKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjaGFy
KSB7CisgICAgICAgIGNhc2UgIigiOiByZXR1cm4gIikiOworICAgICAgICBjYXNlICIpIjogcmV0
dXJuICIoIjsKKyAgICAgICAgY2FzZSAieyI6IHJldHVybiAifSI7CisgICAgICAgIGNhc2UgIn0i
OiByZXR1cm4gInsiOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhcgogICAgICAqIEByZXR1cm4ge2Jv
b2xlYW59CiAgICAgICovCiAgICAgaXNCcmFjZUNoYXI6IGZ1bmN0aW9uKGNoYXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192733</attachid>
            <date>2013-03-12 07:39:22 -0700</date>
            <delta_ts>2013-03-18 04:48:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112138-20130312183520.patch</filename>
            <type>text/plain</type>
            <size>5385</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU3OWYxNDk2NjFmYTVi
MWM4MzhhMmUyOTUwYTNlOTYzMzQ4NjA3Ny4uYWVkNGNlNTg1NzAyOWZmN2ViM2E0Zjc5YzExZmE0
MGFlMTgyYWJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTEyICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbQ29kZU1pcnJvcl0gYWRkIHNtYXJ0IGJyYWNlcyBmdW5jdGlvbmFsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTIxMzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBrZXltYXAg
dG8gQ29kZU1pcnJvciB0ZXh0IGVkaXRvciB3aGljaCB3aWxsIGhhbmRsZSBicmFjZQorICAgICAg
ICBpbnNlcnRpb24gYW5kIEJhY2tzcGFjZSBrZXkgYW5kIG92ZXJyaWRlIHRoZW0gaW4gY2VydGFp
biBzaXR1YXRpb25zLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRvci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29kZU1pcnJvclRleHRFZGl0b3IuU21hcnRCcmFjZXNDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvci5TbWFydEJyYWNlc0NvbnRyb2xsZXIu
cHJvdG90eXBlLkJhY2tzcGFjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRl
eHRFZGl0b3IuU21hcnRCcmFjZXNDb250cm9sbGVyLnByb3RvdHlwZS5faGFuZGxlT3BlbmluZ0Jy
YWNlSW5zZXJ0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRv
ci5TbWFydEJyYWNlc0NvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVDbG9zaW5nQnJhY2VJbnNl
cnRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dFV0aWxzLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRVdGlscy5tYXRjaGluZ0JyYWNlKTogQWRkZWQuIFJldHVy
bnMgbWF0Y2hpbiBicmFjZSBmb3IgdGhlIGdpdmVuIG9uZS4KKwogMjAxMy0wMy0xMiAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE0NTQ5NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzCmluZGV4IGI1MTRmYjQ4
YzBmMWM5ZTUzNTgxNzRiMjQ0ZmI0ODdkNDI3YTBjNDkuLmRmNWYwZTU2NjVjYjMzZmNhYTdjZTI4
ZjU0YWUwMzYxODc1YjdmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRvci5qcwpAQCAtNjUsNiArNjUsNyBA
QCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRleHRFZGl0b3IgPSBmdW5jdGlvbih1cmwsIGRlbGVn
YXRlKQogICAgIH0KIAogICAgIHRoaXMuX3Rva2VuSGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkNvZGVNaXJyb3JUZXh0RWRpdG9yLlRva2VuSGlnaGxpZ2h0ZXIodGhpcy5fY29kZU1pcnJv
cik7CisgICAgdGhpcy5fc21hcnRCcmFjZXNDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5D
b2RlTWlycm9yVGV4dEVkaXRvci5TbWFydEJyYWNlc0NvbnRyb2xsZXIodGhpcy5fY29kZU1pcnJv
cik7CiAKICAgICB0aGlzLl9jb2RlTWlycm9yLm9uKCJjaGFuZ2UiLCB0aGlzLl9jaGFuZ2UuYmlu
ZCh0aGlzKSk7CiAgICAgdGhpcy5fY29kZU1pcnJvci5vbigiZ3V0dGVyQ2xpY2siLCB0aGlzLl9n
dXR0ZXJDbGljay5iaW5kKHRoaXMpKTsKQEAgLTQ3NiwzICs0NzcsNTkgQEAgV2ViSW5zcGVjdG9y
LkNvZGVNaXJyb3JUZXh0RWRpdG9yLlRva2VuSGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9jb2RlTWlycm9yLmFkZE92ZXJsYXkodGhpcy5fb3ZlcmxheU1vZGUpOwogICAg
IH0KIH0KKworV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JUZXh0RWRpdG9yLlNtYXJ0QnJhY2VzQ29u
dHJvbGxlciA9IGZ1bmN0aW9uKGNvZGVNaXJyb3IpCit7CisgICAgY29uc3QgYnJhY2VUb0hhbmRs
ZSA9ICIoKXt9IjsKKyAgICBmb3IodmFyIGkgPSAwOyBpIDwgYnJhY2VUb0hhbmRsZS5sZW5ndGg7
ICsraSkgeworICAgICAgICB2YXIgYnJhY2UgPSBicmFjZVRvSGFuZGxlLmNoYXJBdChpKTsKKyAg
ICAgICAgdmFyIGhhbmRsZXIgPSBXZWJJbnNwZWN0b3IuVGV4dFV0aWxzLmlzT3BlbmluZ0JyYWNl
Q2hhcihicmFjZSkgPyB0aGlzLl9oYW5kbGVPcGVuaW5nQnJhY2VJbnNlcnRpb24gOiB0aGlzLl9o
YW5kbGVDbG9zaW5nQnJhY2VJbnNlcnRpb247CisgICAgICAgIHRoaXNbIiciICsgYnJhY2UgKyAi
JyJdID0gaGFuZGxlci5iaW5kKHRoaXMsIGJyYWNlKTsKKyAgICB9CisgICAgY29kZU1pcnJvci5h
ZGRLZXlNYXAodGhpcyk7Cit9CisKK1dlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvci5T
bWFydEJyYWNlc0NvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIG5hbWU6ICJzbWFydEJyYWNl
c0tleW1hcCIsCisKKyAgICBCYWNrc3BhY2U6IGZ1bmN0aW9uKGNvZGVNaXJyb3IpCisgICAgewor
ICAgICAgICB2YXIgY3Vyc29yID0gY29kZU1pcnJvci5nZXRDdXJzb3IoKTsKKyAgICAgICAgaWYg
KCFjdXJzb3IuY2gpCisgICAgICAgICAgICByZXR1cm4gQ29kZU1pcnJvci5QYXNzOworCisgICAg
ICAgIHZhciBsaW5lID0gY29kZU1pcnJvci5nZXRMaW5lKGN1cnNvci5saW5lKTsKKyAgICAgICAg
dmFyIHBhaXIgPSBsaW5lLnN1YnN0cihjdXJzb3IuY2ggLSAxLCAyKTsKKyAgICAgICAgaWYgKHBh
aXIgPT09ICIoKSIgfHwgcGFpciA9PT0gInt9IikKKyAgICAgICAgICAgIGNvZGVNaXJyb3IucmVw
bGFjZVJhbmdlKCIiLCBuZXcgQ29kZU1pcnJvci5Qb3MoY3Vyc29yLmxpbmUsIGN1cnNvci5jaCAt
IDEpLCBuZXcgQ29kZU1pcnJvci5Qb3MoY3Vyc29yLmxpbmUsIGN1cnNvci5jaCArIDEpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIENvZGVNaXJyb3IuUGFzczsKKyAgICB9LAor
CisgICAgX2hhbmRsZU9wZW5pbmdCcmFjZUluc2VydGlvbjogZnVuY3Rpb24oYnJhY2UsIGNvZGVN
aXJyb3IpCisgICAgeworICAgICAgICB2YXIgY3Vyc29yID0gY29kZU1pcnJvci5nZXRDdXJzb3Io
KTsKKyAgICAgICAgdmFyIGxpbmUgPSBjb2RlTWlycm9yLmdldExpbmUoY3Vyc29yLmxpbmUpOwor
ICAgICAgICBpZiAoY3Vyc29yLmNoIDwgbGluZS5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBj
aGFyID0gbGluZS5jaGFyQXQoY3Vyc29yLmNoKTsKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0
b3IuVGV4dFV0aWxzLmlzV29yZENoYXIoY2hhcikgfHwgKCFXZWJJbnNwZWN0b3IuVGV4dFV0aWxz
LmlzQnJhY2VDaGFyKGNoYXIpICYmIFdlYkluc3BlY3Rvci5UZXh0VXRpbHMuaXNTdG9wQ2hhcihj
aGFyKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIENvZGVNaXJyb3IuUGFzczsKKyAgICAgICAg
fQorICAgICAgICB2YXIgYnJhY2VQYWlyID0gYnJhY2UgKyBXZWJJbnNwZWN0b3IuVGV4dFV0aWxz
Lm1hdGNoaW5nQnJhY2UoYnJhY2UpOworICAgICAgICBjb2RlTWlycm9yLnJlcGxhY2VSYW5nZShi
cmFjZVBhaXIsIGN1cnNvcik7CisgICAgICAgIGNvZGVNaXJyb3Iuc2V0Q3Vyc29yKG5ldyBDb2Rl
TWlycm9yLlBvcyhjdXJzb3IubGluZSwgY3Vyc29yLmNoICsgMSkpOworICAgIH0sCisKKyAgICBf
aGFuZGxlQ2xvc2luZ0JyYWNlSW5zZXJ0aW9uOiBmdW5jdGlvbihicmFjZSwgY29kZU1pcnJvcikK
KyAgICB7CisgICAgICAgIHZhciBjdXJzb3IgPSBjb2RlTWlycm9yLmdldEN1cnNvcigpOworICAg
ICAgICB2YXIgbGluZSA9IGNvZGVNaXJyb3IuZ2V0TGluZShjdXJzb3IubGluZSk7CisgICAgICAg
IGlmIChsaW5lLmNoYXJBdChjdXJzb3IuY2gpICE9PSBicmFjZSkKKyAgICAgICAgICAgIHJldHVy
biBDb2RlTWlycm9yLlBhc3M7CisgICAgICAgIHZhciBtYXRjaGluZ0JyYWNlID0gY29kZU1pcnJv
ci5maW5kTWF0Y2hpbmdCcmFja2V0KCk7CisgICAgICAgIGlmIChtYXRjaGluZ0JyYWNlICYmIG1h
dGNoaW5nQnJhY2UubWF0Y2gpCisgICAgICAgICAgICBjb2RlTWlycm9yLnNldEN1cnNvcihuZXcg
Q29kZU1pcnJvci5Qb3MoY3Vyc29yLmxpbmUsIGN1cnNvci5jaCArIDEpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmV0dXJuIENvZGVNaXJyb3IuUGFzczsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRVdGlscy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFV0aWxzLmpzCmluZGV4IGU2MDNh
MGM1NDIyNmY5NGVlNmUxOTQyMGViOGVkMWFiYWFiZjcwM2EuLmI5YTUzMTU2MTNkN2EzOWM2MGEz
NTU3ODkyYjUwNjg5ZGNjY2MzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dFV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dFV0aWxzLmpzCkBAIC05Myw2ICs5MywyMSBAQCBXZWJJbnNwZWN0b3IuVGV4
dFV0aWxzID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXIKKyAgICAg
KiBAcmV0dXJuIHs/c3RyaW5nfQorICAgICAqLworICAgIG1hdGNoaW5nQnJhY2U6IGZ1bmN0aW9u
KGNoYXIpCisgICAgeworICAgICAgICBzd2l0Y2ggKGNoYXIpIHsKKyAgICAgICAgY2FzZSAiKCI6
IHJldHVybiAiKSI7CisgICAgICAgIGNhc2UgIikiOiByZXR1cm4gIigiOworICAgICAgICBjYXNl
ICJ7IjogcmV0dXJuICJ9IjsKKyAgICAgICAgY2FzZSAifSI6IHJldHVybiAieyI7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBjaGFyCiAgICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAgKi8KICAgICBp
c0JyYWNlQ2hhcjogZnVuY3Rpb24oY2hhcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193532</attachid>
            <date>2013-03-18 04:48:14 -0700</date>
            <delta_ts>2013-03-19 01:09:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112138-20130318154406.patch</filename>
            <type>text/plain</type>
            <size>7964</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI5OGYwZGM4NzE5OWNm
NjJlMjljNmIzZjRkZmFjNDRkZGU1OTgxZi4uNmEyN2FmZTc1NDY3ZDhlZDQ4MGUxNDhkYTZhMzUy
YTQyMmYxMjQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTE4ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbQ29kZU1pcnJvcl0gYWRkIHNtYXJ0IGJyYWNlcyBmdW5jdGlvbmFsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTIxMzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMu
CisKKyAgICAgICAgQWRkIGNsb3NlYnJhY2tldHMgYWRkLW9uIHRvIGNvZGVtaXJyb3Igd2hpY2gg
aW1wbGVtZW50cyBzbWFydCBicmFjZXMKKyAgICAgICAgZnVuY3Rpb25hbGl0eSBhbmQgZ3VhcmQg
dGhpcyBzZXR0aW5nIHdpdGggdGhlICJUZXh0IEVkaXRvciBzbWFydAorICAgICAgICBicmFjZXMi
IGV4cGVyaW1lbnQuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRv
ci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9jbS9jbG9zZWJyYWNrZXRzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKC4pOgorCiAyMDEzLTAzLTE4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ2MDM1LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDllMDhhOTNiOTVjOTc1MmM0M2JjNDk1NzNiOTU3MTExYzEzOTgxYmUu
LjRiOWU1MTg5ZTEyZmMwNWMyNTZlMWU5M2FlYTFkM2Y5YmIzZDdmN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTU2MDAsNiArNTYwMCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9jbS9jb2RlbWlycm9yLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2Nt
L2Nzcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9jbS9odG1sbWl4ZWQu
anMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvY20vY2xvc2VicmFja2V0cy5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9jbS9tYXRjaGJyYWNrZXRzLmpz
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2NtL2phdmFzY3JpcHQuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvY20veG1sLmpzJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggN2EzNTAzZGI3NWJhMmMz
OWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0My4uMzhmMzAzYzBlNDZlMDBhYTU4NDczOTkwZDJkNDUx
MTA0OThiM2I2MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTc3NTA2LDYgKzc3NTA2LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXGNtXGNsb3Nl
YnJhY2tldHMuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXGNtXG1hdGNoYnJhY2tldHMuanMiCiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagppbmRleCA2YmUzZmFkNmVhMzc0NmRiZWNjMmU3ZjUzYWU4MDcxOGEyYzdlZTU3
Li5kMDI0YTQzMzkwY2U4NWJjMDY1ODYyMzM0NGI0N2M3NGY3NDUyNDBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTExMDA3LDYgKzEx
MDA3LDcgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXGhlbHBT
Y3JlZW4uY3NzIiAvPgogICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRc
SGVscFNjcmVlbi5qcyIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcZnJvbnQt
ZW5kXGNtXGh0bWxtaXhlZC5qcyIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXGNtXGNsb3NlYnJhY2tldHMuanMiIC8+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXGZyb250LWVuZFxjbVxtYXRjaGJyYWNrZXRzLmpzIiAvPgogICAgIDxOb25lIElu
Y2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSW1hZ2VWaWV3LmpzIiAvPgogICAgIDxOb25l
IEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSW5kZXhlZERCTW9kZWwuanMiIC8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggMTM2MzIxYWJjZGZhNWJjZDlkMmFjNTA5NGJjZjRiZmExYjE4ZTJjNy4u
MzRhMzA5YmM0NGViOGU4OWRkMTczNzRlMjc4MjMzOTY3MWExODI1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpA
QCAtMTQ3MzQsNiArMTQ3MzQsOSBAQAogICAgIDxOb25lIEluY2x1ZGU9Ii4uXGluc3BlY3Rvclxm
cm9udC1lbmRcY21caHRtbG1peGVkLmpzIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yXGZyb250
LWVuZDwvRmlsdGVyPgogICAgIDwvTm9uZT4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcZnJvbnQtZW5kXGNtXGNsb3NlYnJhY2tldHMuanMiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0
b3JcZnJvbnQtZW5kPC9GaWx0ZXI+CisgICAgPC9Ob25lPgogICAgIDxOb25lIEluY2x1ZGU9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcY21cbWF0Y2hicmFja2V0cy5qcyI+CiAgICAgICA8RmlsdGVy
Pmluc3BlY3Rvclxmcm9udC1lbmQ8L0ZpbHRlcj4KICAgICA8L05vbmU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2RlTWlycm9yVGV4dEVkaXRv
ci5qcwppbmRleCBhZTRjOGYzMjcyOWFhZmJiNjU0M2ZlOGRjZGNkNDlhMWNlOTIyYWY0Li4yYmIw
ZmQ5N2M4YzNlODc0MjllMmU2YzZkZTg5OGIzYmIwMTI4ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvZGVNaXJyb3JUZXh0RWRpdG9yLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29kZU1pcnJvclRleHRFZGl0b3Iu
anMKQEAgLTM0LDYgKzM0LDcgQEAgaW1wb3J0U2NyaXB0KCJjbS9qYXZhc2NyaXB0LmpzIik7CiBp
bXBvcnRTY3JpcHQoImNtL3htbC5qcyIpOwogaW1wb3J0U2NyaXB0KCJjbS9odG1sbWl4ZWQuanMi
KTsKIGltcG9ydFNjcmlwdCgiY20vbWF0Y2hicmFja2V0cy5qcyIpOworaW1wb3J0U2NyaXB0KCJj
bS9jbG9zZWJyYWNrZXRzLmpzIik7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCkBAIC01NCw3ICs1
NSw4IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yVGV4dEVkaXRvciA9IGZ1bmN0aW9uKHVybCwg
ZGVsZWdhdGUpCiAgICAgdGhpcy5fY29kZU1pcnJvciA9IHdpbmRvdy5Db2RlTWlycm9yKHRoaXMu
ZWxlbWVudCwgewogICAgICAgICBsaW5lTnVtYmVyczogdHJ1ZSwKICAgICAgICAgZ3V0dGVyczog
WyJDb2RlTWlycm9yLWxpbmVudW1iZXJzIiwgImJyZWFrcG9pbnRzIl0sCi0gICAgICAgIG1hdGNo
QnJhY2tldHM6IHRydWUKKyAgICAgICAgbWF0Y2hCcmFja2V0czogdHJ1ZSwKKyAgICAgICAgYXV0
b0Nsb3NlQnJhY2tldHM6IFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLnRleHRFZGl0
b3JTbWFydEJyYWNlcy5pc0VuYWJsZWQoKQogICAgIH0pOwogCiAgICAgdmFyIGluZGVudCA9IFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy50ZXh0RWRpdG9ySW5kZW50LmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDQ5OWRlZTRhNjEwNTIz
NzI1OTU5ZmU3Nzc0MThkMGZhMWQwNDRkOGUuLjQwMzM1NDQyZjdiNjkxZTZhZTJiN2VlNWQ3NWY2
Zjc0NDQ3M2Q0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmMKQEAgLTQxLDYgKzQxLDcgQEAKICAgICA8ZmlsZT5jbS9jb2RlbWlycm9yLmpzPC9m
aWxlPgogICAgIDxmaWxlPmNtL2Nzcy5qczwvZmlsZT4KICAgICA8ZmlsZT5jbS9odG1sbWl4ZWQu
anM8L2ZpbGU+CisgICAgPGZpbGU+Y20vY2xvc2VicmFja2V0cy5qczwvZmlsZT4KICAgICA8Zmls
ZT5jbS9tYXRjaGJyYWNrZXRzLmpzPC9maWxlPgogICAgIDxmaWxlPmNtL2phdmFzY3JpcHQuanM8
L2ZpbGU+CiAgICAgPGZpbGU+Y20veG1sLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9jbS9jbG9zZWJyYWNrZXRzLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9jbS9jbG9zZWJyYWNrZXRzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI0NmNhY2EwMmE2MDczMjFmZTVlZjBjMzg5MWNlNjJkNTk4ODhiNWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2NtL2Nsb3NlYnJhY2tldHMu
anMKQEAgLTAsMCArMSw1MiBAQAorKGZ1bmN0aW9uKCkgeworICB2YXIgREVGQVVMVF9CUkFDS0VU
UyA9ICIoKVtde30nJ1wiXCIiOworICB2YXIgU1BBQ0VfQ0hBUl9SRUdFWCA9IC9ccy87CisKKyAg
Q29kZU1pcnJvci5kZWZpbmVPcHRpb24oImF1dG9DbG9zZUJyYWNrZXRzIiwgZmFsc2UsIGZ1bmN0
aW9uKGNtLCB2YWwsIG9sZCkgeworICAgIHZhciB3YXNPbiA9IG9sZCAmJiBvbGQgIT0gQ29kZU1p
cnJvci5Jbml0OworICAgIGlmICh2YWwgJiYgIXdhc09uKQorICAgICAgY20uYWRkS2V5TWFwKGJ1
aWxkS2V5bWFwKHR5cGVvZiB2YWwgPT0gInN0cmluZyIgPyB2YWwgOiBERUZBVUxUX0JSQUNLRVRT
KSk7CisgICAgZWxzZSBpZiAoIXZhbCAmJiB3YXNPbikKKyAgICAgIGNtLnJlbW92ZUtleU1hcCgi
YXV0b0Nsb3NlQnJhY2tldHMiKTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gYnVpbGRLZXltYXAocGFp
cnMpIHsKKyAgICB2YXIgbWFwID0geworICAgICAgbmFtZSA6ICJhdXRvQ2xvc2VCcmFja2V0cyIs
CisgICAgICBCYWNrc3BhY2U6IGZ1bmN0aW9uKGNtKSB7CisgICAgICAgIGlmIChjbS5zb21ldGhp
bmdTZWxlY3RlZCgpKSByZXR1cm4gQ29kZU1pcnJvci5QYXNzOworICAgICAgICB2YXIgY3VyID0g
Y20uZ2V0Q3Vyc29yKCksIGxpbmUgPSBjbS5nZXRMaW5lKGN1ci5saW5lKTsKKyAgICAgICAgaWYg
KGN1ci5jaCAmJiBjdXIuY2ggPCBsaW5lLmxlbmd0aCAmJgorICAgICAgICAgICAgcGFpcnMuaW5k
ZXhPZihsaW5lLnNsaWNlKGN1ci5jaCAtIDEsIGN1ci5jaCArIDEpKSAlIDIgPT0gMCkKKyAgICAg
ICAgICBjbS5yZXBsYWNlUmFuZ2UoIiIsIENvZGVNaXJyb3IuUG9zKGN1ci5saW5lLCBjdXIuY2gg
LSAxKSwgQ29kZU1pcnJvci5Qb3MoY3VyLmxpbmUsIGN1ci5jaCArIDEpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgIHJldHVybiBDb2RlTWlycm9yLlBhc3M7CisgICAgICB9CisgICAgfTsKKyAg
ICB2YXIgY2xvc2luZ0JyYWNrZXRzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWly
cy5sZW5ndGg7IGkgKz0gMikgKGZ1bmN0aW9uKGxlZnQsIHJpZ2h0KSB7CisgICAgICBpZiAobGVm
dCAhPSByaWdodCkgY2xvc2luZ0JyYWNrZXRzLnB1c2gocmlnaHQpOworICAgICAgZnVuY3Rpb24g
c3Vycm91bmQoY20pIHsKKyAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gY20uZ2V0U2VsZWN0aW9u
KCk7CisgICAgICAgICAgY20ucmVwbGFjZVNlbGVjdGlvbihsZWZ0ICsgc2VsZWN0aW9uICsgcmln
aHQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gbWF5YmVPdmVyd3JpdGUoY20pIHsKKyAgICAg
ICAgdmFyIGN1ciA9IGNtLmdldEN1cnNvcigpLCBhaGVhZCA9IGNtLmdldFJhbmdlKGN1ciwgQ29k
ZU1pcnJvci5Qb3MoY3VyLmxpbmUsIGN1ci5jaCArIDEpKTsKKyAgICAgICAgaWYgKGFoZWFkICE9
IHJpZ2h0IHx8IGNtLnNvbWV0aGluZ1NlbGVjdGVkKCkpIHJldHVybiBDb2RlTWlycm9yLlBhc3M7
CisgICAgICAgIGVsc2UgY20uZXhlY0NvbW1hbmQoImdvQ2hhclJpZ2h0Iik7CisgICAgICB9Cisg
ICAgICBtYXBbIiciICsgbGVmdCArICInIl0gPSBmdW5jdGlvbihjbSkgeworICAgICAgICBpZiAo
Y20uc29tZXRoaW5nU2VsZWN0ZWQoKSkgcmV0dXJuIHN1cnJvdW5kKGNtKTsKKyAgICAgICAgaWYg
KGxlZnQgPT0gcmlnaHQgJiYgbWF5YmVPdmVyd3JpdGUoY20pICE9IENvZGVNaXJyb3IuUGFzcykg
cmV0dXJuOworICAgICAgICB2YXIgY3VyID0gY20uZ2V0Q3Vyc29yKCksIGFoZWFkID0gQ29kZU1p
cnJvci5Qb3MoY3VyLmxpbmUsIGN1ci5jaCArIDEpOworICAgICAgICB2YXIgbGluZSA9IGNtLmdl
dExpbmUoY3VyLmxpbmUpLCBuZXh0Q2hhciA9IGxpbmUuY2hhckF0KGN1ci5jaCk7CisgICAgICAg
IGlmIChsaW5lLmxlbmd0aCA9PSBjdXIuY2ggfHwgY2xvc2luZ0JyYWNrZXRzLmluZGV4T2YobmV4
dENoYXIpID49IDAgfHwgU1BBQ0VfQ0hBUl9SRUdFWC50ZXN0KG5leHRDaGFyKSkKKyAgICAgICAg
ICBjbS5yZXBsYWNlU2VsZWN0aW9uKGxlZnQgKyByaWdodCwge2hlYWQ6IGFoZWFkLCBhbmNob3I6
IGFoZWFkfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gQ29kZU1pcnJvci5QYXNz
OworICAgICAgfTsKKyAgICAgIGlmIChsZWZ0ICE9IHJpZ2h0KSBtYXBbIiciICsgcmlnaHQgKyAi
JyJdID0gbWF5YmVPdmVyd3JpdGU7CisgICAgfSkocGFpcnMuY2hhckF0KGkpLCBwYWlycy5jaGFy
QXQoaSArIDEpKTsKKyAgICByZXR1cm4gbWFwOworICB9Cit9KSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>