<?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>15012</bug_id>
          
          <creation_ts>2007-08-19 13:19:06 -0700</creation_ts>
          <short_desc>SVGColor dom interface is not created for color property in SVG elements</short_desc>
          <delta_ts>2012-04-06 15:22:05 -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>SVG</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>46112</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>krit</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1963</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-08-19 13:19:06 -0700</bug_when>
    <thetext>When inspecting css properties using getPresentationAttribute it becomes clear that color properties
are of type CSSPrimitiveValue whereas the svg spec says they should be SVGColor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1964</commentid>
    <comment_count>1</comment_count>
      <attachid>16026</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-08-19 13:23:36 -0700</bug_when>
    <thetext>Created attachment 16026
Testcase

Quick testcase showing the problem. Try in Opera to verify that it should report SVGColor, not CSSPrimitiveValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492</commentid>
    <comment_count>2</comment_count>
      <attachid>16117</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-08-25 06:42:29 -0700</bug_when>
    <thetext>Created attachment 16117
First attempt

My first shot at this. It could need some more ENABLE(SVG) sections, anyway I think we need something like this to support things like SVGColor as a proper CSSValue interface.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1286</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-08-29 02:05:12 -0700</bug_when>
    <thetext>I am uncomfortable with having an &quot;SVG mode&quot; for the CSS parser. It makes things confusing when mixing SVG with other XML languages. Also, the way the patch does this, it would apply to stylesheets references with a style element, but not to ones using a processing instruction: &lt;http://www.w3.org/TR/xml-stylesheet/&gt;. Perhaps the actual right thing to do is to special-case the color property in the implementation of getPresentationAttribute. Then getPresentationAttribute would do the right thing for colors set by stylesheets included from an XHTML &lt;link&gt; element or an xml-stylesheet processing instruction. Is there a reason that wouldn&apos;t work?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57370</commentid>
    <comment_count>4</comment_count>
      <attachid>16117</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-09-29 12:49:44 -0700</bug_when>
    <thetext>Comment on attachment 16117
First attempt

I&apos;m also not a fan of a separate parsing mode.  r-&apos;ing after Maciej&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592800</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-03-30 22:09:13 -0700</bug_when>
    <thetext>Rob, I still see CSSPrimitiveValue on the example. But there was something dropped around SVGColor IIRC. Can you check if this is still a valid bug report? And maybe fix it? :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592837</commentid>
    <comment_count>6</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-31 05:20:31 -0700</bug_when>
    <thetext>Hi Dirk,

