<?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>109495</bug_id>
          
          <creation_ts>2013-02-11 14:53:25 -0800</creation_ts>
          <short_desc>Fix svg/in-html/script-write.html with threaded HTML parser</short_desc>
          <delta_ts>2013-02-13 17:27:59 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830164</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 14:53:25 -0800</bug_when>
    <thetext>Fix svg/in-html/script-write.html with threaded HTML parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830170</commentid>
    <comment_count>1</comment_count>
      <attachid>187688</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 14:57:39 -0800</bug_when>
    <thetext>Created attachment 187688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830179</commentid>
    <comment_count>2</comment_count>
      <attachid>187688</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-11 15:03:12 -0800</bug_when>
    <thetext>Comment on attachment 187688
Patch

This is probably related to different ways of parsing scripts in foreign content.  It&apos;s likely to be a bug with the threaded parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830421</commentid>
    <comment_count>3</comment_count>
      <attachid>187742</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 18:18:35 -0800</bug_when>
    <thetext>Created attachment 187742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830422</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 18:19:23 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 187688 [details])
&gt; This is probably related to different ways of parsing scripts in foreign content.  It&apos;s likely to be a bug with the threaded parser.

Good catch, there was a behavior difference here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830428</commentid>
    <comment_count>5</comment_count>
      <attachid>187745</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 18:27:28 -0800</bug_when>
    <thetext>Created attachment 187745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830440</commentid>
    <comment_count>6</comment_count>
      <attachid>187745</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 18:38:36 -0800</bug_when>
    <thetext>Comment on attachment 187745
Patch

This seems reasonable.  All of those tags are HTML tags we would be handling.  Are we sure the m_inForeignContent is correctly &quot;false&quot; for html in SVG?  I&apos;m not even sure what that&apos;s supposed to do... if say we were to encounter a &lt;html&gt;&lt;svg&gt;&lt;foreignObject&gt;&lt;plaintext&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830450</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 18:44:40 -0800</bug_when>
    <thetext>&gt; Are we sure the m_inForeignContent is correctly &quot;false&quot; for html in SVG?  I&apos;m not even sure what that&apos;s supposed to do... if say we were to encounter a &lt;html&gt;&lt;svg&gt;&lt;foreignObject&gt;&lt;plaintext&gt;

It seems worth adding a test case for that separately. But this patch just causes us to match the current behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830465</commentid>
    <comment_count>8</comment_count>
      <attachid>187745</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 19:14:56 -0800</bug_when>
    <thetext>Comment on attachment 187745
Patch

I don&apos;t wish to derail your bug, but I think we should at least test this case with your patch:

&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;body&gt;
        &lt;svg id=&quot;svg1&quot; width=&quot;200&quot; height=&quot;100&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
            &lt;foreignObject x=&quot;0&quot; y=&quot;0&quot; width=&quot;200&quot; height=&quot;100&quot;&gt;
                &lt;div&gt;foo&lt;/div&gt;
                &lt;plaintext&gt;
            &lt;/foreignObject&gt;
        &lt;/svg&gt;
    	&lt;div&gt;bar&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;

And then either file a bug if we&apos;re changing behavior, or commit the test along with your change.  The current behavior is kinda odd. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830466</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 19:15:11 -0800</bug_when>
    <thetext>I should note that our current behavior matches FF. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832128</commentid>
    <comment_count>10</comment_count>
      <attachid>188137</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 11:49:48 -0800</bug_when>
    <thetext>Created attachment 188137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832133</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 11:52:14 -0800</bug_when>
    <thetext>Your test case was a good one. Matching that current behavior exposed a failure in some other svg tests. So we had to improve simulateTreeBuilder a little more. The ChangeLog explains. We pass all fast/parser and svg tests with this patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832134</commentid>
    <comment_count>12</comment_count>
      <attachid>188137</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 11:53:11 -0800</bug_when>
    <thetext>Comment on attachment 188137
Patch

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

&gt; LayoutTests/fast/parser/foreignobject-in-foreigncontent.html:3
&gt; +    &lt;body&gt;

Can we use dump-as-markup.js for this test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832137</commentid>
    <comment_count>13</comment_count>
      <attachid>188137</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 11:53:51 -0800</bug_when>
    <thetext>Comment on attachment 188137
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:149
&gt; +                || threadSafeMatch(tagName, bTag)
&gt; +                || threadSafeMatch(tagName, bigTag)
&gt; +                || threadSafeMatch(tagName, blockquoteTag)
&gt; +                || threadSafeMatch(tagName, bodyTag)
&gt; +                || threadSafeMatch(tagName, brTag)
&gt; +                || threadSafeMatch(tagName, centerTag)
&gt; +                || threadSafeMatch(tagName, codeTag)
&gt; +                || threadSafeMatch(tagName, ddTag)
&gt; +                || threadSafeMatch(tagName, divTag)
&gt; +                || threadSafeMatch(tagName, dlTag)
&gt; +                || threadSafeMatch(tagName, dtTag)
&gt; +                || threadSafeMatch(tagName, emTag)
&gt; +                || threadSafeMatch(tagName, embedTag)
&gt; +                || threadSafeMatch(tagName, h1Tag)
&gt; +                || threadSafeMatch(tagName, h2Tag)
&gt; +                || threadSafeMatch(tagName, h3Tag)
&gt; +                || threadSafeMatch(tagName, h4Tag)
&gt; +                || threadSafeMatch(tagName, h5Tag)
&gt; +                || threadSafeMatch(tagName, h6Tag)
&gt; +                || threadSafeMatch(tagName, headTag)
&gt; +                || threadSafeMatch(tagName, hrTag)
&gt; +                || threadSafeMatch(tagName, iTag)
&gt; +                || threadSafeMatch(tagName, imgTag)
&gt; +                || threadSafeMatch(tagName, liTag)
&gt; +                || threadSafeMatch(tagName, listingTag)
&gt; +                || threadSafeMatch(tagName, menuTag)

Can we put all these into an inline helper function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832141</commentid>
    <comment_count>14</comment_count>
      <attachid>188137</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 11:55:58 -0800</bug_when>
    <thetext>Comment on attachment 188137
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:123
&gt; +        if (m_inForeignContent
&gt; +            &amp;&amp; (equalIgnoringCase(tagName, SVGNames::foreignObjectTag.localName())

So a &lt;foreignObject&gt; tag inside mathml?  I think we need to know what namespace we&apos;re in to do this right. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832202</commentid>
    <comment_count>15</comment_count>
      <attachid>188148</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 12:34:35 -0800</bug_when>
    <thetext>Created attachment 188148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832203</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 12:35:56 -0800</bug_when>
    <thetext>&gt; Can we use dump-as-markup.js for this test?

Done

&gt; Can we put all these into an inline helper function?

Done

&gt; So a &lt;foreignObject&gt; tag inside mathml?  I think we need to know what namespace we&apos;re in to do this right. :(

I split m_inForeignContent into m_inSVG and m_inMathML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832205</commentid>
    <comment_count>17</comment_count>
      <attachid>188148</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 12:38:04 -0800</bug_when>
    <thetext>Comment on attachment 188148
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:173
&gt; +            m_inMathML = true;

Can we be both m_inSVG and m_inMathML?  If not, we might want to use an enum that has only the possible states.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832276</commentid>
    <comment_count>18</comment_count>
      <attachid>188148</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 13:30:23 -0800</bug_when>
    <thetext>Comment on attachment 188148
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:177
&gt; +        if (inForeignContent() &amp;&amp; tokenExitsForeignContent(token)) {
&gt; +            m_inSVG = false;
&gt; +            m_inMathML = false;
&gt; +        }

I&apos;m concerned that this won&apos;t handle:

&lt;html&gt;&lt;svg&gt;&lt;foreignObject&gt;&lt;/foreignObject&gt;&lt;title&gt;&lt;/svg&gt;This text should appear correctly since we&apos;ll think we&apos;re in HTML as soon as we leave the fo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832414</commentid>
    <comment_count>19</comment_count>
      <attachid>188197</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 15:34:45 -0800</bug_when>
    <thetext>Created attachment 188197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832419</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 15:37:07 -0800</bug_when>
    <thetext>Attachment 188197 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent-expected.txt&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent.html&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject.html&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.cpp&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.h&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.cpp&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.h&apos;]&quot; exit_code: 1
Source/WebCore/html/parser/BackgroundHTMLParser.h:74:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/html/parser/BackgroundHTMLParser.h:75:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832420</commentid>
    <comment_count>21</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 15:37:16 -0800</bug_when>
    <thetext>&gt; Can we be both m_inSVG and m_inMathML?  If not, we might want to use an enum that has only the possible states.

Done

&gt; &gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:177
&gt; &gt; +        if (inForeignContent() &amp;&amp; tokenExitsForeignContent(token)) {
&gt; &gt; +            m_inSVG = false;
&gt; &gt; +            m_inMathML = false;
&gt; &gt; +        }
&gt; 
&gt; I&apos;m concerned that this won&apos;t handle:
&gt; 
&gt; &lt;html&gt;&lt;svg&gt;&lt;foreignObject&gt;&lt;/foreignObject&gt;&lt;title&gt;&lt;/svg&gt;This text should appear correctly since we&apos;ll think we&apos;re in HTML as soon as we leave the fo?

You were right all along: this requires a stack. I added that and your test case. Our behavior matches the current parser on all the new tests. Please let me know if you can think of other interesting edge cases we should test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832421</commentid>
    <comment_count>22</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 15:37:57 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Attachment 188197 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent-expected.txt&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent.html&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject.html&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.cpp&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.h&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.cpp&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.h&apos;]&quot; exit_code: 1
&gt; Source/WebCore/html/parser/BackgroundHTMLParser.h:74:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/WebCore/html/parser/BackgroundHTMLParser.h:75:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Total errors found: 2 in 12 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

I think it is better to have HTML and SVG enum values than Html and Svg. Please let me know if otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832429</commentid>
    <comment_count>23</comment_count>
      <attachid>188197</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 15:44:40 -0800</bug_when>
    <thetext>Comment on attachment 188197
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:62
&gt; +    // FIXME: This is copied from HTMLTreeBuilder::processTokenInForeignContent and changed to use threadSafeMatch.
&gt; +    const String&amp; tagName = token.data();
&gt; +    return threadSafeMatch(tagName, bTag)

Our technical debt for not solving the AtomicString problem is mounting... :p

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.h:88
&gt; +    Vector&lt;Namespace&gt; m_namespaceStack;

Do we want any initial capacity?  Do we worry about keeping this up to date with document.writes which are processed on the main thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832443</commentid>
    <comment_count>24</comment_count>
      <attachid>188206</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 15:54:00 -0800</bug_when>
    <thetext>Created attachment 188206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832445</commentid>
    <comment_count>25</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 15:55:40 -0800</bug_when>
    <thetext>&gt; Do we want any initial capacity?

I think it is safe to say SVG and MathML are rare enough that we should use 1 as the initial capacity (to account for the HTML namespace added in the ctor).

&gt; Do we worry about keeping this up to date with document.writes which are processed on the main thread?

That&apos;s a tough one. Do you have any ideas how we can handle that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832448</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 15:58:08 -0800</bug_when>
    <thetext>Attachment 188206 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent-expected.txt&apos;, u&apos;LayoutTests/fast/parser/foreignobject-in-foreigncontent.html&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/ignore-title-in-svg-after-foreignobject.html&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject-expected.txt&apos;, u&apos;LayoutTests/fast/parser/unmatched-close-foreignobject.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.cpp&apos;, u&apos;Source/WebCore/html/parser/BackgroundHTMLParser.h&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.cpp&apos;, u&apos;Source/WebCore/html/parser/CompactHTMLToken.h&apos;]&quot; exit_code: 1
Source/WebCore/html/parser/BackgroundHTMLParser.h:74:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/html/parser/BackgroundHTMLParser.h:75:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832463</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 16:07:27 -0800</bug_when>
    <thetext>&gt; That&apos;s a tough one. Do you have any ideas how we can handle that?

Yeah, we&apos;ll need to read the information from the stack of open elements and send it to the background HTML parser in the Checkpoint when we call &quot;resumeFrom&quot;.  Don&apos;t worry about it for this patch, but please file a bug so that we remember to write tests and fix it.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832472</commentid>
    <comment_count>28</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 16:14:08 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; &gt; That&apos;s a tough one. Do you have any ideas how we can handle that?
&gt; 
&gt; Yeah, we&apos;ll need to read the information from the stack of open elements and send it to the background HTML parser in the Checkpoint when we call &quot;resumeFrom&quot;.  Don&apos;t worry about it for this patch, but please file a bug so that we remember to write tests and fix it.  :)

Makes sense. Filed bug 109764.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832478</commentid>
    <comment_count>29</comment_count>
      <attachid>188206</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 16:18:32 -0800</bug_when>
    <thetext>Comment on attachment 188206
Patch

I think this is another big step forward, and we should land and iterate.  I suspect that most of the tests you added could have been written as html5lib tests instead.  If you want to explore that before landing, be my guest. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832480</commentid>
    <comment_count>30</comment_count>
      <attachid>188206</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 16:19:49 -0800</bug_when>
    <thetext>Comment on attachment 188206
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:62
&gt; +    return threadSafeMatch(tagName, bTag)

Actually.  This is gonna be epiclly slow.  I&apos;m not sure we can do this?

Right?  This is going to run on every start/end token and do slow string compares?  I guess it will just compare the hashes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832489</commentid>
    <comment_count>31</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 16:24:40 -0800</bug_when>
    <thetext>&gt; I think this is another big step forward, and we should land and iterate.  I suspect that most of the tests you added could have been written as html5lib tests instead.  If you want to explore that before landing, be my guest. :)

I&apos;ll do that before landing.

&gt; &gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:62
&gt; &gt; +    return threadSafeMatch(tagName, bTag)
&gt; 
&gt; Actually.  This is gonna be epiclly slow.  I&apos;m not sure we can do this?
&gt; 
&gt; Right?  This is going to run on every start/end token and do slow string compares?  I guess it will just compare the hashes...

The only reason I&apos;m okay with it is that we only do it when we&apos;re in foreign content mode. If not in foreign content mode, we shortcut.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832525</commentid>
    <comment_count>32</comment_count>
      <attachid>188224</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 16:48:46 -0800</bug_when>
    <thetext>Created attachment 188224
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832532</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 16:57:43 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 188206 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188206&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:62
&gt; &gt; +    return threadSafeMatch(tagName, bTag)
&gt; 
&gt; Actually.  This is gonna be epiclly slow.  I&apos;m not sure we can do this?
&gt; 
&gt; Right?  This is going to run on every start/end token and do slow string compares?  I guess it will just compare the hashes...

Yeah, it just compares the hashes.  It might be worth trying the patch in bug 107337 again to see if it&apos;s a win now that we&apos;re doing more comparisons.  This only runs in foreign content mode, so we might need to make a new svg-in-html parsing benchmark to see the effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832585</commentid>
    <comment_count>34</comment_count>
      <attachid>188224</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 17:27:53 -0800</bug_when>
    <thetext>Comment on attachment 188224
Patch for landing

Clearing flags on attachment: 188224

Committed r142829: &lt;http://trac.webkit.org/changeset/142829&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832586</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 17:27:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187688</attachid>
            <date>2013-02-11 14:57:39 -0800</date>
            <delta_ts>2013-02-11 18:18:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130211145410.patch</filename>
            <type>text/plain</type>
            <size>1612</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTE2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjk2NjhjNDY0Zjc4ZWI4ZjMxODE3
YWM5ZWFmZGJlODViNGQ3YmY3OC4uZmE2OWE1NzQwNGJmMjJhNDJlNGNlODI0MjE0OGE3MDZjZGJj
MzYyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTExICBUb255IEdlbnRpbGNvcmUg
IDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1odG1sL3NjcmlwdC13
cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGV4cGVjdGVkIGZvciB0aGUgc3RyaW5n
ICI8L3NjcmlwdD4iIHRvIGVuZCBhIHNjcmlwdCBibG9jayBldmVuIGlmIGl0IGFwcGVhcnMgd2l0
aGluIGEgc2NyaXB0IHZhcmlhYmxlLgorICAgICAgICBJJ20gbm90IHN1cmUgd2h5IHRoaXMgd29y
a3Mgd2l0aCB0aGUgbWFpbiB0aHJlYWQgcGFyc2VyLCBidXQgYnJlYWtpbmcgdXAgdGhlIDwvc2Ny
aXB0PiBmaXhlcyBpdCBmb3IgdGhlIHRocmVhZGVkIHBhcnNlci4KKworICAgICAgICAqIHN2Zy9p
bi1odG1sL3NjcmlwdC13cml0ZS5odG1sOgorCiAyMDEzLTAyLTExICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBkYXRhYmFzZSBjb25uZWN0
aW9ucyBkb24ndCBjbG9zZSBhZnRlciB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGFib3J0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvaW4taHRtbC9zY3JpcHQtd3JpdGUuaHRtbAppbmRleCBmMTI3MGRiZDE4
ZWYyN2ExNDEwZGE2ZTEyMDYxNjZiY2Q4M2EzNmEzLi45Y2Q1NDI0NjgyNjJjMTY0YzQ4YTZmNTMz
YjVlMDYzYmRkZjRjMDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvaW4taHRtbC9zY3Jp
cHQtd3JpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvaW4taHRtbC9zY3JpcHQtd3JpdGUu
aHRtbApAQCAtMTQsNyArMTQsNyBAQCBUZXN0IHBhc3NlcyBpZiB3cml0dGVuIHNjcmlwdCBydW5z
IGJlZm9yZSBzZWNvbmQgaW5saW5lIHNjcmlwdC4gLS0+CiAgICAgPGc+CiAgICAgICAgIDxyZWN0
IGlkPSJ0ZXN0Ij4KICAgICAgICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICAgICAgZG9jdW1l
bnQud3JpdGUoJzxzY3JpcHQ+ZGVidWcoIndyaXR0ZW4gc2NyaXB0IHJhbiEiKTs8L3NjcmlwdD4n
KTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgnPHNjcmlwdD5kZWJ1Zygid3JpdHRl
biBzY3JpcHQgcmFuISIpOzwvc2NyJysnaXB0PicpOwogICAgICAgICAgICAgPC9zY3JpcHQ+CiAg
ICAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgICAgIGRlYnVnKCJzZWNvbmQgaW5saW5l
IHNjcmlwdCByYW4hIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187742</attachid>
            <date>2013-02-11 18:18:35 -0800</date>
            <delta_ts>2013-02-11 18:27:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130211181506.patch</filename>
            <type>text/plain</type>
            <size>3691</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZkMWY3YWI1N2MyNTJi
