<?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>104835</bug_id>
          
          <creation_ts>2012-12-12 12:54:58 -0800</creation_ts>
          <short_desc>Web Inspector: Don&apos;t throw exceptions in WebInspector.Color</short_desc>
          <delta_ts>2013-02-11 01:41:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="johnjbarton">johnjbarton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</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>789817</commentid>
    <comment_count>0</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-12-12 12:54:58 -0800</bug_when>
    <thetext>If the Color(value) constructor fails, it throws. For example it throws on &quot;none&quot;, from border properties. The throw is not really an exception, its simply a result of passing a shortcut property value to the Color constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789830</commentid>
    <comment_count>1</comment_count>
      <attachid>179110</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-12-12 13:01:53 -0800</bug_when>
    <thetext>Created attachment 179110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791387</commentid>
    <comment_count>2</comment_count>
      <attachid>179110</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-14 00:02:21 -0800</bug_when>
    <thetext>Comment on attachment 179110
Patch

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

Looks good. Small style nit and annotation.

&gt; Source/WebCore/inspector/front-end/Color.js:36
&gt; +    this.valid = this._parse();

I&apos;d rather introduce wrapper WebInspector.Color.parse(str) that would return nullable Color. You can still leave _parse in place and make &quot;valid&quot; private then. You&apos;ll simply return null when !color._valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792930</commentid>
    <comment_count>3</comment_count>
      <attachid>179780</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-12-17 12:33:11 -0800</bug_when>
    <thetext>Created attachment 179780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793314</commentid>
    <comment_count>4</comment_count>
      <attachid>179780</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-17 20:41:47 -0800</bug_when>
    <thetext>Comment on attachment 179780
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +2012-12-12  John J. Barton  &lt;johnjbarton@chromium.org&gt;

Please remove obsolete change entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793317</commentid>
    <comment_count>5</comment_count>
      <attachid>179780</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-17 20:46:02 -0800</bug_when>
    <thetext>Comment on attachment 179780