(In reply to comment #5)
&gt; Rob, I still see CSSPrimitiveValue on the example. But there was something dropped around SVGColor IIRC. Can you check if this is still a valid bug report? And maybe fix it? :D

I&apos;ll have a look this weekend, sure.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592942</commentid>
    <comment_count>7</comment_count>
      <attachid>134981</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-31 16:07:31 -0700</bug_when>
    <thetext>Created attachment 134981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592949</commentid>
    <comment_count>8</comment_count>
      <attachid>134981</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-03-31 17:31:30 -0700</bug_when>
    <thetext>Comment on attachment 134981
Patch

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

I would like to have some more eyes on that. But it looks strange to me that just &apos;color&apos; should be affected.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Create SVGColor instances for the color property when in parsing mode SVGAttributeMode.

So it should only be SVGColor for asking presentation attributes? Can you add a link to the spec text please?

&gt; Source/WebCore/css/CSSParser.cpp:339
&gt; +    if (cssParserMode == SVGAttributeMode &amp;&amp; propertyId == CSSPropertyColor) {

Why just for &apos;color&apos; and not &apos;stop-color&apos;, &apos;flood-color&apos; or &apos;fill&apos; and &apos;stroke&apos; when they have colors?

&gt; Source/WebCore/css/CSSParser.cpp:342
&gt; +        if (!CSSParser::fastParseColor(color, string, strict &amp;&amp; string[0] != &apos;#&apos;))
&gt; +            return false;

This gets called some lines later, sure that you should&apos;t move the exception for SVG there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592959</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-31 19:06:41 -0700</bug_when>
    <thetext>Hi Dirk,

(In reply to comment #8)
&gt; (From update of attachment 134981 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134981&amp;action=review
&gt; 
&gt; I would like to have some more eyes on that. But it looks strange to me that just &apos;color&apos; should be affected.

Ok. Read below :)

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Create SVGColor instances for the color property when in parsing mode SVGAttributeMode.
&gt; 
&gt; So it should only be SVGColor for asking presentation attributes? Can you add a link to the spec text please?

How do you mean? Do you think this patch is not fixing the bug?

&gt; &gt; Source/WebCore/css/CSSParser.cpp:339
&gt; &gt; +    if (cssParserMode == SVGAttributeMode &amp;&amp; propertyId == CSSPropertyColor) {
&gt; 
&gt; Why just for &apos;color&apos; and not &apos;stop-color&apos;, &apos;flood-color&apos; or &apos;fill&apos; and &apos;stroke&apos; when they have colors?

color is special since it is there in both normal and &apos;svg&apos; css, whereas those others are svg only and handled by SVGCSSParser with a different code path already producing SVGColors, normal CSSParser doesn&apos;t know them.

&gt; &gt; Source/WebCore/css/CSSParser.cpp:342
&gt; &gt; +        if (!CSSParser::fastParseColor(color, string, strict &amp;&amp; string[0] != &apos;#&apos;))
&gt; &gt; +            return false;
&gt; 
&gt; This gets called some lines later, sure that you should&apos;t move the exception for SVG there?

We could, but then we&apos;d have to work around the validPrimitiveValue, SVGColor is not a CSSPrimitiveValue.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595985</commentid>
    <comment_count>10</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-04 14:59:23 -0700</bug_when>
    <thetext>The test also needs to check other color properties like flood-color etc. R- until the next patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596517</commentid>
    <comment_count>11</comment_count>
      <attachid>135812</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 05:56:54 -0700</bug_when>
    <thetext>Created attachment 135812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596530</commentid>
    <comment_count>12</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-05 06:40:04 -0700</bug_when>
    <thetext>My latest patch now should test all color properties of SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597697</commentid>
    <comment_count>13</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-06 15:02:58 -0700</bug_when>
    <thetext>Ok, now I get better what Dirk meant by &quot;But there was something dropped around SVGColor IIRC.&quot;, I just read &quot;And maybe fix it?&quot;. So now I saw this:

http://www.w3.org/TR/SVG/types.html#InterfaceSVGColor

Note: The SVGColor interface is deprecated, and may be dropped from future versions of the SVG specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597717</commentid>
    <comment_count>14</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-06 15:20:30 -0700</bug_when>
    <thetext>Slightly related:

https://bugzilla.mozilla.org/show_bug.cgi?id=500888

SVGPaint is also deprecated:

http://www.w3.org/TR/SVG/painting.html#InterfaceSVGPaint

Note: The SVGPaint interface is deprecated, and may be dropped from future versions of the SVG specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597719</commentid>
    <comment_count>15</comment_count>
      <attachid>135812</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-06 15:20:50 -0700</bug_when>
    <thetext>Comment on attachment 135812
Patch

Clearing review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597721</commentid>
    <comment_count>16</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-06 15:22:05 -0700</bug_when>
    <thetext>As discussed with Dirk, not much point in this bug anymore. Once SVG2 happens, we should remove SVGColor, or reconsider the implementation in this bug, depending on their decision.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>16026</attachid>
            <date>2007-08-19 13:23:36 -0700</date>
            <delta_ts>2007-08-19 13:23:36 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>test33.svg</filename>
            <type>image/svg+xml</type>
            <size>350</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIgogICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxv
YWQ9InJ1blRlc3QoKSI+CjxzY3JpcHQ+CmZ1bmN0aW9uIHJ1blRlc3QoKQp7CiAgICB2YXIgZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vJyk7CiAgICBhbGVydChlbC5nZXRQcmVzZW50
YXRpb25BdHRyaWJ1dGUoJ2NvbG9yJykpOwp9Cjwvc2NyaXB0Pgo8cmVjdCBpZD0iZm9vIiBjb2xv
cj0iZ3JlZW4iIGZpbGw9ImN1cnJlbnRDb2xvciIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4K
Cjwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16117</attachid>
            <date>2007-08-25 06:42:29 -0700</date>
            <delta_ts>2012-03-31 16:06:32 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>15012.diff</filename>
            <type>text/plain</type>
            <size>23247</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1MjM1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDctMDgtMjUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUwMTIKKyAgICAgICAgU1ZHQ29sb3IgZG9tIGludGVyZmFjZSBpcyBub3QgY3JlYXRl
ZCBmb3IgY29sb3IgcHJvcGVydHkgaW4gU1ZHIGVsZW1lbnRzCisKKyAgICAgICAgKiBzdmcvY3Vz
dG9tL1NWR0NvbG9yLWludGVyZmFjZS1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAg
ICogc3ZnL2N1c3RvbS9TVkdDb2xvci1pbnRlcmZhY2UtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvY3VzdG9tL1NWR0NvbG9yLWludGVyZmFjZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNlLnN2ZzogQWRkZWQuCisK
IDIwMDctMDgtMjIgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNhbS4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNl
LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
U1ZHQ29sb3ItaW50ZXJmYWNlLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9TVkdDb2xvci1pbnRlcmZhY2UtZXhwZWN0ZWQuY2hlY2tzdW0J
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzE2MzEwNTg4NDY3Y2ZjMjBkNTUxNjM1YWJjNTli
Nzg0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9TVkdDb2xvci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMTAw
eDEwMAorICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEwMCBbZmlsbD17
W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMC4wMCwwLjAwTDEwMC4wMCww
LjAwTDEwMC4wMCwxMDAuMDBMMC4wMCwxMDAuMDAiXQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9TVkdDb2xvci1pbnRlcmZhY2Uuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNlLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItaW50ZXJmYWNlLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIKKyAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiIG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0
KCkKK3sKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vJyk7CisgICAg
dmFyIHN2Z2NvbG9yID0gZWwuZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKCdjb2xvcicpOworICAg
IHN2Z2NvbG9yLnNldFJHQkNvbG9yKCJncmVlbiIpOworfQorPC9zY3JpcHQ+Cis8cmVjdCBpZD0i
Zm9vIiBjb2xvcj0icmVkIiBmaWxsPSJjdXJyZW50Q29sb3IiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIi8+CisKKzwvc3ZnPgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjMzKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOSBAQAorMjAwNy0wOC0yNSAgUm9iIEJ1aXMgIDxi
dWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMTIKKyAgICAg
ICAgU1ZHQ29sb3IgZG9tIGludGVyZmFjZSBpcyBub3QgY3JlYXRlZCBmb3IgY29sb3IgcHJvcGVy
dHkgaW4gU1ZHIGVsZW1lbnRzCisKKyAgICAgICAgTWFrZSB0aGUgY3NzIGNsYXNzZXMgaGF2ZSBh
IHN2ZyBtb2RlLCB3aGVyZSB0aGUgcHJvcGVydGllcyBhcmUgcGFyc2VkCisgICAgICAgIGluIHN2
ZyBjb250ZXh0LiBUaGlzIG1vZGUgaXMgb25seSBzZXQgZm9yIHN2ZyBlbGVtZW50cy4KKworICAg
ICAgICAqIGNzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnBhcnNlRGVjbGFyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldENzc1RleHQp
OgorICAgICAgICAqIGNzcy9TdHlsZUJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQmFz
ZTo6U3R5bGVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQmFzZTo6c2V0U3VwcG9ydHNT
VkdQcm9wcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJhc2U6OnN1cHBvcnRzU1ZHUHJvcHMp
OgorICAgICAgICAqIGNzcy9jc3NwYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQ29sb3JGcm9tVmFsdWUpOgorICAgICAgICAqIGNzcy9j
c3NwYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBk
b20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpj
cmVhdGVJbmxpbmVTdHlsZURlY2wpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6
Y3JlYXRlTWFwcGVkRGVjbCk6CisgICAgICAgICoga3N2ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR1BhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VTVkdDb2xvcik6CisgICAgICAgICoga3N2ZzIvY3NzL1NWR0NTU1N0eWxl
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlT
VkdQcm9wZXJ0eSk6CisKIDIwMDctMDgtMjIgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbS4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDI1MTgyKQorKysgV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjIsNyArNDYyLDcg
QEAgYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcAogCiAgICAgLy8gV2hl
biByZXBsYWNpbmcgYW4gZXhpc3RpbmcgcHJvcGVydHkgdmFsdWUsIHRoaXMgbW92ZXMgdGhlIHBy
b3BlcnR5IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgICAgLy8gRmlyZWZveCBwcmVzZXJ2ZXMg
dGhlIHBvc2l0aW9uLCBhbmQgTVNJRSBtb3ZlcyB0aGUgcHJvcGVydHkgdG8gdGhlIGJlZ2lubmlu
Zy4KLSAgICBDU1NQYXJzZXIgcGFyc2VyKHVzZVN0cmljdFBhcnNpbmcoKSk7CisgICAgQ1NTUGFy
c2VyIHBhcnNlcih1c2VTdHJpY3RQYXJzaW5nKCksIHN1cHBvcnRzU1ZHUHJvcHMoKSk7CiAgICAg
Ym9vbCBzdWNjZXNzID0gcGFyc2VyLnBhcnNlVmFsdWUodGhpcywgcHJvcGVydHlJRCwgdmFsdWUs
IGltcG9ydGFudCk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIC8vIENTUyBET00gcmVx
dWlyZXMgcmFpc2luZyBTWU5UQVhfRVJSIGhlcmUsIGJ1dCB0aGlzIGlzIHRvbyBkYW5nZXJvdXMg
Zm9yIGNvbXBhdGliaWxpdHksCkBAIC00OTksNyArNDk5LDcgQEAgdm9pZCBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6c2V0SW1hZwogdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
cGFyc2VEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmIHN0eWxlRGVjbGFyYXRpb24pCiB7CiAgICAg
bV92YWx1ZXMuY2xlYXIoKTsKLSAgICBDU1NQYXJzZXIgcGFyc2VyKHVzZVN0cmljdFBhcnNpbmco
KSk7CisgICAgQ1NTUGFyc2VyIHBhcnNlcih1c2VTdHJpY3RQYXJzaW5nKCksIHN1cHBvcnRzU1ZH
UHJvcHMoKSk7CiAgICAgcGFyc2VyLnBhcnNlRGVjbGFyYXRpb24odGhpcywgc3R5bGVEZWNsYXJh
dGlvbik7CiAgICAgc2V0Q2hhbmdlZCgpOwogfQpAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldENzc1QKIHsKICAgICBlYyA9IDA7CiAgICAgbV92
YWx1ZXMuY2xlYXIoKTsKLSAgICBDU1NQYXJzZXIgcGFyc2VyKHVzZVN0cmljdFBhcnNpbmcoKSk7
CisgICAgQ1NTUGFyc2VyIHBhcnNlcih1c2VTdHJpY3RQYXJzaW5nKCksIHN1cHBvcnRzU1ZHUHJv
cHMoKSk7CiAgICAgcGFyc2VyLnBhcnNlRGVjbGFyYXRpb24odGhpcywgdGV4dCk7CiAgICAgLy8g
RklYTUU6IERldGVjdCBzeW50YXggZXJyb3JzIGFuZCBzZXQgZWMuCiAgICAgc2V0Q2hhbmdlZCgp
OwpJbmRleDogV2ViQ29yZS9jc3MvU3R5bGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvU3R5bGVCYXNlLmgJKHJldmlzaW9uIDI1MTgyKQorKysgV2ViQ29yZS9jc3MvU3R5bGVCYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBTdHlsZUJhc2UoU3R5bGVCYXNlKiBwYXJlbnQpCiAgICAgICAgICAgICA6IG1fcGFy
ZW50KHBhcmVudCkKICAgICAgICAgICAgICwgbV9zdHJpY3RQYXJzaW5nKCFwYXJlbnQgfHwgcGFy
ZW50LT51c2VTdHJpY3RQYXJzaW5nKCkpCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgICwg
bV9zdXBwb3J0c1NWR1Byb3BzKHBhcmVudCAmJiBwYXJlbnQtPnN1cHBvcnRzU1ZHUHJvcHMoKSkK
KyNlbmRpZgogICAgICAgICB7IH0KICAgICAgICAgdmlydHVhbCB+U3R5bGVCYXNlKCkgeyB9CiAK
QEAgLTc3LDEzICs4MCwyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0
U3RyaWN0UGFyc2luZyhib29sIGIpIHsgbV9zdHJpY3RQYXJzaW5nID0gYjsgfQogICAgICAgICBi
b29sIHVzZVN0cmljdFBhcnNpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmljdFBhcnNpbmc7IH0K
IAorI2lmIEVOQUJMRShTVkcpCisgICAgICAgIHZvaWQgc2V0U3VwcG9ydHNTVkdQcm9wcyhib29s
IGIpIHsgbV9zdXBwb3J0c1NWR1Byb3BzID0gYjsgfQorICAgICAgICBib29sIHN1cHBvcnRzU1ZH
UHJvcHMoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzU1ZHUHJvcHM7IH0KKyNlbmRpZgorCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9QYXJlbnQoKSB7IH0KIAogICAgICAgICBT
dHlsZVNoZWV0KiBzdHlsZXNoZWV0KCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBTdHlsZUJh
c2UqIG1fcGFyZW50OwotICAgICAgICBib29sIG1fc3RyaWN0UGFyc2luZzsKKyAgICAgICAgYm9v
bCBtX3N0cmljdFBhcnNpbmcgOiAxOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgIGJvb2wgbV9z
dXBwb3J0c1NWR1Byb3BzIDogMTsKKyNlbmRpZgogICAgIH07CiB9CiAKSW5kZXg6IFdlYkNvcmUv
Y3NzL2Nzc3BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvY3NzcGFyc2VyLmNw
cAkocmV2aXNpb24gMjUxODMpCisrKyBXZWJDb3JlL2Nzcy9jc3NwYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05NywxNSArOTcsMTYgQEAgbmFtZXNwYWNlIHsKIAogQ1NTUGFyc2VyKiBDU1NQ
YXJzZXI6OmN1cnJlbnRQYXJzZXIgPSAwOwogCi1DU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0
cmljdFBhcnNpbmcpCi0gICAgOiBtX2Zsb2F0aW5nTWVkaWFRdWVyeSgwKQorQ1NTUGFyc2VyOjpD
U1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nLCBib29sIHN2Z01vZGUpCisgICAgOiBzdHJpY3Qo
c3RyaWN0UGFyc2luZykKKyAgICAsIG1fc3ZnTW9kZShzdmdNb2RlKQorICAgICwgbV9mbG9hdGlu
Z01lZGlhUXVlcnkoMCkKICAgICAsIG1fZmxvYXRpbmdNZWRpYVF1ZXJ5RXhwKDApCiAgICAgLCBt
X2Zsb2F0aW5nTWVkaWFRdWVyeUV4cExpc3QoMCkKIHsKICNpZmRlZiBDU1NfREVCVUcKICAgICBr
ZERlYnVnKDYwODApIDw8ICJDU1NQYXJzZXI6OkNTU1BhcnNlciB0aGlzPSIgPDwgdGhpcyA8PCBl
bmRsOwogI2VuZGlmCi0gICAgc3RyaWN0ID0gc3RyaWN0UGFyc2luZzsKIAogICAgIHBhcnNlZFBy
b3BlcnRpZXMgPSAoQ1NTUHJvcGVydHkgKiopZmFzdE1hbGxvYygzMiAqIHNpemVvZihDU1NQcm9w
ZXJ0eSAqKSk7CiAgICAgbnVtUGFyc2VkUHJvcGVydGllcyA9IDA7CkBAIC0yNDQsMTUgKzI0NSwx
NCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NNdXRhYmxlU3R5CiAgICAgcmV0dXJu
IG9rOwogfQogCi0vLyBjb2xvciB3aWxsIG9ubHkgYmUgY2hhbmdlZCB3aGVuIHN0cmluZyBjb250
YWlucyBhIHZhbGlkIGNzcyBjb2xvciwgbWFraW5nIGl0CiAvLyBwb3NzaWJsZSB0byBzZXQgdXAg
YSBkZWZhdWx0IGNvbG9yLgogYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoUkdCQTMyJiBjb2xv
ciwgY29uc3QgU3RyaW5nICZzdHJpbmcsIGJvb2wgc3RyaWN0KQogewogICAgIGNvbG9yID0gMDsK
LSAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOworICAgIENTU1BhcnNlciBwYXJzZXIodHJ1ZSwg
ZmFsc2UpOwogCiAgICAgLy8gRmlyc3QgdHJ5IGNyZWF0aW5nIGEgY29sb3Igc3BlY2lmaWVkIGJ5
IG5hbWUgb3IgdGhlICIjIiBzeW50YXguCi0gICAgaWYgKCFwYXJzZXIucGFyc2VDb2xvcihzdHJp
bmcsIGNvbG9yLCBzdHJpY3QpKSB7CisgICAgaWYgKCFwYXJzZUNvbG9yKHN0cmluZywgY29sb3Is
IHN0cmljdCkpIHsKICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPmR1
bW15U3R5bGVEZWNsYXJhdGlvbiA9IG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIAog
ICAgICAgICAvLyBOb3cgdHJ5IHRvIGNyZWF0ZSBhIGNvbG9yIGZyb20gdGhlIHJnYigpIG9yIHJn
YmEoKSBzeW50YXguCkBAIC03NzEsNiArNzcxLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoaW50IHByb3BJZCwgYgogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9DT0xVTU5fUlVMRV9D
T0xPUjoKICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NPTE9SOgogICAgIGNh
c2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUjoKKyAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3BJZCkgPT0gQ1NTX1BST1BfQ09MT1IgJiYgbV9zdmdN
b2RlKQorICAgICAgICAgICAgYnJlYWs7IAogICAgICAgICBpZiAoaWQgPT0gQ1NTX1ZBTF9fV0VC
S0lUX1RFWFQpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOyAvLyBBbHdheXMg
YWxsb3cgdGhpcywgZXZlbiB3aGVuIHN0cmljdCBwYXJzaW5nIGlzIG9uLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgdXNlIHRoaXMgaW4gb3VyIFVBIHNo
ZWV0cy4KQEAgLTI0NzcsNiArMjQ3OSw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKGNv
bnN0IFN0cmluZyAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKworLy8gY29sb3Igd2lsbCBvbmx5
IGJlIGNoYW5nZWQgd2hlbiBzdHJpbmcgY29udGFpbnMgYSB2YWxpZCBjc3MgY29sb3IsIG1ha2lu
ZyBpdAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3JQYXJhbWV0ZXJzKFZhbHVlKiB2YWx1ZSwg
aW50KiBjb2xvckFycmF5LCBib29sIHBhcnNlQWxwaGEpCiB7CiAgICAgVmFsdWVMaXN0KiBhcmdz
ID0gdmFsdWUtPmZ1bmN0aW9uLT5hcmdzOwpAQCAtMjU0OSwxNyArMjU1MywxNyBAQCBDU1NQcmlt
aXRpdmVWYWx1ZSAqQ1NTUGFyc2VyOjpwYXJzZUNvbG9yCiAgICAgcmV0dXJuIG5ldyBDU1NQcmlt
aXRpdmVWYWx1ZShjKTsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3JGcm9tVmFsdWUo
VmFsdWUqIHZhbHVlLCBSR0JBMzImIGMsIGJvb2wgc3ZnKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNl
Q29sb3JGcm9tVmFsdWUoVmFsdWUqIHZhbHVlLCBSR0JBMzImIGMpCiB7CiAgICAgaWYgKCFzdHJp
Y3QgJiYgdmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYKICAg
ICAgICAgdmFsdWUtPmZWYWx1ZSA+PSAwLiAmJiB2YWx1ZS0+ZlZhbHVlIDwgMTAwMDAwMC4pIHsK
ICAgICAgICAgU3RyaW5nIHN0ciA9IFN0cmluZzo6Zm9ybWF0KCIlMDZkIiwgKGludCkodmFsdWUt
PmZWYWx1ZSsuNSkpOwotICAgICAgICBpZiAoIUNTU1BhcnNlcjo6cGFyc2VDb2xvcihzdHIsIGMs
IHN0cmljdCkpCisgICAgICAgIGlmICghcGFyc2VDb2xvcihzdHIsIGMsIHN0cmljdCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1JHQkNPTE9SIHx8CiAgICAgICAgICAgICAgICAgdmFsdWUtPnVu
aXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCB8fAogICAgICAgICAgICAgICAgICgh
c3RyaWN0ICYmIHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRElNRU5TSU9O
KSkgewotICAgICAgICBpZiAoIUNTU1BhcnNlcjo6cGFyc2VDb2xvcihkb21TdHJpbmcodmFsdWUt
PnN0cmluZyksIGMsIHN0cmljdCAmJiB2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0lERU5UKSkKKyAgICAgICAgaWYgKCFwYXJzZUNvbG9yKGRvbVN0cmluZyh2YWx1ZS0+c3Ry
aW5nKSwgYywgc3RyaWN0ICYmIHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
SURFTlQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSBpZiAodmFsdWUt
PnVuaXQgPT0gVmFsdWU6OkZ1bmN0aW9uICYmCiAgICAgICAgICAgICAgICAgdmFsdWUtPmZ1bmN0
aW9uLT5hcmdzICE9IDAgJiYKQEAgLTI1NjksNyArMjU3Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZUNvbG9yRnJvbVZhbHVlKFZhbHUKICAgICAgICAgaWYgKCFwYXJzZUNvbG9yUGFyYW1ldGVy
cyh2YWx1ZSwgY29sb3JWYWx1ZXMsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgYyA9IG1ha2VSR0IoY29sb3JWYWx1ZXNbMF0sIGNvbG9yVmFsdWVzWzFdLCBjb2xv
clZhbHVlc1syXSk7Ci0gICAgfSBlbHNlIGlmICghc3ZnKSB7CisgICAgfSBlbHNlIGlmICghbV9z
dmdNb2RlKSB7CiAgICAgICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBWYWx1ZTo6RnVuY3Rpb24gJiYK
ICAgICAgICAgICAgICAgICB2YWx1ZS0+ZnVuY3Rpb24tPmFyZ3MgIT0gMCAmJgogICAgICAgICAg
ICAgICAgIHZhbHVlLT5mdW5jdGlvbi0+YXJncy0+c2l6ZSgpID09IDcgLyogcmdiYSArIHRocmVl
IGNvbW1hcyAqLyAmJgpJbmRleDogV2ViQ29yZS9jc3MvY3NzcGFyc2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9jc3MvY3NzcGFyc2VyLmgJKHJldmlzaW9uIDI1MTgzKQorKysgV2ViQ29yZS9j
c3MvY3NzcGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDU1NQYXJzZXIgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgQ1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZyA9IHRydWUpOworICAgICAgICBDU1NQYXJz
ZXIoYm9vbCBzdHJpY3RQYXJzaW5nID0gdHJ1ZSwgYm9vbCBzdmdNb2RlID0gZmFsc2UpOwogICAg
ICAgICB+Q1NTUGFyc2VyKCk7CiAKICAgICAgICAgdm9pZCBwYXJzZVNoZWV0KENTU1N0eWxlU2hl
ZXQqLCBjb25zdCBTdHJpbmcmKTsKQEAgLTE1OSw3ICsxNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvclBhcmFtZXRlcnMoVmFsdWUqLCBpbnQqIGNvbG9y
VmFsdWVzLCBib29sIHBhcnNlQWxwaGEpOwogICAgICAgICBib29sIHBhcnNlSFNMUGFyYW1ldGVy
cyhWYWx1ZSosIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJvb2wgcGFyc2VBbHBoYSk7CiAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwYXJzZUNvbG9yKFZhbHVlKiA9IDApOwotICAgICAgICBib29s
IHBhcnNlQ29sb3JGcm9tVmFsdWUoVmFsdWUqLCBSR0JBMzImLCBib29sID0gZmFsc2UpOworICAg
ICAgICBib29sIHBhcnNlQ29sb3JGcm9tVmFsdWUoVmFsdWUqLCBSR0JBMzImKTsKIAogICAgICAg
ICBzdGF0aWMgYm9vbCBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYsIFJHQkEzMiYgcmdiLCBib29s
IHN0cmljdCk7CiAKQEAgLTIwMiw4ICsyMDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIE1lZGlhUXVlcnkqIHNpbmtGbG9hdGluZ01lZGlhUXVlcnkoTWVkaWFRdWVyeSopOwogCiAg
ICAgcHVibGljOgotICAgICAgICBib29sIHN0cmljdDsKLSAgICAgICAgYm9vbCBpbXBvcnRhbnQ7
CisgICAgICAgIGJvb2wgc3RyaWN0IDogMTsKKyAgICAgICAgYm9vbCBpbXBvcnRhbnQgOiAxOwor
ICAgICAgICBib29sIG1fc3ZnTW9kZSA6IDE7CiAgICAgICAgIGludCBpZDsKICAgICAgICAgU3R5
bGVMaXN0KiBzdHlsZUVsZW1lbnQ7CiAgICAgICAgIFJlZlB0cjxDU1NSdWxlPiBydWxlOwpJbmRl
eDogV2ViQ29yZS9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAJKHJldmlzaW9uIDI1MTgyKQorKysgV2ViQ29yZS9j
c3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NzgsNyArMjQ3OCw2
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENT
U19QUk9QX19XRUJLSVRfQ09MVU1OX1JVTEVfQ09MT1I6CiAgICAgY2FzZSBDU1NfUFJPUF9fV0VC
S0lUX1RFWFRfU1RST0tFX0NPTE9SOgogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9URVhUX0ZJ
TExfQ09MT1I6IHsKLSAgICAgICAgQ29sb3IgY29sOwogICAgICAgICBpZiAoaXNJbmhlcml0KSB7
CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX0JBQ0tHUk9VTkRfQ09M
T1IsIGJhY2tncm91bmRDb2xvciwgQmFja2dyb3VuZENvbG9yKQogICAgICAgICAgICAgSEFORExF
X0lOSEVSSVRfQ09ORChDU1NfUFJPUF9CT1JERVJfVE9QX0NPTE9SLCBib3JkZXJUb3BDb2xvciwg
Qm9yZGVyVG9wQ29sb3IpCkBAIC0yNDkyLDYgKzI0OTEsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENT
U19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NPTE9SLCB0ZXh0RmlsbENvbG9yLCBUZXh0RmlsbENv
bG9yKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIENvbG9yIGNvbDsK
ICAgICAgICAgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAgLy8gVGhlIGJvcmRlci9vdXRs
aW5lIGNvbG9ycyB3aWxsIGp1c3QgbWFwIHRvIHRoZSBpbnZhbGlkIGNvbG9yIHxjb2x8IGFib3Zl
LiAgVGhpcyB3aWxsIGhhdmUgdGhlCiAgICAgICAgICAgICAvLyBlZmZlY3Qgb2YgZm9yY2luZyB0
aGUgdXNlIG9mIHRoZSBjdXJyZW50Q29sb3Igd2hlbiBpdCBjb21lcyB0aW1lIHRvIGRyYXcgdGhl
IGJvcmRlcnMgKGFuZCBvZgpAQCAtMjQ5OSwxMiArMjQ5OSwxOCBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBpZiAoaWQgPT0gQ1NTX1BST1Bf
Q09MT1IpCiAgICAgICAgICAgICAgICAgY29sID0gUmVuZGVyU3R5bGU6OmluaXRpYWxDb2xvcigp
OwogICAgICAgICB9IGVsc2UgeworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICAgICAgaWYg
KHZhbHVlLT5pc1NWR0NvbG9yKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbCA9IHN0YXRpY19j
YXN0PFNWR0NvbG9yKj4odmFsdWUpLT5jb2xvcigpOworICAgICAgICAgICAgICAgIGVsc2UKKyNl
bmRpZgogICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb2wgPSBnZXRDb2xvckZyb21Q
cmltaXRpdmVWYWx1ZShwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzd2l0
Y2goaWQpIHsKKyAgICAgICAgc3dpdGNoIChpZCkgewogICAgICAgICBjYXNlIENTU19QUk9QX0JB
Q0tHUk9VTkRfQ09MT1I6CiAgICAgICAgICAgICBzdHlsZS0+c2V0QmFja2dyb3VuZENvbG9yKGNv
bCk7IGJyZWFrOwogICAgICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9UT1BfQ09MT1I6CkBAIC0y
NTczLDkgKzI1NzksOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZighcHJpbWl0aXZl
VmFsdWUpIHJldHVybjsKKyAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkgcmV0dXJuOwogICAg
ICAgICBzaG9ydCB3aWR0aCA9IDM7Ci0gICAgICAgIHN3aXRjaChwcmltaXRpdmVWYWx1ZS0+Z2V0
SWRlbnQoKSkKKyAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkKICAg
ICAgICAgewogICAgICAgICBjYXNlIENTU19WQUxfVEhJTjoKICAgICAgICAgICAgIHdpZHRoID0g
MTsKSW5kZXg6IFdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTE4MikKKysrIFdlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDkgQEAg
dm9pZCBTdHlsZWRFbGVtZW50OjpjcmVhdGVJbmxpbmVTdHlsZURlYwogICAgIG1faW5saW5lU3R5
bGVEZWNsID0gbmV3IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOwogICAgIG1faW5saW5lU3R5
bGVEZWNsLT5zZXRQYXJlbnQoZG9jdW1lbnQoKS0+ZWxlbWVudFNoZWV0KCkpOwogICAgIG1faW5s
aW5lU3R5bGVEZWNsLT5zZXROb2RlKHRoaXMpOworI2lmIEVOQUJMRShTVkcpCisgICAgbV9pbmxp
bmVTdHlsZURlY2wtPnNldFN1cHBvcnRzU1ZHUHJvcHMoaXNTVkdFbGVtZW50KCkpOworI2VuZGlm
CiAgICAgbV9pbmxpbmVTdHlsZURlY2wtPnNldFN0cmljdFBhcnNpbmcoaXNIVE1MRWxlbWVudCgp
ICYmICFkb2N1bWVudCgpLT5pbkNvbXBhdE1vZGUoKSk7CiB9CiAKQEAgLTM5Nyw2ICs0MDAsOSBA
QCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmNyZWF0ZU1hcHBlZERlY2woTWFwCiAgICAgYXR0ci0+c2V0
RGVjbChkZWNsKTsKICAgICBkZWNsLT5zZXRQYXJlbnQoZG9jdW1lbnQoKS0+ZWxlbWVudFNoZWV0
KCkpOwogICAgIGRlY2wtPnNldE5vZGUodGhpcyk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBkZWNs
LT5zZXRTdXBwb3J0c1NWR1Byb3BzKGlzU1ZHRWxlbWVudCgpKTsKKyNlbmRpZgogICAgIGRlY2wt
PnNldFN0cmljdFBhcnNpbmcoZmFsc2UpOyAvLyBNYXBwZWQgYXR0cmlidXRlcyBhcmUganVzdCBh
bHdheXMgcXVpcmt5LgogfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL2Nzcy9TVkdDU1NQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvY3NzL1NWR0NTU1BhcnNlci5jcHAJKHJl
dmlzaW9uIDI1MTgyKQorKysgV2ViQ29yZS9rc3ZnMi9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjE5LDcgKzIxOSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNWR1Zh
bHVlKGludCBwcm9wSWQKICAgICAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBTVkdQYWlu
dChTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9DVVJSRU5UQ09MT1IpOwogICAgICAgICAgICAgZWxz
ZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpIHsKICAgICAg
ICAgICAgICAgICBSR0JBMzIgYyA9IENvbG9yOjp0cmFuc3BhcmVudDsKLSAgICAgICAgICAgICAg
ICBpZiAodmFsdWVMaXN0LT5uZXh0KCkgJiYgcGFyc2VDb2xvckZyb21WYWx1ZSh2YWx1ZUxpc3Qt
PmN1cnJlbnQoKSwgYywgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVMaXN0LT5u
ZXh0KCkgJiYgcGFyc2VDb2xvckZyb21WYWx1ZSh2YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYykpIHsK
ICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHUGFpbnQoZG9tU3RyaW5n
KHZhbHVlLT5zdHJpbmcpLCBjKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgU1ZHUGFpbnQoU1ZHUGFpbnQ6OlNWR19QQUlOVFRZ
UEVfVVJJLCBkb21TdHJpbmcodmFsdWUtPnN0cmluZykpOwpAQCAtMzU5LDcgKzM1OSw3IEBAIENT
U1ZhbHVlKiBDU1NQYXJzZXI6OnBhcnNlU1ZHU3Ryb2tlRGFzaGEKIENTU1ZhbHVlKiBDU1NQYXJz
ZXI6OnBhcnNlU1ZHUGFpbnQoKQogewogICAgIFJHQkEzMiBjID0gQ29sb3I6OnRyYW5zcGFyZW50
OwotICAgIGlmICghcGFyc2VDb2xvckZyb21WYWx1ZSh2YWx1ZUxpc3QtPmN1cnJlbnQoKSwgYywg
dHJ1ZSkpCisgICAgaWYgKCFwYXJzZUNvbG9yRnJvbVZhbHVlKHZhbHVlTGlzdC0+Y3VycmVudCgp
LCBjKSkKICAgICAgICAgcmV0dXJuIG5ldyBTVkdQYWludCgpOwogICAgIHJldHVybiBuZXcgU1ZH
UGFpbnQoQ29sb3IoYykpOwogfQpAQCAtMzY3LDcgKzM2Nyw3IEBAIENTU1ZhbHVlKiBDU1NQYXJz
ZXI6OnBhcnNlU1ZHUGFpbnQoKQogQ1NTVmFsdWUqIENTU1BhcnNlcjo6cGFyc2VTVkdDb2xvcigp
CiB7CiAgICAgUkdCQTMyIGMgPSBDb2xvcjo6dHJhbnNwYXJlbnQ7Ci0gICAgaWYgKCFwYXJzZUNv
bG9yRnJvbVZhbHVlKHZhbHVlTGlzdC0+Y3VycmVudCgpLCBjLCB0cnVlKSkKKyAgICBpZiAoIXBh
cnNlQ29sb3JGcm9tVmFsdWUodmFsdWVMaXN0LT5jdXJyZW50KCksIGMpKQogICAgICAgICByZXR1
cm4gMDsKICAgICByZXR1cm4gbmV3IFNWR0NvbG9yKENvbG9yKGMpKTsKIH0KSW5kZXg6IFdlYkNv
cmUva3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUva3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAyNTE4MikKKysr
IFdlYkNvcmUva3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAy
MDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKICAgICBCYXNlZCBvbiBraHRtbCBjc3MgY29k
ZSBieToKICAgICBDb3B5cmlnaHQoQykgMTk5OS0yMDAzIExhcnMgS25vbGwoa25vbGxAa2RlLm9y
ZykKQEAgLTMxLDYgKzMxLDggQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgImNzc3N0eWxl
c2VsZWN0b3IuaCIKIAorI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTVkdQYWludC5oIgpAQCAtNjY5LDI3ICs2NzEsNiBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoCiAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldFdyaXRpbmdNb2RlKChFV3JpdGluZ01vZGUpKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
IC0gU1ZHQ1NTX1ZBTF9MUl9UQikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gICAg
ICAgCi0jaWYgMAotICAgICAgICBjYXNlIENTU19QUk9QX0NPTE9SOiAvLyBjb2xvcnMgfHwgaW5o
ZXJpdAotICAgICAgICB7Ci0gICAgICAgICAgICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAo
aXNJbmhlcml0KSB7Ci0gICAgICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChDU1NfUFJP
UF9DT0xPUiwgY29sb3IsIENvbG9yKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAoaXNJbml0aWFsKQotICAgICAgICAgICAgICAgIGNvbCA9IFJlbmRlclN0
eWxlOjppbml0aWFsQ29sb3IoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IFNWR0NvbG9yICpjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFjKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldENvbG9yKGNvbCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotI2VuZGlmCiAgICAgICAgIGNhc2UgU1ZHQ1NTX1BST1BfU1RPUF9DT0xPUjoKICAgICAg
ICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3RvcENvbG9yLCBT
dG9wQ29sb3IpOwpAQCAtNzA3LDcgKzY4OCw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlTVkdQcm9wZXJ0eSgKICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdG9wQ29sb3IoY29sKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgY2FzZSBTVkdDU1NfUFJPUF9M
SUdIVElOR19DT0xPUjoKKyAgICAgICAgY2FzZSBTVkdDU1NfUFJPUF9MSUdIVElOR19DT0xPUjoK
ICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobGlnaHRp
bmdDb2xvciwgTGlnaHRpbmdDb2xvcik7CiAKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20v
U1ZHQ29sb3ItaW50ZXJmYWNlLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL1NWR0NvbG9yLWludGVyZmFjZS1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46
bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFNZVVsRVFWUjRuTzNad1EyQVFBd0VzWVBH
b2ZQUQp4UndDdTRLVjhocmxXUGVheFd2TTVSd0FBSHpYdVhzQUFBRHdId0lFQUFESUNCQUFBQ0Fq
UUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBCkFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0Fq
UUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUUKQUFESUNCQUFBQ0Fq
UUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpR
QUFBZ0l3QQpBUUFBTWdJRUFBRElDQkFBQUNBalFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpR
QUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqClFBQUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpR
QUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBREkKQ0JBQUFDQWpR
QUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFB
QUFnSXdBQVFBQQpNZ0lFQUFESUNCQUFBQ0FqUUFBQWdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFB
QUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBCmdJd0FBUUFBTWdJRUFBRElDQkFBQUNBalFB
QUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUEKQUNBalFB
QUFnSXdBQVFBQU1nSUVBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0FqUUFB
QWdJd0FBUUFBTWdJRQpBQURJQ0JBQUFDQWpRQUFBZ0l3QUFRQUFNZ0lFQUFESUNCQUFBQ0J6ek16
c0hnRUFBUHlERHdnQUFKQVJJQUFBUUVhQUFBQUFHUUVDCkFBQmtCQWdBQUpBUklBQUFRRWFBQUFB
QUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUEKQUFB
QUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFB
R1FFQ0FBQmtCQWdBQUpBUgpJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFB
R1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrCkJBZ0FBSkFSSUFBQVFFYUFBQUFB
R1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUEK
R1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFH
UUVDQUFCa0JBZ0FBSkFSSUFBQQpRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFH
UUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBCkFKQVJJQUFBUUVhQUFBQUFH
UUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdR
RUMKQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdR
RUNBQUJrQkFnQUFKQVJJQUFBUUVhQQpBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdR
RUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSCklBQUFRRWFBQUFBQUdR
RUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FF
Q0FBQmsKQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FF
Q0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQQpHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FF
Q0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBClFFYUFBQUFBR1FF
Q0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVD
QUFCa0JBZ0EKQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVD
QUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQwpBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVD
QUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBCkFBQUFHUUVD
QUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNB
QUJrQkFnQUFKQVIKSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNB
QUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCawpCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNB
QUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBCkdRRUNB
QUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FB
QmtCQWdBQUpBUklBQUEKUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FB
QmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQQpBSkFSSUFBQVFFYUFBQUFBR1FFQ0FB
QmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDCkFB
QmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFC
a0JBZ0FBSkFSSUFBQVFFYUEKQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFC
a0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUgpJQUFBUUVhQUFBQUFHUUVDQUFC
a0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJr
CkJBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJr
QkFnQUFKQVJJQUFBUUVhQUFBQUEKR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJr
QkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQQpRRWFBQUFBQUdRRUNBQUJr
QkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtC
QWdBCkFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtC
QWdBQUpBUklBQUFRRWFBQUFBQUdRRUMKQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtC
QWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQQpBQUFBR1FFQ0FBQmtC
QWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JB
Z0FBSkFSCklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JB
Z0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmsKQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JB
Z0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQQpHUUVDQUFCa0JB
Z0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFn
QUFKQVJJQUFBClFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFn
QUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0EKQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFn
QUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQwpBQUJrQkFn
QUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdB
QUpBUklBQUFRRWFBCkFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdB
QUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVIKSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdB
QUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCawpCQWdB
QUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FB
SkFSSUFBQVFFYUFBQUFBCkdRRUNBQUJrQkFnQUFKQVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FB
SkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUEKUUVhQUFBQUFHUUVDQUFCa0JBZ0FB
SkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQQpB
SkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFK
QVJJQUFBUUVhQUFBQUFHUUVDCkFBQmtCQWdBQUpBUklBQUFRRWFBQUFBQUdRRUNBQUJrQkFnQUFK
QVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUEKQUFBQUdRRUNBQUJrQkFnQUFK
QVJJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpB
UgpJQUFBUUVhQUFBQUFHUUVDQUFCa0JBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpB
UklBQUFRRWFBQUFBQUdRRUNBQUJrCkJBZ0FBSkFSSUFBQVFFYUFBQUFBR1FFQ0FBQmtCQWdBQUpB
UklBQUFRRWFBQUFBQW1RZGlsUXluWU11emdBQUFBQUJKUlU1RXJrSmcKZ2c9PQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134981</attachid>
            <date>2012-03-31 16:07:31 -0700</date>
            <delta_ts>2012-04-05 05:56:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-15012-20120331190720.patch</filename>
            <type>text/plain</type>
            <size>6753</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlkMWUxNDk5NGM5NjZl
MTUxZTNhNTg1OGI2NWExODczOGFlODc2Zi4uNzI4MDljM2FkODRjZDkzNTg2MTgxMGU2NjI1MWJh
MjgyNjE2NDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTMxICBSb2Ig
QnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgU1ZHQ29sb3IgZG9tIGludGVyZmFjZSBp
cyBub3QgY3JlYXRlZCBmb3IgY29sb3IgcHJvcGVydHkgaW4gU1ZHIGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBTVkdDb2xvciBp
bnN0YW5jZXMgZm9yIHRoZSBjb2xvciBwcm9wZXJ0eSB3aGVuIGluIHBhcnNpbmcgbW9kZSBTVkdB
dHRyaWJ1dGVNb2RlLgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2Vu
dGF0aW9uLWF0dHJpYnV0ZS5zdmcKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBzcGVj
aWFsIGNhc2UgU1ZHQXR0cmlidXRlIHBhcnNpbmcgbW9kZQorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VDb2xvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDog
c3BlY2lhbCBjYXNlIFNWR0NvbG9yIGhhbmRsaW5nCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5Q29sb3I6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9TVkdDU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKTogcmVtb3ZlIHVu
cmVhY2hhYmxlIGNvZGUKKwogMjAxMi0wMy0zMSAgSm9uYXRoYW4gRG9uZyAgPGpvbmF0aGFuLmRv
bmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBodHRwIGF1dGhl
bnRpY2F0ZSBkaWFsb2cgcG9wdXAgb25seSBvbmNlIG5vIG1hdHRlciBhdXRoZW50aWNhdGlvbiBw
YXNzIG9yIGZhaWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggYWVkNDEzM2M2OGUyNzM4
ZDE3NDY5NmZjNGJhOTI4MjcwM2VjZTI4ZS4uNTA2MjZmOTViOGZhMjUyZTNhMjY2ZDM1MzJjMjk1
NGZhNzA1MDEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTc4LDYgKzc4LDkgQEAK
ICNpbmNsdWRlICJTaGFkb3dWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIK
ICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0Nv
bG9yLmgiCisjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaW5jbHVkZSAiV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuaCIKICNlbmRpZgpAQCAtMzMyLDYgKzMzNSwxNiBAQCBzdGF0aWMgYm9v
bCBwYXJzZUNvbG9yVmFsdWUoU3R5bGVQcm9wZXJ0eVNldCogZGVjbGFyYXRpb24sIGludCBwcm9w
ZXJ0eUlkLCBjb25zdAogICAgIENTU1BhcnNlclN0cmluZyBjc3NTdHJpbmc7CiAgICAgY3NzU3Ry
aW5nLmNoYXJhY3RlcnMgPSBjb25zdF9jYXN0PFVDaGFyKj4oc3RyaW5nLmNoYXJhY3RlcnMoKSk7
CiAgICAgY3NzU3RyaW5nLmxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIGlmIChjc3NQYXJzZXJNb2RlID09IFNWR0F0dHJpYnV0ZU1vZGUgJiYgcHJvcGVydHlJ
ZCA9PSBDU1NQcm9wZXJ0eUNvbG9yKSB7CisgICAgICAgIFJHQkEzMiBjb2xvcjsKKyAgICAgICAg
aWYgKCFDU1NQYXJzZXI6OmZhc3RQYXJzZUNvbG9yKGNvbG9yLCBzdHJpbmcsIHN0cmljdCAmJiBz
dHJpbmdbMF0gIT0gJyMnKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVm
UHRyPENTU1ZhbHVlPiB2YWx1ZSA9IFNWR0NvbG9yOjpjcmVhdGVGcm9tQ29sb3IoY29sb3IpOwor
ICAgICAgICBkZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJvcGVydHkoQ1NTUHJvcGVydHkocHJvcGVy
dHlJZCwgdmFsdWUucmVsZWFzZSgpLCBpbXBvcnRhbnQpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorI2VuZGlmCiAgICAgaW50IHZhbHVlSUQgPSBjc3NWYWx1ZUtleXdvcmRJRChjc3NT
dHJpbmcpOwogICAgIGJvb2wgdmFsaWRQcmltaXRpdmUgPSBmYWxzZTsKICAgICBpZiAodmFsdWVJ
RCA9PSBDU1NWYWx1ZVdlYmtpdFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFw
cGx5UHJvcGVydHkuY3BwCmluZGV4IDMwNjFmMDU1ZmI3ZTFjOWE5MjM5OGQzOWRlNjEzOWU5NDFl
M2I1NTYuLjEyOWViMTYzZmVjNmE2ZmU5ODM0OWQ0MWMxM2U0YzE3ZGVkYjk1OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCkBAIC00MSw2ICs0MSw5
IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIlNWR0NvbG9y
LmgiCisjZW5kaWYKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L1VudXNlZFBhcmFtLmg+CiAKQEAgLTI4OCw2ICsyOTEsMTIgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIHZvaWQgYXBwbHlWYWx1ZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgIHsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBpZiAodmFsdWUtPmlzU1ZH
Q29sb3IoKSkgeworICAgICAgICAgICAgYXBwbHlDb2xvclZhbHVlKHNlbGVjdG9yLCBzdGF0aWNf
Y2FzdDxTVkdDb2xvcio+KHZhbHVlKS0+Y29sb3IoKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
VkdDU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKaW5k
ZXggNDM0YWQyZWZiYmZkYjVlZTZkNjE5NjY2NjRkOGYxNGE0ZGNlZTM4NC4uYzE4MDFhZDMzMGFm
MjY0ODJiMmNmYWQxZDUwMmE4ZWQyOTI2NWYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NWR0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNl
ci5jcHAKQEAgLTIwMSwxNyArMjAxLDYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlU1ZHVmFsdWUo
aW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAK
LSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6ICAgICAgICAgICAgICAgIC8vIDxjb2xvcj4gfCBp
bmhlcml0Ci0gICAgICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVBcXVhICYmIGlkIDw9IENTU1ZhbHVl
V2luZG93dGV4dCkgfHwKLSAgICAgICAgICAgKGlkID49IENTU1ZhbHVlQWxpY2VibHVlICYmIGlk
IDw9IENTU1ZhbHVlWWVsbG93Z3JlZW4pKQotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBTVkdD
b2xvcjo6Y3JlYXRlRnJvbVN0cmluZyh2YWx1ZS0+c3RyaW5nKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVNWR0NvbG9yKCk7Ci0KLSAgICAgICAgaWYgKHBh
cnNlZFZhbHVlKQotICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKLSAgICAgICAgYnJl
YWs7Ci0KICAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENvbG9yOiAvLyBUT0RPIDogaWNjY29sb3IK
ICAgICBjYXNlIENTU1Byb3BlcnR5Rmxvb2RDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5TGln
aHRpbmdDb2xvcjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlNDY1NTkzYmZmYTAwMmI3MzdkOGVmNDFjYjdkMmY2MWEyMTIy
NGRhLi5mMTY5Zjg1MDYxMDYzZmEzNDhlMWE3YzRmZWMyOTNhNDM2YzRlZGQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTcgQEAKIDIwMTItMDMtMzEgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KIAorICAg
ICAgICBTVkdDb2xvciBkb20gaW50ZXJmYWNlIGlzIG5vdCBjcmVhdGVkIGZvciBjb2xvciBwcm9w
ZXJ0eSBpbiBTVkcgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCB0aGF0IFNWR0NvbG9yIGlzIGNyZWF0ZWQgZm9yIHRoZSBwcmVzZW50
YXRpb24gYXR0cmlidXRlIGFuZCB0aGF0IGl0IGlzIGFwcGxpZWQuCisKKyAgICAgICAgKiBzdmcv
Y3VzdG9tL1NWR0NvbG9yLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL1NWR0NvbG9yLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUu
c3ZnOiBBZGRlZC4KKworMjAxMi0wMy0zMSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgorCiAg
ICAgICAgIFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZygpIGRvZXNuJ3QgZ2VuZXJh
dGUgdGhlIFhNTCBkZWNsYXJhdGlvbiBtYXJrdXAgbGlrZSBPcGVyYSBhbmQgRmlyZWZveAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMDYKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9TVkdDb2xvci1wcmVzZW50YXRpb24tYXR0
cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItcHJl
c2VudGF0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFh
ZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9TVkdDb2xvci1wcmVzZW50YXRpb24tYXR0cmlidXRlLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9j
dXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS5zdmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZj
ZDY1MGEzZjkzY2RiNzk0MWI2NjdjMDFlZWZiZDY2Mjg2ZjIxMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS5z
dmcKQEAgLTAsMCArMSwzMSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8cmVjdCBpZD0iZm9vIiBjb2xvcj0iZ3JlZW4iIGZpbGw9ImN1cnJlbnRDb2xv
ciIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz4KKzxmb3JlaWduT2JqZWN0PgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICA8Ym9keT4KKyAgICA8ZGl2IGlk
PSJsb2ciPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+Cis8L2ZvcmVpZ25PYmplY3Q+
Cis8c2NyaXB0PiA8IVtDREFUQVsKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgZnVuY3Rpb24gbG9n
KHN0cmluZykgeworICAgIHZhciBuZXdEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiZGl2Iik7CisgICAgbmV3RGl2LnRleHRDb250
ZW50ID0gc3RyaW5nOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS5hcHBlbmRD
aGlsZChuZXdEaXYpOworICB9CisKKyAgZnVuY3Rpb24gcnVuVGVzdCgpCisgIHsKKyAgICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpOworICAgICAgaWYgKGVs
ZW1lbnQuZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKCdjb2xvcicpIGluc3RhbmNlb2YgU1ZHQ29s
b3IgJiYKKyAgICAgICAgICBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ2NvbG9yJykgPT0gJ3JnYigwLCAxMjgsIDApJykKKyAg
ICAgICAgICBsb2coJ1BBU1MnKTsKKyAgICAgIGVsc2UKKyAgICAgICAgICBsb2coJ0ZBSUwnKTsK
KyAgfQorXV0+PC9zY3JpcHQ+Cis8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135812</attachid>
            <date>2012-04-05 05:56:54 -0700</date>
            <delta_ts>2012-04-06 15:20:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-15012-20120405085642.patch</filename>
            <type>text/plain</type>
            <size>7021</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg0YjIwZTIyMDY2YjJl
ODU0OTBlZTViNDcyY2UxZmQ2N2Q5OTk1Mi4uNDI4ZGQ3YjkwMzI2ZDk4MzVlMjNiMTZjMDk3ODI4
NTliZDg4OGVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0LTA1ICBSb2Ig
QnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgU1ZHQ29sb3IgZG9tIGludGVyZmFjZSBp
cyBub3QgY3JlYXRlZCBmb3IgY29sb3IgcHJvcGVydHkgaW4gU1ZHIGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBTVkdDb2xvciBp
bnN0YW5jZXMgZm9yIHRoZSBjb2xvciBwcm9wZXJ0eSB3aGVuIGluIHBhcnNpbmcgbW9kZSBTVkdB
dHRyaWJ1dGVNb2RlLgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2Vu
dGF0aW9uLWF0dHJpYnV0ZS5zdmcKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBzcGVj
aWFsIGNhc2UgU1ZHQXR0cmlidXRlIHBhcnNpbmcgbW9kZQorICAgICAgICAoV2ViQ29yZTo6cGFy
c2VDb2xvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDog
c3BlY2lhbCBjYXNlIFNWR0NvbG9yIGhhbmRsaW5nCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5Q29sb3I6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9TVkdDU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNWR1ZhbHVlKTogcmVtb3ZlIHVu
cmVhY2hhYmxlIGNvZGUKKwogMjAxMi0wNC0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYWJpbGl0eSB0byBjb3B5
IHJlc291cmNlIFVSTCBmcm9tIHdlYiBpbnNwZWN0b3IncyByZXNvdXJjZXMgcGFnZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZjZlMThhZDhiY2YwZjQ4YTIwYTU2ZTA2NzdmN2YwMDVm
Y2EyYTYxZC4uYTc4ZjMxYTBkMDhjZTc3Njg4ODUyNGRkNTY4YmZjODBkYmViNGZjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTc2LDYgKzc2LDkgQEAKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIgogI2luY2x1
ZGUgIlN0eWxlUnVsZS5oIgorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHQ29sb3IuaCIK
KyNlbmRpZgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5oIgogI2VuZGlmCkBAIC0zMzAsNiArMzMzLDE2IEBAIHN0YXRpYyBib29sIHBhcnNl
Q29sb3JWYWx1ZShTdHlsZVByb3BlcnR5U2V0KiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0CiAgICAgQ1NTUGFyc2VyU3RyaW5nIGNzc1N0cmluZzsKICAgICBjc3NTdHJpbmcuY2hh
cmFjdGVycyA9IGNvbnN0X2Nhc3Q8VUNoYXIqPihzdHJpbmcuY2hhcmFjdGVycygpKTsKICAgICBj
c3NTdHJpbmcubGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworI2lmIEVOQUJMRShTVkcpCisgICAg
aWYgKGNzc1BhcnNlck1vZGUgPT0gU1ZHQXR0cmlidXRlTW9kZSAmJiBwcm9wZXJ0eUlkID09IENT
U1Byb3BlcnR5Q29sb3IpIHsKKyAgICAgICAgUkdCQTMyIGNvbG9yOworICAgICAgICBpZiAoIUNT
U1BhcnNlcjo6ZmFzdFBhcnNlQ29sb3IoY29sb3IsIHN0cmluZywgc3RyaWN0ICYmIHN0cmluZ1sw
XSAhPSAnIycpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlID0gU1ZHQ29sb3I6OmNyZWF0ZUZyb21Db2xvcihjb2xvcik7CisgICAgICAg
IGRlY2xhcmF0aW9uLT5hZGRQYXJzZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eShwcm9wZXJ0eUlkLCB2
YWx1ZS5yZWxlYXNlKCksIGltcG9ydGFudCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisjZW5kaWYKICAgICBpbnQgdmFsdWVJRCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc1N0cmluZyk7
CiAgICAgYm9vbCB2YWxpZFByaW1pdGl2ZSA9IGZhbHNlOwogICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlV2Via2l0VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZUFwcGx5UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9w
ZXJ0eS5jcHAKaW5kZXggMGRjYjc5NGYwOWMwZWFjZDQyNTYzOGVjOWM0MDNkNGEzZDY1OTkxOC4u
MWM4NjQ4NTQ3YTcyNjllODZkNTRjZjJhYjk0ZWJlNDU0YjY4NGZmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKQEAgLTQwLDYgKzQwLDkgQEAKICNp
bmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHQ29sb3IuaCIKKyNl
bmRpZgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVW51c2Vk
UGFyYW0uaD4KIApAQCAtMjg3LDYgKzI5MCwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9p
ZCBhcHBseVZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBDU1NWYWx1ZSogdmFsdWUp
CiAgICAgeworI2lmIEVOQUJMRShTVkcpCisgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigp
KSB7CisgICAgICAgICAgICBhcHBseUNvbG9yVmFsdWUoc2VsZWN0b3IsIHN0YXRpY19jYXN0PFNW
R0NvbG9yKj4odmFsdWUpLT5jb2xvcigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcAppbmRleCBkM2Vj
MDZlZTk1ODc0MTcxZThiZGU2NmRlYTZhYjQxZmQzOTdkMDZlLi5kMDZiYjIwM2JhNzY1MzYzZGU1
MGZlZjA3ODAzMGMxYWM2OTZhOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZH
Q1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcApA
QCAtMjAxLDE3ICsyMDEsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7
CiAKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6ICAgICAgICAgICAgICAgIC8vIDxjb2xvcj4g
fCBpbmhlcml0Ci0gICAgICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVBcXVhICYmIGlkIDw9IENTU1Zh
bHVlV2luZG93dGV4dCkgfHwKLSAgICAgICAgICAgKGlkID49IENTU1ZhbHVlQWxpY2VibHVlICYm
IGlkIDw9IENTU1ZhbHVlWWVsbG93Z3JlZW4pKQotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBT
VkdDb2xvcjo6Y3JlYXRlRnJvbVN0cmluZyh2YWx1ZS0+c3RyaW5nKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVNWR0NvbG9yKCk7Ci0KLSAgICAgICAgaWYg
KHBhcnNlZFZhbHVlKQotICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKLSAgICAgICAg
YnJlYWs7Ci0KICAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENvbG9yOiAvLyBUT0RPIDogaWNjY29s
b3IKICAgICBjYXNlIENTU1Byb3BlcnR5Rmxvb2RDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5
TGlnaHRpbmdDb2xvcjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMTUxY2M5ZDMyYzEzMDk5MzlhNTc0NDA5ZDg5ZmQzMTA3
ZDc5YjMyLi44YjBkZDAxZGVlZTVlZWRkYWJlZDZlODUzY2E1MmY1NjAyZTU5Y2MxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDQtMDUgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KKwor
ICAgICAgICBTVkdDb2xvciBkb20gaW50ZXJmYWNlIGlzIG5vdCBjcmVhdGVkIGZvciBjb2xvciBw
cm9wZXJ0eSBpbiBTVkcgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdCB0aGF0IFNWR0NvbG9yIGlzIGNyZWF0ZWQgZm9yIHRoZSBwcmVz
ZW50YXRpb24gYXR0cmlidXRlIGFuZCB0aGF0IGl0IGlzIGFwcGxpZWQuCisKKyAgICAgICAgKiBz
dmcvY3VzdG9tL1NWR0NvbG9yLXByZXNlbnRhdGlvbi1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL1NWR0NvbG9yLXByZXNlbnRhdGlvbi1hdHRyaWJ1
dGUuc3ZnOiBBZGRlZC4KKwogMjAxMi0wNC0wMSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgog
CiAgICAgICAgIFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZygpIGRvZXNuJ3QgZ2Vu
ZXJhdGUgdGhlIFhNTCBkZWNsYXJhdGlvbiBtYXJrdXAgbGlrZSBPcGVyYSBhbmQgRmlyZWZveApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9TVkdDb2xvci1wcmVzZW50YXRpb24t
YXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3It
cHJlc2VudGF0aW9uLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0
MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9TVkdDb2xvci1wcmVzZW50YXRpb24tYXR0cmlidXRlLnN2ZyBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0ZS5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjI1MTVhMTE0M2JkMzRmNzU2MGZiMDcxMzRlMjkwYjYwZjkyM2M0NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vU1ZHQ29sb3ItcHJlc2VudGF0aW9uLWF0dHJpYnV0
ZS5zdmcKQEAgLTAsMCArMSwzNyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cmVjdCBpZD0iZm9vIiBjb2xvcj0iZ3JlZW4iIHN0b3AtY29sb3I9Imdy
ZWVuIiBsaWdodGluZy1jb2xvcj0iZ3JlZW4iIGZsb29kLWNvbG9yPSJncmVlbiIgZmlsbD0iY3Vy
cmVudENvbG9yIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorPGZvcmVpZ25PYmplY3Q+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgIDxib2R5PgorICAg
IDxkaXYgaWQ9ImxvZyI+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKzwvZm9yZWln
bk9iamVjdD4KKzxzY3JpcHQ+IDwhW0NEQVRBWworICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICBmdW5j
dGlvbiBsb2coc3RyaW5nKSB7CisgICAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJkaXYiKTsKKyAgICBuZXdEaXYu
dGV4dENvbnRlbnQgPSBzdHJpbmc7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycp
LmFwcGVuZENoaWxkKG5ld0Rpdik7CisgIH0KKworICBmdW5jdGlvbiBjaGVja09uZVByb3BlcnR5
KGVsZW1lbnQsIHByb3BlcnR5KQorICB7CisgICAgICByZXR1cm4gZWxlbWVudC5nZXRQcmVzZW50
YXRpb25BdHRyaWJ1dGUocHJvcGVydHkpIGluc3RhbmNlb2YgU1ZHQ29sb3IgJiYKKyAgICAgICAg
ICAgICBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFBy
b3BlcnR5VmFsdWUocHJvcGVydHkpID09ICdyZ2IoMCwgMTI4LCAwKSc7CisgIH0KKworICBmdW5j
dGlvbiBydW5UZXN0KCkKKyAgeworICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZm9vJyk7CisgICAgICBpZiAoY2hlY2tPbmVQcm9wZXJ0eShlbGVtZW50LCAnY29s
b3InKSAmJiBjaGVja09uZVByb3BlcnR5KGVsZW1lbnQsICdzdG9wLWNvbG9yJykgJiYKKyAgICAg
ICAgICBjaGVja09uZVByb3BlcnR5KGVsZW1lbnQsICdmbG9vZC1jb2xvcicpICYmIGNoZWNrT25l
UHJvcGVydHkoZWxlbWVudCwgJ2xpZ2h0aW5nLWNvbG9yJykpCisgICAgICAgICAgbG9nKCdQQVNT
Jyk7CisgICAgICBlbHNlCisgICAgICAgICAgbG9nKCdGQUlMJyk7CisgIH0KK11dPjwvc2NyaXB0
PgorPC9zdmc+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>