NDAyMjQ4MTU3Zjg4ODc5YTkxODgzNmM3Zi4uZjRlMzU0ZDUxOGMzZmU3MWU3ZWRjMzg2MTc3YTBl
YzM2OWY2MDE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDEzLTAyLTExICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MVHJlZUJ1aWxk
ZXIgZG9lcyBub3QgY2FsbCB0aGVzZSBzZXRTdGF0ZSgpcyB3aGVuIGluIGZvcmVpZ24gY29udGVu
dCBtb2RlIHNvIHdlIHNob3VsZG4ndCBkbyBpdCB3aGVuIHNpbXVsYXRpbmcgdGhlIHRyZWUgYnVp
bGRlci4KKyAgICAgICAgVGhpcyBmaXhlcyBzdmcvaW4taHRtbC9zY3JpcHQtd3JpdGUuaHRtbCBh
bmQgbGlrZWx5IG90aGVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNp
bXVsYXRlVHJlZUJ1aWxkZXIpOgorCisyMDEzLTAyLTExICBUb255IEdlbnRpbGNvcmUgIDx0b255
Z0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgU2VnbWVudGVkU3RyaW5nJ3MgY29weSBjdG9yIHNo
b3VsZCBjb3B5IGFsbCBmaWVsZHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQ3NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXggOWJhMWQwNTI0N2M4MjZhYzhhYzlmYWU0
N2E5NGYwZDQ0YWMwNDMwNy4uNzViZWYyZmYzZDg5OThjYTE0NzM0YzBhNjhlYmY5NzJiYTgyN2Qy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmNwcApAQCAtMTE5LDIwICsxMTksMjIgQEAgYm9vbCBCYWNrZ3JvdW5kSFRNTFBhcnNl
cjo6c2ltdWxhdGVUcmVlQnVpbGRlcihjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRoTUxOYW1lczo6bWF0aFRh
ZykpCiAgICAgICAgICAgICBtX2luRm9yZWlnbkNvbnRlbnQgPSB0cnVlOwogCi0gICAgICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBjb3B5IG9mIFRva2VuaXplcjo6dXBkYXRlU3RhdGVGb3Ig
d2hpY2ggdXNlcyB0aHJlYWRTYWZlTWF0Y2hlcy4KLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRpdGxl
VGFnKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyU3Rh
dGU6OlJDREFUQVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIHBsYWludGV4dFRhZykpCi0gICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRN
TFRva2VuaXplclN0YXRlOjpQTEFJTlRFWFRTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBzY3JpcHRUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6ZXIt
PnNldFN0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6U2NyaXB0RGF0YVN0YXRlKTsKLSAgICAgICAg
ZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHN0eWxlVGFnKQotICAgICAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKLSAgICAgICAgICAgIHx8IHRo
cmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB4bXBUYWcpCi0gICAgICAgICAgICB8fCAodGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIG5vZW1iZWRUYWcpICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkK
LSAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2ZyYW1lc1RhZykKLSAg
ICAgICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9zY3JpcHRUYWcpICYmIG1f
b3B0aW9ucy5zY3JpcHRFbmFibGVkKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyU3RhdGU6OlJBV1RFWFRTdGF0ZSk7CisgICAgICAgIGlmICghbV9pbkZv
cmVpZ25Db250ZW50KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBqdXN0IGEgY29w
eSBvZiBUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yIHdoaWNoIHVzZXMgdGhyZWFkU2FmZU1hdGNo
ZXMuCisgICAgICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRleHRhcmVhVGFn
KSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0bGVUYWcpKQorICAgICAgICAgICAgICAg
IG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyU3RhdGU6OlJDREFUQVN0YXRlKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBwbGFpbnRleHRU
YWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
U3RhdGU6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFtX2luRm9yZWln
bkNvbnRlbnQgJiYgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCisgICAgICAg
ICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXJTdGF0ZTo6U2NyaXB0
RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1l
LCBzdHlsZVRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
aWZyYW1lVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB4
bXBUYWcpCisgICAgICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2Vt
YmVkVGFnKSAmJiBtX29wdGlvbnMucGx1Z2luc0VuYWJsZWQpCisgICAgICAgICAgICAgICAgfHwg
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG5vZnJhbWVzVGFnKQorICAgICAgICAgICAgICAgIHx8
ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9zY3JpcHRUYWcpICYmIG1fb3B0aW9ucy5zY3Jp
cHRFbmFibGVkKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRv
a2VuaXplclN0YXRlOjpSQVdURVhUU3RhdGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYg
KHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kVGFnKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187745</attachid>
            <date>2013-02-11 18:27:28 -0800</date>
            <delta_ts>2013-02-13 11:49:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130211182358.patch</filename>
            <type>text/plain</type>
            <size>3580</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiYWJlMzFkMWMxNDhm
NDRjZjIwMmVmNjVjOTZhNWM4NGE4OGY1YS4uMmExYTJmYmQ5OGUwNGM2MDUwZjY5Y2RlMDQ0YzIx
NmMyMGYwYmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAyLTExICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBIVE1MVHJlZUJ1aWxk
ZXIgZG9lcyBub3QgY2FsbCB0aGVzZSBzZXRTdGF0ZSgpcyB3aGVuIGluIGZvcmVpZ24gY29udGVu
dCBtb2RlIHNvIHdlIHNob3VsZG4ndCBkbyBpdCB3aGVuIHNpbXVsYXRpbmcgdGhlIHRyZWUgYnVp
bGRlci4KKyAgICAgICAgVGhpcyBmaXhlcyBzdmcvaW4taHRtbC9zY3JpcHQtd3JpdGUuaHRtbCBh
bmQgbGlrZWx5IG90aGVycy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNp
bXVsYXRlVHJlZUJ1aWxkZXIpOgorCiAyMDEzLTAyLTExICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFNjaGVkdWxlZEFjdGlvbjo6bV9jb250ZXh0
IGNhbiBiZSBlbXB0eSwgc28gd2Ugc2hvdWxkbid0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXggODY3NWRiMDBhMTMzM2Jk
NzM1ODA1YjhlMDM3NzJlZmUxNjkwNGY1Yi4uNTQzNTYxNjcxMjBhOWNlYzNhZmM3MjVmZjY4NTI2
OGViNGM1NjE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tn
cm91bmRIVE1MUGFyc2VyLmNwcApAQCAtMTE5LDIwICsxMTksMjIgQEAgYm9vbCBCYWNrZ3JvdW5k
SFRNTFBhcnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcihjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRoTUxOYW1l
czo6bWF0aFRhZykpCiAgICAgICAgICAgICBtX2luRm9yZWlnbkNvbnRlbnQgPSB0cnVlOwogCi0g
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBjb3B5IG9mIFRva2VuaXplcjo6dXBkYXRl
U3RhdGVGb3Igd2hpY2ggdXNlcyB0aHJlYWRTYWZlTWF0Y2hlcy4KLSAgICAgICAgaWYgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIHRpdGxlVGFnKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9r
ZW5pemVyOjpSQ0RBVEFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBwbGFpbnRleHRUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRl
KEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAodGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCi0gICAgICAgICAgICBtX3Rva2VuaXplci0+
c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6U2NyaXB0RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBp
ZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHN0eWxlVGFnKQotICAgICAgICAgICAgfHwgdGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKLSAgICAgICAgICAgIHx8IHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCB4bXBUYWcpCi0gICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIG5vZW1iZWRUYWcpICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkKLSAgICAg
ICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2ZyYW1lc1RhZykKLSAgICAgICAg
ICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9zY3JpcHRUYWcpICYmIG1fb3B0aW9u
cy5zY3JpcHRFbmFibGVkKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1M
VG9rZW5pemVyOjpSQVdURVhUU3RhdGUpOworICAgICAgICBpZiAoIW1faW5Gb3JlaWduQ29udGVu
dCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNvcHkgb2YgVG9rZW5p
emVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCB1c2VzIHRocmVhZFNhZmVNYXRjaGVzLgorICAgICAg
ICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIHRpdGxlVGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXpl
ci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOworICAgICAgICAgICAgZWxz
ZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBsYWludGV4dFRhZykpCisgICAgICAgICAg
ICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRl
KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzY3JpcHRU
YWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
OjpTY3JpcHREYXRhU3RhdGUpOworICAgICAgICAgICAgZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHN0eWxlVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBpZnJhbWVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIHhtcFRhZykKKyAgICAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIG5vZW1iZWRUYWcpICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkKKyAgICAgICAgICAg
ICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9mcmFtZXNUYWcpCisgICAgICAgICAg
ICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub3NjcmlwdFRhZykgJiYgbV9vcHRp
b25zLnNjcmlwdEVuYWJsZWQpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyOjpSQVdURVhUU3RhdGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
aWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kVGFnKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188137</attachid>
            <date>2013-02-13 11:49:48 -0800</date>
            <delta_ts>2013-02-13 12:34:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130213114617.patch</filename>
            <type>text/plain</type>
            <size>13690</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiYWJlMzFkMWMxNDhm
NDRjZjIwMmVmNjVjOTZhNWM4NGE4OGY1YS4uNzhmZTgzODBkZWZhZTcwZTdkZjIwODc0YTEzOTg3
MjAxMDFiMDA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTEzICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMg
dGhlIGJhY2tncm91bmQgcGFyc2VyJ3Mgc2ltdWxhdGVUcmVlQnVpbGRlcigpIG1vcmUgcmVhbGlz
dGljLgorICAgICAgICAxLiBUaGUgSFRNTFRyZWVCdWlsZGVyIGRvZXMgbm90IGNhbGwgdGhlIHVw
ZGF0ZVN0YXRlRm9yKCkgc2V0U3RhdGUoKXMgd2hlbiBpbiBmb3JlaWduIGNvbnRlbnQgbW9kZSBz
byB3ZSBzaG91bGRuJ3QgZG8gaXQgd2hlbiBzaW11bGF0aW5nIHRoZSB0cmVlIGJ1aWxkZXIuCisg
ICAgICAgIDIuIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCBo
YXMgYSBsaXN0IG9mIHRhZ3Mgd2hpY2ggZXhpdCBmb3JlaWduIGNvbnRlbnQgbW9kZS4gV2UgbmVl
ZCB0byByZXNwZWN0IHRob3NlLgorICAgICAgICAzLiBTdXBwb3J0IHRoZSA8Zm9yZWlnbk9iamVj
dD4gdGFnIHdoaWNoIGVudGVycyBhbmQgbGVhdmVzIGZvcmVpZ24gY29udGVudCBtb2RlLgorICAg
ICAgICA0LiBUaGUgdHJlZSBidWlsZGVyIHNldHMgc3RhdGUgdG8gRGF0YVN0YXRlIHVwb24gYSA8
L3NjcmlwdD4gdGFnIHdoZW4gbm90IGluIGZvcmVpZ24gY29udGVudCBtb2RlLiBXZSBuZWVkIHRv
IGRvIHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgZml4ZXMgc3ZnL2luLWh0bWwvc2NyaXB0LXdy
aXRlLmh0bWwgYW5kIGxpa2VseSBvdGhlcnMuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0ZW0pOiBSZXR1cm5zIHRoZSBhdHRyaWJ1
dGUgb2YgdGhlIGdpdmVuIG5hbWUuIE5lY2Vzc2FyeSB0byB0ZXN0IGZvciA8Zm9udD4gYXR0cmli
dXRlcyBpbiBzaW11bGF0ZVRyZWVCdWlsZGVyLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKwogMjAxMy0wMi0xMSAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBTY2hlZHVsZWRBY3Rpb246Om1f
Y29udGV4dCBjYW4gYmUgZW1wdHksIHNvIHdlIHNob3VsZG4ndApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IDg2NzVkYjAw
YTEzMzNiZDczNTgwNWI4ZTAzNzcyZWZlMTY5MDRmNWIuLjhiY2IyMzExY2FlNjdhOGRhODg0Yjdj
YjY5M2Y2YjgxMWRiOTgwOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTExOCwyOSArMTE4LDg0IEBAIGJvb2wgQmFj
a2dyb3VuZEhUTUxQYXJzZXI6OnNpbXVsYXRlVHJlZUJ1aWxkZXIoY29uc3QgQ29tcGFjdEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFt
ZXM6OnN2Z1RhZykKICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRo
TUxOYW1lczo6bWF0aFRhZykpCiAgICAgICAgICAgICBtX2luRm9yZWlnbkNvbnRlbnQgPSB0cnVl
OwotCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBjb3B5IG9mIFRva2VuaXplcjo6
dXBkYXRlU3RhdGVGb3Igd2hpY2ggdXNlcyB0aHJlYWRTYWZlTWF0Y2hlcy4KLSAgICAgICAgaWYg
KHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHRpdGxlVGFnKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShI
VE1MVG9rZW5pemVyOjpSQ0RBVEFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBwbGFpbnRleHRUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNl
dFN0YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAo
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCi0gICAgICAgICAgICBtX3Rva2Vu
aXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6U2NyaXB0RGF0YVN0YXRlKTsKLSAgICAgICAg
ZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHN0eWxlVGFnKQotICAgICAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKLSAgICAgICAgICAgIHx8IHRo
cmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB4bXBUYWcpCi0gICAgICAgICAgICB8fCAodGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIG5vZW1iZWRUYWcpICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkK
LSAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2ZyYW1lc1RhZykKLSAg
ICAgICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9zY3JpcHRUYWcpICYmIG1f
b3B0aW9ucy5zY3JpcHRFbmFibGVkKSkKLSAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyOjpSQVdURVhUU3RhdGUpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyBjb3BpZWQgZnJvbSBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRl
bnQgYW5kIGNoYW5nZWQgdG8gdXNlIHRocmVhZFNhZmVNYXRjaC4KKyAgICAgICAgaWYgKG1faW5G
b3JlaWduQ29udGVudAorICAgICAgICAgICAgJiYgKGVxdWFsSWdub3JpbmdDYXNlKHRhZ05hbWUs
IFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnLmxvY2FsTmFtZSgpKQorICAgICAgICAgICAgICAg
IHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiVGFnKQorICAgICAgICAgICAgICAgIHx8IHRo
cmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiaWdUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGJsb2NrcXVvdGVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGJvZHlUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGJyVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBjZW50ZXJUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIGNvZGVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIGRkVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdO
YW1lLCBkaXZUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IGRsVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBkdFRh
ZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgZW1UYWcpCisg
ICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGVtYmVkVGFnKQorICAg
ICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoMVRhZykKKyAgICAgICAg
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDJUYWcpCisgICAgICAgICAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGgzVGFnKQorICAgICAgICAgICAgICAgIHx8
IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoNFRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgaDVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGg2VGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBoZWFkVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBoclRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgaVRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaW1n
VGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBsaVRhZykK
KyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbGlzdGluZ1RhZykK
KyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbWVudVRhZykKKyAg
ICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbWV0YVRhZykKKyAgICAg
ICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9iclRhZykKKyAgICAgICAg
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgb2xUYWcpCisgICAgICAgICAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBUYWcpCisgICAgICAgICAgICAgICAgfHwg
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHByZVRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgcnVieVRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRT
YWZlTWF0Y2godGFnTmFtZSwgc1RhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0
Y2godGFnTmFtZSwgc21hbGxUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHNwYW5UYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIHN0cm9uZ1RhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgc3RyaWtlVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdO
YW1lLCBzdWJUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IHN1cFRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGFi
bGVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHR0VGFn
KQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB1VGFnKQorICAg
ICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB1bFRhZykKKyAgICAgICAg
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdmFyVGFnKQorICAgICAgICAgICAg
ICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgZm9udFRhZykgJiYgKHRva2VuLmdldEF0
dHJpYnV0ZUl0ZW0oY29sb3JBdHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGZhY2VBdHRy
KSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKHNpemVBdHRyKSkpKSkKKyAgICAgICAgICAgIG1f
aW5Gb3JlaWduQ29udGVudCA9IGZhbHNlOworICAgICAgICBpZiAoIW1faW5Gb3JlaWduQ29udGVu
dCkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNvcHkgb2YgVG9rZW5p
emVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCB1c2VzIHRocmVhZFNhZmVNYXRjaGVzLgorICAgICAg
ICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0ZXh0YXJlYVRhZykgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIHRpdGxlVGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXpl
ci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOworICAgICAgICAgICAgZWxz
ZSBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBsYWludGV4dFRhZykpCisgICAgICAgICAg
ICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRl
KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzY3JpcHRU
YWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
OjpTY3JpcHREYXRhU3RhdGUpOworICAgICAgICAgICAgZWxzZSBpZiAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHN0eWxlVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBpZnJhbWVUYWcpCisgICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIHhtcFRhZykKKyAgICAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIG5vZW1iZWRUYWcpICYmIG1fb3B0aW9ucy5wbHVnaW5zRW5hYmxlZCkKKyAgICAgICAgICAg
ICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9mcmFtZXNUYWcpCisgICAgICAgICAg
ICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub3NjcmlwdFRhZykgJiYgbV9vcHRp
b25zLnNjcmlwdEVuYWJsZWQpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0
ZShIVE1MVG9rZW5pemVyOjpSQVdURVhUU3RhdGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
aWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kVGFnKSB7CiAgICAgICAgIGNv
bnN0IFN0cmluZyYgdGFnTmFtZSA9IHRva2VuLmRhdGEoKTsKICAgICAgICAgaWYgKHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCBTVkdOYW1lczo6c3ZnVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgTWF0aE1MTmFtZXM6Om1hdGhUYWcpKQogICAgICAgICAgICAgbV9pbkZvcmVpZ25Db250
ZW50ID0gZmFsc2U7Ci0gICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0
VGFnKSkKKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHRhZ05hbWUsIFNWR05hbWVzOjpm
b3JlaWduT2JqZWN0VGFnLmxvY2FsTmFtZSgpKSkKKyAgICAgICAgICAgIG1faW5Gb3JlaWduQ29u
dGVudCA9IHRydWU7CisgICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0
VGFnKSkgeworICAgICAgICAgICAgaWYgKCFtX2luRm9yZWlnbkNvbnRlbnQpCisgICAgICAgICAg
ICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBGSVhN
RTogTmVlZCB0byBzZXQgc2V0Rm9yY2VOdWxsQ2hhcmFjdGVyUmVwbGFjZW1lbnQgYmFzZWQgb24g
bV9pbkZvcmVpZ25Db250ZW50IGFzIHdlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAppbmRleCA2YzBlMGExZTJjODJjMjFjMGIzODcy
MWVlYTA5Mjk2NjJkNGUzZDllLi43YWMxYjU2MzI2M2M0NzczY2I0YWIyNTdjN2JlNjU2MGYyMjhi
ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2VuZFRva2Vu
c1RvTWFpblRocmVhZCgpOwogCi0gICAgYm9vbCBtX2luRm9yZWlnbkNvbnRlbnQ7IC8vIEZJWE1F
OiBXZSBuZWVkIGEgc3RhY2sgb2YgZm9yZWlnbiBjb250ZW50IG1hcmtlcnMuCisgICAgYm9vbCBt
X2luRm9yZWlnbkNvbnRlbnQ7CiAgICAgV2Vha1B0ckZhY3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJz
ZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0
OwogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291cmNlVHJhY2tlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKaW5kZXggOTJlNjEzNDkzODUy
YmE2OWU5YTJhM2MxY2NkZmIyNDliYmIxZmFlNi4uMWY3ZTQwMGM4NmUyNmQzNWU5NmIwYzRhZGJi
NDIxYTY0YTRmNzgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29t
cGFjdEhUTUxUb2tlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFj
dEhUTUxUb2tlbi5jcHAKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2luY2x1ZGUgIkNvbXBhY3RIVE1M
VG9rZW4uaCIKIAorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1M
VG9rZW4uaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRv
ckRlbGVnYXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMSw2ICsxMDMsMTUgQEAg
Q29tcGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbihjb25zdCBDb21wYWN0SFRNTFRva2Vu
JiBvdGhlcikKICAgICAgICAgbV94c3NJbmZvID0gYWRvcHRQdHIobmV3IFhTU0luZm8oKm90aGVy
Lm1feHNzSW5mbykpOwogfQogCitjb25zdCBDb21wYWN0QXR0cmlidXRlKiBDb21wYWN0SFRNTFRv
a2VuOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXR0cmlidXRlcy5zaXplKCk7ICsraSkg
eworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKG1fYXR0cmlidXRlcy5hdChpKS5uYW1lKCks
IG5hbWUpKQorICAgICAgICAgICAgcmV0dXJuICZtX2F0dHJpYnV0ZXMuYXQoaSk7CisgICAgfQor
ICAgIHJldHVybiAwOworfQorCiBib29sIENvbXBhY3RIVE1MVG9rZW46OmlzU2FmZVRvU2VuZFRv
QW5vdGhlclRocmVhZCgpIGNvbnN0CiB7CiAgICAgZm9yIChWZWN0b3I8Q29tcGFjdEF0dHJpYnV0
ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdHRyaWJ1dGVzLmJlZ2luKCk7IGl0ICE9IG1fYXR0
cmlidXRlcy5lbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29t
cGFjdEhUTUxUb2tlbi5oCmluZGV4IDZjOTVmNmExY2VlYWI2Nzk0MThlNzEzMDU5ODNjOGZiOTk0
Mzc5ZmUuLmUzNjczZDVhNWJhNTk5N2YyNDhjYjhjMzdjZmVmMDU1ODkzNTExZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmgKQEAgLTQwLDYgKzQw
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRva2VuOworY2xhc3MgUXVh
bGlmaWVkTmFtZTsKIGNsYXNzIFhTU0luZm87CiAKIGNsYXNzIENvbXBhY3RBdHRyaWJ1dGUgewpA
QCAtNzAsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZWxmQ2xvc2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZkNsb3Npbmc7IH0KICAgICBib29sIGlzQWxsOEJpdERhdGEoKSBjb25zdCB7
IHJldHVybiBtX2lzQWxsOEJpdERhdGE7IH0KICAgICBjb25zdCBWZWN0b3I8Q29tcGFjdEF0dHJp
YnV0ZT4mIGF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZXM7IH0KKyAgICBj
b25zdCBDb21wYWN0QXR0cmlidXRlKiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdDsKICAgICBjb25zdCBUZXh0UG9zaXRpb24mIHRleHRQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9uOyB9CiAKICAgICAvLyBUaGVyZSBpcyBvbmx5IDEgRE9D
VFlQRSB0b2tlbiBwZXIgZG9jdW1lbnQsIHNvIHRvIGF2b2lkIGluY3JlYXNpbmcgdGhlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZTg3ZGE4MGY4MDg0NWQ5M2YxMjBjMTRlMTBlMGFiMTlkMTExZTQ0My4uOGNmMTA3MjkwMWE1
YjdlM2NkNWY2YzEwOGQxNDRlZjI5ZmRmMWVhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEz
LTAyLTEzICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Rml4IHN2Zy9pbi1odG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJz
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dGVzdHMgdGhlIGJlaGF2aW9yIG9mIGEgcGxhaW50ZXh0IHRhZyBpbnNpZGUgYW4gc3ZnIGZvcmVp
Z25PYmplY3QuIEl0IGFwcGxpZXMgdG8gdGhlIHJlbWFpbmRlciBvZiB0aGUgZG9jdW1lbnQuCisg
ICAgICAgIFRoaXMgYmVoYXZpb3Igc2VlbXMgYSBsaXR0bGUgd29ua3ksIGJ1dCBpdCBtYXRjaGVz
IG91ciBjdXJyZW50IGJlaGF2aW9yIGFuZCBGaXJlZm94J3MgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBmYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWdu
Y29udGVudC5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGRlbGV0aW9uVUkgdGVzdHMgaW50byBwbGF0Zm9y
bS9tYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2ZvcmVpZ25vYmplY3Qt
aW4tZm9yZWlnbmNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIv
Zm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWI4N2QwZTk2NWNhYzBjNzRlNWYzZTM1ZDhhYTgxNmY0MzllNzgwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2ZvcmVpZ25vYmplY3QtaW4tZm9yZWlnbmNvbnRl
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4MTIxCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxMjEK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgxMDUKKyAgICAgIFJlbmRl
clNWR1Jvb3Qge3N2Z30gYXQgKDgsOCkgc2l6ZSAyMDB4MTAwCisgICAgICAgIFJlbmRlclNWR0Zv
cmVpZ25PYmplY3Qge2ZvcmVpZ25PYmplY3R9IGF0ICgwLDApIHNpemUgMjAweDEwMAorICAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDIwCisgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMHgxOQorICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogImZvbyIKKyAgICAgICAgICBSZW5kZXJCbG9jayB7UExB
SU5URVhUfSBhdCAoMCwzMykgc2l6ZSAyMDB4OTYKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDIyNHg5NgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAwOiAiICIKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTYpIHdpZHRoIDIy
NDogIiAgICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD4iCisgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgyMjQsMTYpIHdpZHRoIDA6ICIgIgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwz
Mikgd2lkdGggMTEyOiAiICAgICAgICA8L3N2Zz4iCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMTIsMzIpIHdpZHRoIDA6ICIgIgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0OCkg
d2lkdGggMTc2OiAiICAgICAgICA8ZGl2PmJhcjwvZGl2PiIKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE3Niw0OCkgd2lkdGggMDogIiAiCisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDY0KSB3aWR0aCA4ODogIiAgICA8L2JvZHk+IgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
ODgsNjQpIHdpZHRoIDA6ICIgIgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw4MCkgd2lk
dGggNTY6ICI8L2h0bWw+IgorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTYsODApIHdpZHRo
IDA6ICIgIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVj
dC1pbi1mb3JlaWduY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWln
bm9iamVjdC1pbi1mb3JlaWduY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZDkwYjBhMTRlODAy
MGY1YTlhMTI4NDVkMDNjMDdjOTI3ODkzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50Lmh0bWwKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHN2ZyBpZD0ic3ZnMSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjEwMCI+CisgICAgICAgICAgICAgICAgPGRpdj5mb288L2Rp
dj4KKyAgICAgICAgICAgICAgICA8cGxhaW50ZXh0PgorICAgICAgICAgICAgPC9mb3JlaWduT2Jq
ZWN0PgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGRpdj5iYXI8L2Rpdj4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188148</attachid>
            <date>2013-02-13 12:34:35 -0800</date>
            <delta_ts>2013-02-13 15:34:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130213123104.patch</filename>
            <type>text/plain</type>
            <size>14587</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMjM0ZDU5ZTZlMWU1