Patch

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

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1744
&gt; +                if (text !== &apos;none&apos;) {

No need to check explicitly for &apos;none&apos; as Color.parse would return null for it.

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1747
&gt; +                if (!color) {

style: no braces around one-line blocks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793718</commentid>
    <comment_count>6</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-12-18 09:22:00 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 179780 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179780&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1744
&gt; &gt; +                if (text !== &apos;none&apos;) {
&gt; 
&gt; No need to check explicitly for &apos;none&apos; as Color.parse would return null for it.

Yes, however, unlike an erroneous user input, &apos;none&apos; is a correct user input which is not a color. For the best user experience we should be giving correct feedback. To start on that path we should avoid sending Color.parse() values we know are not colors. However I cannot go further at this time because I don&apos;t know the complete list of correct user inputs that are not colors.

How about if I change it to a comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794488</commentid>
    <comment_count>7</comment_count>
      <attachid>179780</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-19 03:26:55 -0800</bug_when>
    <thetext>Comment on attachment 179780
Patch

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

&gt;&gt;&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:1744
&gt;&gt;&gt; +                if (text !== &apos;none&apos;) {
&gt;&gt; 
&gt;&gt; No need to check explicitly for &apos;none&apos; as Color.parse would return null for it.
&gt; 
&gt; Yes, however, unlike an erroneous user input, &apos;none&apos; is a correct user input which is not a color. For the best user experience we should be giving correct feedback. To start on that path we should avoid sending Color.parse() values we know are not colors. However I cannot go further at this time because I don&apos;t know the complete list of correct user inputs that are not colors.
&gt; 
&gt; How about if I change it to a comment?

A comment would probably be more clear at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795564</commentid>
    <comment_count>8</comment_count>
      <attachid>180367</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-12-20 10:51:06 -0800</bug_when>
    <thetext>Created attachment 180367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806301</commentid>
    <comment_count>9</comment_count>
      <attachid>180367</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-01-14 06:00:38 -0800</bug_when>
    <thetext>Comment on attachment 180367
Patch

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

One test nit, otherwise the change looks good to me

&gt; LayoutTests/inspector/styles/styles-invalid-color-values-expected.txt:75
&gt; +FAIL: Error parsing color &apos;none&apos;.

This should be rephrased, since the &quot;FAIL:&quot; prefix is reserved for test failures and should normally never occur in test expectations (and the right prefix to use here is either &quot;SUCCESS:&quot; or nothing at all, since none of the previous colors have this prefix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806445</commentid>
    <comment_count>10</comment_count>
      <attachid>182597</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2013-01-14 10:23:54 -0800</bug_when>
    <thetext>Created attachment 182597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807066</commentid>
    <comment_count>11</comment_count>
      <attachid>182597</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-15 00:50:16 -0800</bug_when>
    <thetext>Comment on attachment 182597
Patch

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

&gt; LayoutTests/inspector/styles/styles-invalid-color-values.html:39
&gt; +            InspectorTest.addResult(&quot;invalid color &apos;&quot; + colorString + &quot;&apos; parses to null.&quot;);

I&apos;d rather leave this function untouched and use another function (dumpInvalidColorRepresentations?) for invalid colors as they have inverted expectation compared to valid colors. With the current approach it is not clear if &quot;invalid color &apos;rgba(255, 0, 0, 5)&apos; parses to null.&quot; would be a wrong result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807375</commentid>
    <comment_count>12</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2013-01-15 09:22:24 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 182597 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182597&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/styles/styles-invalid-color-values.html:39
&gt; &gt; +            InspectorTest.addResult(&quot;invalid color &apos;&quot; + colorString + &quot;&apos; parses to null.&quot;);
&gt; 
&gt; I&apos;d rather leave this function untouched and use another function (dumpInvalidColorRepresentations?) for invalid colors as they have inverted expectation compared to valid colors. With the current approach it is not clear if &quot;invalid color &apos;rgba(255, 0, 0, 5)&apos; parses to null.&quot; would be a wrong result.

Would another wording help? There is no way for the code to determine that &quot;invalid color &apos;rgba(255, 0, 0, 5)&apos; parses to null.&quot; is a wrong result: this code tests the parser and only the parser can make this determination. A human has to understand the output and validate that such a result is incorrect. To me, such output is certainly puzzling and I would check it. Since the test expected result would list a valid output for that input, it seems unlikely to me that this error would occur.

Leaving the current function would be misleading the try/catch cannot be reached since the parser no longer throws (by design).  Better to have the test code more closely resemble the way the API is used right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808309</commentid>
    <comment_count>13</comment_count>
      <attachid>182597</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-16 05:52:00 -0800</bug_when>
    <thetext>Comment on attachment 182597
Patch

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

&gt;&gt;&gt; LayoutTests/inspector/styles/styles-invalid-color-values.html:39
&gt;&gt;&gt; +            InspectorTest.addResult(&quot;invalid color &apos;&quot; + colorString + &quot;&apos; parses to null.&quot;);
&gt;&gt; 
&gt;&gt; I&apos;d rather leave this function untouched and use another function (dumpInvalidColorRepresentations?) for invalid colors as they have inverted expectation compared to valid colors. With the current approach it is not clear if &quot;invalid color &apos;rgba(255, 0, 0, 5)&apos; parses to null.&quot; would be a wrong result.
&gt; 
&gt; Would another wording help? There is no way for the code to determine that &quot;invalid color &apos;rgba(255, 0, 0, 5)&apos; parses to null.&quot; is a wrong result: this code tests the parser and only the parser can make this determination. A human has to understand the output and validate that such a result is incorrect. To me, such output is certainly puzzling and I would check it. Since the test expected result would list a valid output for that input, it seems unlikely to me that this error would occur.
&gt; 
&gt; Leaving the current function would be misleading the try/catch cannot be reached since the parser no longer throws (by design).  Better to have the test code more closely resemble the way the API is used right?

My concern was that someone unfamiliar with the code might rebase the test with a wrong output as it would look fine. To avoid such situations it would make sense to produce either &quot;SUCCESS: parsed invalid color to null&quot; or &quot;FAIL: parsed invalid color to not null&quot; so that it is clear that the result is a failure.

You are right, there is not much sense in leaving try/catch block. My point was to split function testColors(next) into testValidColors and testInvalidColors that would dump results in different manners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808528</commentid>
    <comment_count>14</comment_count>
      <attachid>183007</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2013-01-16 10:55:41 -0800</bug_when>
    <thetext>Created attachment 183007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808529</commentid>
    <comment_count>15</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2013-01-16 10:56:06 -0800</bug_when>
    <thetext>Ok, now I get it, this version is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817946</commentid>
    <comment_count>16</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2013-01-28 12:01:39 -0800</bug_when>
    <thetext>review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829502</commentid>
    <comment_count>17</comment_count>
      <attachid>183007</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 01:41:10 -0800</bug_when>
    <thetext>Comment on attachment 183007
Patch

Clearing flags on attachment: 183007

Committed r142440: &lt;http://trac.webkit.org/changeset/142440&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829503</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 01:41:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179110</attachid>
            <date>2012-12-12 13:01:53 -0800</date>
            <delta_ts>2012-12-17 12:33:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104835-20121212125913.patch</filename>
            <type>text/plain</type>
            <size>4047</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU5NTZiNWY3M2ZhYzgx
ZWRhYWIyOGQ4ZTU2Yjg2ZjliZmFjZTFiOS4uNDdkMDViNjdmYmNkNjM1MTRkNzkyNzQ3MjkzZDE3
M2EwNTU0OThjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEyLTEyICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBEb24ndCB0aHJvdyBleGNlcHRpb25zIGluIFdlYkluc3BlY3Rvci5Db2xvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gQ29sb3IuX3Bh
cnNlKCksIGNoYW5nZSByZXR1cm4gdG8gcmV0dXJuIHRydWU7IGFuZCB0aHJvdyB0byByZXR1cm4g
ZmFsc2U7CisgICAgICAgIEluIENvbG9yIGN0b3IsIHNldCAudmFsaWQgZnJvbSBfcGFyc2UoKS4K
KyAgICAgICAgSW4gdGhlIFN0eWxlc1NpZGVCYXJQYW5lLCB0ZXN0IHZhbGlkIHJhdGhlciB0aGFu
IGNhdGNoKGUpLgorCisgICAgICAgIEFsbCB0ZXN0cyBwYXNzLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Db2xvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMuYWxwaGEuc2V0IDApOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5fcGFyc2UudGhpcy5uaWNrbmFt
ZS5zZXQgMik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS50
aGlzLmhzbGEuc2V0IDEpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5f
cGFyc2UudGhpcy5yZ2JhLnNldCAwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90
b3R5cGUuX3BhcnNlLnNldCBXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bG9yLnByb3RvdHlwZS5fcGFyc2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanM6CisKIDIwMTItMTItMTIgIEtyenlzenRvZiBDemVjaCAgPGsuY3pl
Y2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUG9zc2liaWxpdHkgdG8gdHVybiBvZmYg
YWNjZXNzaWJpbGl0eSBmZWF0dXJlIGZvciBXZWJLaXQtRUZMLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMKaW5kZXggOTUwMGM2MzZjNjk4ZjQ2ODUwZWI4NjJh
OGIwYTEzOTIxYjljMjM0ZC4uODhjMjg5ZDdiNjlmMmVmZDYwMjViZGUyYWIxMzQzNjg3ZDg0MGM5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzCkBAIC0z
Myw3ICszMyw3IEBACiBXZWJJbnNwZWN0b3IuQ29sb3IgPSBmdW5jdGlvbihzdHIpCiB7CiAgICAg
dGhpcy52YWx1ZSA9IHN0cjsKLSAgICB0aGlzLl9wYXJzZSgpOworICAgIHRoaXMudmFsaWQgPSB0
aGlzLl9wYXJzZSgpOwogfQogCiAvKioKQEAgLTIwNiw3ICsyMDYsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5pY2tuYW1l
OwogICAgICAgICB9CiAKLSAgICAgICAgdGhyb3cgImludmFsaWQgY29sb3IgZm9ybWF0IjsKKyAg
ICAgICAgcmV0dXJuICJpbnZhbGlkIGNvbG9yIGZvcm1hdDogIiArIGZvcm1hdDsKICAgICB9LAog
CiAgICAgLyoqCkBAIC00MzIsNyArNDMyLDcgQEAgV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMuaHNsYSA9IHNldFsxXTsKICAgICAgICAgICAgIHRoaXMu
bmlja25hbWUgPSBzZXRbMl07CiAgICAgICAgICAgICB0aGlzLmFscGhhID0gc2V0WzBdWzNdOwot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBTaW1wbGUgLSAjaGV4LCByZ2IoKSwgbmlja25hbWUsIGhzbCgpCkBAIC00
NjEsNyArNDYxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5mb3JtYXQgPSAibmlja25hbWUiOwogICAgICAgICAgICAgICAgICAg
ICB0aGlzLmhleCA9IFdlYkluc3BlY3Rvci5Db2xvci5OaWNrbmFtZXNbbmlja25hbWVdOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSAvLyB1bmtub3duIG5hbWUKLSAgICAgICAgICAgICAgICAgICAg
dGhyb3cgInVua25vd24gY29sb3IgbmFtZSI7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2hbNF0pIHsgLy8gaHNsCiAgICAgICAg
ICAgICAgICAgdGhpcy5mb3JtYXQgPSAiaHNsIjsKICAgICAgICAgICAgICAgICB2YXIgaHNsID0g
bWF0Y2hbNF0ucmVwbGFjZSgvJS9nLCAiIikuc3BsaXQoL1xzKixccyovKTsKQEAgLTQ3OSw3ICs0
NzksNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHRoaXMubmlja25hbWUgPSBzZXRbMl07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8g
QWR2YW5jZWQgLSByZ2JhKCksIGhzbGEoKQpAQCAtNTAzLDcgKzUwMyw3IEBAIFdlYkluc3BlY3Rv
ci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDb3VsZCBub3Qg
cGFyc2UgYXMgYSB2YWxpZCBjb2xvcgotICAgICAgICB0aHJvdyAiY291bGQgbm90IHBhcnNlIGNv
bG9yIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5k
ZXggNjhhOTRlZDJmMWRhYmEwYWJiOWJhZTRmZWE3ZmQwNTdkMjBhOTRhYi4uZWI1NjJlZTQ2NmY0
YWY5OWJhNTQ4NDllZmE4NDQzMjhhYWVjM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0xNzM5LDEx
ICsxNzM5LDkgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NDb2xvcih0ZXh0KQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBj
b2xvciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IodGV4dCk7Ci0gICAgICAgICAgICAgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAgICAgICAgIHZhciBjb2xvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q29sb3IodGV4dCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb2xvci52YWxpZCkgICAgCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTsKLSAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ID0gZ2V0Rm9ybWF0
KCk7CiAgICAgICAgICAgICAgICAgdmFyIGhhc1NwZWN0cnVtID0gc2VsZi5fcGFyZW50UGFuZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179780</attachid>
            <date>2012-12-17 12:33:11 -0800</date>
            <delta_ts>2012-12-20 10:51:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104835-20121217123029.patch</filename>
            <type>text/plain</type>
            <size>8621</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJiOGU1ZjllZmRjMGJj
NDcyMTBjOTcyM2ZhYTc2NTY0NDRhYjNmNC4uNWZiMjliNmM4NTM2YWMwNWQwNzliZmFmOWVmOTRj
ZWI2MDAzYmI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEyLTEyICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBEb24ndCB0aHJvdyBleGNlcHRpb25zIGluIFdlYkluc3BlY3Rvci5Db2xvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LkNvbG9yLnBhcnNlKCkgcmV0dXJucyBhIENvbG9yIGZyb20gYSBzdHJpbmcsIG9yIG51bGw7Cisg
ICAgICAgIEN0b3IgY2FsbHMgbm93IGNhbGwgcGFyc2UoKTsKKyAgICAgICAgSW4gdGhlIFN0eWxl
c1NpZGVCYXJQYW5lLCB0ZXN0IG51bGwgcmF0aGVyIHRoYW4gY2F0Y2goZSkuCisKKyAgICAgICAg
QWRkZWQgY2FzZSB0byBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVl
cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90
b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5f
cGFyc2UudGhpcy5hbHBoYS5zZXQgMCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJv
dG90eXBlLl9wYXJzZS50aGlzLm5pY2tuYW1lLnNldCAyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMuaHNsYS5zZXQgMSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS50aGlzLnJnYmEuc2V0IDApOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5fcGFyc2Uuc2V0IFdlYkluc3BlY3Rvcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKworMjAxMi0xMi0x
MiAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRG9uJ3QgdGhyb3cgZXhjZXB0aW9ucyBpbiBXZWJJbnNwZWN0b3IuQ29s
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDgz
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENv
bG9yLl9wYXJzZSgpLCBjaGFuZ2UgcmV0dXJuIHRvIHJldHVybiB0cnVlOyBhbmQgdGhyb3cgdG8g
cmV0dXJuIGZhbHNlOworICAgICAgICBJbiBDb2xvciBjdG9yLCBzZXQgLnZhbGlkIGZyb20gX3Bh
cnNlKCkuCisgICAgICAgIEluIHRoZSBTdHlsZXNTaWRlQmFyUGFuZSwgdGVzdCB2YWxpZCByYXRo
ZXIgdGhhbiBjYXRjaChlKS4KKworICAgICAgICBBbGwgdGVzdHMgcGFzcy4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29s
b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS50b1N0cmluZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS50aGlzLmFscGhhLnNl
dCAwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMu
bmlja25hbWUuc2V0IDIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnByb3RvdHlwZS5f
cGFyc2UudGhpcy5oc2xhLnNldCAxKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90
b3R5cGUuX3BhcnNlLnRoaXMucmdiYS5zZXQgMCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29s
b3IucHJvdG90eXBlLl9wYXJzZS5zZXQgV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorCiAyMDEyLTEyLTE3ICBCZW0gSm9uZXMtQmV5ICA8
YmpvbmVzYmVAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gRmxvYXRzIHNo
b3VsZCByZXNwZWN0IHNoYXBlLWluc2lkZSBvbiBleGNsdXNpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcwppbmRleCA5NTAwYzYzNmM2OThmNDY4NTBlYjg2
MmE4YjBhMTM5MjFiOWMyMzRkLi43ZDY5M2RlMDkyNWI2YWJjZGIyM2I0YmYxZjAxZDczZTc3NjJk
N2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9y
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMKQEAg
LTMzLDIwICszMywyNCBAQAogV2ViSW5zcGVjdG9yLkNvbG9yID0gZnVuY3Rpb24oc3RyKQogewog
ICAgIHRoaXMudmFsdWUgPSBzdHI7Ci0gICAgdGhpcy5fcGFyc2UoKTsKIH0KIAorV2ViSW5zcGVj
dG9yLkNvbG9yLnBhcnNlID0gZnVuY3Rpb24oc3RyKQoreworICAgIHZhciBtYXliZUNvbG9yID0g
bmV3IFdlYkluc3BlY3Rvci5Db2xvcihzdHIpOworICAgIHJldHVybiBtYXliZUNvbG9yLl9wYXJz
ZSgpID8gbWF5YmVDb2xvciA6IG51bGw7Cit9CiAvKioKICAqIEBwYXJhbSB7bnVtYmVyPX0gYQog
ICovCiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEgPSBmdW5jdGlvbihyLCBnLCBiLCBhKQog
ewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2JhKCIgKyByICsgIiwiICsg
ZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8gMSA6IGEpICsg
IikiKTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKCJyZ2JhKCIgKyByICsg
IiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8gMSA6
IGEpICsgIikiKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0IgPSBmdW5jdGlvbihy
LCBnLCBiKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2IoIiArIHIg
KyAiLCIgKyBnICsgIiwiICsgYiArICIpIik7CisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xv
ci5wYXJzZSgicmdiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiKSIpOwogfQogCiBXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewpAQCAtMjA2LDcgKzIxMCw3IEBAIFdlYkluc3Bl
Y3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmlj
a25hbWU7CiAgICAgICAgIH0KIAotICAgICAgICB0aHJvdyAiaW52YWxpZCBjb2xvciBmb3JtYXQi
OworICAgICAgICByZXR1cm4gImludmFsaWQgY29sb3IgZm9ybWF0OiAiICsgZm9ybWF0OwogICAg
IH0sCiAKICAgICAvKioKQEAgLTQzMiw3ICs0MzYsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oc2xhID0gc2V0WzFdOwogICAgICAgICAgICAg
dGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIHRoaXMuYWxwaGEgPSBzZXRbMF1b
M107Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIFNpbXBsZSAtICNoZXgsIHJnYigpLCBuaWNrbmFtZSwgaHNsKCkK
QEAgLTQ2MSw3ICs0NjUsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJuaWNrbmFtZSI7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuaGV4ID0gV2ViSW5zcGVjdG9yLkNvbG9yLk5pY2tuYW1lc1tuaWNrbmFtZV07
CiAgICAgICAgICAgICAgICAgfSBlbHNlIC8vIHVua25vd24gbmFtZQotICAgICAgICAgICAgICAg
ICAgICB0aHJvdyAidW5rbm93biBjb2xvciBuYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFs0XSkgeyAvLyBoc2wKICAg
ICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJoc2wiOwogICAgICAgICAgICAgICAgIHZhciBo
c2wgPSBtYXRjaFs0XS5yZXBsYWNlKC8lL2csICIiKS5zcGxpdCgvXHMqLFxzKi8pOwpAQCAtNDc5
LDcgKzQ4Myw3IEBAIFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBBZHZhbmNlZCAtIHJnYmEoKSwgaHNsYSgpCkBAIC00OTksMTEgKzUwMywxMSBAQCBXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMucmdiYSA9
IHRoaXMuX2hzbGFUb1JHQkEodGhpcy5oc2xhLCB0aGlzLmFscGhhKTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyBDb3VsZCBub3QgcGFyc2UgYXMgYSB2YWxpZCBjb2xvcgotICAgICAg
ICB0aHJvdyAiY291bGQgbm90IHBhcnNlIGNvbG9yIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TcGVjdHJ1bS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3BlY3Ry
dW0uanMKaW5kZXggYmZlYWRiNTE3NzVmMWIwNjRiYzhiMmFlZWQ3YmZiZWNiMGJkMjFiMi4uMGYz
NDk2OGE1MTgzNWY3YzE2YTM2NTZlMzVkOTVkNzQ5MDJmOGJiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzCkBAIC0yODEsNyArMjgxLDcgQEAg
V2ViSW5zcGVjdG9yLlNwZWN0cnVtLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNvbG9yVmFs
dWUgPSBjb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9yRm9ybWF0KTsKICAgICAgICAgaWYg
KCFjb2xvclZhbHVlKQogICAgICAgICAgICAgY29sb3JWYWx1ZSA9IGNvbG9yLnRvU3RyaW5nKCk7
IC8vIHRoaXMub3V0cHV0Q29sb3JGb3JtYXQgY2FuIGJlIGludmFsaWQgZm9yIGN1cnJlbnQgY29s
b3IgKGUuZy4gIm5pY2tuYW1lIikuCi0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNv
bG9yKGNvbG9yVmFsdWUpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNl
KGNvbG9yVmFsdWUpOwogICAgIH0sCiAKICAgICBnZXQgb3V0cHV0Q29sb3JGb3JtYXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFy
UGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJh
clBhbmUuanMKaW5kZXggNjhhOTRlZDJmMWRhYmEwYWJiOWJhZTRmZWE3ZmQwNTdkMjBhOTRhYi4u
YTJkZDk5NGZkNzgyZGZlMzE5YmNiNzZjMmQ0MDUwMjIyZWJjYTAwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
CkBAIC0xNzM5LDEyICsxNzM5LDE1IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQ29sb3Io
dGV4dCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICAgICAgICB2YXIgY29sb3IgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKHRleHQpOwotICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIHZhciBjb2xvcjsKKyAgICAgICAgICAgICAgICBpZiAodGV4dCAhPT0gJ25vbmUnKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKHRleHQp
OwogICAgICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgICAgIGlmICghY29sb3IpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwor
ICAgICAgICAgICAgICAgIH0gIAorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHZh
ciBmb3JtYXQgPSBnZXRGb3JtYXQoKTsKICAgICAgICAgICAgICAgICB2YXIgaGFzU3BlY3RydW0g
PSBzZWxmLl9wYXJlbnRQYW5lOwogICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1bUhlbHBlciA9
IGhhc1NwZWN0cnVtID8gc2VsZi5fcGFyZW50UGFuZS5fc3BlY3RydW1IZWxwZXIgOiBudWxsOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52YWxpZC1j
b2xvci12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGRkNDkyMGFkMzU3
MjViNjg3NDlkMzc3ZmUwNjUzOWY0MTNiY2U2ZGEuLjVhYjliYzBlODBlMWQ5ZDk2Mjg5NTBmZWMx
MzhiZGNjZjVhZDc0ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50
eHQKQEAgLTcyLDQgKzcyLDUgQEAgY29sb3I6IHJnYmEoMjU1LCAwLCAwLCA1KQogICByZ2JhOiBy
Z2JhKDI1NSwgMCwgMCwgMSkKICAgaHNsOiBoc2woMCwgMTAwJSwgNTAlKQogICBoc2xhOiBoc2xh
KDAsIDEwMCUsIDUwJSwgMSkKK0ZBSUw6IEVycm9yIHBhcnNpbmcgY29sb3IgJ25vbmUnLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNv
bG9yLXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52
YWxpZC1jb2xvci12YWx1ZXMuaHRtbAppbmRleCA2ZWU0YTIwMTlmOTNkOGQwYTIxMjE5YTEyMzBl
ZTYzN2JkYjQwZmQ1Li5iNmJkM2FlNTNmM2JmN2NkMDA1MTkxMDMwNWFkZGI4OTU2YzEzZTFmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNv
bG9yLXZhbHVlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwKQEAgLTE3LDYgKzE3LDkgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIC8vIEVhY2ggb2YgdGhlc2UgaGFzIHRoZWlyIGFscGhhIGNsaXBwZWQgWzAu
MCwgMS4wXS4KICAgICAgICAgJ3JnYmEoMjU1LCAwLCAwLCAtNSknLCAvLyBjbGlwcGVkIHRvIHJn
YmEoMjU1LDAsMCwwKQogICAgICAgICAncmdiYSgyNTUsIDAsIDAsIDUpJywgIC8vIGNsaXBwZWQg
dG8gcmdiYSgyNTUsMCwwLDEpCisKKyAgICAgICAgLy8gQW4gaW52YWxpZCBjb2xvciwgZWcgYSB2
YWx1ZSBmb3IgYSBzaG9ydGhhbmQgbGlrZSAnYm9yZGVyJyB3aGljaCBjYW4gaGF2ZSBhIGNvbG9y
CisgICAgICAgICdub25lJywKICAgICBdOwogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3Vp
dGUoWwpAQCAtMzAsOSArMzMsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGR1
bXBDb2xvclJlcHJlc2VudGF0aW9uc0ZvckNvbG9yKGNvbG9yU3RyaW5nKQogICAgIHsKLSAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgIHZhciBjb2xvciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29sb3Io
Y29sb3JTdHJpbmcpOwotICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHZhciBjb2xvciA9
IFdlYkluc3BlY3Rvci5Db2xvci5wYXJzZShjb2xvclN0cmluZyk7CisgICAgICAgIGlmICghY29s
b3IpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiBFcnJvciBw
YXJzaW5nIGNvbG9yICciICsgY29sb3JTdHJpbmcgKyAiJy4iKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180367</attachid>
            <date>2012-12-20 10:51:06 -0800</date>
            <delta_ts>2013-01-14 10:23:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104835-20121220104822.patch</filename>
            <type>text/plain</type>
            <size>8683</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNkNTIxZWRjN2Y4ZTNm
NDBhZGYxNTA3NmY5NDFkMGI4MTliZjM5Ni4uOGQ0NDY0YzUzMzI5NTExZTI1NGZkNjVhNzk4MDQ3
ZGU5OWE3NDFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEyLTIwICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBEb24ndCB0aHJvdyBleGNlcHRpb25zIGluIFdlYkluc3BlY3Rvci5Db2xvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LkNvbG9yLnBhcnNlKCkgcmV0dXJucyBhIENvbG9yIGZyb20gYSBzdHJpbmcsIG9yIG51bGw7Cisg
ICAgICAgIEN0b3IgY2FsbHMgbm93IGNhbGwgcGFyc2UoKTsKKyAgICAgICAgSW4gdGhlIFN0eWxl
c1NpZGVCYXJQYW5lLCB0ZXN0IG51bGwgcmF0aGVyIHRoYW4gY2F0Y2goZSkuCisKKyAgICAgICAg
QWRkZWQgY2FzZSB0byBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVl
cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wYXJz
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbG9yLmZyb21SR0IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnBy
b3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
Ll9wYXJzZS50aGlzLmFscGhhLnNldCAwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5w
cm90b3R5cGUuX3BhcnNlLnRoaXMubmlja25hbWUuc2V0IDIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yLnByb3RvdHlwZS5fcGFyc2UudGhpcy5oc2xhLnNldCAxKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMucmdiYS5zZXQgMCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS5zZXQgV2ViSW5zcGVjdG9y
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNwZWN0cnVtLnByb3RvdHlwZS5nZXQgY29sb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisKIDIwMTItMTItMjAgIEVyaWsgQXJ2aWRz
c29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb2RlR2VuOiBNYWtlIFtSZWZsZWN0
XSB1c2UgZmFzdEdldEF0dHJpYnV0ZSBhbmQgZmFzdEhhc0F0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMKaW5kZXggOTUwMGM2MzZjNjk4ZjQ2ODUw
ZWI4NjJhOGIwYTEzOTIxYjljMjM0ZC4uMGJiN2I0NDc5NjU5NTIwODg3MWZiMmZjZDhmNmE0YTNi
NzZmODZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b2xvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpz
CkBAIC0yOCwyNSArMjgsMzAgQEAKICAqLwogCiAvKioKLSAqIEBjb25zdHJ1Y3RvcgorICogRG9u
J3QgY2FsbCBkaXJlY3RseSwgdXNlIFdlYkluc3BlY3Rvci5Db2xvci5wYXJzZSgpLiAKKyAqIEBj
b25zdHJ1Y3RvciAKICAqLwogV2ViSW5zcGVjdG9yLkNvbG9yID0gZnVuY3Rpb24oc3RyKQogewog
ICAgIHRoaXMudmFsdWUgPSBzdHI7Ci0gICAgdGhpcy5fcGFyc2UoKTsKIH0KIAorV2ViSW5zcGVj
dG9yLkNvbG9yLnBhcnNlID0gZnVuY3Rpb24oc3RyKQoreworICAgIHZhciBtYXliZUNvbG9yID0g
bmV3IFdlYkluc3BlY3Rvci5Db2xvcihzdHIpOworICAgIHJldHVybiBtYXliZUNvbG9yLl9wYXJz
ZSgpID8gbWF5YmVDb2xvciA6IG51bGw7Cit9CiAvKioKICAqIEBwYXJhbSB7bnVtYmVyPX0gYQog
ICovCiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEgPSBmdW5jdGlvbihyLCBnLCBiLCBhKQog
ewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2JhKCIgKyByICsgIiwiICsg
ZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8gMSA6IGEpICsg
IikiKTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKCJyZ2JhKCIgKyByICsg
IiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8gMSA6
IGEpICsgIikiKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0IgPSBmdW5jdGlvbihy
LCBnLCBiKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2IoIiArIHIg
KyAiLCIgKyBnICsgIiwiICsgYiArICIpIik7CisgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Db2xv
ci5wYXJzZSgicmdiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiKSIpOwogfQogCiBXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewpAQCAtMjA2LDcgKzIxMSw3IEBAIFdlYkluc3Bl
Y3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmlj
a25hbWU7CiAgICAgICAgIH0KIAotICAgICAgICB0aHJvdyAiaW52YWxpZCBjb2xvciBmb3JtYXQi
OworICAgICAgICByZXR1cm4gImludmFsaWQgY29sb3IgZm9ybWF0OiAiICsgZm9ybWF0OwogICAg
IH0sCiAKICAgICAvKioKQEAgLTQzMiw3ICs0MzcsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oc2xhID0gc2V0WzFdOwogICAgICAgICAgICAg
dGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIHRoaXMuYWxwaGEgPSBzZXRbMF1b
M107Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIFNpbXBsZSAtICNoZXgsIHJnYigpLCBuaWNrbmFtZSwgaHNsKCkK
QEAgLTQ2MSw3ICs0NjYsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJuaWNrbmFtZSI7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuaGV4ID0gV2ViSW5zcGVjdG9yLkNvbG9yLk5pY2tuYW1lc1tuaWNrbmFtZV07
CiAgICAgICAgICAgICAgICAgfSBlbHNlIC8vIHVua25vd24gbmFtZQotICAgICAgICAgICAgICAg
ICAgICB0aHJvdyAidW5rbm93biBjb2xvciBuYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFs0XSkgeyAvLyBoc2wKICAg
ICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJoc2wiOwogICAgICAgICAgICAgICAgIHZhciBo
c2wgPSBtYXRjaFs0XS5yZXBsYWNlKC8lL2csICIiKS5zcGxpdCgvXHMqLFxzKi8pOwpAQCAtNDc5
LDcgKzQ4NCw3IEBAIFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBBZHZhbmNlZCAtIHJnYmEoKSwgaHNsYSgpCkBAIC00OTksMTEgKzUwNCwxMSBAQCBXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMucmdiYSA9
IHRoaXMuX2hzbGFUb1JHQkEodGhpcy5oc2xhLCB0aGlzLmFscGhhKTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyBDb3VsZCBub3QgcGFyc2UgYXMgYSB2YWxpZCBjb2xvcgotICAgICAg
ICB0aHJvdyAiY291bGQgbm90IHBhcnNlIGNvbG9yIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TcGVjdHJ1bS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3BlY3Ry
dW0uanMKaW5kZXggYmZlYWRiNTE3NzVmMWIwNjRiYzhiMmFlZWQ3YmZiZWNiMGJkMjFiMi4uMGYz
NDk2OGE1MTgzNWY3YzE2YTM2NTZlMzVkOTVkNzQ5MDJmOGJiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzCkBAIC0yODEsNyArMjgxLDcgQEAg
V2ViSW5zcGVjdG9yLlNwZWN0cnVtLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNvbG9yVmFs
dWUgPSBjb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9yRm9ybWF0KTsKICAgICAgICAgaWYg
KCFjb2xvclZhbHVlKQogICAgICAgICAgICAgY29sb3JWYWx1ZSA9IGNvbG9yLnRvU3RyaW5nKCk7
IC8vIHRoaXMub3V0cHV0Q29sb3JGb3JtYXQgY2FuIGJlIGludmFsaWQgZm9yIGN1cnJlbnQgY29s
b3IgKGUuZy4gIm5pY2tuYW1lIikuCi0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNv
bG9yKGNvbG9yVmFsdWUpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNl
KGNvbG9yVmFsdWUpOwogICAgIH0sCiAKICAgICBnZXQgb3V0cHV0Q29sb3JGb3JtYXQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFy
UGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJh
clBhbmUuanMKaW5kZXggNzBmNjgyZjM5OWYyNWU0Y2E2MWRiNGVkNDQxOGZhMzMyYjJiOTJlOC4u
YWI3MGUzODMzMzg3ZmRjZTc4NjY3NTM3OTczNGFmNTBhMWExNDY2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
CkBAIC0xNzQ3LDEyICsxNzQ3LDEyIEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQ29sb3Io
dGV4dCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICAgICAgICB2YXIgY29sb3IgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKHRleHQpOwotICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB2YXIgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IucGFyc2UodGV4dCk7CiAKKyAgICAg
ICAgICAgICAgICAvLyBXZSBjYW4gYmUgY2FsbGVkIHdpdGggdmFsaWQgbm9uLWNvbG9yIHZhbHVl
cyBvZiB8dGV4dHwgKGxpa2UgJ25vbmUnIGZyb20gYm9yZGVyIHN0eWxlKSAKKyAgICAgICAgICAg
ICAgICBpZiAoIWNvbG9yKSAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRleHQpOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHZh
ciBmb3JtYXQgPSBnZXRGb3JtYXQoKTsKICAgICAgICAgICAgICAgICB2YXIgaGFzU3BlY3RydW0g
PSBzZWxmLl9wYXJlbnRQYW5lOwogICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1bUhlbHBlciA9
IGhhc1NwZWN0cnVtID8gc2VsZi5fcGFyZW50UGFuZS5fc3BlY3RydW1IZWxwZXIgOiBudWxsOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGJlOTU0YTU3YmQ3YWI5NzNmYTllODQ1ZWM3OGM0MTAyMjg1MmM2NDMuLjE0MmUxY2Iw
Y2EwMDhhMzRiZmMzOWViNzA2YTFmNTUxNDQ5ODBiNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMi0yMCAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogRG9uJ3QgdGhyb3cgZXhjZXB0aW9ucyBpbiBXZWJJbnNw
ZWN0b3IuQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgQWRkZWQgY2FzZSB0byB0ZXN0IHBhcnNpbmcgJ25vbmUnIGZyb20gYm9yZGVy
IHN0eWxlCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9y
LXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
aW52YWxpZC1jb2xvci12YWx1ZXMuaHRtbDoKKwogMjAxMi0xMi0yMCAgVG9ueSBDaGFuZyAgPHRv
bnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5p
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZh
bGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQKaW5kZXggZGQ0OTIw
YWQzNTcyNWI2ODc0OWQzNzdmZTA2NTM5ZjQxM2JjZTZkYS4uNWFiOWJjMGU4MGUxZDlkOTYyODk1
MGZlYzEzOGJkY2NmNWFkNzQ4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLWV4cGVj
dGVkLnR4dApAQCAtNzIsNCArNzIsNSBAQCBjb2xvcjogcmdiYSgyNTUsIDAsIDAsIDUpCiAgIHJn
YmE6IHJnYmEoMjU1LCAwLCAwLCAxKQogICBoc2w6IGhzbCgwLCAxMDAlLCA1MCUpCiAgIGhzbGE6
IGhzbGEoMCwgMTAwJSwgNTAlLCAxKQorRkFJTDogRXJyb3IgcGFyc2luZyBjb2xvciAnbm9uZScu
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFs
aWQtY29sb3ItdmFsdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1pbnZhbGlkLWNvbG9yLXZhbHVlcy5odG1sCmluZGV4IDZlZTRhMjAxOWY5M2Q4ZDBhMjEyMTlh
MTIzMGVlNjM3YmRiNDBmZDUuLmI2YmQzYWU1M2YzYmY3Y2QwMDUxOTEwMzA1YWRkYjg5NTZjMTNl
MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFs
aWQtY29sb3ItdmFsdWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMuaHRtbApAQCAtMTcsNiArMTcsOSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgLy8gRWFjaCBvZiB0aGVzZSBoYXMgdGhlaXIgYWxwaGEgY2xpcHBl
ZCBbMC4wLCAxLjBdLgogICAgICAgICAncmdiYSgyNTUsIDAsIDAsIC01KScsIC8vIGNsaXBwZWQg
dG8gcmdiYSgyNTUsMCwwLDApCiAgICAgICAgICdyZ2JhKDI1NSwgMCwgMCwgNSknLCAgLy8gY2xp
cHBlZCB0byByZ2JhKDI1NSwwLDAsMSkKKworICAgICAgICAvLyBBbiBpbnZhbGlkIGNvbG9yLCBl
ZyBhIHZhbHVlIGZvciBhIHNob3J0aGFuZCBsaWtlICdib3JkZXInIHdoaWNoIGNhbiBoYXZlIGEg
Y29sb3IKKyAgICAgICAgJ25vbmUnLAogICAgIF07CiAKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRl
c3RTdWl0ZShbCkBAIC0zMCw5ICszMyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rp
b24gZHVtcENvbG9yUmVwcmVzZW50YXRpb25zRm9yQ29sb3IoY29sb3JTdHJpbmcpCiAgICAgewot
ICAgICAgICB0cnkgewotICAgICAgICAgICAgdmFyIGNvbG9yID0gbmV3IFdlYkluc3BlY3Rvci5D
b2xvcihjb2xvclN0cmluZyk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdmFyIGNv
bG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKGNvbG9yU3RyaW5nKTsKKyAgICAgICAgaWYg
KCFjb2xvcikgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IEVy
cm9yIHBhcnNpbmcgY29sb3IgJyIgKyBjb2xvclN0cmluZyArICInLiIpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182597</attachid>
            <date>2013-01-14 10:23:54 -0800</date>
            <delta_ts>2013-01-16 10:55:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104835-20130114102055.patch</filename>
            <type>text/plain</type>
            <size>8858</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdmOWJiYzQ1MDIxMmMy
YjQ5ZWQ4NzhmOTI4NmFmODQ2NTRhN2QxZC4uNThmM2Q1NzlmOWZkOGJjNDVlODQxZGVjNzkzY2U5
MTgwN2FlYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEyLTIwICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBEb24ndCB0aHJvdyBleGNlcHRpb25zIGluIFdlYkluc3BlY3Rvci5Db2xvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LkNvbG9yLnBhcnNlKCkgcmV0dXJucyBhIENvbG9yIGZyb20gYSBzdHJpbmcsIG9yIG51bGw7Cisg
ICAgICAgIEN0b3IgY2FsbHMgbm93IGNhbGwgcGFyc2UoKTsKKyAgICAgICAgSW4gdGhlIFN0eWxl
c1NpZGVCYXJQYW5lLCB0ZXN0IG51bGwgcmF0aGVyIHRoYW4gY2F0Y2goZSkuCisKKyAgICAgICAg
QWRkZWQgY2FzZSB0byBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVl
cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wYXJz
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbG9yLmZyb21SR0IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnBy
b3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
Ll9wYXJzZS50aGlzLmFscGhhLnNldCAwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5w
cm90b3R5cGUuX3BhcnNlLnRoaXMubmlja25hbWUuc2V0IDIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yLnByb3RvdHlwZS5fcGFyc2UudGhpcy5oc2xhLnNldCAxKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMucmdiYS5zZXQgMCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS5zZXQgV2ViSW5zcGVjdG9y
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNwZWN0cnVtLnByb3RvdHlwZS5nZXQgY29sb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisKIDIwMTMtMDEtMTQgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gTWFrZSBhbiBJc29sYXRl
IHBhcmFtZXRlciBtYW5kYXRvcnkgaW4gYXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMKaW5kZXggM2IzYmZkMTY5
MmFiYWE3MWZhNTU3OTcyYjA2OTBhMjIxNGI3NWY5ZS4uOTI3NDFhMzVlZDEyMTg3ZmQzYTZkOGU4
NTQwYTNhNWVkZTY3NGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db2xvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbG9yLmpzCkBAIC0yOCwyNSArMjgsMzAgQEAKICAqLwogCiAvKioKLSAqIEBjb25zdHJ1Y3Rv
cgorICogRG9uJ3QgY2FsbCBkaXJlY3RseSwgdXNlIFdlYkluc3BlY3Rvci5Db2xvci5wYXJzZSgp
LiAKKyAqIEBjb25zdHJ1Y3RvciAKICAqLwogV2ViSW5zcGVjdG9yLkNvbG9yID0gZnVuY3Rpb24o
c3RyKQogewogICAgIHRoaXMudmFsdWUgPSBzdHI7Ci0gICAgdGhpcy5fcGFyc2UoKTsKIH0KIAor
V2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlID0gZnVuY3Rpb24oc3RyKQoreworICAgIHZhciBtYXli
ZUNvbG9yID0gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihzdHIpOworICAgIHJldHVybiBtYXliZUNv
bG9yLl9wYXJzZSgpID8gbWF5YmVDb2xvciA6IG51bGw7Cit9CiAvKioKICAqIEBwYXJhbSB7bnVt
YmVyPX0gYQogICovCiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEgPSBmdW5jdGlvbihyLCBn
LCBiLCBhKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2JhKCIgKyBy
ICsgIiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8g
MSA6IGEpICsgIikiKTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKCJyZ2Jh
KCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmlu
ZWQiID8gMSA6IGEpICsgIikiKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0IgPSBm
dW5jdGlvbihyLCBnLCBiKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJy
Z2IoIiArIHIgKyAiLCIgKyBnICsgIiwiICsgYiArICIpIik7CisgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5Db2xvci5wYXJzZSgicmdiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiKSIpOwog
fQogCiBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewpAQCAtMjA2LDcgKzIxMSw3IEBA
IFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRoaXMubmlja25hbWU7CiAgICAgICAgIH0KIAotICAgICAgICB0aHJvdyAiaW52YWxpZCBjb2xv
ciBmb3JtYXQiOworICAgICAgICByZXR1cm4gImludmFsaWQgY29sb3IgZm9ybWF0OiAiICsgZm9y
bWF0OwogICAgIH0sCiAKICAgICAvKioKQEAgLTQzMiw3ICs0MzcsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oc2xhID0gc2V0WzFdOwogICAg
ICAgICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIHRoaXMuYWxwaGEg
PSBzZXRbMF1bM107Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFNpbXBsZSAtICNoZXgsIHJnYigpLCBuaWNrbmFt
ZSwgaHNsKCkKQEAgLTQ2MSw3ICs0NjYsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJuaWNrbmFtZSI7CiAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuaGV4ID0gV2ViSW5zcGVjdG9yLkNvbG9yLk5pY2tuYW1lc1tu
aWNrbmFtZV07CiAgICAgICAgICAgICAgICAgfSBlbHNlIC8vIHVua25vd24gbmFtZQotICAgICAg
ICAgICAgICAgICAgICB0aHJvdyAidW5rbm93biBjb2xvciBuYW1lIjsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFs0XSkgeyAv
LyBoc2wKICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJoc2wiOwogICAgICAgICAgICAg
ICAgIHZhciBoc2wgPSBtYXRjaFs0XS5yZXBsYWNlKC8lL2csICIiKS5zcGxpdCgvXHMqLFxzKi8p
OwpAQCAtNDc5LDcgKzQ4NCw3IEBAIFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBBZHZhbmNlZCAtIHJnYmEoKSwgaHNsYSgpCkBAIC00OTksMTEgKzUwNCwx
MSBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRo
aXMucmdiYSA9IHRoaXMuX2hzbGFUb1JHQkEodGhpcy5oc2xhLCB0aGlzLmFscGhhKTsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDb3VsZCBub3QgcGFyc2UgYXMgYSB2YWxpZCBjb2xv
cgotICAgICAgICB0aHJvdyAiY291bGQgbm90IHBhcnNlIGNvbG9yIjsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TcGVjdHJ1bS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3BlY3RydW0uanMKaW5kZXggYmZlYWRiNTE3NzVmMWIwNjRiYzhiMmFlZWQ3YmZiZWNiMGJk
MjFiMi4uMGYzNDk2OGE1MTgzNWY3YzE2YTM2NTZlMzVkOTVkNzQ5MDJmOGJiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzCkBAIC0yODEsNyAr
MjgxLDcgQEAgV2ViSW5zcGVjdG9yLlNwZWN0cnVtLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IGNvbG9yVmFsdWUgPSBjb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9yRm9ybWF0KTsKICAg
ICAgICAgaWYgKCFjb2xvclZhbHVlKQogICAgICAgICAgICAgY29sb3JWYWx1ZSA9IGNvbG9yLnRv
U3RyaW5nKCk7IC8vIHRoaXMub3V0cHV0Q29sb3JGb3JtYXQgY2FuIGJlIGludmFsaWQgZm9yIGN1
cnJlbnQgY29sb3IgKGUuZy4gIm5pY2tuYW1lIikuCi0gICAgICAgIHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLkNvbG9yKGNvbG9yVmFsdWUpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNv
bG9yLnBhcnNlKGNvbG9yVmFsdWUpOwogICAgIH0sCiAKICAgICBnZXQgb3V0cHV0Q29sb3JGb3Jt
YXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanMKaW5kZXggNmMxNTBjMGRlNDJmYTk1MzI2NzRiMDRlOWY1Njk5NmJm
YThhOWJmZi4uOTQ4MDQxNDRlNjliMWZhNDczMzE4NjFiOTc0OWQ0OTE5MDY4OWUxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGVi
YXJQYW5lLmpzCkBAIC0xNzQ3LDEyICsxNzQ3LDEyIEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBmdW5jdGlvbiBwcm9j
ZXNzQ29sb3IodGV4dCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKHRleHQp
OwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwotICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB2YXIgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IucGFyc2UodGV4dCk7
CiAKKyAgICAgICAgICAgICAgICAvLyBXZSBjYW4gYmUgY2FsbGVkIHdpdGggdmFsaWQgbm9uLWNv
bG9yIHZhbHVlcyBvZiB8dGV4dHwgKGxpa2UgJ25vbmUnIGZyb20gYm9yZGVyIHN0eWxlKSAKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvbG9yKSAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOworICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIHZhciBmb3JtYXQgPSBnZXRGb3JtYXQoKTsKICAgICAgICAgICAgICAgICB2YXIgaGFz
U3BlY3RydW0gPSBzZWxmLl9wYXJlbnRQYW5lOwogICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1
bUhlbHBlciA9IGhhc1NwZWN0cnVtID8gc2VsZi5fcGFyZW50UGFuZS5fc3BlY3RydW1IZWxwZXIg
OiBudWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDAxNzgxODBhYmY4ZjEwYjY5YWRhY2ZmZTdiZmM1N2E0MjJhM2Q1OTUu
LmIxMGY0NTBmMDQzMjdkMjJmOTAxNDUzM2ZmYjY5NDBjZTgxNmRjNzUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0xMi0yMCAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRG9uJ3QgdGhyb3cgZXhjZXB0aW9ucyBp
biBXZWJJbnNwZWN0b3IuQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgQWRkZWQgY2FzZSB0byB0ZXN0IHBhcnNpbmcgJ25vbmUnIGZy
b20gYm9yZGVyIHN0eWxlCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZh
bGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMuaHRtbDoKKwogMjAxMy0wMS0xNCAgVG9tbXkg
V2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBB
UEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrOjpyZWFkeVN0YXRlIHRvIG1hdGNoIHNwZWNpZmlj
YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlu
dmFsaWQtY29sb3ItdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCBkZDQ5
MjBhZDM1NzI1YjY4NzQ5ZDM3N2ZlMDY1MzlmNDEzYmNlNmRhLi44MWI5Yzg1NTg3MmU1OWRiMjg5
N2Y3N2ZjYmRjNWJiNWIyZjEzNzkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhw
ZWN0ZWQudHh0CkBAIC03MywzICs3Myw1IEBAIGNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgNSkKICAg
aHNsOiBoc2woMCwgMTAwJSwgNTAlKQogICBoc2xhOiBoc2xhKDAsIDEwMCUsIDUwJSwgMSkKIAor
aW52YWxpZCBjb2xvciAnbm9uZScgcGFyc2VzIHRvIG51bGwuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVl
cy5odG1sCmluZGV4IDZlZTRhMjAxOWY5M2Q4ZDBhMjEyMTlhMTIzMGVlNjM3YmRiNDBmZDUuLjRl
NWY2MzdkMGJhNjg3YjU0ZWQ0NmIwN2ZkYjM5ZDdiMWNjZDk0MjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12
YWx1ZXMuaHRtbApAQCAtMTcsNiArMTcsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgLy8g
RWFjaCBvZiB0aGVzZSBoYXMgdGhlaXIgYWxwaGEgY2xpcHBlZCBbMC4wLCAxLjBdLgogICAgICAg
ICAncmdiYSgyNTUsIDAsIDAsIC01KScsIC8vIGNsaXBwZWQgdG8gcmdiYSgyNTUsMCwwLDApCiAg
ICAgICAgICdyZ2JhKDI1NSwgMCwgMCwgNSknLCAgLy8gY2xpcHBlZCB0byByZ2JhKDI1NSwwLDAs
MSkKKworICAgICAgICAvLyBBbiBpbnZhbGlkIGNvbG9yLCBlZyBhIHZhbHVlIGZvciBhIHNob3J0
aGFuZCBsaWtlICdib3JkZXInIHdoaWNoIGNhbiBoYXZlIGEgY29sb3IKKyAgICAgICAgJ25vbmUn
LAogICAgIF07CiAKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCkBAIC0zMCwxMCAr
MzMsMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBkdW1wQ29sb3JSZXByZXNl
bnRhdGlvbnNGb3JDb2xvcihjb2xvclN0cmluZykKICAgICB7Ci0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICB2YXIgY29sb3IgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKGNvbG9yU3RyaW5nKTsK
LSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkZBSUw6IEVycm9yIHBhcnNpbmcgY29sb3IgJyIgKyBjb2xvclN0cmluZyArICInLiIpOwor
ICAgICAgICB2YXIgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IucGFyc2UoY29sb3JTdHJpbmcp
OworICAgICAgICBpZiAoIWNvbG9yKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiaW52YWxpZCBj
b2xvciAnIiArIGNvbG9yU3RyaW5nICsgIicgcGFyc2VzIHRvIG51bGwuIik7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183007</attachid>
            <date>2013-01-16 10:55:41 -0800</date>
            <delta_ts>2013-02-11 01:41:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104835-20130116105242.patch</filename>
            <type>text/plain</type>
            <size>9747</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdmOWJiYzQ1MDIxMmMy
YjQ5ZWQ4NzhmOTI4NmFmODQ2NTRhN2QxZC4uNThmM2Q1NzlmOWZkOGJjNDVlODQxZGVjNzkzY2U5
MTgwN2FlYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEyLTIwICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBEb24ndCB0aHJvdyBleGNlcHRpb25zIGluIFdlYkluc3BlY3Rvci5Db2xvcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0ODM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9y
LkNvbG9yLnBhcnNlKCkgcmV0dXJucyBhIENvbG9yIGZyb20gYSBzdHJpbmcsIG9yIG51bGw7Cisg
ICAgICAgIEN0b3IgY2FsbHMgbm93IGNhbGwgcGFyc2UoKTsKKyAgICAgICAgSW4gdGhlIFN0eWxl
c1NpZGVCYXJQYW5lLCB0ZXN0IG51bGwgcmF0aGVyIHRoYW4gY2F0Y2goZSkuCisKKyAgICAgICAg
QWRkZWQgY2FzZSB0byBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVl
cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wYXJz
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbG9yLmZyb21SR0IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbG9yLnBy
b3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
Ll9wYXJzZS50aGlzLmFscGhhLnNldCAwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5w
cm90b3R5cGUuX3BhcnNlLnRoaXMubmlja25hbWUuc2V0IDIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbG9yLnByb3RvdHlwZS5fcGFyc2UudGhpcy5oc2xhLnNldCAxKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlLnRoaXMucmdiYS5zZXQgMCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlLl9wYXJzZS5zZXQgV2ViSW5zcGVjdG9y
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUuX3BhcnNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNwZWN0cnVtLnByb3RvdHlwZS5nZXQgY29sb3IpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisKIDIwMTMtMDEtMTQgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gTWFrZSBhbiBJc29sYXRl
IHBhcmFtZXRlciBtYW5kYXRvcnkgaW4gYXNzb2NpYXRlT2JqZWN0V2l0aFdyYXBwZXIoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMKaW5kZXggM2IzYmZkMTY5
MmFiYWE3MWZhNTU3OTcyYjA2OTBhMjIxNGI3NWY5ZS4uOTI3NDFhMzVlZDEyMTg3ZmQzYTZkOGU4
NTQwYTNhNWVkZTY3NGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db2xvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbG9yLmpzCkBAIC0yOCwyNSArMjgsMzAgQEAKICAqLwogCiAvKioKLSAqIEBjb25zdHJ1Y3Rv
cgorICogRG9uJ3QgY2FsbCBkaXJlY3RseSwgdXNlIFdlYkluc3BlY3Rvci5Db2xvci5wYXJzZSgp
LiAKKyAqIEBjb25zdHJ1Y3RvciAKICAqLwogV2ViSW5zcGVjdG9yLkNvbG9yID0gZnVuY3Rpb24o
c3RyKQogewogICAgIHRoaXMudmFsdWUgPSBzdHI7Ci0gICAgdGhpcy5fcGFyc2UoKTsKIH0KIAor
V2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlID0gZnVuY3Rpb24oc3RyKQoreworICAgIHZhciBtYXli
ZUNvbG9yID0gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihzdHIpOworICAgIHJldHVybiBtYXliZUNv
bG9yLl9wYXJzZSgpID8gbWF5YmVDb2xvciA6IG51bGw7Cit9CiAvKioKICAqIEBwYXJhbSB7bnVt
YmVyPX0gYQogICovCiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEgPSBmdW5jdGlvbihyLCBn
LCBiLCBhKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJyZ2JhKCIgKyBy
ICsgIiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmluZWQiID8g
MSA6IGEpICsgIikiKTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKCJyZ2Jh
KCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiLCIgKyAodHlwZW9mIGEgPT09ICJ1bmRlZmlu
ZWQiID8gMSA6IGEpICsgIikiKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0IgPSBm
dW5jdGlvbihyLCBnLCBiKQogewotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKCJy
Z2IoIiArIHIgKyAiLCIgKyBnICsgIiwiICsgYiArICIpIik7CisgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5Db2xvci5wYXJzZSgicmdiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiKSIpOwog
fQogCiBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewpAQCAtMjA2LDcgKzIxMSw3IEBA
IFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRoaXMubmlja25hbWU7CiAgICAgICAgIH0KIAotICAgICAgICB0aHJvdyAiaW52YWxpZCBjb2xv
ciBmb3JtYXQiOworICAgICAgICByZXR1cm4gImludmFsaWQgY29sb3IgZm9ybWF0OiAiICsgZm9y
bWF0OwogICAgIH0sCiAKICAgICAvKioKQEAgLTQzMiw3ICs0MzcsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5oc2xhID0gc2V0WzFdOwogICAg
ICAgICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIHRoaXMuYWxwaGEg
PSBzZXRbMF1bM107Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFNpbXBsZSAtICNoZXgsIHJnYigpLCBuaWNrbmFt
ZSwgaHNsKCkKQEAgLTQ2MSw3ICs0NjYsNyBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJuaWNrbmFtZSI7CiAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuaGV4ID0gV2ViSW5zcGVjdG9yLkNvbG9yLk5pY2tuYW1lc1tu
aWNrbmFtZV07CiAgICAgICAgICAgICAgICAgfSBlbHNlIC8vIHVua25vd24gbmFtZQotICAgICAg
ICAgICAgICAgICAgICB0aHJvdyAidW5rbm93biBjb2xvciBuYW1lIjsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaFs0XSkgeyAv
LyBoc2wKICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdCA9ICJoc2wiOwogICAgICAgICAgICAg
ICAgIHZhciBoc2wgPSBtYXRjaFs0XS5yZXBsYWNlKC8lL2csICIiKS5zcGxpdCgvXHMqLFxzKi8p
OwpAQCAtNDc5LDcgKzQ4NCw3IEBAIFdlYkluc3BlY3Rvci5Db2xvci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgdGhpcy5uaWNrbmFtZSA9IHNldFsyXTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBBZHZhbmNlZCAtIHJnYmEoKSwgaHNsYSgpCkBAIC00OTksMTEgKzUwNCwx
MSBAQCBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRo
aXMucmdiYSA9IHRoaXMuX2hzbGFUb1JHQkEodGhpcy5oc2xhLCB0aGlzLmFscGhhKTsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDb3VsZCBub3QgcGFyc2UgYXMgYSB2YWxpZCBjb2xv
cgotICAgICAgICB0aHJvdyAiY291bGQgbm90IHBhcnNlIGNvbG9yIjsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TcGVjdHJ1bS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3BlY3RydW0uanMKaW5kZXggYmZlYWRiNTE3NzVmMWIwNjRiYzhiMmFlZWQ3YmZiZWNiMGJk
MjFiMi4uMGYzNDk2OGE1MTgzNWY3YzE2YTM2NTZlMzVkOTVkNzQ5MDJmOGJiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NwZWN0cnVtLmpzCkBAIC0yODEsNyAr
MjgxLDcgQEAgV2ViSW5zcGVjdG9yLlNwZWN0cnVtLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IGNvbG9yVmFsdWUgPSBjb2xvci50b1N0cmluZyh0aGlzLm91dHB1dENvbG9yRm9ybWF0KTsKICAg
ICAgICAgaWYgKCFjb2xvclZhbHVlKQogICAgICAgICAgICAgY29sb3JWYWx1ZSA9IGNvbG9yLnRv
U3RyaW5nKCk7IC8vIHRoaXMub3V0cHV0Q29sb3JGb3JtYXQgY2FuIGJlIGludmFsaWQgZm9yIGN1
cnJlbnQgY29sb3IgKGUuZy4gIm5pY2tuYW1lIikuCi0gICAgICAgIHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLkNvbG9yKGNvbG9yVmFsdWUpOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkNv
bG9yLnBhcnNlKGNvbG9yVmFsdWUpOwogICAgIH0sCiAKICAgICBnZXQgb3V0cHV0Q29sb3JGb3Jt
YXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5
bGVzU2lkZWJhclBhbmUuanMKaW5kZXggNmMxNTBjMGRlNDJmYTk1MzI2NzRiMDRlOWY1Njk5NmJm
YThhOWJmZi4uOTQ4MDQxNDRlNjliMWZhNDczMzE4NjFiOTc0OWQ0OTE5MDY4OWUxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGVi
YXJQYW5lLmpzCkBAIC0xNzQ3LDEyICsxNzQ3LDEyIEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBmdW5jdGlvbiBwcm9j
ZXNzQ29sb3IodGV4dCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgICAgICB2YXIgY29sb3IgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yKHRleHQp
OwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwotICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB2YXIgY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IucGFyc2UodGV4dCk7
CiAKKyAgICAgICAgICAgICAgICAvLyBXZSBjYW4gYmUgY2FsbGVkIHdpdGggdmFsaWQgbm9uLWNv
bG9yIHZhbHVlcyBvZiB8dGV4dHwgKGxpa2UgJ25vbmUnIGZyb20gYm9yZGVyIHN0eWxlKSAKKyAg
ICAgICAgICAgICAgICBpZiAoIWNvbG9yKSAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOworICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIHZhciBmb3JtYXQgPSBnZXRGb3JtYXQoKTsKICAgICAgICAgICAgICAgICB2YXIgaGFz
U3BlY3RydW0gPSBzZWxmLl9wYXJlbnRQYW5lOwogICAgICAgICAgICAgICAgIHZhciBzcGVjdHJ1
bUhlbHBlciA9IGhhc1NwZWN0cnVtID8gc2VsZi5fcGFyZW50UGFuZS5fc3BlY3RydW1IZWxwZXIg
OiBudWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDAxNzgxODBhYmY4ZjEwYjY5YWRhY2ZmZTdiZmM1N2E0MjJhM2Q1OTUu
LmIxMGY0NTBmMDQzMjdkMjJmOTAxNDUzM2ZmYjY5NDBjZTgxNmRjNzUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0xMi0yMCAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRG9uJ3QgdGhyb3cgZXhjZXB0aW9ucyBp
biBXZWJJbnNwZWN0b3IuQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgQWRkZWQgY2FzZSB0byB0ZXN0IHBhcnNpbmcgJ25vbmUnIGZy
b20gYm9yZGVyIHN0eWxlCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pbnZh
bGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMuaHRtbDoKKwogMjAxMy0wMS0xNCAgVG9tbXkg
V2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBB
UEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrOjpyZWFkeVN0YXRlIHRvIG1hdGNoIHNwZWNpZmlj
YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlu
dmFsaWQtY29sb3ItdmFsdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLWV4cGVjdGVkLnR4dAppbmRleCBkZDQ5
MjBhZDM1NzI1YjY4NzQ5ZDM3N2ZlMDY1MzlmNDEzYmNlNmRhLi44YTU1MjgwZTlhM2EzOGUwYzA0
ZWMyNGQzYWNhMTYyYzMzZmE3ZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMtZXhw
ZWN0ZWQudHh0CkBAIC03MywzICs3Myw3IEBAIGNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgNSkKICAg
aHNsOiBoc2woMCwgMTAwJSwgNTAlKQogICBoc2xhOiBoc2xhKDAsIDEwMCUsIDUwJSwgMSkKIAor
UnVubmluZzogdGVzdEludmFsaWRDb2xvcnMKKworU1VDQ0VTUzogcGFyc2VkIGludmFsaWQgY29s
b3Igbm9uZSB0byBudWxsCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3N0eWxlcy1pbnZhbGlkLWNvbG9yLXZhbHVlcy5odG1sCmluZGV4IDZlZTRhMjAx
OWY5M2Q4ZDBhMjEyMTlhMTIzMGVlNjM3YmRiNDBmZDUuLmEwZjdiZDJiMTEwMGZhNjhiMjNiOTky
NDM3YzZjYWJmYzVkMTk1ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLWludmFsaWQtY29sb3ItdmFsdWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtaW52YWxpZC1jb2xvci12YWx1ZXMuaHRtbApAQCAtMTcsNiAr
MTcsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIC8vIEVhY2ggb2YgdGhlc2UgaGFzIHRo
ZWlyIGFscGhhIGNsaXBwZWQgWzAuMCwgMS4wXS4KICAgICAgICAgJ3JnYmEoMjU1LCAwLCAwLCAt
NSknLCAvLyBjbGlwcGVkIHRvIHJnYmEoMjU1LDAsMCwwKQogICAgICAgICAncmdiYSgyNTUsIDAs
IDAsIDUpJywgIC8vIGNsaXBwZWQgdG8gcmdiYSgyNTUsMCwwLDEpCisgICAgICAgIF07CisKKyAg
ICB2YXIgaW52YWxpZENvbG9ycyA9IFsKKyAgICAgICAgLy8gQW4gaW52YWxpZCBjb2xvciwgZWcg
YSB2YWx1ZSBmb3IgYSBzaG9ydGhhbmQgbGlrZSAnYm9yZGVyJyB3aGljaCBjYW4gaGF2ZSBhIGNv
bG9yCisgICAgICAgICdub25lJywKICAgICBdOwogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUoWwpAQCAtMjYsMTYgKzMxLDMyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
ICAgIGR1bXBDb2xvclJlcHJlc2VudGF0aW9uc0ZvckNvbG9yKGNvbG9yc1tpXSk7CiAgICAgICAg
ICAgICBuZXh0KCk7CiAgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9uIHRlc3RJbnZhbGlkQ29s
b3JzKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW52
YWxpZENvbG9ycy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBkdW1wRXJyb3JzRm9ySW52
YWxpZENvbG9yKGludmFsaWRDb2xvcnNbaV0pOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICB9LAogICAgIF0pOwogCi0gICAgZnVuY3Rpb24gZHVtcENvbG9yUmVwcmVzZW50YXRpb25zRm9y
Q29sb3IoY29sb3JTdHJpbmcpCisgICAgZnVuY3Rpb24gZHVtcEVycm9yc0ZvckludmFsaWRDb2xv
cihjb2xvclN0cmluZykgCiAgICAgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgdmFyIGNv
bG9yID0gbmV3IFdlYkluc3BlY3Rvci5Db2xvcihjb2xvclN0cmluZyk7Ci0gICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiBFcnJv
ciBwYXJzaW5nIGNvbG9yICciICsgY29sb3JTdHJpbmcgKyAiJy4iKTsKKyAgICAgICAgdmFyIGNv
bG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLnBhcnNlKGNvbG9yU3RyaW5nKTsKKyAgICAgICAgaWYg
KCFjb2xvcikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNVQ0NFU1M6IHBhcnNlZCBpbnZhbGlk
IGNvbG9yICIgKyBjb2xvclN0cmluZyArICIgdG8gbnVsbCIpOwogICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IGludmFsaWQg
Y29sb3IgIiArIGNvbG9yU3RyaW5nICsgIiBkaWQgbm90IHBhcnNlIHRvIHRvIG51bGwiKTsKICAg
ICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBDb2xvclJlcHJlc2VudGF0aW9uc0Zv
ckNvbG9yKGNvbG9yU3RyaW5nKQorICAgIHsKKyAgICAgICAgdmFyIGNvbG9yID0gV2ViSW5zcGVj
dG9yLkNvbG9yLnBhcnNlKGNvbG9yU3RyaW5nKTsKKyAgICAgICAgaWYgKCFjb2xvcikKKyAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb2xvcjogIiArIGNvbG9yU3RyaW5nKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>