OTQyNDkzMmIwZDBlOWJkYTJiZTRkMmQyYS4uNDQ3OTI2MDg1NjBkYTVkYjAzYzc2NDAzYjI3OTE1
NTYyMzQ3ZGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTEzICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMg
dGhlIGJhY2tncm91bmQgcGFyc2VyJ3Mgc2ltdWxhdGVUcmVlQnVpbGRlcigpIG1vcmUgcmVhbGlz
dGljLgorICAgICAgICAxLiBUaGUgSFRNTFRyZWVCdWlsZGVyIGRvZXMgbm90IGNhbGwgdGhlIHVw
ZGF0ZVN0YXRlRm9yKCkgc2V0U3RhdGUoKXMgd2hlbiBpbiBmb3JlaWduIGNvbnRlbnQgbW9kZSBz
byB3ZSBzaG91bGRuJ3QgZG8gaXQgd2hlbiBzaW11bGF0aW5nIHRoZSB0cmVlIGJ1aWxkZXIuCisg
ICAgICAgIDIuIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCBo
YXMgYSBsaXN0IG9mIHRhZ3Mgd2hpY2ggZXhpdCBmb3JlaWduIGNvbnRlbnQgbW9kZS4gV2UgbmVl
ZCB0byByZXNwZWN0IHRob3NlLgorICAgICAgICAzLiBTdXBwb3J0IHRoZSA8Zm9yZWlnbk9iamVj
dD4gdGFnIHdoaWNoIGVudGVycyBhbmQgbGVhdmVzIGZvcmVpZ24gY29udGVudCBtb2RlLgorICAg
ICAgICA0LiBUaGUgdHJlZSBidWlsZGVyIHNldHMgc3RhdGUgdG8gRGF0YVN0YXRlIHVwb24gYSA8
L3NjcmlwdD4gdGFnIHdoZW4gbm90IGluIGZvcmVpZ24gY29udGVudCBtb2RlLiBXZSBuZWVkIHRv
IGRvIHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgZml4ZXMgc3ZnL2luLWh0bWwvc2NyaXB0LXdy
aXRlLmh0bWwgYW5kIGxpa2VseSBvdGhlcnMuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0ZW0pOiBSZXR1cm5zIHRoZSBhdHRyaWJ1
dGUgb2YgdGhlIGdpdmVuIG5hbWUuIE5lY2Vzc2FyeSB0byB0ZXN0IGZvciA8Zm9udD4gYXR0cmli
dXRlcyBpbiBzaW11bGF0ZVRyZWVCdWlsZGVyLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKwogMjAxMy0wMi0xMyAgUGhpbGlwIFJvZ2VycyAg
PHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgU1ZHIGJpdG1hcCBjYWNoZSB3aXRo
IGRpcmVjdGx5LXJlbmRlcmVkIFNWRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IDMwNGY1NDE4NWYzOWI5YjExNDU4YTY0
N2VhMTYxZjFiZWQ5MDM3M2YuLmI1YmI1OTJlMDY1NTViMTMzYjRjYjE5NzVhN2Q3NzYzNDAxNzYw
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5jcHAKQEAgLTU1LDExICs1NSw2MyBAQCBzdGF0aWMgdm9pZCBjaGVja1RoYXRUb2tl
bnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKGNvbnN0IENvbXBhY3RIVE1MVG9rZW5TdAog
CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBib29sIHRva2VuRXhpdHNGb3JlaWduQ29udGVudChj
b25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBj
b3BpZWQgZnJvbSBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQg
YW5kIGNoYW5nZWQgdG8gdXNlIHRocmVhZFNhZmVNYXRjaC4KKyAgICBjb25zdCBTdHJpbmcmIHRh
Z05hbWUgPSB0b2tlbi5kYXRhKCk7CisgICAgcmV0dXJuIHRocmVhZFNhZmVNYXRjaCh0YWdOYW1l
LCBiVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgYmlnVGFnKQorICAg
ICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgYmxvY2txdW90ZVRhZykKKyAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGJvZHlUYWcpCisgICAgICAgIHx8IHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCBiclRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIGNlbnRlclRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGNvZGVU
YWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBkZFRhZykKKyAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRpdlRhZykKKyAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGRsVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgZHRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBlbVRhZykKKyAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGVtYmVkVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDFUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBoMlRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGgz
VGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDRUYWcpCisgICAgICAg
IHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoNVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGg2VGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgaGVhZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGhyVGFnKQor
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaVRhZykKKyAgICAgICAgfHwgdGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGltZ1RhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIGxpVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbGlz
dGluZ1RhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG1lbnVUYWcpCisg
ICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBtZXRhVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9iclRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG9sVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
cFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHByZVRhZykKKyAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHJ1YnlUYWcpCisgICAgICAgIHx8IHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBzVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgc21hbGxUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzcGFu
VGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3Ryb25nVGFnKQorICAg
ICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3RyaWtlVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3ViVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0
Y2godGFnTmFtZSwgc3VwVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
dGFibGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0dFRhZykKKyAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHVUYWcpCisgICAgICAgIHx8IHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCB1bFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIHZhclRhZykKKyAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBmb250
VGFnKSAmJiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShjb2xvckF0dHIpIHx8IHRva2VuLmdldEF0
dHJpYnV0ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIp
KSk7Cit9CisKIC8vIEZJWE1FOiBUdW5lIHRoaXMgY29uc3RhbnQgYmFzZWQgb24gYSBiZW5jaG1h
cmsuIFRoZSBjdXJyZW50IHZhbHVlIHdhcyBjaG9vc2VuIGFyYml0cmFyaWx5Lgogc3RhdGljIGNv
bnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9IDQwMDA7CiAKIEJhY2tncm91bmRIVE1MUGFy
c2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8QmFja2dy
b3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0
aW9ucywgY29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+JiBwYXJzZXIsIFBhc3NPd25Q
dHI8WFNTQXVkaXRvcj4geHNzQXVkaXRvcikKLSAgICA6IG1faW5Gb3JlaWduQ29udGVudChmYWxz
ZSkKKyAgICA6IG1faW5TVkcoZmFsc2UpCisgICAgLCBtX2luTWF0aE1MKGZhbHNlKQogICAgICwg
bV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCiAgICAgLCBtX3Rva2VuKGFkb3B0UHRyKG5l
dyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKG9w
dGlvbnMpKQpAQCAtMTE1LDM2ICsxNjcsNTMgQEAgYm9vbCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6
c2ltdWxhdGVUcmVlQnVpbGRlcihjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKIHsKICAg
ICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6U3RhcnRUYWcpIHsKICAgICAgICAgY29u
c3QgU3RyaW5nJiB0YWdOYW1lID0gdG9rZW4uZGF0YSgpOwotICAgICAgICBpZiAodGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIFNWR05hbWVzOjpzdmdUYWcpCi0gICAgICAgICAgICB8fCB0aHJlYWRT
YWZlTWF0Y2godGFnTmFtZSwgTWF0aE1MTmFtZXM6Om1hdGhUYWcpKQotICAgICAgICAgICAgbV9p
bkZvcmVpZ25Db250ZW50ID0gdHJ1ZTsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBqdXN0
IGEgY29weSBvZiBUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yIHdoaWNoIHVzZXMgdGhyZWFkU2Fm
ZU1hdGNoZXMuCi0gICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGV4dGFyZWFU
YWcpIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0aXRsZVRhZykpCi0gICAgICAgICAgICBt
X3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOwotICAgICAg
ICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgcGxhaW50ZXh0VGFnKSkKLSAgICAg
ICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQTEFJTlRFWFRTdGF0
ZSk7Ci0gICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzY3JpcHRUYWcp
KQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlw
dERhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBz
dHlsZVRhZykKLSAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBpZnJhbWVU
YWcpCi0gICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgeG1wVGFnKQotICAg
ICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub2VtYmVkVGFnKSAmJiBtX29w
dGlvbnMucGx1Z2luc0VuYWJsZWQpCi0gICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgbm9mcmFtZXNUYWcpCi0gICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIG5vc2NyaXB0VGFnKSAmJiBtX29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCi0gICAgICAgICAg
ICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkFXVEVYVFN0YXRlKTsKKyAg
ICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBTVkdOYW1lczo6c3ZnVGFnKSkKKyAg
ICAgICAgICAgIG1faW5TVkcgPSB0cnVlOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKKyAgICAgICAgICAgIG1faW5NYXRoTUwgPSB0
cnVlOworICAgICAgICBpZiAoaW5Gb3JlaWduQ29udGVudCgpICYmIHRva2VuRXhpdHNGb3JlaWdu
Q29udGVudCh0b2tlbikpIHsKKyAgICAgICAgICAgIG1faW5TVkcgPSBmYWxzZTsKKyAgICAgICAg
ICAgIG1faW5NYXRoTUwgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyBGSVhNRTogU3Vw
cG9ydCB0YWdzIHRoYXQgZXhpdCBNYXRoTUwuCisgICAgICAgIGlmIChtX2luU1ZHICYmIGVxdWFs
SWdub3JpbmdDYXNlKHRhZ05hbWUsIFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnLmxvY2FsTmFt
ZSgpKSkKKyAgICAgICAgICAgIG1faW5TVkcgPSBmYWxzZTsKKyAgICAgICAgaWYgKCFpbkZvcmVp
Z25Db250ZW50KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBjb3B5
IG9mIFRva2VuaXplcjo6dXBkYXRlU3RhdGVGb3Igd2hpY2ggdXNlcyB0aHJlYWRTYWZlTWF0Y2hl
cy4KKyAgICAgICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGV4dGFyZWFUYWcp
IHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0aXRsZVRhZykpCisgICAgICAgICAgICAgICAg
bV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBwbGFpbnRleHRUYWcpKQor
ICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQTEFJ
TlRFWFRTdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgc2NyaXB0VGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRN
TFRva2VuaXplcjo6U2NyaXB0RGF0YVN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBzdHlsZVRhZykKKyAgICAgICAgICAgICAgICB8fCB0aHJlYWRT
YWZlTWF0Y2godGFnTmFtZSwgaWZyYW1lVGFnKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCB4bXBUYWcpCisgICAgICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBub2VtYmVkVGFnKSAmJiBtX29wdGlvbnMucGx1Z2luc0VuYWJsZWQpCisg
ICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG5vZnJhbWVzVGFnKQor
ICAgICAgICAgICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9zY3JpcHRUYWcp
ICYmIG1fb3B0aW9ucy5zY3JpcHRFbmFibGVkKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXpl
ci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UkFXVEVYVFN0YXRlKTsKKyAgICAgICAgfQogICAg
IH0KIAogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpFbmRUYWcpIHsKICAgICAg
ICAgY29uc3QgU3RyaW5nJiB0YWdOYW1lID0gdG9rZW4uZGF0YSgpOwotICAgICAgICBpZiAodGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIFNWR05hbWVzOjpzdmdUYWcpIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBNYXRoTUxOYW1lczo6bWF0aFRhZykpCi0gICAgICAgICAgICBtX2luRm9yZWln
bkNvbnRlbnQgPSBmYWxzZTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBz
Y3JpcHRUYWcpKQorICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIFNWR05hbWVz
OjpzdmdUYWcpKQorICAgICAgICAgICAgbV9pblNWRyA9IGZhbHNlOworICAgICAgICBpZiAodGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKKyAgICAgICAgICAg
IG1faW5NYXRoTUwgPSBmYWxzZTsKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgdGFncyB0aGF0
IGVudGVyIE1hdGhNTC4KKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHRhZ05hbWUsIFNW
R05hbWVzOjpmb3JlaWduT2JqZWN0VGFnLmxvY2FsTmFtZSgpKSkKKyAgICAgICAgICAgIG1faW5T
VkcgPSB0cnVlOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRh
ZykpIHsKKyAgICAgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKQorICAgICAgICAgICAg
ICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gRklYTUU6
IE5lZWQgdG8gc2V0IHNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50IGJhc2VkIG9uIG1f
aW5Gb3JlaWduQ29udGVudCBhcyB3ZWxsLgotICAgIG1fdG9rZW5pemVyLT5zZXRTaG91bGRBbGxv
d0NEQVRBKG1faW5Gb3JlaWduQ29udGVudCk7CisgICAgbV90b2tlbml6ZXItPnNldFNob3VsZEFs
bG93Q0RBVEEoaW5Gb3JlaWduQ29udGVudCgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKaW5k
ZXggNGYxNTFhOTY0NTA2NzgxMDVlMTM5YTAzZDgxYjY0ZTEyZWM3OWY1MC4uMWM2OWM3NWJkMzcw
OGVhZWY5ZWI3MTVjNThhOTY5MmU1YjIzNDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCkBAIC03Niw4ICs3NiwxMCBAQCBwcml2
YXRlOgogICAgIGJvb2wgc2ltdWxhdGVUcmVlQnVpbGRlcihjb25zdCBDb21wYWN0SFRNTFRva2Vu
Jik7CiAKICAgICB2b2lkIHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKKyAgICBib29sIGluRm9y
ZWlnbkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2luU1ZHIHx8IG1faW5NYXRoTUw7IH0KIAot
ICAgIGJvb2wgbV9pbkZvcmVpZ25Db250ZW50OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9m
IGZvcmVpZ24gY29udGVudCBtYXJrZXJzLgorICAgIGJvb2wgbV9pblNWRzsKKyAgICBib29sIG1f
aW5NYXRoTUw7CiAgICAgV2Vha1B0ckZhY3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJzZXI+IG1fd2Vh
a0ZhY3Rvcnk7CiAgICAgQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OwogICAgIEhU
TUxTb3VyY2VUcmFja2VyIG1fc291cmNlVHJhY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKaW5kZXggOWM2N2ZmMGFhODU5OWNhZDc5OWY5
MjcwMmY1ZGFmNzA5OTcxZjVmYy4uMzEzMmQyNTY4ZmVkZWJjYjFhZGFmYTY2MTI4NjEyMzNjMzlm
MmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxU
b2tlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tl
bi5jcHAKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2luY2x1ZGUgIkNvbXBhY3RIVE1MVG9rZW4uaCIK
IAorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIK
KyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMCw2ICsxMDIsMTUgQEAgQ29tcGFjdEhU
TUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbihjb25zdCBDb21wYWN0SFRNTFRva2VuJiBvdGhlcikK
ICAgICAgICAgbV94c3NJbmZvID0gYWRvcHRQdHIobmV3IFhTU0luZm8oKm90aGVyLm1feHNzSW5m
bykpOwogfQogCitjb25zdCBDb21wYWN0QXR0cmlidXRlKiBDb21wYWN0SFRNTFRva2VuOjpnZXRB
dHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAodGhyZWFkU2FmZU1hdGNoKG1fYXR0cmlidXRlcy5hdChpKS5uYW1lKCksIG5hbWUpKQor
ICAgICAgICAgICAgcmV0dXJuICZtX2F0dHJpYnV0ZXMuYXQoaSk7CisgICAgfQorICAgIHJldHVy
biAwOworfQorCiBib29sIENvbXBhY3RIVE1MVG9rZW46OmlzU2FmZVRvU2VuZFRvQW5vdGhlclRo
cmVhZCgpIGNvbnN0CiB7CiAgICAgZm9yIChWZWN0b3I8Q29tcGFjdEF0dHJpYnV0ZT46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9hdHRyaWJ1dGVzLmJlZ2luKCk7IGl0ICE9IG1fYXR0cmlidXRlcy5l
bmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29t
cGFjdEhUTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxU
b2tlbi5oCmluZGV4IGI3Yzg1NjkwNDZiNGQyMTdiYjBlMzljMmVlOTA2ZjMwNTI2M2ViODAuLjU2
MjEwNDJlODBmNWRiYjQ2NmRlMTQwMzA4ODYzMWY5ZWQ2MmJlMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgWFNTSW5m
bzsKIAogY2xhc3MgQ29tcGFjdEF0dHJpYnV0ZSB7CkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIHNlbGZDbG9zaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zZWxmQ2xvc2luZzsgfQog
ICAgIGJvb2wgaXNBbGw4Qml0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBbGw4Qml0RGF0YTsg
fQogICAgIGNvbnN0IFZlY3RvcjxDb21wYWN0QXR0cmlidXRlPiYgYXR0cmlidXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQorICAgIGNvbnN0IENvbXBhY3RBdHRyaWJ1dGUqIGdl
dEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGNvbnN0IFRl
eHRQb3NpdGlvbiYgdGV4dFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9zaXRpb247
IH0KIAogICAgIC8vIFRoZXJlIGlzIG9ubHkgMSBET0NUWVBFIHRva2VuIHBlciBkb2N1bWVudCwg
c28gdG8gYXZvaWQgaW5jcmVhc2luZyB0aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOWU4YTdkZGM3N2U4YjZmYzgxNGI3
Y2M1ZjdkZTY4OTc4NmE0MDUxLi4wNDM0NDZkODQzMGM0OGIwMzFiMjM4NWExZmI3NTUxZjNmMWQx
Y2NhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMTMgIFRvbnkgR2VudGlsY29yZSAg
PHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggc3ZnL2luLWh0bWwvc2NyaXB0LXdy
aXRlLmh0bWwgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgYSBw
bGFpbnRleHQgdGFnIGluc2lkZSBhbiBzdmcgZm9yZWlnbk9iamVjdC4gSXQgYXBwbGllcyB0byB0
aGUgcmVtYWluZGVyIG9mIHRoZSBkb2N1bWVudC4KKyAgICAgICAgVGhpcyBiZWhhdmlvciBzZWVt
cyBhIGxpdHRsZSB3b25reSwgYnV0IGl0IG1hdGNoZXMgb3VyIGN1cnJlbnQgYmVoYXZpb3IgYW5k
IEZpcmVmb3gncyBiZWhhdmlvci4KKworICAgICAgICAqIGZhc3QvcGFyc2VyL2ZvcmVpZ25vYmpl
Y3QtaW4tZm9yZWlnbmNvbnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50Lmh0bWw6IEFkZGVkLgorCiAy
MDEzLTAyLTEzICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVw
bGFjZSBTVkcgYml0bWFwIGNhY2hlIHdpdGggZGlyZWN0bHktcmVuZGVyZWQgU1ZHCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2ZvcmVpZ25vYmplY3Qt
aW4tZm9yZWlnbmNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MDgyZWI5NTc1MTI5
NDNhZTBiODE4NThhYjlmNjI2NjVkNDk1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM2IEBACit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wgICA8Ym9keT4KK3wgICAgICIKKyAgICAgICAg
IgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIGhlaWdodD0iMTAwIgorfCAgICAgICBpZD0ic3Zn
MSIKK3wgICAgICAgd2lkdGg9IjIwMCIKK3wgICAgICAgeG1sbnMgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIgorfCAgICAgICAiCisgICAgICAgICAgICAiCit8ICAgICAgIDxzdmcg
Zm9yZWlnbk9iamVjdD4KK3wgICAgICAgICBoZWlnaHQ9IjEwMCIKK3wgICAgICAgICB3aWR0aD0i
MjAwIgorfCAgICAgICAgIHg9IjAiCit8ICAgICAgICAgeT0iMCIKK3wgICAgICAgICAiCisgICAg
ICAgICAgICAgICAgIgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiZm9vIgorfCAgICAg
ICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPHBsYWludGV4dD4KK3wgICAgICAg
ICAgICIKKyAgICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD4KKyAgICAgICAgPC9zdmc+CisgICAg
ICAgIDxkaXY+YmFyPC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgorIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29udGVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29u
dGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjY2Q1MzY1ZmYxZDU3YTU5Y2ViZGEwY2Y1Njc5ZDgyM2Q0
NGRmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdu
b2JqZWN0LWluLWZvcmVpZ25jb250ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHN2ZyBpZD0ic3ZnMSIg
d2lkdGg9IjIwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+CisgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAwIiBo
ZWlnaHQ9IjEwMCI+CisgICAgICAgICAgICAgICAgPGRpdj5mb288L2Rpdj4KKyAgICAgICAgICAg
ICAgICA8cGxhaW50ZXh0PgorICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICA8
L3N2Zz4KKyAgICAgICAgPGRpdj5iYXI8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188197</attachid>
            <date>2013-02-13 15:34:45 -0800</date>
            <delta_ts>2013-02-13 15:53:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130213153113.patch</filename>
            <type>text/plain</type>
            <size>18587</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMjM0ZDU5ZTZlMWU1
OTQyNDkzMmIwZDBlOWJkYTJiZTRkMmQyYS4uNjBiNDgwZWM2MjhhOTY5YTQwZjA2Y2FiNzY3M2Jh
NGU3NjdjMTk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEzICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMg
dGhlIGJhY2tncm91bmQgcGFyc2VyJ3Mgc2ltdWxhdGVUcmVlQnVpbGRlcigpIG1vcmUgcmVhbGlz
dGljLgorICAgICAgICAxLiBUaGUgSFRNTFRyZWVCdWlsZGVyIGRvZXMgbm90IGNhbGwgdGhlIHVw
ZGF0ZVN0YXRlRm9yKCkgc2V0U3RhdGUoKXMgd2hlbiBpbiBmb3JlaWduIGNvbnRlbnQgbW9kZSBz
byB3ZSBzaG91bGRuJ3QgZG8gaXQgd2hlbiBzaW11bGF0aW5nIHRoZSB0cmVlIGJ1aWxkZXIuCisg
ICAgICAgIDIuIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCBo
YXMgYSBsaXN0IG9mIHRhZ3Mgd2hpY2ggZXhpdCBmb3JlaWduIGNvbnRlbnQgbW9kZS4gV2UgbmVl
ZCB0byByZXNwZWN0IHRob3NlLgorICAgICAgICAzLiBTdXBwb3J0IHRoZSA8Zm9yZWlnbk9iamVj
dD4gdGFnIHdoaWNoIGVudGVycyBhbmQgbGVhdmVzIGZvcmVpZ24gY29udGVudCBtb2RlLgorICAg
ICAgICA0LiBUaGUgdHJlZSBidWlsZGVyIHNldHMgc3RhdGUgdG8gRGF0YVN0YXRlIHVwb24gYSA8
L3NjcmlwdD4gdGFnIHdoZW4gbm90IGluIGZvcmVpZ24gY29udGVudCBtb2RlLiBXZSBuZWVkIHRv
IGRvIHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgaW52b2x2ZWQgY3JlYXRpbmcgYSBuYW1lc3Bh
Y2Ugc3RhY2sgd2hlcmUgd2UgcHVzaCB1cG9uIGVudGVyaW5nIGVhY2ggbmFtZXNwYWNlIGFuZCBw
b3AgdXBvbiBsZWF2aW5nLgorICAgICAgICBXZSBhcmUgaW4gZm9yZWlnbiBjb250ZW50IGlmIHRo
ZSB0b3Btb3N0IG5hbWVzcGFjZSBpcyBTVkcgb3IgTWF0aE1MLgorCisgICAgICAgIFRoaXMgZml4
ZXMgc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgYW5kIGxpa2VseSBvdGhlcnMuCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcik6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKEJhY2tn
cm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2Vu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0
ZW0pOiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIGdpdmVuIG5hbWUuIE5lY2Vzc2FyeSB0
byB0ZXN0IGZvciA8Zm9udD4gYXR0cmlidXRlcyBpbiBzaW11bGF0ZVRyZWVCdWlsZGVyLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKwogMjAx
My0wMi0xMyAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlcGxh
Y2UgU1ZHIGJpdG1hcCBjYWNoZSB3aXRoIGRpcmVjdGx5LXJlbmRlcmVkIFNWRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4
IDMwNGY1NDE4NWYzOWI5YjExNDU4YTY0N2VhMTYxZjFiZWQ5MDM3M2YuLmJiODUzNGI3ZDM5ZWNj
M2M2MThmZTY2NTM5MjNjZWZkYWY1YmM1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTU1LDEyICs1NSw2MiBAQCBz
dGF0aWMgdm9pZCBjaGVja1RoYXRUb2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKGNv
bnN0IENvbXBhY3RIVE1MVG9rZW5TdAogCiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBib29sIHRv
a2VuRXhpdHNGb3JlaWduQ29udGVudChjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKK3sK
KyAgICAvLyBGSVhNRTogVGhpcyBpcyBjb3BpZWQgZnJvbSBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgYW5kIGNoYW5nZWQgdG8gdXNlIHRocmVhZFNhZmVNYXRj
aC4KKyAgICBjb25zdCBTdHJpbmcmIHRhZ05hbWUgPSB0b2tlbi5kYXRhKCk7CisgICAgcmV0dXJu
IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0
Y2godGFnTmFtZSwgYmlnVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
YmxvY2txdW90ZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGJvZHlU
YWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiclRhZykKKyAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGNlbnRlclRhZykKKyAgICAgICAgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGNvZGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBkZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRpdlRh
ZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRsVGFnKQorICAgICAgICB8
fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgZHRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBlbVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IGVtYmVkVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDFUYWcpCisg
ICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoMlRhZykKKyAgICAgICAgfHwgdGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGgzVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgaDRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoNVRh
ZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGg2VGFnKQorICAgICAgICB8
fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaGVhZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGhyVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgaVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGltZ1RhZykKKyAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGxpVGFnKQorICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgbGlzdGluZ1RhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG1lbnVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1l
LCBtZXRhVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9iclRhZykK
KyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG9sVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgcFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHByZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHJ1
YnlUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzVGFnKQorICAgICAg
ICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc21hbGxUYWcpCisgICAgICAgIHx8IHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBzcGFuVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgc3Ryb25nVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
c3RyaWtlVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3ViVGFnKQor
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3VwVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGFibGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCB0dFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IHVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB1bFRhZykKKyAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHZhclRhZykKKyAgICAgICAgfHwgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBmb250VGFnKSAmJiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShj
b2xvckF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdl
dEF0dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIpKSk7Cit9CisKIC8vIEZJWE1FOiBUdW5lIHRoaXMgY29u
c3RhbnQgYmFzZWQgb24gYSBiZW5jaG1hcmsuIFRoZSBjdXJyZW50IHZhbHVlIHdhcyBjaG9vc2Vu
IGFyYml0cmFyaWx5Lgogc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9IDQw
MDA7CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNzUmVm
UHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBjb25z
dCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQ
YXJzZXI+JiBwYXJzZXIsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4geHNzQXVkaXRvcikKLSAgICA6
IG1faW5Gb3JlaWduQ29udGVudChmYWxzZSkKLSAgICAsIG1fd2Vha0ZhY3RvcnkocmVmZXJlbmNl
LCB0aGlzKQorICAgIDogbV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCiAgICAgLCBtX3Rv
a2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2Vu
aXplcjo6Y3JlYXRlKG9wdGlvbnMpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCkBAIC02OCw2
ICsxMTgsNyBAQCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoUGFz
c1JlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVAogICAgICwgbV9wZW5kaW5nVG9rZW5z
KGFkb3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKSkKICAgICAsIG1feHNzQXVkaXRv
cih4c3NBdWRpdG9yKQogeworICAgIG1fbmFtZXNwYWNlU3RhY2suYXBwZW5kKEhUTUwpOwogfQog
CiB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjphcHBlbmQoY29uc3QgU3RyaW5nJiBpbnB1dCkK
QEAgLTExNSwzNiArMTY2LDQ5IEBAIGJvb2wgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNpbXVsYXRl
VHJlZUJ1aWxkZXIoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgdGFnTmFtZSA9IHRva2VuLmRhdGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBTVkdOYW1lczo6c3ZnVGFnKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKLSAgICAgICAgICAgIG1faW5Gb3JlaWdu
Q29udGVudCA9IHRydWU7Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNvcHkg
b2YgVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCB1c2VzIHRocmVhZFNhZmVNYXRjaGVz
LgotICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0bGVUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6
ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlKTsKLSAgICAgICAgZWxzZSBp
ZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBsYWludGV4dFRhZykpCi0gICAgICAgICAgICBt
X3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOwotICAg
ICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKLSAgICAg
ICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3Rh
dGUpOwotICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcp
Ci0gICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaWZyYW1lVGFnKQotICAg
ICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHhtcFRhZykKLSAgICAgICAgICAg
IHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9vcHRpb25zLnBs
dWdpbnNFbmFibGVkKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG5v
ZnJhbWVzVGFnKQotICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub3Nj
cmlwdFRhZykgJiYgbV9vcHRpb25zLnNjcmlwdEVuYWJsZWQpKQotICAgICAgICAgICAgbV90b2tl
bml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RFWFRTdGF0ZSk7CisgICAgICAgIGlm
ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2Z1RhZykpCisgICAgICAgICAg
ICBtX25hbWVzcGFjZVN0YWNrLmFwcGVuZChTVkcpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2suYXBwZW5kKE1hdGhNTCk7CisgICAgICAgIGlmIChpbkZvcmVpZ25Db250ZW50KCkg
JiYgdG9rZW5FeGl0c0ZvcmVpZ25Db250ZW50KHRva2VuKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCB0YWdzIHRo
YXQgZXhpdCBNYXRoTUwuCisgICAgICAgIGlmIChtX25hbWVzcGFjZVN0YWNrLmxhc3QoKSA9PSBT
VkcgJiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RU
YWcubG9jYWxOYW1lKCkpKQorICAgICAgICAgICAgbV9uYW1lc3BhY2VTdGFjay5hcHBlbmQoSFRN
TCk7CisgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogVGhpcyBpcyBqdXN0IGEgY29weSBvZiBUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yIHdo
aWNoIHVzZXMgdGhyZWFkU2FmZU1hdGNoZXMuCisgICAgICAgICAgICBpZiAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0
bGVUYWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5p
emVyOjpSQ0RBVEFTdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgcGxhaW50ZXh0VGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0
U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOworICAgICAgICAgICAgZWxzZSBp
ZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCisgICAgICAgICAgICAgICAg
bV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7Cisg
ICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcpCisg
ICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKKyAg
ICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgeG1wVGFnKQorICAgICAg
ICAgICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9v
cHRpb25zLnBsdWdpbnNFbmFibGVkKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBub2ZyYW1lc1RhZykKKyAgICAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG5vc2NyaXB0VGFnKSAmJiBtX29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCisg
ICAgICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RF
WFRTdGF0ZSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodG9rZW4udHlwZSgpID09IEhU
TUxUb2tlbjo6RW5kVGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgdGFnTmFtZSA9IHRva2Vu
LmRhdGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBTVkdOYW1lczo6
c3ZnVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgTWF0aE1MTmFtZXM6Om1hdGhUYWcp
KQotICAgICAgICAgICAgbV9pbkZvcmVpZ25Db250ZW50ID0gZmFsc2U7Ci0gICAgICAgIGlmICh0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKKyAgICAgICAgLy8gRklYTUU6IFN1
cHBvcnQgdGFncyB0aGF0IGV4aXQgTWF0aE1MLgorICAgICAgICBpZiAoKG1fbmFtZXNwYWNlU3Rh
Y2subGFzdCgpID09IFNWRyAmJiB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2
Z1RhZykpCisgICAgICAgICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5sYXN0KCkgPT0gTWF0aE1M
ICYmIHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRoTUxOYW1lczo6bWF0aFRhZykpCisgICAg
ICAgICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5jb250YWlucyhTVkcpICYmIG1fbmFtZXNwYWNl
U3RhY2subGFzdCgpID09IEhUTUwgJiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFt
ZXM6OmZvcmVpZ25PYmplY3RUYWcubG9jYWxOYW1lKCkpKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIHNjcmlwdFRhZykpIHsKKyAgICAgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKQor
ICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpEYXRh
U3RhdGUpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgLy8gRklYTUU6IE5lZWQgdG8gc2V0IHNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50
IGJhc2VkIG9uIG1faW5Gb3JlaWduQ29udGVudCBhcyB3ZWxsLgotICAgIG1fdG9rZW5pemVyLT5z
ZXRTaG91bGRBbGxvd0NEQVRBKG1faW5Gb3JlaWduQ29udGVudCk7CisgICAgbV90b2tlbml6ZXIt
PnNldFNob3VsZEFsbG93Q0RBVEEoaW5Gb3JlaWduQ29udGVudCgpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmgKaW5kZXggNGYxNTFhOTY0NTA2NzgxMDVlMTM5YTAzZDgxYjY0ZTEyZWM3OWY1MC4u
YTJjMDA0ZTFhZjRmNDk2MzA3NjQzOTcxY2I3M2FjODA2NWEzNmJmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2
ICs3MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVBsYWludGV4dEZvclRleHREb2N1bWVu
dCgpOwogCiBwcml2YXRlOgorICAgIGVudW0gTmFtZXNwYWNlIHsKKyAgICAgICAgSFRNTCwKKyAg
ICAgICAgU1ZHLAorICAgICAgICBNYXRoTUwKKyAgICB9OworCiAgICAgQmFja2dyb3VuZEhUTUxQ
YXJzZXIoUGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPiA+LCBj
b25zdCBIVE1MUGFyc2VyT3B0aW9ucyYsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2Vy
PiYsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4pOwogCiAgICAgdm9pZCBtYXJrRW5kT2ZGaWxlKCk7
CkBAIC03Niw4ICs4Myw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaW11bGF0ZVRyZWVCdWlsZGVy
KGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mKTsKIAogICAgIHZvaWQgc2VuZFRva2Vuc1RvTWFpblRo
cmVhZCgpOworICAgIGJvb2wgaW5Gb3JlaWduQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZXNwYWNlU3RhY2subGFzdCgpICE9IEhUTUw7IH0KIAotICAgIGJvb2wgbV9pbkZvcmVpZ25Db250
ZW50OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJz
LgorICAgIFZlY3RvcjxOYW1lc3BhY2U+IG1fbmFtZXNwYWNlU3RhY2s7CiAgICAgV2Vha1B0ckZh
Y3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgQmFja2dyb3Vu
ZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OwogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291cmNl
VHJhY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RI
VE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tl
bi5jcHAKaW5kZXggOWM2N2ZmMGFhODU5OWNhZDc5OWY5MjcwMmY1ZGFmNzA5OTcxZjVmYy4uMzEz
MmQyNTY4ZmVkZWJjYjFhZGFmYTY2MTI4NjEyMzNjMzlmMmY3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKQEAgLTI5LDcgKzI5LDkgQEAK
IAogI2luY2x1ZGUgIkNvbXBhY3RIVE1MVG9rZW4uaCIKIAorI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEwMCw2ICsxMDIsMTUgQEAgQ29tcGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tl
bihjb25zdCBDb21wYWN0SFRNTFRva2VuJiBvdGhlcikKICAgICAgICAgbV94c3NJbmZvID0gYWRv
cHRQdHIobmV3IFhTU0luZm8oKm90aGVyLm1feHNzSW5mbykpOwogfQogCitjb25zdCBDb21wYWN0
QXR0cmlidXRlKiBDb21wYWN0SFRNTFRva2VuOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
YXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKG1f
YXR0cmlidXRlcy5hdChpKS5uYW1lKCksIG5hbWUpKQorICAgICAgICAgICAgcmV0dXJuICZtX2F0
dHJpYnV0ZXMuYXQoaSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBib29sIENvbXBhY3RI
VE1MVG9rZW46OmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpIGNvbnN0CiB7CiAgICAgZm9y
IChWZWN0b3I8Q29tcGFjdEF0dHJpYnV0ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdHRyaWJ1
dGVzLmJlZ2luKCk7IGl0ICE9IG1fYXR0cmlidXRlcy5lbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oCmluZGV4IGI3Yzg1NjkwNDZi
NGQyMTdiYjBlMzljMmVlOTA2ZjMwNTI2M2ViODAuLjU2MjEwNDJlODBmNWRiYjQ2NmRlMTQwMzA4
ODYzMWY5ZWQ2MmJlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0Nv
bXBhY3RIVE1MVG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0
SFRNTFRva2VuLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgWFNTSW5mbzsKIAogY2xhc3MgQ29tcGFjdEF0dHJp
YnV0ZSB7CkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGZDbG9zaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxmQ2xvc2luZzsgfQogICAgIGJvb2wgaXNBbGw4Qml0RGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNBbGw4Qml0RGF0YTsgfQogICAgIGNvbnN0IFZlY3RvcjxDb21w
YWN0QXR0cmlidXRlPiYgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsg
fQorICAgIGNvbnN0IENvbXBhY3RBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGNvbnN0IFRleHRQb3NpdGlvbiYgdGV4dFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9zaXRpb247IH0KIAogICAgIC8vIFRoZXJlIGlzIG9u
bHkgMSBET0NUWVBFIHRva2VuIHBlciBkb2N1bWVudCwgc28gdG8gYXZvaWQgaW5jcmVhc2luZyB0
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwOWU4YTdkZGM3N2U4YjZmYzgxNGI3Y2M1ZjdkZTY4OTc4NmE0MDUxLi5hY2Q4
ZGQxYzk2ODEzYTExN2YzNjZlZmUxMzczNzYxZDkzZWZmMDM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTMtMDItMTMgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBGaXggc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgd2l0aCB0aHJlYWRlZCBI
VE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3Jl
aWduY29udGVudC5odG1sOiBBZGRlZC4gVGhpcyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgYSBwbGFp
bnRleHQgdGFnIGluc2lkZSBhbiBzdmcgZm9yZWlnbk9iamVjdC4KKyAgICAgICAgSXQgYXBwbGll
cyB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBkb2N1bWVudC4gVGhpcyBiZWhhdmlvciBzZWVtcyBh
IGxpdHRsZSB3b25reSwgYnV0IGl0IG1hdGNoZXMgb3VyIGN1cnJlbnQgYmVoYXZpb3IgYW5kIEZp
cmVmb3gncyBiZWhhdmlvci4KKyAgICAgICAgKiBmYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4t
c3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRtbDog
QWRkZWQuIFRoaXMgdGVzdHMgdGhhdCB3ZSBkb24ndCBibGluZGx5IGdvIGludG8gSFRNTCBtb2Rl
IGFmdGVyIDwvZm9yZWlnbk9iamVjdD4uCisgICAgICAgICogZmFzdC9wYXJzZXIvdW5tYXRjaGVk
LWNsb3NlLWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC5odG1sOiBBZGRlZC4gVGhpcyB0
ZXN0cyB0aGF0IHVubWF0Y2hlZCA8L2ZvcmVpZ25PYmplY3Q+cyBhcmUgaWdub3JlZC4KKworCiAy
MDEzLTAyLTEzICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmVw
bGFjZSBTVkcgYml0bWFwIGNhY2hlIHdpdGggZGlyZWN0bHktcmVuZGVyZWQgU1ZHCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2ZvcmVpZ25vYmplY3Qt
aW4tZm9yZWlnbmNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MDgyZWI5NTc1MTI5
NDNhZTBiODE4NThhYjlmNjI2NjVkNDk1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM2IEBACit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVh
ZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wgICA8Ym9keT4KK3wgICAgICIKKyAgICAgICAg
IgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIGhlaWdodD0iMTAwIgorfCAgICAgICBpZD0ic3Zn
MSIKK3wgICAgICAgd2lkdGg9IjIwMCIKK3wgICAgICAgeG1sbnMgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIgorfCAgICAgICAiCisgICAgICAgICAgICAiCit8ICAgICAgIDxzdmcg
Zm9yZWlnbk9iamVjdD4KK3wgICAgICAgICBoZWlnaHQ9IjEwMCIKK3wgICAgICAgICB3aWR0aD0i
MjAwIgorfCAgICAgICAgIHg9IjAiCit8ICAgICAgICAgeT0iMCIKK3wgICAgICAgICAiCisgICAg
ICAgICAgICAgICAgIgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiZm9vIgorfCAgICAg
ICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPHBsYWludGV4dD4KK3wgICAgICAg
ICAgICIKKyAgICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD4KKyAgICAgICAgPC9zdmc+CisgICAg
ICAgIDxkaXY+YmFyPC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgorIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29udGVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29u
dGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjY2Q1MzY1ZmYxZDU3YTU5Y2ViZGEwY2Y1Njc5ZDgyM2Q0
NGRmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdu
b2JqZWN0LWluLWZvcmVpZ25jb250ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHN2ZyBpZD0ic3ZnMSIg
d2lkdGg9IjIwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+CisgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAwIiBo
ZWlnaHQ9IjEwMCI+CisgICAgICAgICAgICAgICAgPGRpdj5mb288L2Rpdj4KKyAgICAgICAgICAg
ICAgICA8cGxhaW50ZXh0PgorICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICA8
L3N2Zz4KKyAgICAgICAgPGRpdj5iYXI8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4tc3ZnLWFmdGVy
LWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvaWdu
b3JlLXRpdGxlLWluLXN2Zy1hZnRlci1mb3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMjE2ODliZmE3MmRkY2M4YWE2NDA2ZDJkMGMwNDA2Zjc5M2Q0YjQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvaWdub3JlLXRpdGxlLWluLXN2Zy1hZnRl
ci1mb3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACit8IDxodG1sPgor
fCAgIDxoZWFkPgorfCAgICAgIgorICAgICIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wgICA8
Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiCisgICAgICAgICIKK3wgICAgICAgPHN2
ZyBmb3JlaWduT2JqZWN0PgorfCAgICAgICAiCisgICAgICAgICIKK3wgICAgICAgPHN2ZyB0aXRs
ZT4KK3wgICAgICAgICAiCisgICAgIgorfCAgICAgIgorICAgIFRoaXMgdGV4dCBzaG91bGQgYXBw
ZWFyIGluIHRoZSBib2R5CisiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9p
Z25vcmUtdGl0bGUtaW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2lnbm9yZS10aXRsZS1pbi1zdmctYWZ0ZXItZm9yZWlnbm9iamVjdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNhYzY0YWQzOGRjYTY0YzJmZDBiMjNiYWZkMDhjNDkyNWQ0OWZmZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4t
c3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAu
anMiPjwvc2NyaXB0PgorICAgIDxzdmc+CisgICAgICAgIDxmb3JlaWduT2JqZWN0PjwvZm9yZWln
bk9iamVjdD4KKyAgICAgICAgPHRpdGxlPgorICAgIDwvc3ZnPgorICAgIFRoaXMgdGV4dCBzaG91
bGQgYXBwZWFyIGluIHRoZSBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNl
ci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDg4ZWNiOTY0NWEwNjMyZjFlNWI5OTY5YTkwN2QxYzdhMGQ3NGI1NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3VubWF0Y2hlZC1jbG9zZS1m
b3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACit8IDwhRE9DVFlQRSBo
dG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wgICA8
Ym9keT4KK3wgICAgICIKKyAgICAgICAgCisgICAgICAgICIKK3wgICAgIDxwbGFpbnRleHQ+Cit8
ICAgICAgICIKKwk8ZGl2PmZvbzwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKyIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3VubWF0Y2hlZC1jbG9zZS1mb3JlaWdub2Jq
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWln
bm9iamVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwN2I4MmJhMTBhNjlhOWJjYzU5MjZjNTExM2YzODY1
NTU0ZGJjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci91bm1h
dGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPC9mb3JlaWduT2JqZWN0
PgorICAgICAgICA8cGxhaW50ZXh0PgorCTxkaXY+Zm9vPC9kaXY+CisgICAgPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188206</attachid>
            <date>2013-02-13 15:54:00 -0800</date>
            <delta_ts>2013-02-13 16:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109495-20130213155028.patch</filename>
            <type>text/plain</type>
            <size>18590</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMjM0ZDU5ZTZlMWU1
OTQyNDkzMmIwZDBlOWJkYTJiZTRkMmQyYS4uNjBiNDgwZWM2MjhhOTY5YTQwZjA2Y2FiNzY3M2Jh
NGU3NjdjMTk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEzICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMg
dGhlIGJhY2tncm91bmQgcGFyc2VyJ3Mgc2ltdWxhdGVUcmVlQnVpbGRlcigpIG1vcmUgcmVhbGlz
dGljLgorICAgICAgICAxLiBUaGUgSFRNTFRyZWVCdWlsZGVyIGRvZXMgbm90IGNhbGwgdGhlIHVw
ZGF0ZVN0YXRlRm9yKCkgc2V0U3RhdGUoKXMgd2hlbiBpbiBmb3JlaWduIGNvbnRlbnQgbW9kZSBz
byB3ZSBzaG91bGRuJ3QgZG8gaXQgd2hlbiBzaW11bGF0aW5nIHRoZSB0cmVlIGJ1aWxkZXIuCisg
ICAgICAgIDIuIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCBo
YXMgYSBsaXN0IG9mIHRhZ3Mgd2hpY2ggZXhpdCBmb3JlaWduIGNvbnRlbnQgbW9kZS4gV2UgbmVl
ZCB0byByZXNwZWN0IHRob3NlLgorICAgICAgICAzLiBTdXBwb3J0IHRoZSA8Zm9yZWlnbk9iamVj
dD4gdGFnIHdoaWNoIGVudGVycyBhbmQgbGVhdmVzIGZvcmVpZ24gY29udGVudCBtb2RlLgorICAg
ICAgICA0LiBUaGUgdHJlZSBidWlsZGVyIHNldHMgc3RhdGUgdG8gRGF0YVN0YXRlIHVwb24gYSA8
L3NjcmlwdD4gdGFnIHdoZW4gbm90IGluIGZvcmVpZ24gY29udGVudCBtb2RlLiBXZSBuZWVkIHRv
IGRvIHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgaW52b2x2ZWQgY3JlYXRpbmcgYSBuYW1lc3Bh
Y2Ugc3RhY2sgd2hlcmUgd2UgcHVzaCB1cG9uIGVudGVyaW5nIGVhY2ggbmFtZXNwYWNlIGFuZCBw
b3AgdXBvbiBsZWF2aW5nLgorICAgICAgICBXZSBhcmUgaW4gZm9yZWlnbiBjb250ZW50IGlmIHRo
ZSB0b3Btb3N0IG5hbWVzcGFjZSBpcyBTVkcgb3IgTWF0aE1MLgorCisgICAgICAgIFRoaXMgZml4
ZXMgc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgYW5kIGxpa2VseSBvdGhlcnMuCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcik6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKEJhY2tn
cm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2Vu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0
ZW0pOiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIGdpdmVuIG5hbWUuIE5lY2Vzc2FyeSB0
byB0ZXN0IGZvciA8Zm9udD4gYXR0cmlidXRlcyBpbiBzaW11bGF0ZVRyZWVCdWlsZGVyLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKwogMjAx
My0wMi0xMyAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlcGxh
Y2UgU1ZHIGJpdG1hcCBjYWNoZSB3aXRoIGRpcmVjdGx5LXJlbmRlcmVkIFNWRwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4
IDMwNGY1NDE4NWYzOWI5YjExNDU4YTY0N2VhMTYxZjFiZWQ5MDM3M2YuLmJiODUzNGI3ZDM5ZWNj
M2M2MThmZTY2NTM5MjNjZWZkYWY1YmM1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTU1LDEyICs1NSw2MiBAQCBz
dGF0aWMgdm9pZCBjaGVja1RoYXRUb2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKGNv
bnN0IENvbXBhY3RIVE1MVG9rZW5TdAogCiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBib29sIHRv
a2VuRXhpdHNGb3JlaWduQ29udGVudChjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKK3sK
KyAgICAvLyBGSVhNRTogVGhpcyBpcyBjb3BpZWQgZnJvbSBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgYW5kIGNoYW5nZWQgdG8gdXNlIHRocmVhZFNhZmVNYXRj
aC4KKyAgICBjb25zdCBTdHJpbmcmIHRhZ05hbWUgPSB0b2tlbi5kYXRhKCk7CisgICAgcmV0dXJu
IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0
Y2godGFnTmFtZSwgYmlnVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
YmxvY2txdW90ZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGJvZHlU
YWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiclRhZykKKyAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGNlbnRlclRhZykKKyAgICAgICAgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGNvZGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBkZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRpdlRh
ZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRsVGFnKQorICAgICAgICB8
fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgZHRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCBlbVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IGVtYmVkVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDFUYWcpCisg
ICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoMlRhZykKKyAgICAgICAgfHwgdGhy
ZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGgzVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgaDRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoNVRh
ZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGg2VGFnKQorICAgICAgICB8
fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaGVhZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGhyVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgaVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGltZ1RhZykKKyAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGxpVGFnKQorICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgbGlzdGluZ1RhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG1lbnVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1l
LCBtZXRhVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9iclRhZykK
KyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG9sVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgcFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHByZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHJ1
YnlUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzVGFnKQorICAgICAg
ICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc21hbGxUYWcpCisgICAgICAgIHx8IHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBzcGFuVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgc3Ryb25nVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
c3RyaWtlVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3ViVGFnKQor
ICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3VwVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGFibGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVN
YXRjaCh0YWdOYW1lLCB0dFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IHVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB1bFRhZykKKyAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHZhclRhZykKKyAgICAgICAgfHwgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBmb250VGFnKSAmJiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShj
b2xvckF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdl
dEF0dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIpKSk7Cit9CisKIC8vIEZJWE1FOiBUdW5lIHRoaXMgY29u
c3RhbnQgYmFzZWQgb24gYSBiZW5jaG1hcmsuIFRoZSBjdXJyZW50IHZhbHVlIHdhcyBjaG9vc2Vu
IGFyYml0cmFyaWx5Lgogc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9IDQw
MDA7CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNzUmVm
UHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBjb25z
dCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQ
YXJzZXI+JiBwYXJzZXIsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4geHNzQXVkaXRvcikKLSAgICA6
IG1faW5Gb3JlaWduQ29udGVudChmYWxzZSkKLSAgICAsIG1fd2Vha0ZhY3RvcnkocmVmZXJlbmNl
LCB0aGlzKQorICAgIDogbV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCiAgICAgLCBtX3Rv
a2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2Vu
aXplcjo6Y3JlYXRlKG9wdGlvbnMpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCkBAIC02OCw2
ICsxMTgsNyBAQCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoUGFz
c1JlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVAogICAgICwgbV9wZW5kaW5nVG9rZW5z
KGFkb3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKSkKICAgICAsIG1feHNzQXVkaXRv
cih4c3NBdWRpdG9yKQogeworICAgIG1fbmFtZXNwYWNlU3RhY2suYXBwZW5kKEhUTUwpOwogfQog
CiB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjphcHBlbmQoY29uc3QgU3RyaW5nJiBpbnB1dCkK
QEAgLTExNSwzNiArMTY2LDQ5IEBAIGJvb2wgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNpbXVsYXRl
VHJlZUJ1aWxkZXIoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgdGFnTmFtZSA9IHRva2VuLmRhdGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBTVkdOYW1lczo6c3ZnVGFnKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKLSAgICAgICAgICAgIG1faW5Gb3JlaWdu
Q29udGVudCA9IHRydWU7Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNvcHkg
b2YgVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCB1c2VzIHRocmVhZFNhZmVNYXRjaGVz
LgotICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0bGVUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6
ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlKTsKLSAgICAgICAgZWxzZSBp
ZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBsYWludGV4dFRhZykpCi0gICAgICAgICAgICBt
X3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOwotICAg
ICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKLSAgICAg
ICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3Rh
dGUpOwotICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcp
Ci0gICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaWZyYW1lVGFnKQotICAg
ICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHhtcFRhZykKLSAgICAgICAgICAg
IHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9vcHRpb25zLnBs
dWdpbnNFbmFibGVkKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG5v
ZnJhbWVzVGFnKQotICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub3Nj
cmlwdFRhZykgJiYgbV9vcHRpb25zLnNjcmlwdEVuYWJsZWQpKQotICAgICAgICAgICAgbV90b2tl
bml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RFWFRTdGF0ZSk7CisgICAgICAgIGlm
ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2Z1RhZykpCisgICAgICAgICAg
ICBtX25hbWVzcGFjZVN0YWNrLmFwcGVuZChTVkcpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2suYXBwZW5kKE1hdGhNTCk7CisgICAgICAgIGlmIChpbkZvcmVpZ25Db250ZW50KCkg
JiYgdG9rZW5FeGl0c0ZvcmVpZ25Db250ZW50KHRva2VuKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCB0YWdzIHRo
YXQgZXhpdCBNYXRoTUwuCisgICAgICAgIGlmIChtX25hbWVzcGFjZVN0YWNrLmxhc3QoKSA9PSBT
VkcgJiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RU
YWcubG9jYWxOYW1lKCkpKQorICAgICAgICAgICAgbV9uYW1lc3BhY2VTdGFjay5hcHBlbmQoSFRN
TCk7CisgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogVGhpcyBpcyBqdXN0IGEgY29weSBvZiBUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yIHdo
aWNoIHVzZXMgdGhyZWFkU2FmZU1hdGNoZXMuCisgICAgICAgICAgICBpZiAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0
bGVUYWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5p
emVyOjpSQ0RBVEFTdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgcGxhaW50ZXh0VGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0
U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOworICAgICAgICAgICAgZWxzZSBp
ZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCisgICAgICAgICAgICAgICAg
bV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7Cisg
ICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcpCisg
ICAgICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKKyAg
ICAgICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgeG1wVGFnKQorICAgICAg
ICAgICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9v
cHRpb25zLnBsdWdpbnNFbmFibGVkKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBub2ZyYW1lc1RhZykKKyAgICAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIG5vc2NyaXB0VGFnKSAmJiBtX29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCisg
ICAgICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RF
WFRTdGF0ZSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodG9rZW4udHlwZSgpID09IEhU
TUxUb2tlbjo6RW5kVGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgdGFnTmFtZSA9IHRva2Vu
LmRhdGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBTVkdOYW1lczo6
c3ZnVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgTWF0aE1MTmFtZXM6Om1hdGhUYWcp
KQotICAgICAgICAgICAgbV9pbkZvcmVpZ25Db250ZW50ID0gZmFsc2U7Ci0gICAgICAgIGlmICh0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKKyAgICAgICAgLy8gRklYTUU6IFN1
cHBvcnQgdGFncyB0aGF0IGV4aXQgTWF0aE1MLgorICAgICAgICBpZiAoKG1fbmFtZXNwYWNlU3Rh
Y2subGFzdCgpID09IFNWRyAmJiB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2
Z1RhZykpCisgICAgICAgICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5sYXN0KCkgPT0gTWF0aE1M
ICYmIHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRoTUxOYW1lczo6bWF0aFRhZykpCisgICAg
ICAgICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5jb250YWlucyhTVkcpICYmIG1fbmFtZXNwYWNl
U3RhY2subGFzdCgpID09IEhUTUwgJiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFt
ZXM6OmZvcmVpZ25PYmplY3RUYWcubG9jYWxOYW1lKCkpKSkKKyAgICAgICAgICAgIG1fbmFtZXNw
YWNlU3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05h
bWUsIHNjcmlwdFRhZykpIHsKKyAgICAgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKQor
ICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpEYXRh
U3RhdGUpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgLy8gRklYTUU6IE5lZWQgdG8gc2V0IHNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50
IGJhc2VkIG9uIG1faW5Gb3JlaWduQ29udGVudCBhcyB3ZWxsLgotICAgIG1fdG9rZW5pemVyLT5z
ZXRTaG91bGRBbGxvd0NEQVRBKG1faW5Gb3JlaWduQ29udGVudCk7CisgICAgbV90b2tlbml6ZXIt
PnNldFNob3VsZEFsbG93Q0RBVEEoaW5Gb3JlaWduQ29udGVudCgpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmgKaW5kZXggNGYxNTFhOTY0NTA2NzgxMDVlMTM5YTAzZDgxYjY0ZTEyZWM3OWY1MC4u
N2EwMTE0OGM4YWQ3YmYxODA3YmQ0YzI1NDQ1NDgyNjk1ZTYxZTllMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2
ICs3MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVBsYWludGV4dEZvclRleHREb2N1bWVu
dCgpOwogCiBwcml2YXRlOgorICAgIGVudW0gTmFtZXNwYWNlIHsKKyAgICAgICAgSFRNTCwKKyAg
ICAgICAgU1ZHLAorICAgICAgICBNYXRoTUwKKyAgICB9OworCiAgICAgQmFja2dyb3VuZEhUTUxQ
YXJzZXIoUGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPiA+LCBj
b25zdCBIVE1MUGFyc2VyT3B0aW9ucyYsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2Vy
PiYsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4pOwogCiAgICAgdm9pZCBtYXJrRW5kT2ZGaWxlKCk7
CkBAIC03Niw4ICs4Myw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaW11bGF0ZVRyZWVCdWlsZGVy
KGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mKTsKIAogICAgIHZvaWQgc2VuZFRva2Vuc1RvTWFpblRo
cmVhZCgpOworICAgIGJvb2wgaW5Gb3JlaWduQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZXNwYWNlU3RhY2subGFzdCgpICE9IEhUTUw7IH0KIAotICAgIGJvb2wgbV9pbkZvcmVpZ25Db250
ZW50OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJz
LgorICAgIFZlY3RvcjxOYW1lc3BhY2UsIDE+IG1fbmFtZXNwYWNlU3RhY2s7CiAgICAgV2Vha1B0
ckZhY3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgQmFja2dy
b3VuZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OwogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291
cmNlVHJhY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBh
Y3RIVE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxU
b2tlbi5jcHAKaW5kZXggOWM2N2ZmMGFhODU5OWNhZDc5OWY5MjcwMmY1ZGFmNzA5OTcxZjVmYy4u
MzEzMmQyNTY4ZmVkZWJjYjFhZGFmYTY2MTI4NjEyMzNjMzlmMmY3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKQEAgLTI5LDcgKzI5LDkg
QEAKIAogI2luY2x1ZGUgIkNvbXBhY3RIVE1MVG9rZW4uaCIKIAorI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKKyNpbmNsdWRlICJRdWFsaWZpZWRO
YW1lLmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTEwMCw2ICsxMDIsMTUgQEAgQ29tcGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxU
b2tlbihjb25zdCBDb21wYWN0SFRNTFRva2VuJiBvdGhlcikKICAgICAgICAgbV94c3NJbmZvID0g
YWRvcHRQdHIobmV3IFhTU0luZm8oKm90aGVyLm1feHNzSW5mbykpOwogfQogCitjb25zdCBDb21w
YWN0QXR0cmlidXRlKiBDb21wYWN0SFRNTFRva2VuOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fYXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNo
KG1fYXR0cmlidXRlcy5hdChpKS5uYW1lKCksIG5hbWUpKQorICAgICAgICAgICAgcmV0dXJuICZt
X2F0dHJpYnV0ZXMuYXQoaSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBib29sIENvbXBh
Y3RIVE1MVG9rZW46OmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpIGNvbnN0CiB7CiAgICAg
Zm9yIChWZWN0b3I8Q29tcGFjdEF0dHJpYnV0ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdHRy
aWJ1dGVzLmJlZ2luKCk7IGl0ICE9IG1fYXR0cmlidXRlcy5lbmQoKTsgKytpdCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oCmluZGV4IGI3Yzg1Njkw
NDZiNGQyMTdiYjBlMzljMmVlOTA2ZjMwNTI2M2ViODAuLjU2MjEwNDJlODBmNWRiYjQ2NmRlMTQw
MzA4ODYzMWY5ZWQ2MmJlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0NvbXBhY3RIVE1MVG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21w
YWN0SFRNTFRva2VuLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgWFNTSW5mbzsKIAogY2xhc3MgQ29tcGFjdEF0
dHJpYnV0ZSB7CkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGZDbG9zaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxmQ2xvc2luZzsgfQogICAgIGJvb2wgaXNBbGw4Qml0RGF0
YSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBbGw4Qml0RGF0YTsgfQogICAgIGNvbnN0IFZlY3RvcjxD
b21wYWN0QXR0cmlidXRlPiYgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRl
czsgfQorICAgIGNvbnN0IENvbXBhY3RBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGNvbnN0IFRleHRQb3NpdGlvbiYgdGV4dFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9zaXRpb247IH0KIAogICAgIC8vIFRoZXJlIGlz
IG9ubHkgMSBET0NUWVBFIHRva2VuIHBlciBkb2N1bWVudCwgc28gdG8gYXZvaWQgaW5jcmVhc2lu
ZyB0aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwOWU4YTdkZGM3N2U4YjZmYzgxNGI3Y2M1ZjdkZTY4OTc4NmE0MDUxLi5h
Y2Q4ZGQxYzk2ODEzYTExN2YzNjZlZmUxMzczNzYxZDkzZWZmMDM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTMtMDItMTMgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4K
KworICAgICAgICBGaXggc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgd2l0aCB0aHJlYWRl
ZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1m
b3JlaWduY29udGVudC5odG1sOiBBZGRlZC4gVGhpcyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgYSBw
bGFpbnRleHQgdGFnIGluc2lkZSBhbiBzdmcgZm9yZWlnbk9iamVjdC4KKyAgICAgICAgSXQgYXBw
bGllcyB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBkb2N1bWVudC4gVGhpcyBiZWhhdmlvciBzZWVt
cyBhIGxpdHRsZSB3b25reSwgYnV0IGl0IG1hdGNoZXMgb3VyIGN1cnJlbnQgYmVoYXZpb3IgYW5k
IEZpcmVmb3gncyBiZWhhdmlvci4KKyAgICAgICAgKiBmYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUt
aW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRt
bDogQWRkZWQuIFRoaXMgdGVzdHMgdGhhdCB3ZSBkb24ndCBibGluZGx5IGdvIGludG8gSFRNTCBt
b2RlIGFmdGVyIDwvZm9yZWlnbk9iamVjdD4uCisgICAgICAgICogZmFzdC9wYXJzZXIvdW5tYXRj
aGVkLWNsb3NlLWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC5odG1sOiBBZGRlZC4gVGhp
cyB0ZXN0cyB0aGF0IHVubWF0Y2hlZCA8L2ZvcmVpZ25PYmplY3Q+cyBhcmUgaWdub3JlZC4KKwor
CiAyMDEzLTAyLTEzICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmVwbGFjZSBTVkcgYml0bWFwIGNhY2hlIHdpdGggZGlyZWN0bHktcmVuZGVyZWQgU1ZHCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25j
b250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2ZvcmVpZ25vYmpl
Y3QtaW4tZm9yZWlnbmNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5MDgyZWI5NTc1
MTI5NDNhZTBiODE4NThhYjlmNjI2NjVkNDk1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3BhcnNlci9mb3JlaWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM2IEBACit8IDwhRE9DVFlQRSBodG1sPgorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wgICA8Ym9keT4KK3wgICAgICIKKyAgICAg
ICAgIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIGhlaWdodD0iMTAwIgorfCAgICAgICBpZD0i
c3ZnMSIKK3wgICAgICAgd2lkdGg9IjIwMCIKK3wgICAgICAgeG1sbnMgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIgorfCAgICAgICAiCisgICAgICAgICAgICAiCit8ICAgICAgIDxz
dmcgZm9yZWlnbk9iamVjdD4KK3wgICAgICAgICBoZWlnaHQ9IjEwMCIKK3wgICAgICAgICB3aWR0
aD0iMjAwIgorfCAgICAgICAgIHg9IjAiCit8ICAgICAgICAgeT0iMCIKK3wgICAgICAgICAiCisg
ICAgICAgICAgICAgICAgIgorfCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiZm9vIgorfCAg
ICAgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPHBsYWludGV4dD4KK3wgICAg
ICAgICAgICIKKyAgICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD4KKyAgICAgICAgPC9zdmc+Cisg
ICAgICAgIDxkaXY+YmFyPC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgorIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWduY29udGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZm9yZWlnbm9iamVjdC1pbi1mb3JlaWdu
Y29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjY2Q1MzY1ZmYxZDU3YTU5Y2ViZGEwY2Y1Njc5ZDgy
M2Q0NGRmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9mb3Jl
aWdub2JqZWN0LWluLWZvcmVpZ25jb250ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHN2ZyBpZD0ic3Zn
MSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyI+CisgICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAw
IiBoZWlnaHQ9IjEwMCI+CisgICAgICAgICAgICAgICAgPGRpdj5mb288L2Rpdj4KKyAgICAgICAg
ICAgICAgICA8cGxhaW50ZXh0PgorICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAg
ICA8L3N2Zz4KKyAgICAgICAgPGRpdj5iYXI8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUtaW4tc3ZnLWFm
dGVyLWZvcmVpZ25vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIv
aWdub3JlLXRpdGxlLWluLXN2Zy1hZnRlci1mb3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMjE2ODliZmE3MmRkY2M4YWE2NDA2ZDJkMGMwNDA2Zjc5M2Q0YjQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvaWdub3JlLXRpdGxlLWluLXN2Zy1h
ZnRlci1mb3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACit8IDxodG1s
PgorfCAgIDxoZWFkPgorfCAgICAgIgorICAgICIKK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wg
ICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiCisgICAgICAgICIKK3wgICAgICAg
PHN2ZyBmb3JlaWduT2JqZWN0PgorfCAgICAgICAiCisgICAgICAgICIKK3wgICAgICAgPHN2ZyB0
aXRsZT4KK3wgICAgICAgICAiCisgICAgIgorfCAgICAgIgorICAgIFRoaXMgdGV4dCBzaG91bGQg
YXBwZWFyIGluIHRoZSBib2R5CisiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNl
ci9pZ25vcmUtdGl0bGUtaW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcGFyc2VyL2lnbm9yZS10aXRsZS1pbi1zdmctYWZ0ZXItZm9yZWlnbm9iamVjdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNhYzY0YWQzOGRjYTY0YzJmZDBiMjNiYWZkMDhjNDkyNWQ0OWZmZWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9pZ25vcmUtdGl0bGUt
aW4tc3ZnLWFmdGVyLWZvcmVpZ25vYmplY3QuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJr
dXAuanMiPjwvc2NyaXB0PgorICAgIDxzdmc+CisgICAgICAgIDxmb3JlaWduT2JqZWN0PjwvZm9y
ZWlnbk9iamVjdD4KKyAgICAgICAgPHRpdGxlPgorICAgIDwvc3ZnPgorICAgIFRoaXMgdGV4dCBz
aG91bGQgYXBwZWFyIGluIHRoZSBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Bh
cnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDg4ZWNiOTY0NWEwNjMyZjFlNWI5OTY5YTkwN2QxYzdhMGQ3NGI1NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3VubWF0Y2hlZC1jbG9z
ZS1mb3JlaWdub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACit8IDwhRE9DVFlQ
RSBodG1sPgorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorICAgICIKK3wg
ICA8Ym9keT4KK3wgICAgICIKKyAgICAgICAgCisgICAgICAgICIKK3wgICAgIDxwbGFpbnRleHQ+
Cit8ICAgICAgICIKKwk8ZGl2PmZvbzwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKyIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL3VubWF0Y2hlZC1jbG9zZS1mb3JlaWdu
b2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci91bm1hdGNoZWQtY2xvc2UtZm9y
ZWlnbm9iamVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwN2I4MmJhMTBhNjlhOWJjYzU5MjZjNTExM2Yz
ODY1NTU0ZGJjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci91
bm1hdGNoZWQtY2xvc2UtZm9yZWlnbm9iamVjdC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPC9mb3JlaWduT2Jq
ZWN0PgorICAgICAgICA8cGxhaW50ZXh0PgorCTxkaXY+Zm9vPC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188224</attachid>
            <date>2013-02-13 16:48:46 -0800</date>
            <delta_ts>2013-02-13 17:27:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109495-20130213164515.patch</filename>
            <type>text/plain</type>
            <size>15060</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMjM0ZDU5ZTZlMWU1
OTQyNDkzMmIwZDBlOWJkYTJiZTRkMmQyYS4uNzc3YTgwMTc5ZDcyMzQxMDc0ZmJkYjU3ZGZiYmIx
OTJiYmQ0NGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEzICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IHN2Zy9pbi1o
dG1sL3NjcmlwdC13cml0ZS5odG1sIHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhl
IGJhY2tncm91bmQgcGFyc2VyJ3Mgc2ltdWxhdGVUcmVlQnVpbGRlcigpIG1vcmUgcmVhbGlzdGlj
LgorICAgICAgICAxLiBUaGUgSFRNTFRyZWVCdWlsZGVyIGRvZXMgbm90IGNhbGwgdGhlIHVwZGF0
ZVN0YXRlRm9yKCkgc2V0U3RhdGUoKXMgd2hlbiBpbiBmb3JlaWduIGNvbnRlbnQgbW9kZSBzbyB3
ZSBzaG91bGRuJ3QgZG8gaXQgd2hlbiBzaW11bGF0aW5nIHRoZSB0cmVlIGJ1aWxkZXIuCisgICAg
ICAgIDIuIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCBoYXMg
YSBsaXN0IG9mIHRhZ3Mgd2hpY2ggZXhpdCBmb3JlaWduIGNvbnRlbnQgbW9kZS4gV2UgbmVlZCB0
byByZXNwZWN0IHRob3NlLgorICAgICAgICAzLiBTdXBwb3J0IHRoZSA8Zm9yZWlnbk9iamVjdD4g
dGFnIHdoaWNoIGVudGVycyBhbmQgbGVhdmVzIGZvcmVpZ24gY29udGVudCBtb2RlLgorICAgICAg
ICA0LiBUaGUgdHJlZSBidWlsZGVyIHNldHMgc3RhdGUgdG8gRGF0YVN0YXRlIHVwb24gYSA8L3Nj
cmlwdD4gdGFnIHdoZW4gbm90IGluIGZvcmVpZ24gY29udGVudCBtb2RlLiBXZSBuZWVkIHRvIGRv
IHRoZSBzYW1lLgorCisgICAgICAgIFRoaXMgaW52b2x2ZWQgY3JlYXRpbmcgYSBuYW1lc3BhY2Ug
c3RhY2sgd2hlcmUgd2UgcHVzaCB1cG9uIGVudGVyaW5nIGVhY2ggbmFtZXNwYWNlIGFuZCBwb3Ag
dXBvbiBsZWF2aW5nLgorICAgICAgICBXZSBhcmUgaW4gZm9yZWlnbiBjb250ZW50IGlmIHRoZSB0
b3Btb3N0IG5hbWVzcGFjZSBpcyBTVkcgb3IgTWF0aE1MLgorCisgICAgICAgIFRoaXMgZml4ZXMg
c3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgYW5kIGxpa2VseSBvdGhlcnMuCisKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2ltdWxhdGVUcmVlQnVpbGRlcik6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaDoKKyAgICAgICAgKEJhY2tncm91
bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0ZW0p
OiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIGdpdmVuIG5hbWUuIE5lY2Vzc2FyeSB0byB0
ZXN0IGZvciA8Zm9udD4gYXR0cmlidXRlcyBpbiBzaW11bGF0ZVRyZWVCdWlsZGVyLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKwogMjAxMy0w
Mi0xMyAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2Ug
U1ZHIGJpdG1hcCBjYWNoZSB3aXRoIGRpcmVjdGx5LXJlbmRlcmVkIFNWRwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IDMw
NGY1NDE4NWYzOWI5YjExNDU4YTY0N2VhMTYxZjFiZWQ5MDM3M2YuLmJiODUzNGI3ZDM5ZWNjM2M2
MThmZTY2NTM5MjNjZWZkYWY1YmM1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTU1LDEyICs1NSw2MiBAQCBzdGF0
aWMgdm9pZCBjaGVja1RoYXRUb2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKGNvbnN0
IENvbXBhY3RIVE1MVG9rZW5TdAogCiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBib29sIHRva2Vu
RXhpdHNGb3JlaWduQ29udGVudChjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyBpcyBjb3BpZWQgZnJvbSBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
b2tlbkluRm9yZWlnbkNvbnRlbnQgYW5kIGNoYW5nZWQgdG8gdXNlIHRocmVhZFNhZmVNYXRjaC4K
KyAgICBjb25zdCBTdHJpbmcmIHRhZ05hbWUgPSB0b2tlbi5kYXRhKCk7CisgICAgcmV0dXJuIHRo
cmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2go
dGFnTmFtZSwgYmlnVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgYmxv
Y2txdW90ZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGJvZHlUYWcp
CisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBiclRhZykKKyAgICAgICAgfHwg
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGNlbnRlclRhZykKKyAgICAgICAgfHwgdGhyZWFkU2Fm
ZU1hdGNoKHRhZ05hbWUsIGNvZGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdO
YW1lLCBkZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRpdlRhZykK
KyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGRsVGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgZHRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCBlbVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGVt
YmVkVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaDFUYWcpCisgICAg
ICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoMlRhZykKKyAgICAgICAgfHwgdGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGgzVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgaDRUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBoNVRhZykK
KyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGg2VGFnKQorICAgICAgICB8fCB0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaGVhZFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1h
dGNoKHRhZ05hbWUsIGhyVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwg
aVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGltZ1RhZykKKyAgICAg
ICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGxpVGFnKQorICAgICAgICB8fCB0aHJlYWRT
YWZlTWF0Y2godGFnTmFtZSwgbGlzdGluZ1RhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIG1lbnVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBt
ZXRhVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9iclRhZykKKyAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG9sVGFnKQorICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgcFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIHByZVRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHJ1YnlU
YWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzVGFnKQorICAgICAgICB8
fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc21hbGxUYWcpCisgICAgICAgIHx8IHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCBzcGFuVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgc3Ryb25nVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3Ry
aWtlVGFnKQorICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3ViVGFnKQorICAg
ICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3VwVGFnKQorICAgICAgICB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgdGFibGVUYWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRj
aCh0YWdOYW1lLCB0dFRhZykKKyAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHVU
YWcpCisgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB1bFRhZykKKyAgICAgICAg
fHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHZhclRhZykKKyAgICAgICAgfHwgKHRocmVhZFNh
ZmVNYXRjaCh0YWdOYW1lLCBmb250VGFnKSAmJiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShjb2xv
ckF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdldEF0
dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIpKSk7Cit9CisKIC8vIEZJWE1FOiBUdW5lIHRoaXMgY29uc3Rh
bnQgYmFzZWQgb24gYSBiZW5jaG1hcmsuIFRoZSBjdXJyZW50IHZhbHVlIHdhcyBjaG9vc2VuIGFy
Yml0cmFyaWx5Lgogc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9IDQwMDA7
CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNzUmVmUHRy
PFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBjb25zdCBI
VE1MUGFyc2VyT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJz
ZXI+JiBwYXJzZXIsIFBhc3NPd25QdHI8WFNTQXVkaXRvcj4geHNzQXVkaXRvcikKLSAgICA6IG1f
aW5Gb3JlaWduQ29udGVudChmYWxzZSkKLSAgICAsIG1fd2Vha0ZhY3RvcnkocmVmZXJlbmNlLCB0
aGlzKQorICAgIDogbV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCiAgICAgLCBtX3Rva2Vu
KGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXpl
cjo6Y3JlYXRlKG9wdGlvbnMpKQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCkBAIC02OCw2ICsx
MTgsNyBAQCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoUGFzc1Jl
ZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVAogICAgICwgbV9wZW5kaW5nVG9rZW5zKGFk
b3B0UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKSkKICAgICAsIG1feHNzQXVkaXRvcih4
c3NBdWRpdG9yKQogeworICAgIG1fbmFtZXNwYWNlU3RhY2suYXBwZW5kKEhUTUwpOwogfQogCiB2
b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjphcHBlbmQoY29uc3QgU3RyaW5nJiBpbnB1dCkKQEAg
LTExNSwzNiArMTY2LDQ5IEBAIGJvb2wgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNpbXVsYXRlVHJl
ZUJ1aWxkZXIoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYg
dGFnTmFtZSA9IHRva2VuLmRhdGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdO
YW1lLCBTVkdOYW1lczo6c3ZnVGFnKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRh
Z05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKLSAgICAgICAgICAgIG1faW5Gb3JlaWduQ29u
dGVudCA9IHRydWU7Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNvcHkgb2Yg
VG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCB1c2VzIHRocmVhZFNhZmVNYXRjaGVzLgot
ICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0bGVUYWcpKQotICAgICAgICAgICAgbV90b2tlbml6ZXIt
PnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAo
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHBsYWludGV4dFRhZykpCi0gICAgICAgICAgICBtX3Rv
a2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOwotICAgICAg
ICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKLSAgICAgICAg
ICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3RhdGUp
OwotICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcpCi0g
ICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaWZyYW1lVGFnKQotICAgICAg
ICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHhtcFRhZykKLSAgICAgICAgICAgIHx8
ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9vcHRpb25zLnBsdWdp
bnNFbmFibGVkKQotICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIG5vZnJh
bWVzVGFnKQotICAgICAgICAgICAgfHwgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBub3Njcmlw
dFRhZykgJiYgbV9vcHRpb25zLnNjcmlwdEVuYWJsZWQpKQotICAgICAgICAgICAgbV90b2tlbml6
ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RFWFRTdGF0ZSk7CisgICAgICAgIGlmICh0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2Z1RhZykpCisgICAgICAgICAgICBt
X25hbWVzcGFjZVN0YWNrLmFwcGVuZChTVkcpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIE1hdGhNTE5hbWVzOjptYXRoVGFnKSkKKyAgICAgICAgICAgIG1fbmFtZXNwYWNl
U3RhY2suYXBwZW5kKE1hdGhNTCk7CisgICAgICAgIGlmIChpbkZvcmVpZ25Db250ZW50KCkgJiYg
dG9rZW5FeGl0c0ZvcmVpZ25Db250ZW50KHRva2VuKSkKKyAgICAgICAgICAgIG1fbmFtZXNwYWNl
U3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCB0YWdzIHRoYXQg
ZXhpdCBNYXRoTUwuCisgICAgICAgIGlmIChtX25hbWVzcGFjZVN0YWNrLmxhc3QoKSA9PSBTVkcg
JiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcu
bG9jYWxOYW1lKCkpKQorICAgICAgICAgICAgbV9uYW1lc3BhY2VTdGFjay5hcHBlbmQoSFRNTCk7
CisgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyBpcyBqdXN0IGEgY29weSBvZiBUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yIHdoaWNo
IHVzZXMgdGhyZWFkU2FmZU1hdGNoZXMuCisgICAgICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIHRleHRhcmVhVGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGl0bGVU
YWcpKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
OjpSQ0RBVEFTdGF0ZSk7CisgICAgICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFn
TmFtZSwgcGxhaW50ZXh0VGFnKSkKKyAgICAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3Rh
dGUoSFRNTFRva2VuaXplcjo6UExBSU5URVhUU3RhdGUpOworICAgICAgICAgICAgZWxzZSBpZiAo
dGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIHNjcmlwdFRhZykpCisgICAgICAgICAgICAgICAgbV90
b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7CisgICAg
ICAgICAgICBlbHNlIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVUYWcpCisgICAg
ICAgICAgICAgICAgfHwgdGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUsIGlmcmFtZVRhZykKKyAgICAg
ICAgICAgICAgICB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgeG1wVGFnKQorICAgICAgICAg
ICAgICAgIHx8ICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbm9lbWJlZFRhZykgJiYgbV9vcHRp
b25zLnBsdWdpbnNFbmFibGVkKQorICAgICAgICAgICAgICAgIHx8IHRocmVhZFNhZmVNYXRjaCh0
YWdOYW1lLCBub2ZyYW1lc1RhZykKKyAgICAgICAgICAgICAgICB8fCAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIG5vc2NyaXB0VGFnKSAmJiBtX29wdGlvbnMuc2NyaXB0RW5hYmxlZCkpCisgICAg
ICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6OlJBV1RFWFRT
dGF0ZSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxU
b2tlbjo6RW5kVGFnKSB7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgdGFnTmFtZSA9IHRva2VuLmRh
dGEoKTsKLSAgICAgICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBTVkdOYW1lczo6c3Zn
VGFnKSB8fCB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgTWF0aE1MTmFtZXM6Om1hdGhUYWcpKQot
ICAgICAgICAgICAgbV9pbkZvcmVpZ25Db250ZW50ID0gZmFsc2U7Ci0gICAgICAgIGlmICh0aHJl
YWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKKyAgICAgICAgLy8gRklYTUU6IFN1cHBv
cnQgdGFncyB0aGF0IGV4aXQgTWF0aE1MLgorICAgICAgICBpZiAoKG1fbmFtZXNwYWNlU3RhY2su
bGFzdCgpID09IFNWRyAmJiB0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgU1ZHTmFtZXM6OnN2Z1Rh
ZykpCisgICAgICAgICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5sYXN0KCkgPT0gTWF0aE1MICYm
IHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBNYXRoTUxOYW1lczo6bWF0aFRhZykpCisgICAgICAg
ICAgICB8fCAobV9uYW1lc3BhY2VTdGFjay5jb250YWlucyhTVkcpICYmIG1fbmFtZXNwYWNlU3Rh
Y2subGFzdCgpID09IEhUTUwgJiYgZXF1YWxJZ25vcmluZ0Nhc2UodGFnTmFtZSwgU1ZHTmFtZXM6
OmZvcmVpZ25PYmplY3RUYWcubG9jYWxOYW1lKCkpKSkKKyAgICAgICAgICAgIG1fbmFtZXNwYWNl
U3RhY2sucmVtb3ZlTGFzdCgpOworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKHRhZ05hbWUs
IHNjcmlwdFRhZykpIHsKKyAgICAgICAgICAgIGlmICghaW5Gb3JlaWduQ29udGVudCgpKQorICAg
ICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpEYXRhU3Rh
dGUpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAg
Ly8gRklYTUU6IE5lZWQgdG8gc2V0IHNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50IGJh
c2VkIG9uIG1faW5Gb3JlaWduQ29udGVudCBhcyB3ZWxsLgotICAgIG1fdG9rZW5pemVyLT5zZXRT
aG91bGRBbGxvd0NEQVRBKG1faW5Gb3JlaWduQ29udGVudCk7CisgICAgbV90b2tlbml6ZXItPnNl
dFNob3VsZEFsbG93Q0RBVEEoaW5Gb3JlaWduQ29udGVudCgpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFy
c2VyLmgKaW5kZXggNGYxNTFhOTY0NTA2NzgxMDVlMTM5YTAzZDgxYjY0ZTEyZWM3OWY1MC4uN2Ew
MTE0OGM4YWQ3YmYxODA3YmQ0YzI1NDQ1NDgyNjk1ZTYxZTllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2ICs3
MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVBsYWludGV4dEZvclRleHREb2N1bWVudCgp
OwogCiBwcml2YXRlOgorICAgIGVudW0gTmFtZXNwYWNlIHsKKyAgICAgICAgSFRNTCwKKyAgICAg
ICAgU1ZHLAorICAgICAgICBNYXRoTUwKKyAgICB9OworCiAgICAgQmFja2dyb3VuZEhUTUxQYXJz
ZXIoUGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPiA+LCBjb25z
dCBIVE1MUGFyc2VyT3B0aW9ucyYsIGNvbnN0IFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPiYs
IFBhc3NPd25QdHI8WFNTQXVkaXRvcj4pOwogCiAgICAgdm9pZCBtYXJrRW5kT2ZGaWxlKCk7CkBA
IC03Niw4ICs4Myw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaW11bGF0ZVRyZWVCdWlsZGVyKGNv
bnN0IENvbXBhY3RIVE1MVG9rZW4mKTsKIAogICAgIHZvaWQgc2VuZFRva2Vuc1RvTWFpblRocmVh
ZCgpOworICAgIGJvb2wgaW5Gb3JlaWduQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZXNw
YWNlU3RhY2subGFzdCgpICE9IEhUTUw7IH0KIAotICAgIGJvb2wgbV9pbkZvcmVpZ25Db250ZW50
OyAvLyBGSVhNRTogV2UgbmVlZCBhIHN0YWNrIG9mIGZvcmVpZ24gY29udGVudCBtYXJrZXJzLgor
ICAgIFZlY3RvcjxOYW1lc3BhY2UsIDE+IG1fbmFtZXNwYWNlU3RhY2s7CiAgICAgV2Vha1B0ckZh
Y3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgQmFja2dyb3Vu
ZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OwogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291cmNl
VHJhY2tlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RI
VE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tl
bi5jcHAKaW5kZXggOWM2N2ZmMGFhODU5OWNhZDc5OWY5MjcwMmY1ZGFmNzA5OTcxZjVmYy4uMzEz
MmQyNTY4ZmVkZWJjYjFhZGFmYTY2MTI4NjEyMzNjMzlmMmY3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAKQEAgLTI5LDcgKzI5LDkgQEAK
IAogI2luY2x1ZGUgIkNvbXBhY3RIVE1MVG9rZW4uaCIKIAorI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCiAjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEwMCw2ICsxMDIsMTUgQEAgQ29tcGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tl
bihjb25zdCBDb21wYWN0SFRNTFRva2VuJiBvdGhlcikKICAgICAgICAgbV94c3NJbmZvID0gYWRv
cHRQdHIobmV3IFhTU0luZm8oKm90aGVyLm1feHNzSW5mbykpOwogfQogCitjb25zdCBDb21wYWN0
QXR0cmlidXRlKiBDb21wYWN0SFRNTFRva2VuOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
YXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKG1f
YXR0cmlidXRlcy5hdChpKS5uYW1lKCksIG5hbWUpKQorICAgICAgICAgICAgcmV0dXJuICZtX2F0
dHJpYnV0ZXMuYXQoaSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBib29sIENvbXBhY3RI
VE1MVG9rZW46OmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpIGNvbnN0CiB7CiAgICAgZm9y
IChWZWN0b3I8Q29tcGFjdEF0dHJpYnV0ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdHRyaWJ1
dGVzLmJlZ2luKCk7IGl0ICE9IG1fYXR0cmlidXRlcy5lbmQoKTsgKytpdCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oCmluZGV4IGI3Yzg1NjkwNDZi
NGQyMTdiYjBlMzljMmVlOTA2ZjMwNTI2M2ViODAuLjU2MjEwNDJlODBmNWRiYjQ2NmRlMTQwMzA4
ODYzMWY5ZWQ2MmJlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0Nv
bXBhY3RIVE1MVG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0
SFRNTFRva2VuLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgWFNTSW5mbzsKIAogY2xhc3MgQ29tcGFjdEF0dHJp
YnV0ZSB7CkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGZDbG9zaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxmQ2xvc2luZzsgfQogICAgIGJvb2wgaXNBbGw4Qml0RGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNBbGw4Qml0RGF0YTsgfQogICAgIGNvbnN0IFZlY3RvcjxDb21w
YWN0QXR0cmlidXRlPiYgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsg
fQorICAgIGNvbnN0IENvbXBhY3RBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGNvbnN0IFRleHRQb3NpdGlvbiYgdGV4dFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UG9zaXRpb247IH0KIAogICAgIC8vIFRoZXJlIGlzIG9u
bHkgMSBET0NUWVBFIHRva2VuIHBlciBkb2N1bWVudCwgc28gdG8gYXZvaWQgaW5jcmVhc2luZyB0
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAwOWU4YTdkZGM3N2U4YjZmYzgxNGI3Y2M1ZjdkZTY4OTc4NmE0MDUxLi43ZjRl
MjI0M2I1NjEyMTgzMThmOTJiM2U1Y2YzZmY5YzA2NzkzMTJiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTMtMDItMTMgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBGaXggc3ZnL2luLWh0bWwvc2NyaXB0LXdyaXRlLmh0bWwgd2l0aCB0aHJlYWRlZCBI
VE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5NDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
QWRkZWQgMyBuZXcgdGVzdCBjYXNlczoKKyAgICAgICAgMS4gVGVzdCB0aGUgYmVoYXZpb3Igb2Yg
YSBwbGFpbnRleHQgdGFnIGluc2lkZSBhbiBzdmcgZm9yZWlnbk9iamVjdC4gSXQgYXBwbGllcyB0
byB0aGUgcmVtYWluZGVyIG9mIHRoZSBkb2N1bWVudC4gVGhpcyBiZWhhdmlvciBzZWVtcyBhIGxp
dHRsZSB3b25reSwgYnV0IGl0IG1hdGNoZXMgb3VyIGN1cnJlbnQgYmVoYXZpb3IgYW5kIEZpcmVm
b3gncyBiZWhhdmlvci4KKyAgICAgICAgMi4gVGVzdCB0aGF0IHdlIGRvbid0IGJsaW5kbHkgZ28g
aW50byBIVE1MIG1vZGUgYWZ0ZXIgPC9mb3JlaWduT2JqZWN0Pi4KKyAgICAgICAgMy4gVGVzdCB0
aGF0IHVubWF0Y2hlZCA8L2ZvcmVpZ25PYmplY3Q+cyBhcmUgaWdub3JlZC4KKworICAgICAgICAq
IGh0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMi5kYXQ6CisKIDIwMTMtMDItMTMgIFBoaWxpcCBS
b2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIFNWRyBiaXRtYXAgY2Fj
aGUgd2l0aCBkaXJlY3RseS1yZW5kZXJlZCBTVkcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMi5kYXQgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9yZXNv
dXJjZXMvd2Via2l0MDIuZGF0CmluZGV4IDkwNTc4M2QzY2RmMmE0MzM4MzA5Njk5MTFjMmRhYTYy
ZDhhNDEwZDguLjg3ZjY4NWQxZjJkOThjYjg2Y2YwODkwNzBmZWYxODYwZmEwM2I1M2EgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMi5kYXQKKysrIGIv
TGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAyLmRhdApAQCAtMTU3LDMgKzE1
NywzOSBAQCB0YWJsZQogc2VsZWN0CiAjZG9jdW1lbnQKIHwgPG9wdGlvbj4KKworI2RhdGEKKzxz
dmc+PGZvcmVpZ25PYmplY3Q+PGRpdj5mb288L2Rpdj48cGxhaW50ZXh0PjwvZm9yZWlnbk9iamVj
dD48L3N2Zz48ZGl2PmJhcjwvZGl2PgorI2Vycm9ycworI2RvY3VtZW50Cit8IDxodG1sPgorfCAg
IDxoZWFkPgorfCAgIDxib2R5PgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgIDxzdmcgZm9yZWln
bk9iamVjdD4KK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgImZvbyIKK3wgICAgICAgICA8
cGxhaW50ZXh0PgorfCAgICAgICAgICAgIjwvZm9yZWlnbk9iamVjdD48L3N2Zz48ZGl2PmJhcjwv
ZGl2PiIKKworI2RhdGEKKzxzdmc+PGZvcmVpZ25PYmplY3Q+PC9mb3JlaWduT2JqZWN0Pjx0aXRs
ZT48L3N2Zz5mb28KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wg
ICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Cit8
ICAgICAgIDxzdmcgdGl0bGU+Cit8ICAgICAiZm9vIgorCisjZGF0YQorPC9mb3JlaWduT2JqZWN0
PjxwbGFpbnRleHQ+PGRpdj5mb288L2Rpdj4KKyNlcnJvcnMKKyNkb2N1bWVudAorfCA8aHRtbD4K
K3wgICA8aGVhZD4KK3wgICA8Ym9keT4KK3wgICAgIDxwbGFpbnRleHQ+Cit8ICAgICAgICI8ZGl2
PmZvbzwvZGl2PiIK
</data>

          </attachment>
      

    </bug>

</bugzilla>