<?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>88514</bug_id>
          
          <creation_ts>2012-06-07 02:01:50 -0700</creation_ts>
          <short_desc>An inheritance of &apos;-webkit-user-modify&apos; does not stop at shadow boundary.</short_desc>
          <delta_ts>2012-06-10 21:29:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>82697</blocked>
    
    <blocked>82692</blocked>
    
    <blocked>88485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>shinyak</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643335</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 02:01:50 -0700</bug_when>
    <thetext>According to the Shadow DOM spec (https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#editing),  a &apos;-webkit-user-modify&apos; CSS property should not be inherited across shadow boundaries.
But in the attached html (Let me attach it later), &apos;-webkit-user-modify&apos; property of the node in Shadow DOM subtree will be set to &apos;read-write&apos; wrongly. That should be &apos;read-only&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643337</commentid>
    <comment_count>1</comment_count>
      <attachid>146233</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 02:03:26 -0700</bug_when>
    <thetext>Created attachment 146233
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643338</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 02:05:14 -0700</bug_when>
    <thetext>The condition to reproduce this issue seems very sensitive. For example, if we remove the first &lt;p&gt; from the html, we cannot reproduce the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644158</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 18:06:39 -0700</bug_when>
    <thetext>We do this in style resolution. See StyleSelector.cpp and CSSStyleSelector.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644293</commentid>
    <comment_count>4</comment_count>
      <attachid>146470</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 21:23:11 -0700</bug_when>
    <thetext>Created attachment 146470
reset a user-modify when using a cached result</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644298</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 21:25:43 -0700</bug_when>
    <thetext>Yeah, there are some efforts to stop propagation in StyleResolver. But that is not enough.
We should do similar thing when using a cached result.

(In reply to comment #3)
&gt; We do this in style resolution. See StyleSelector.cpp and CSSStyleSelector.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644318</commentid>
    <comment_count>6</comment_count>
      <attachid>146470</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 22:02:35 -0700</bug_when>
    <thetext>Comment on attachment 146470
reset a user-modify when using a cached result

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

&gt; Source/WebCore/css/StyleResolver.cpp:1679
&gt; -    applyMatchedProperties(matchResult);
&gt; +    applyMatchedProperties(matchResult, element);

Doesn&apos;t adjusting -webkit-user-modify here override author rule to make children of shadow root editable since author styles had been applied to m_style at this point?
I think what we need to do is modify RenderStyle::inheritFrom and prevent inheriting -webkit-user-modify at the shadow boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644344</commentid>
    <comment_count>7</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-07 22:36:26 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #6)
&gt; (From update of attachment 146470 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146470&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:1679
&gt; &gt; -    applyMatchedProperties(matchResult);
&gt; &gt; +    applyMatchedProperties(matchResult, element);
&gt; 
&gt; Doesn&apos;t adjusting -webkit-user-modify here override author rule to make children of shadow root editable since author styles had been applied to m_style at this point?

Nice point. Let me write a test and make sure it.

&gt; I think what we need to do is modify RenderStyle::inheritFrom and prevent inheriting -webkit-user-modify at the shadow boundary.

Yeah, that is what I thought at first. What makes this difficult is that there are a lot of callers of RenderStyle::inheritFrom and many callers do not have an available Element instance which is required to judge there is a shadow boundary or not. So if we do so, it requires non-trivial refactoring and I guess we don&apos;t need to check shadow boundary in most places.

I am now thinking that we should change RenderStyle::inheritFrom&apos;s signature like:

enum ShadowBoundary {
  AtShadowBoundary,
  NoShadowBoundary
}
RenderStyle::inheritFrom(Style* parentStyle, ShadowBoundary = NoShadowBoundary)

In most callers, we can omit ShadowBoundary parameter, I think.

What do you think about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644525</commentid>
    <comment_count>8</comment_count>
      <attachid>146524</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-08 02:47:20 -0700</bug_when>
    <thetext>Created attachment 146524
Update inheritFrom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644534</commentid>
    <comment_count>9</comment_count>
      <attachid>146527</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-08 03:00:02 -0700</bug_when>
    <thetext>Created attachment 146527
Minor update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644536</commentid>
    <comment_count>10</comment_count>
      <attachid>146527</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 03:02:32 -0700</bug_when>
    <thetext>Comment on attachment 146527
Minor update

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:396
&gt; +    enum ShadowBoundary {
&gt; +        AtShadowBoundary,
&gt; +        NoShadowBoundary,
&gt; +    };

Should be
enum IsAtShadowBoundary {
    AtShadowBoundary,
    NotAtShadowBoundary,
}

&gt; LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt:1
&gt; +This p is required to produce the issue.

What does this mean? What do you mean by &quot;required to produce the issue&quot;, and what is the issue?

&gt; LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt:3
&gt; +This div and parent div are required to produce the issue.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644563</commentid>
    <comment_count>11</comment_count>
      <attachid>146538</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-08 04:18:15 -0700</bug_when>
    <thetext>Created attachment 146538
iter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644565</commentid>
    <comment_count>12</comment_count>
      <attachid>146527</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-08 04:25:19 -0700</bug_when>
    <thetext>Comment on attachment 146527
Minor update

Thank you for the review.

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:396
&gt;&gt; +    };
&gt; 
&gt; Should be
&gt; enum IsAtShadowBoundary {
&gt;     AtShadowBoundary,
&gt;     NotAtShadowBoundary,
&gt; }

Done.

&gt;&gt; LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt:1
&gt;&gt; +This p is required to produce the issue.
&gt; 
&gt; What does this mean? What do you mean by &quot;required to produce the issue&quot;, and what is the issue?

Okay. I&apos;ve removed that.

The &lt;p&gt; tag was required to hit code path which uses a cached result of style in the original test case I posted at comment #1.
I don&apos;t think it is worth to leave such tag in the test any more. It&apos;s just confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644734</commentid>
    <comment_count>13</comment_count>
      <attachid>146538</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 09:30:55 -0700</bug_when>
    <thetext>Comment on attachment 146538
iter

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

&gt; LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt:6
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host1&quot;), null), userModifyPropertyName) is &quot;read-only&quot;
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host2&quot;), &quot;false&quot;), userModifyPropertyName) is &quot;read-only&quot;
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host3&quot;), &quot;true&quot;), userModifyPropertyName) is &quot;read-write&quot;
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host1&quot;), null), userModifyPropertyName) is &quot;read-only&quot;
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host2&quot;), &quot;false&quot;), userModifyPropertyName) is &quot;read-only&quot;
&gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host3&quot;), &quot;true&quot;), userModifyPropertyName) is &quot;read-write&quot;

Please add a test description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645634</commentid>
    <comment_count>14</comment_count>
      <attachid>146754</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-10 15:54:56 -0700</bug_when>
    <thetext>Created attachment 146754
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645635</commentid>
    <comment_count>15</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-10 15:55:34 -0700</bug_when>
    <thetext>Thank you for the review.

Okay. Let me land this after adding a test description.

(In reply to comment #13)
&gt; (From update of attachment 146538 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146538&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt:6
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host1&quot;), null), userModifyPropertyName) is &quot;read-only&quot;
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host2&quot;), &quot;false&quot;), userModifyPropertyName) is &quot;read-only&quot;
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;contenteditable-host3&quot;), &quot;true&quot;), userModifyPropertyName) is &quot;read-write&quot;
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host1&quot;), null), userModifyPropertyName) is &quot;read-only&quot;
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host2&quot;), &quot;false&quot;), userModifyPropertyName) is &quot;read-only&quot;
&gt; &gt; +PASS computedStyle(prepareNodeInShadowRoot(document.getElementById(&quot;non-contenteditable-host3&quot;), &quot;true&quot;), userModifyPropertyName) is &quot;read-write&quot;
&gt; 
&gt; Please add a test description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645636</commentid>
    <comment_count>16</comment_count>
      <attachid>146754</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-10 15:56:59 -0700</bug_when>
    <thetext>Comment on attachment 146754
Patch for landing

Rejecting attachment 146754 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t 353 (offset 1 line).
patching file Source/WebCore/rendering/style/RenderStyle.cpp
patching file Source/WebCore/rendering/style/RenderStyle.h
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/fast/dom/shadow/user-modify-inheritance-expected.txt
patching file LayoutTests/fast/dom/shadow/user-modify-inheritance.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12943083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645655</commentid>
    <comment_count>17</comment_count>
      <attachid>146761</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-06-10 17:29:54 -0700</bug_when>
    <thetext>Created attachment 146761
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645697</commentid>
    <comment_count>18</comment_count>
      <attachid>146761</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-10 20:59:13 -0700</bug_when>
    <thetext>Comment on attachment 146761
Patch for landing

Clearing flags on attachment: 146761

Committed r119949: &lt;http://trac.webkit.org/changeset/119949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645698</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-10 20:59:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>146233</attachid>
            <date>2012-06-07 02:03:26 -0700</date>
            <delta_ts>2012-06-07 02:03:26 -0700</delta_ts>
            <desc>test case</desc>
            <filename>user-modify-inheritance.html</filename>
            <type>text/html</type>
            <size>1280</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxwPlRoaXMgcCBp
cyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBpc3N1ZS48L3A+CjxkaXYgY29udGVudGVkaXRhYmxl
PgogIDxkaXY+VGhpcyBkaXYgYW5kIHBhcmVudCBkaXYgYXJlIHJlcXVpcmVkIHRvIHByb2R1Y2Ug
dGhlIGlzc3VlLjwvZGl2PgogIDxkaXYgaWQ9Imhvc3QxIiBjb250ZW50ZWRpdGFibGU+c2hhZG93
IGhvc3QgMTwvZGl2Pgo8L2Rpdj4KPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CjxzY3JpcHQ+Cmlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CgpmdW5jdGlvbiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIHN0eWxlKSB7CiAg
ICB2YXIgY3MgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKICAgIGlmICghY3Mp
CiAgICAgICAgcmV0dXJuICcoTkEpJzsKICAgIGlmIChjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0
eWxlKSkKICAgICAgICByZXR1cm4gY3MuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkuY3NzVGV4
dAogICAgcmV0dXJuIHVuZGVmaW5lZDsKfQoKZnVuY3Rpb24gcHJlcGFyZU5vZGVJblNoYWRvd1Jv
b3QoaG9zdCkgewogICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0
KTsKICAgIHZhciBub2RlSW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
ICAgIG5vZGVJblNoYWRvdy5zZXRBdHRyaWJ1dGUoJ2lkJywgJ25vZGUtaW4tc2hhZG93LXJvb3Qn
KTsKICAgIG5vZGVJblNoYWRvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn
SW4gU2hhZG93JykpOwogICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChub2RlSW5TaGFkb3cpOwog
ICAgcmV0dXJuIG5vZGVJblNoYWRvdzsKfQoKZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwoKdmFy
IG5vZGVJblNoYWRvd1Jvb3QxID0gcHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2hvc3QxJykpOwp2YXIgdXNlck1vZGlmeVByb3BlcnR5TmFtZSA9ICctd2Vi
a2l0LXVzZXItbW9kaWZ5JzsKc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKG5v
ZGVJblNoYWRvd1Jvb3QxLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLW9ubHknKTsK
PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146470</attachid>
            <date>2012-06-07 21:23:11 -0700</date>
            <delta_ts>2012-06-08 02:47:15 -0700</delta_ts>
            <desc>reset a user-modify when using a cached result</desc>
            <filename>bug-88514-20120608132311.patch</filename>
            <type>text/plain</type>
            <size>9421</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU0YzJjYTg3NTQwMmE3
OTMxNDM3ZGI4YmFhMmQ2NWY1MmZkZjk1My4uODJjNWZmNjE2OTJhMDA5MzVjOTNjNjllZGM0YjBi
ZjUwMmEwNDU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTA3ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCgpLCB3ZSByZXNldCAnLXdlYmtpdC11c2VyLW1vZGlm
eScKKyAgICAgICAgQ1NTIHByb3BlcnR5IGFmdGVyIGluaGVyaXRpbmcgYSBwYXJlbnQgc3R5bGUs
IGJ1dCBpdCBpcyBub3QKKyAgICAgICAgZW5vdWdoLiAgV2UgYWxzbyBoYXZlIHRvIHJlc2V0ICct
d2Via2l0LXVzZXItbW9kaWZ5JyB3aGVuIHdlIHVzZSBhCisgICAgICAgIGNhY2hlZCByZXN1bHQg
aW4gYXBwbHlpbmcgbWF0Y2hlZCBwcm9wZXJ0aWVzLiAgV2UgY2FuIGhpdCB0aGlzIGNvZGUKKyAg
ICAgICAgcGF0aCB1c2luZyB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
ZGp1c3RJbmhlcml0ZWRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgor
ICAgICAgICAoU3R5bGVSZXNvbHZlcik6CisKIDIwMTItMDYtMDcgIEFsZXhlaSBGaWxpcHBvdiAg
PGFsZXhlaWZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJldXNlIGVk
Z2VfY291bnQgZmllbGQgb2YgaGVhcCBzbmFwc2hvdCB0byBzdG9yZSByZXRhaW5lZCBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNzBjOTk2ZjkyNzllOTE3MjFiZDU2
NTA2YjE1YjQ1MzA0ZjQ3NGY0YS4uNGFiNWY1ZTRhOWM3ODc0NDVlMTc1ZmI5Y2FhZTRlMzgwMzk3
NmNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTYxMyw3ICsxNjEz
LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIENTU0YKICAgICByZXR1cm4gZG9jdW1lbnRTdHlsZS5y
ZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoRWxl
bWVudCogZWxlbWVudCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoY29u
c3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTE2MjEsNiArMTYyMSwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBdFNo
YWRvd0JvdW5kYXJ5KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJuIHBhcmVudE5vZGUgJiYg
cGFyZW50Tm9kZS0+aXNTaGFkb3dSb290KCk7CiB9CiAKK3ZvaWQgU3R5bGVSZXNvbHZlcjo6YWRq
dXN0SW5oZXJpdGVkU3R5bGUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICAvLyBFdmVu
IGlmIHN1cnJvdW5kaW5nIGNvbnRlbnQgaXMgdXNlci1lZGl0YWJsZSwgc2hhZG93IERPTSBzaG91
bGQgYWN0IGFzIGEgc2luZ2xlIHVuaXQsIGFuZCBub3QgbmVjZXNzYXJpbHkgYmUgZWRpdGFibGUK
KyAgICBpZiAoaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpKQorICAgICAgICBtX3N0eWxlLT5z
ZXRVc2VyTW9kaWZ5KFJlbmRlclN0eWxlOjppbml0aWFsVXNlck1vZGlmeSgpKTsKK30KKwogUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIFJlbmRlclN0eWxlKiBkZWZhdWx0UGFyZW50LAogICAgIFN0eWxlU2hhcmlu
Z0JlaGF2aW9yIHNoYXJpbmdCZWhhdmlvciwgUnVsZU1hdGNoaW5nQmVoYXZpb3IgbWF0Y2hpbmdC
ZWhhdmlvciwgUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JTdHlsaW5nKQogewpAQCAtMTY0NywxOCAr
MTY1NCwxNSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogCiAgICAgbV9zdHlsZSA9IFJlbmRl
clN0eWxlOjpjcmVhdGUoKTsKIAotICAgIGlmIChtX3BhcmVudFN0eWxlKQorICAgIGlmIChtX3Bh
cmVudFN0eWxlKSB7CiAgICAgICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKG1fcGFyZW50U3R5bGUp
OwotICAgIGVsc2UgeworICAgICAgICBhZGp1c3RJbmhlcml0ZWRTdHlsZShlbGVtZW50KTsKKyAg
ICB9IGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxlID0gc3R5bGUoKTsKICAgICAgICAgLy8g
TWFrZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0
aGVtIGZyb20gb3VyIHBhcmVudCBzdHlsZS4KICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0
ZSgwKTsKICAgICB9CiAKLSAgICAvLyBFdmVuIGlmIHN1cnJvdW5kaW5nIGNvbnRlbnQgaXMgdXNl
ci1lZGl0YWJsZSwgc2hhZG93IERPTSBzaG91bGQgYWN0IGFzIGEgc2luZ2xlIHVuaXQsIGFuZCBu
b3QgbmVjZXNzYXJpbHkgYmUgZWRpdGFibGUKLSAgICBpZiAoaXNBdFNoYWRvd0JvdW5kYXJ5KGVs
ZW1lbnQpKQotICAgICAgICBtX3N0eWxlLT5zZXRVc2VyTW9kaWZ5KFJlbmRlclN0eWxlOjppbml0
aWFsVXNlck1vZGlmeSgpKTsKLQogICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSkgewogICAgICAg
ICBtX3N0eWxlLT5zZXRJc0xpbmsodHJ1ZSk7CiAgICAgICAgIG1fc3R5bGUtPnNldEluc2lkZUxp
bmsobV9lbGVtZW50TGlua1N0YXRlKTsKQEAgLTE2NzIsNyArMTY3Niw3IEBAIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCBSZW5kZXJTCiAgICAgZWxzZQogICAgICAgICBtYXRjaEFsbFJ1bGVzKG1hdGNoUmVzdWx0
LCBtYXRjaGluZ0JlaGF2aW9yICE9IE1hdGNoQWxsUnVsZXNFeGNsdWRpbmdTTUlMKTsKIAotICAg
IGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMobWF0Y2hSZXN1bHQpOworICAgIGFwcGx5TWF0Y2hlZFBy
b3BlcnRpZXMobWF0Y2hSZXN1bHQsIGVsZW1lbnQpOwogCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0
eWxlIG9iamVjdCdzIGRpc3BsYXkgYW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZp
eHVwcykuCiAgICAgYWRqdXN0UmVuZGVyU3R5bGUoc3R5bGUoKSwgbV9wYXJlbnRTdHlsZSwgZWxl
bWVudCk7CkBAIC0xODMzLDcgKzE4MzcsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHls
ZVJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNldWRvSWQgcHNldWRvLCBFbAogCiAg
ICAgbV9zdHlsZS0+c2V0U3R5bGVUeXBlKHBzZXVkbyk7CiAKLSAgICBhcHBseU1hdGNoZWRQcm9w
ZXJ0aWVzKG1hdGNoUmVzdWx0KTsKKyAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVz
dWx0LCBlKTsKIAogICAgIC8vIENsZWFuIHVwIG91ciBzdHlsZSBvYmplY3QncyBkaXNwbGF5IGFu
ZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1cHMpLgogICAgIGFkanVzdFJlbmRl
clN0eWxlKHN0eWxlKCksIHBhcmVudFN0eWxlLCAwKTsKQEAgLTI4MTMsOCArMjgxNyw5IEBAIHN0
YXRpYyBib29sIGlzQ2FjaGVhYmxlSW5NYXRjaGVkUHJvcGVydGllc0NhY2hlKGNvbnN0IEVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0IFJlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU3R5bGVS
ZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3Qg
TWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQogeworICAg
IEFTU0VSVChlbGVtZW50KTsKICAgICB1bnNpZ25lZCBjYWNoZUhhc2ggPSBtYXRjaFJlc3VsdC5p
c0NhY2hlYWJsZSA/IGNvbXB1dGVNYXRjaGVkUHJvcGVydGllc0hhc2gobWF0Y2hSZXN1bHQubWF0
Y2hlZFByb3BlcnRpZXMuZGF0YSgpLCBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXpl
KCkpIDogMDsKICAgICBib29sIGFwcGx5SW5oZXJpdGVkT25seSA9IGZhbHNlOwogICAgIGNvbnN0
IE1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtKiBjYWNoZUl0ZW0gPSAwOwpAQCAtMjgyOCw2ICsy
ODMzLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0
IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCkKICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBp
dGVtIHBhcmVudCBzdHlsZSBoYXMgaWRlbnRpY2FsIGluaGVyaXRlZCBwcm9wZXJ0aWVzIHRvIHRo
ZSBjdXJyZW50IHBhcmVudCBzdHlsZSB0aGVuIHRoZQogICAgICAgICAgICAgLy8gcmVzdWx0aW5n
IHN0eWxlIHdpbGwgYmUgaWRlbnRpY2FsIHRvby4gV2UgY29weSB0aGUgaW5oZXJpdGVkIHByb3Bl
cnRpZXMgb3ZlciBmcm9tIHRoZSBjYWNoZSBhbmQgYXJlIGRvbmUuCiAgICAgICAgICAgICBtX3N0
eWxlLT5pbmhlcml0RnJvbShjYWNoZUl0ZW0tPnJlbmRlclN0eWxlLmdldCgpKTsKKyAgICAgICAg
ICAgIGFkanVzdEluaGVyaXRlZFN0eWxlKGVsZW1lbnQpOwogICAgICAgICAgICAgLy8gVW5mb3J0
dW5hdGVseSB0aGUgbGluayBzdGF0dXMgaXMgdHJlYXRlZCBsaWtlIGFuIGluaGVyaXRlZCBwcm9w
ZXJ0eS4gV2UgbmVlZCB0byBleHBsaWNpdGx5IHJlc3RvcmUgaXQuCiAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRJbnNpZGVMaW5rKGxpbmtTdGF0dXMpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggNTM5ZGQ2MzU2YWUwOWYxYzY4ZWYyN2Y2MmM5
YTNmNTgxMTZkMTViZi4uNmJjNWE2MmY2MDQxM2E3ZWRjNmQwZjVmYTY1NTE4MjQ2YmI3ZjEwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zNTIsNyArMzUyLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgY2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYsIGNvbnN0IENvbnRh
aW5lck5vZGUqIHNjb3BlID0gMCk7CiAgICAgYm9vbCBjaGVja1JlZ2lvblNlbGVjdG9yKENTU1Nl
bGVjdG9yKiByZWdpb25TZWxlY3RvciwgRWxlbWVudCogcmVnaW9uRWxlbWVudCk7Ci0gICAgdm9p
ZCBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0Jik7CisgICAgdm9pZCBh
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0JiwgY29uc3QgRWxlbWVudCop
OwogICAgIGVudW0gU3R5bGVBcHBsaWNhdGlvblBhc3MgewogICAgICAgICBIaWdoUHJpb3JpdHlQ
cm9wZXJ0aWVzLAogICAgICAgICBMb3dQcmlvcml0eVByb3BlcnRpZXMKQEAgLTM2MSw2ICszNjEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRj
aFJlc3VsdCYsIGJvb2wgaW1wb3J0YW50LCBpbnQgc3RhcnRJbmRleCwgaW50IGVuZEluZGV4LCBi
b29sIGluaGVyaXRlZE9ubHkpOwogICAgIHRlbXBsYXRlIDxTdHlsZUFwcGxpY2F0aW9uUGFzcyBw
YXNzPgogICAgIHZvaWQgYXBwbHlQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHBy
b3BlcnRpZXMsIFN0eWxlUnVsZSosIGJvb2wgaXNJbXBvcnRhbnQsIGJvb2wgaW5oZXJpdGVkT25s
eSwgYm9vbCBmaWx0ZXJSZWdpb25Qcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGFkanVzdEluaGVyaXRl
ZFN0eWxlKGNvbnN0IEVsZW1lbnQqKTsKIAogICAgIHN0YXRpYyBib29sIGlzVmFsaWRSZWdpb25T
dHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTAzMWQxZjgwNDRlZTBhYTZk
MDU1YTM5NTU0ZmMyM2RlOTQ2N2MxNi4uMjc5M2MyZDE0ZWZhNGZhYmUwNGQ1NGYwNGY2MTlmMGQx
MWJiNDJkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTA3ICBIYXlhdG8gSXRvICA8
aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBvZiAnLXdlYmtp
dC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTA2LTA3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLiBDbGVhbiBjaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5j
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnkt
aW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4MjNkNjYxZTYyMTU0MDUzZmM4
MDI4YWZhMWYyNWMxMWMwYzBkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorVGhpcyBwIGlzIHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3VlLgorCitUaGlz
IGRpdiBhbmQgcGFyZW50IGRpdiBhcmUgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuCitQ
QVNTIGNvbXB1dGVkU3R5bGUobm9kZUluU2hhZG93Um9vdDEsIHVzZXJNb2RpZnlQcm9wZXJ0eU5h
bWUpIGlzICJyZWFkLW9ubHkiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE5ZDgwZjhl
NzIxZDlhNThlOGNiYTJlNjEyMDczM2U3ODM4YmY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCkBAIC0w
LDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHAgaXMgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuPC9wPgor
PGRpdiBjb250ZW50ZWRpdGFibGU+CisgIDxkaXY+VGhpcyBkaXYgYW5kIHBhcmVudCBkaXYgYXJl
IHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3VlLjwvZGl2PgorICA8ZGl2IGlkPSJob3N0MSIg
Y29udGVudGVkaXRhYmxlPnNoYWRvdyBob3N0IDE8L2Rpdj4KKzwvZGl2PgorPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNvbXB1
dGVkU3R5bGUoZWxlbWVudCwgc3R5bGUpIHsKKyAgICB2YXIgY3MgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50KTsKKyAgICBpZiAoIWNzKQorICAgICAgICByZXR1cm4gJyhOQSknOwor
ICAgIGlmIChjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKSkKKyAgICAgICAgcmV0dXJuIGNz
LmdldFByb3BlcnR5Q1NTVmFsdWUoc3R5bGUpLmNzc1RleHQKKyAgICByZXR1cm4gdW5kZWZpbmVk
OworfQorCitmdW5jdGlvbiBwcmVwYXJlTm9kZUluU2hhZG93Um9vdChob3N0KSB7CisgICAgdmFy
IHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgbm9kZUlu
U2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgbm9kZUluU2hhZG93
LnNldEF0dHJpYnV0ZSgnaWQnLCAnbm9kZS1pbi1zaGFkb3ctcm9vdCcpOworICAgIG5vZGVJblNo
YWRvdy5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2RlYnVnJyk7CisgICAgbm9kZUluU2hhZG93LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdJbiBTaGFkb3cnKSk7CisgICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChub2RlSW5TaGFkb3cpOworICAgIHJldHVybiBub2RlSW5TaGFk
b3c7Cit9CisKK2RvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKwordmFyIG5vZGVJblNoYWRvd1Jv
b3QxID0gcHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3QxJykpOwordmFyIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUgPSAnLXdlYmtpdC11c2VyLW1vZGlm
eSc7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUobm9kZUluU2hhZG93Um9v
dDEsIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146524</attachid>
            <date>2012-06-08 02:47:20 -0700</date>
            <delta_ts>2012-06-08 02:59:57 -0700</delta_ts>
            <desc>Update inheritFrom</desc>
            <filename>bug-88514-20120608184720.patch</filename>
            <type>text/plain</type>
            <size>13011</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Nzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyY2E1ZDU4NDMwYWY0
Mjk4ZjJmMTdkZjg0ZDgwOThkMGMxNWI5Yy4uZTRkMjEzZWQyYTVlYTVkNDk4ZDdjNjAwMjBmMDRl
NDhkZWFhOTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTA3ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCgpLCB3ZSByZXNldCAnLXdlYmtpdC11c2VyLW1vZGlm
eScKKyAgICAgICAgQ1NTIHByb3BlcnR5IGFmdGVyIGluaGVyaXRpbmcgYSBwYXJlbnQgc3R5bGUs
IGJ1dCBpdCBpcyBub3QKKyAgICAgICAgZW5vdWdoLiAgV2UgYWxzbyBoYXZlIHRvIHJlc2V0ICct
d2Via2l0LXVzZXItbW9kaWZ5JyB3aGVuIHdlIHVzZSBhCisgICAgICAgIGNhY2hlZCByZXN1bHQg
aW4gYXBwbHlpbmcgbWF0Y2hlZCBwcm9wZXJ0aWVzLiAgV2UgY2FuIGhpdCB0aGlzIGNvZGUKKyAg
ICAgICAgcGF0aCB1c2luZyB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDEyLTA2LTA3ICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIGFkZFRleHRUcmFjayBz
aG91bGQgc2V0IHRyYWNrIG1vZGUgdG8gSElEREVOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggNjQ4ZjYxYmJhZTk0NzE3MDY0NTkzMWRmN2M1OTQ4OTBhYmQwY2I0Ni4uODhk
YWEyMjg0MmJmNjAxODViZDBhZjNlYjY2YTdmN2Q2ODYyMzA1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMTYxNCw3ICsxNjE0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQs
IENTU0YKICAgICByZXR1cm4gZG9jdW1lbnRTdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NDksMTcgKzE2
NDksMTMgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclMKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZSgpOwogCiAgICAgaWYgKG1fcGFyZW50U3R5bGUpCi0gICAgICAgIG1fc3R5bGUt
PmluaGVyaXRGcm9tKG1fcGFyZW50U3R5bGUpOworICAgICAgICBtX3N0eWxlLT5pbmhlcml0RnJv
bShtX3BhcmVudFN0eWxlLCBpc0F0U2hhZG93Qm91bmRhcnkoZWxlbWVudCkgPyBSZW5kZXJTdHls
ZTo6QXRTaGFkb3dCb3VuZGFyeSA6IFJlbmRlclN0eWxlOjpOb1NoYWRvd0JvdW5kYXJ5KTsKICAg
ICBlbHNlIHsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHN0eWxlKCk7CiAgICAgICAgIC8vIE1h
a2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0IGluaGVyaXQgdGhl
bSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCiAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUo
MCk7CiAgICAgfQogCi0gICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXIt
ZWRpdGFibGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90
IG5lY2Vzc2FyaWx5IGJlIGVkaXRhYmxlCi0gICAgaWYgKGlzQXRTaGFkb3dCb3VuZGFyeShlbGVt
ZW50KSkKLSAgICAgICAgbV9zdHlsZS0+c2V0VXNlck1vZGlmeShSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZXJNb2RpZnkoKSk7Ci0KICAgICBpZiAoZWxlbWVudC0+aXNMaW5rKCkpIHsKICAgICAgICAg
bV9zdHlsZS0+c2V0SXNMaW5rKHRydWUpOwogICAgICAgICBtX3N0eWxlLT5zZXRJbnNpZGVMaW5r
KG1fZWxlbWVudExpbmtTdGF0ZSk7CkBAIC0xNjczLDcgKzE2NjksNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgUmVuZGVyUwogICAgIGVsc2UKICAgICAgICAgbWF0Y2hBbGxSdWxlcyhtYXRjaFJlc3VsdCwg
bWF0Y2hpbmdCZWhhdmlvciAhPSBNYXRjaEFsbFJ1bGVzRXhjbHVkaW5nU01JTCk7CiAKLSAgICBh
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0KTsKKyAgICBhcHBseU1hdGNoZWRQcm9w
ZXJ0aWVzKG1hdGNoUmVzdWx0LCBlbGVtZW50KTsKIAogICAgIC8vIENsZWFuIHVwIG91ciBzdHls
ZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1
cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUsIGVsZW1l
bnQpOwpAQCAtMTgzNCw3ICsxODMwLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVS
ZXNvbHZlcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkIHBzZXVkbywgRWwKIAogICAg
IG1fc3R5bGUtPnNldFN0eWxlVHlwZShwc2V1ZG8pOwogCi0gICAgYXBwbHlNYXRjaGVkUHJvcGVy
dGllcyhtYXRjaFJlc3VsdCk7CisgICAgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhtYXRjaFJlc3Vs
dCwgZSk7CiAKICAgICAvLyBDbGVhbiB1cCBvdXIgc3R5bGUgb2JqZWN0J3MgZGlzcGxheSBhbmQg
dGV4dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3RoZXIgZml4dXBzKS4KICAgICBhZGp1c3RSZW5kZXJT
dHlsZShzdHlsZSgpLCBwYXJlbnRTdHlsZSwgMCk7CkBAIC0yODE0LDggKzI4MTAsOSBAQCBzdGF0
aWMgYm9vbCBpc0NhY2hlYWJsZUluTWF0Y2hlZFByb3BlcnRpZXNDYWNoZShjb25zdCBFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBSZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFN0eWxlUmVz
b2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVz
dWx0KQordm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1h
dGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBB
U1NFUlQoZWxlbWVudCk7CiAgICAgdW5zaWduZWQgY2FjaGVIYXNoID0gbWF0Y2hSZXN1bHQuaXND
YWNoZWFibGUgPyBjb21wdXRlTWF0Y2hlZFByb3BlcnRpZXNIYXNoKG1hdGNoUmVzdWx0Lm1hdGNo
ZWRQcm9wZXJ0aWVzLmRhdGEoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgp
KSA6IDA7CiAgICAgYm9vbCBhcHBseUluaGVyaXRlZE9ubHkgPSBmYWxzZTsKICAgICBjb25zdCBN
YXRjaGVkUHJvcGVydGllc0NhY2hlSXRlbSogY2FjaGVJdGVtID0gMDsKQEAgLTI4MjgsNyArMjgy
NSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBN
YXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQpCiAgICAgICAgICAgICBFSW5zaWRlTGluayBsaW5rU3Rh
dHVzID0gbV9zdHlsZS0+aW5zaWRlTGluaygpOwogICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hl
IGl0ZW0gcGFyZW50IHN0eWxlIGhhcyBpZGVudGljYWwgaW5oZXJpdGVkIHByb3BlcnRpZXMgdG8g
dGhlIGN1cnJlbnQgcGFyZW50IHN0eWxlIHRoZW4gdGhlCiAgICAgICAgICAgICAvLyByZXN1bHRp
bmcgc3R5bGUgd2lsbCBiZSBpZGVudGljYWwgdG9vLiBXZSBjb3B5IHRoZSBpbmhlcml0ZWQgcHJv
cGVydGllcyBvdmVyIGZyb20gdGhlIGNhY2hlIGFuZCBhcmUgZG9uZS4KLSAgICAgICAgICAgIG1f
c3R5bGUtPmluaGVyaXRGcm9tKGNhY2hlSXRlbS0+cmVuZGVyU3R5bGUuZ2V0KCkpOworICAgICAg
ICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20oY2FjaGVJdGVtLT5yZW5kZXJTdHlsZS5nZXQoKSwg
aXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hhZG93Qm91bmRh
cnkgOiBSZW5kZXJTdHlsZTo6Tm9TaGFkb3dCb3VuZGFyeSk7CiAgICAgICAgICAgICAvLyBVbmZv
cnR1bmF0ZWx5IHRoZSBsaW5rIHN0YXR1cyBpcyB0cmVhdGVkIGxpa2UgYW4gaW5oZXJpdGVkIHBy
b3BlcnR5LiBXZSBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzdG9yZSBpdC4KICAgICAgICAgICAgIG1f
c3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXR1cyk7CiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA1MzlkZDYzNTZhZTA5ZjFjNjhlZjI3ZjYy
YzlhM2Y1ODExNmQxNWJmLi42YmM1YTYyZjYwNDEzYTdlZGM2ZDBmNWZhNjU1MTgyNDZiYjdmMTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiwgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGUgPSAwKTsKICAgICBib29sIGNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NT
U2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVtZW50KiByZWdpb25FbGVtZW50KTsKLSAgICB2
b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmKTsKKyAgICB2b2lk
IGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmLCBjb25zdCBFbGVtZW50
Kik7CiAgICAgZW51bSBTdHlsZUFwcGxpY2F0aW9uUGFzcyB7CiAgICAgICAgIEhpZ2hQcmlvcml0
eVByb3BlcnRpZXMsCiAgICAgICAgIExvd1ByaW9yaXR5UHJvcGVydGllcwpAQCAtMzYxLDYgKzM2
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1h
dGNoUmVzdWx0JiwgYm9vbCBpbXBvcnRhbnQsIGludCBzdGFydEluZGV4LCBpbnQgZW5kSW5kZXgs
IGJvb2wgaW5oZXJpdGVkT25seSk7CiAgICAgdGVtcGxhdGUgPFN0eWxlQXBwbGljYXRpb25QYXNz
IHBhc3M+CiAgICAgdm9pZCBhcHBseVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCog
cHJvcGVydGllcywgU3R5bGVSdWxlKiwgYm9vbCBpc0ltcG9ydGFudCwgYm9vbCBpbmhlcml0ZWRP
bmx5LCBib29sIGZpbHRlclJlZ2lvblByb3BlcnRpZXMpOworICAgIHZvaWQgYWRqdXN0SW5oZXJp
dGVkU3R5bGUoY29uc3QgRWxlbWVudCopOwogCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFJlZ2lv
blN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDc5MzQyZTM3YTUyZTc2ZGNiOGMwYzdi
MDNhMzUwOWE4NjJmNDllYzYuLjdjNWYxNWU5NGI3NWVlNDliODkyN2QxYzliMWQ5MTc5M2VmODdk
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtMTYyLDkgKzE2MiwxNSBAQCBBTFdBWVNfSU5MSU5FIFJlbmRlclN0eWxlOjpSZW5kZXJT
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYgbykKIHsKIH0KIAotdm9pZCBSZW5kZXJTdHlsZTo6aW5o
ZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVyaXRQYXJlbnQpCi17Ci0gICAgcmFyZUlu
aGVyaXRlZERhdGEgPSBpbmhlcml0UGFyZW50LT5yYXJlSW5oZXJpdGVkRGF0YTsKK3ZvaWQgUmVu
ZGVyU3R5bGU6OmluaGVyaXRGcm9tKGNvbnN0IFJlbmRlclN0eWxlKiBpbmhlcml0UGFyZW50LCBT
aGFkb3dCb3VuZGFyeSBzaGFkb3dCb3VuZGFyeSkKK3sKKyAgICBpZiAoc2hhZG93Qm91bmRhcnkg
PT0gQXRTaGFkb3dCb3VuZGFyeSkgeworICAgICAgICAvLyBFdmVuIGlmIHN1cnJvdW5kaW5nIGNv
bnRlbnQgaXMgdXNlci1lZGl0YWJsZSwgc2hhZG93IERPTSBzaG91bGQgYWN0IGFzIGEgc2luZ2xl
IHVuaXQsIGFuZCBub3QgbmVjZXNzYXJpbHkgYmUgZWRpdGFibGUKKyAgICAgICAgRVVzZXJNb2Rp
ZnkgY3VycmVudFVzZXJNb2RpZnkgPSB1c2VyTW9kaWZ5KCk7CisgICAgICAgIHJhcmVJbmhlcml0
ZWREYXRhID0gaW5oZXJpdFBhcmVudC0+cmFyZUluaGVyaXRlZERhdGE7CisgICAgICAgIHNldFVz
ZXJNb2RpZnkoY3VycmVudFVzZXJNb2RpZnkpOworICAgIH0gZWxzZQorICAgICAgICByYXJlSW5o
ZXJpdGVkRGF0YSA9IGluaGVyaXRQYXJlbnQtPnJhcmVJbmhlcml0ZWREYXRhOwogICAgIGluaGVy
aXRlZCA9IGluaGVyaXRQYXJlbnQtPmluaGVyaXRlZDsKICAgICBpbmhlcml0ZWRfZmxhZ3MgPSBp
bmhlcml0UGFyZW50LT5pbmhlcml0ZWRfZmxhZ3M7CiAjaWYgRU5BQkxFKFNWRykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZDU3YTEyZjJiMjMx
ZWQ3Mzg3YWE1M2E4ODRlMGIxYmQ5MGE4MjVmNS4uMWE5ZjJlZjYyOGMwMzlkNWRkYWJhNThkODZj
M2MwOWI0OGY1NzYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKQEAgLTM5MCw3ICszOTAsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPiBjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgRURpc3BsYXkpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBjbG9uZShjb25zdCBSZW5kZXJTdHlsZSopOwogCi0gICAgdm9pZCBpbmhl
cml0RnJvbShjb25zdCBSZW5kZXJTdHlsZSogaW5oZXJpdFBhcmVudCk7CisgICAgZW51bSBTaGFk
b3dCb3VuZGFyeSB7CisgICAgICAgIEF0U2hhZG93Qm91bmRhcnksCisgICAgICAgIE5vU2hhZG93
Qm91bmRhcnksCisgICAgfTsKKworICAgIHZvaWQgaW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5
bGUqIGluaGVyaXRQYXJlbnQsIFNoYWRvd0JvdW5kYXJ5ID0gTm9TaGFkb3dCb3VuZGFyeSk7CiAg
ICAgdm9pZCBjb3B5Tm9uSW5oZXJpdGVkRnJvbShjb25zdCBSZW5kZXJTdHlsZSopOwogCiAgICAg
UHNldWRvSWQgc3R5bGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+
KG5vbmluaGVyaXRlZF9mbGFncy5fc3R5bGVUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVkYzk0MTVhZGMyZGYw
MjUwNzk4ZmNkMjk4ZDI0ZWUyYWZjYTI3ZGMuLjkyZjIwYjczZDU1NTczMThhY2E3MjlkMzg4ODM2
YWMyZmY4YTZlOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNyAgSGF5YXRvIEl0
byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQW4gaW5oZXJpdGFuY2Ugb2YgJy13
ZWJraXQtdXNlci1tb2RpZnknIGRvZXMgbm90IHN0b3AgYXQgc2hhZG93IGJvdW5kYXJ5LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1MTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3No
YWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sOiBBZGRlZC4K
KwogMjAxMi0wNi0wNyAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgRml4IHVubWF0Y2hlZCBwYXJlbnRoZXNpcyBpbiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZG93bmxvYWQtdW5zZXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM2NTM2N2RkZGM5MjQyMmVkZDM1M2NiNjJiMTc0ZTI0ZTVhYWU2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1v
ZGlmeS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyBwIGlz
IHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3VlLgorCitUaGlzIGRpdiBhbmQgcGFyZW50IGRp
diBhcmUgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuCitQQVNTIGNvbXB1dGVkU3R5bGUo
cHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRl
ZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQt
b25seSIKK1BBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2Vy
TW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC1vbmx5IgorUEFTUyBjb21wdXRlZFN0eWxlKHBy
ZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRp
dGFibGUtaG9zdDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQt
d3JpdGUiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVz
ZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
cHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250
ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlz
ICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3Qo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiKSwgInRy
dWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDgxN2I2MmExODlhMDMxYjlkMTg0ZTgxOGVmNzAxNGNhNTYxOTBj
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1v
ZGlmeS1pbmhlcml0YW5jZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHAgaXMgcmVxdWlyZWQg
dG8gcHJvZHVjZSB0aGUgaXNzdWUuPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU+CisgIDxkaXY+
VGhpcyBkaXYgYW5kIHBhcmVudCBkaXYgYXJlIHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3Vl
LjwvZGl2PgorICA8ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9zdDEiIGNvbnRlbnRlZGl0YWJs
ZT48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29udGVudGVkaXRhYmxlLWhvc3QyIiBjb250ZW50
ZWRpdGFibGU+PC9kaXY+Cis8ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9zdDMiIGNvbnRlbnRl
ZGl0YWJsZT48L2Rpdj4KKzxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiPjwvZGl2
PgorPGRpdiBpZD0ibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MiI+PC9kaXY+Cis8ZGl2IGlkPSJu
b24tY29udGVudGVkaXRhYmxlLWhvc3QzIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxlKGVs
ZW1lbnQsIHN0eWxlKSB7CisgICAgdmFyIGNzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCk7CisgICAgaWYgKCFjcykKKyAgICAgICAgcmV0dXJuICcoTkEpJzsKKyAgICBpZiAoY3Mu
Z2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkpCisgICAgICAgIHJldHVybiBjcy5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHN0eWxlKS5jc3NUZXh0OworICAgIHJldHVybiB1bmRlZmluZWQ7Cit9CisKK2Z1
bmN0aW9uIHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGhvc3QsIGNvbnRlbnRFZGl0YWJsZUF0dHJp
YnV0ZVZhbHVlRm9yTm9kZSkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRv
d1Jvb3QoaG9zdCk7CisgICAgdmFyIG5vZGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGlmIChjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUg
IT0gbnVsbCkKKyAgICAgICAgbm9kZUluU2hhZG93LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRh
YmxlJywgY29udGVudEVkaXRhYmxlQXR0cmlidXRlVmFsdWVGb3JOb2RlKTsKKyAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKG5vZGVJblNoYWRvdyk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRM
ZWZ0OworICAgIHJldHVybiBub2RlSW5TaGFkb3c7Cit9CisKK3ZhciB1c2VyTW9kaWZ5UHJvcGVy
dHlOYW1lID0gJy13ZWJraXQtdXNlci1tb2RpZnknOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5
TmFtZSknLCAncmVhZC1vbmx5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5
bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRl
bnRlZGl0YWJsZS1ob3N0MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAn
cmVhZC1vbmx5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFy
ZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJs
ZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRl
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNo
YWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9z
dDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub24tY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJm
YWxzZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLW9ubHknKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIp
LCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRlJyk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146527</attachid>
            <date>2012-06-08 03:00:02 -0700</date>
            <delta_ts>2012-06-08 04:25:19 -0700</delta_ts>
            <desc>Minor update</desc>
            <filename>bug-88514-20120608190002.patch</filename>
            <type>text/plain</type>
            <size>12566</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Nzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyY2E1ZDU4NDMwYWY0
Mjk4ZjJmMTdkZjg0ZDgwOThkMGMxNWI5Yy4uZTRkMjEzZWQyYTVlYTVkNDk4ZDdjNjAwMjBmMDRl
NDhkZWFhOTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTA3ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCgpLCB3ZSByZXNldCAnLXdlYmtpdC11c2VyLW1vZGlm
eScKKyAgICAgICAgQ1NTIHByb3BlcnR5IGFmdGVyIGluaGVyaXRpbmcgYSBwYXJlbnQgc3R5bGUs
IGJ1dCBpdCBpcyBub3QKKyAgICAgICAgZW5vdWdoLiAgV2UgYWxzbyBoYXZlIHRvIHJlc2V0ICct
d2Via2l0LXVzZXItbW9kaWZ5JyB3aGVuIHdlIHVzZSBhCisgICAgICAgIGNhY2hlZCByZXN1bHQg
aW4gYXBwbHlpbmcgbWF0Y2hlZCBwcm9wZXJ0aWVzLiAgV2UgY2FuIGhpdCB0aGlzIGNvZGUKKyAg
ICAgICAgcGF0aCB1c2luZyB0aGUgZ2l2ZW4gdGVzdCBjYXNlLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjph
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAg
ICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDEyLTA2LTA3ICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIGFkZFRleHRUcmFjayBz
aG91bGQgc2V0IHRyYWNrIG1vZGUgdG8gSElEREVOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggNjQ4ZjYxYmJhZTk0NzE3MDY0NTkzMWRmN2M1OTQ4OTBhYmQwY2I0Ni4uODhk
YWEyMjg0MmJmNjAxODViZDBhZjNlYjY2YTdmN2Q2ODYyMzA1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMTYxNCw3ICsxNjE0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQs
IENTU0YKICAgICByZXR1cm4gZG9jdW1lbnRTdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc0F0U2hhZG93Qm91bmRhcnkoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NDksMTcgKzE2
NDksMTMgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclMKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5
bGU6OmNyZWF0ZSgpOwogCiAgICAgaWYgKG1fcGFyZW50U3R5bGUpCi0gICAgICAgIG1fc3R5bGUt
PmluaGVyaXRGcm9tKG1fcGFyZW50U3R5bGUpOworICAgICAgICBtX3N0eWxlLT5pbmhlcml0RnJv
bShtX3BhcmVudFN0eWxlLCBpc0F0U2hhZG93Qm91bmRhcnkoZWxlbWVudCkgPyBSZW5kZXJTdHls
ZTo6QXRTaGFkb3dCb3VuZGFyeSA6IFJlbmRlclN0eWxlOjpOb1NoYWRvd0JvdW5kYXJ5KTsKICAg
ICBlbHNlIHsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHN0eWxlKCk7CiAgICAgICAgIC8vIE1h
a2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0IGluaGVyaXQgdGhl
bSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCiAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUo
MCk7CiAgICAgfQogCi0gICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXIt
ZWRpdGFibGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90
IG5lY2Vzc2FyaWx5IGJlIGVkaXRhYmxlCi0gICAgaWYgKGlzQXRTaGFkb3dCb3VuZGFyeShlbGVt
ZW50KSkKLSAgICAgICAgbV9zdHlsZS0+c2V0VXNlck1vZGlmeShSZW5kZXJTdHlsZTo6aW5pdGlh
bFVzZXJNb2RpZnkoKSk7Ci0KICAgICBpZiAoZWxlbWVudC0+aXNMaW5rKCkpIHsKICAgICAgICAg
bV9zdHlsZS0+c2V0SXNMaW5rKHRydWUpOwogICAgICAgICBtX3N0eWxlLT5zZXRJbnNpZGVMaW5r
KG1fZWxlbWVudExpbmtTdGF0ZSk7CkBAIC0xNjczLDcgKzE2NjksNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgUmVuZGVyUwogICAgIGVsc2UKICAgICAgICAgbWF0Y2hBbGxSdWxlcyhtYXRjaFJlc3VsdCwg
bWF0Y2hpbmdCZWhhdmlvciAhPSBNYXRjaEFsbFJ1bGVzRXhjbHVkaW5nU01JTCk7CiAKLSAgICBh
cHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0KTsKKyAgICBhcHBseU1hdGNoZWRQcm9w
ZXJ0aWVzKG1hdGNoUmVzdWx0LCBlbGVtZW50KTsKIAogICAgIC8vIENsZWFuIHVwIG91ciBzdHls
ZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1
cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUsIGVsZW1l
bnQpOwpAQCAtMTgzNCw3ICsxODMwLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVS
ZXNvbHZlcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkIHBzZXVkbywgRWwKIAogICAg
IG1fc3R5bGUtPnNldFN0eWxlVHlwZShwc2V1ZG8pOwogCi0gICAgYXBwbHlNYXRjaGVkUHJvcGVy
dGllcyhtYXRjaFJlc3VsdCk7CisgICAgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhtYXRjaFJlc3Vs
dCwgZSk7CiAKICAgICAvLyBDbGVhbiB1cCBvdXIgc3R5bGUgb2JqZWN0J3MgZGlzcGxheSBhbmQg
dGV4dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3RoZXIgZml4dXBzKS4KICAgICBhZGp1c3RSZW5kZXJT
dHlsZShzdHlsZSgpLCBwYXJlbnRTdHlsZSwgMCk7CkBAIC0yODE0LDggKzI4MTAsOSBAQCBzdGF0
aWMgYm9vbCBpc0NhY2hlYWJsZUluTWF0Y2hlZFByb3BlcnRpZXNDYWNoZShjb25zdCBFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBSZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFN0eWxlUmVz
b2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVz
dWx0KQordm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1h
dGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBB
U1NFUlQoZWxlbWVudCk7CiAgICAgdW5zaWduZWQgY2FjaGVIYXNoID0gbWF0Y2hSZXN1bHQuaXND
YWNoZWFibGUgPyBjb21wdXRlTWF0Y2hlZFByb3BlcnRpZXNIYXNoKG1hdGNoUmVzdWx0Lm1hdGNo
ZWRQcm9wZXJ0aWVzLmRhdGEoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgp
KSA6IDA7CiAgICAgYm9vbCBhcHBseUluaGVyaXRlZE9ubHkgPSBmYWxzZTsKICAgICBjb25zdCBN
YXRjaGVkUHJvcGVydGllc0NhY2hlSXRlbSogY2FjaGVJdGVtID0gMDsKQEAgLTI4MjgsNyArMjgy
NSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBN
YXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQpCiAgICAgICAgICAgICBFSW5zaWRlTGluayBsaW5rU3Rh
dHVzID0gbV9zdHlsZS0+aW5zaWRlTGluaygpOwogICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hl
IGl0ZW0gcGFyZW50IHN0eWxlIGhhcyBpZGVudGljYWwgaW5oZXJpdGVkIHByb3BlcnRpZXMgdG8g
dGhlIGN1cnJlbnQgcGFyZW50IHN0eWxlIHRoZW4gdGhlCiAgICAgICAgICAgICAvLyByZXN1bHRp
bmcgc3R5bGUgd2lsbCBiZSBpZGVudGljYWwgdG9vLiBXZSBjb3B5IHRoZSBpbmhlcml0ZWQgcHJv
cGVydGllcyBvdmVyIGZyb20gdGhlIGNhY2hlIGFuZCBhcmUgZG9uZS4KLSAgICAgICAgICAgIG1f
c3R5bGUtPmluaGVyaXRGcm9tKGNhY2hlSXRlbS0+cmVuZGVyU3R5bGUuZ2V0KCkpOworICAgICAg
ICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20oY2FjaGVJdGVtLT5yZW5kZXJTdHlsZS5nZXQoKSwg
aXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hhZG93Qm91bmRh
cnkgOiBSZW5kZXJTdHlsZTo6Tm9TaGFkb3dCb3VuZGFyeSk7CiAgICAgICAgICAgICAvLyBVbmZv
cnR1bmF0ZWx5IHRoZSBsaW5rIHN0YXR1cyBpcyB0cmVhdGVkIGxpa2UgYW4gaW5oZXJpdGVkIHBy
b3BlcnR5LiBXZSBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzdG9yZSBpdC4KICAgICAgICAgICAgIG1f
c3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXR1cyk7CiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA1MzlkZDYzNTZhZTA5ZjFjNjhlZjI3ZjYy
YzlhM2Y1ODExNmQxNWJmLi5lNzVhNjg1Y2EyZWFmMzYxNTZiYmE3YTMyNDAzODBlYmY2ODZiZDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiwgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGUgPSAwKTsKICAgICBib29sIGNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NT
U2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVtZW50KiByZWdpb25FbGVtZW50KTsKLSAgICB2
b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmKTsKKyAgICB2b2lk
IGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmLCBjb25zdCBFbGVtZW50
Kik7CiAgICAgZW51bSBTdHlsZUFwcGxpY2F0aW9uUGFzcyB7CiAgICAgICAgIEhpZ2hQcmlvcml0
eVByb3BlcnRpZXMsCiAgICAgICAgIExvd1ByaW9yaXR5UHJvcGVydGllcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNzkzNDJlMzdhNTJl
NzZkY2I4YzBjN2IwM2EzNTA5YTg2MmY0OWVjNi4uN2M1ZjE1ZTk0Yjc1ZWU0OWI4OTI3ZDFjOWIx
ZDkxNzkzZWY4N2Q3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC0xNjIsOSArMTYyLDE1IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5
bGU6OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBvKQogewogfQogCi12b2lkIFJlbmRl
clN0eWxlOjppbmhlcml0RnJvbShjb25zdCBSZW5kZXJTdHlsZSogaW5oZXJpdFBhcmVudCkKLXsK
LSAgICByYXJlSW5oZXJpdGVkRGF0YSA9IGluaGVyaXRQYXJlbnQtPnJhcmVJbmhlcml0ZWREYXRh
Owordm9pZCBSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVy
aXRQYXJlbnQsIFNoYWRvd0JvdW5kYXJ5IHNoYWRvd0JvdW5kYXJ5KQoreworICAgIGlmIChzaGFk
b3dCb3VuZGFyeSA9PSBBdFNoYWRvd0JvdW5kYXJ5KSB7CisgICAgICAgIC8vIEV2ZW4gaWYgc3Vy
cm91bmRpbmcgY29udGVudCBpcyB1c2VyLWVkaXRhYmxlLCBzaGFkb3cgRE9NIHNob3VsZCBhY3Qg
YXMgYSBzaW5nbGUgdW5pdCwgYW5kIG5vdCBuZWNlc3NhcmlseSBiZSBlZGl0YWJsZQorICAgICAg
ICBFVXNlck1vZGlmeSBjdXJyZW50VXNlck1vZGlmeSA9IHVzZXJNb2RpZnkoKTsKKyAgICAgICAg
cmFyZUluaGVyaXRlZERhdGEgPSBpbmhlcml0UGFyZW50LT5yYXJlSW5oZXJpdGVkRGF0YTsKKyAg
ICAgICAgc2V0VXNlck1vZGlmeShjdXJyZW50VXNlck1vZGlmeSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHJhcmVJbmhlcml0ZWREYXRhID0gaW5oZXJpdFBhcmVudC0+cmFyZUluaGVyaXRlZERhdGE7
CiAgICAgaW5oZXJpdGVkID0gaW5oZXJpdFBhcmVudC0+aW5oZXJpdGVkOwogICAgIGluaGVyaXRl
ZF9mbGFncyA9IGluaGVyaXRQYXJlbnQtPmluaGVyaXRlZF9mbGFnczsKICNpZiBFTkFCTEUoU1ZH
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBk
NTdhMTJmMmIyMzFlZDczODdhYTUzYTg4NGUwYjFiZDkwYTgyNWY1Li4xYTlmMmVmNjI4YzAzOWQ1
ZGRhYmE1OGQ4NmMzYzA5YjQ4ZjU3NjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzkwLDcgKzM5MCwxMiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3Bs
YXkoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBFRGlzcGxheSk7CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNsb25lKGNvbnN0IFJlbmRlclN0eWxlKik7CiAKLSAg
ICB2b2lkIGluaGVyaXRGcm9tKGNvbnN0IFJlbmRlclN0eWxlKiBpbmhlcml0UGFyZW50KTsKKyAg
ICBlbnVtIFNoYWRvd0JvdW5kYXJ5IHsKKyAgICAgICAgQXRTaGFkb3dCb3VuZGFyeSwKKyAgICAg
ICAgTm9TaGFkb3dCb3VuZGFyeSwKKyAgICB9OworCisgICAgdm9pZCBpbmhlcml0RnJvbShjb25z
dCBSZW5kZXJTdHlsZSogaW5oZXJpdFBhcmVudCwgU2hhZG93Qm91bmRhcnkgPSBOb1NoYWRvd0Jv
dW5kYXJ5KTsKICAgICB2b2lkIGNvcHlOb25Jbmhlcml0ZWRGcm9tKGNvbnN0IFJlbmRlclN0eWxl
Kik7CiAKICAgICBQc2V1ZG9JZCBzdHlsZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxQc2V1ZG9JZD4obm9uaW5oZXJpdGVkX2ZsYWdzLl9zdHlsZVR5cGUpOyB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWRj
OTQxNWFkYzJkZjAyNTA3OThmY2QyOThkMjRlZTJhZmNhMjdkYy4uOTJmMjBiNzNkNTU1NzMxOGFj
YTcyOWQzODg4MzZhYzJmZjhhNmU5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTA3
ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0
YW5jZSBvZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91
bmRhcnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
ODUxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA2LTA3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBGaXggdW5tYXRjaGVkIHBhcmVudGhlc2lzIGluIGZhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11bnNldC5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRh
bmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzY1MzY3ZGRkYzkyNDIyZWRkMzUzY2I2MmIx
NzRlMjRlNWFhZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUaGlzIHAgaXMgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuCisKK1RoaXMgZGl2IGFu
ZCBwYXJlbnQgZGl2IGFyZSByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBpc3N1ZS4KK1BBU1MgY29t
cHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudGVkaXRhYmxlLWhvc3QxIiksIG51bGwpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1l
KSBpcyAicmVhZC1vbmx5IgorUEFTUyBjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dS
b290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZh
bHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1
dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1l
KSBpcyAicmVhZC13cml0ZSIKK1BBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93
Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MSIp
LCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtb25seSIKK1BBU1MgY29t
cHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3Bl
cnR5TmFtZSkgaXMgInJlYWQtb25seSIKK1BBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUlu
U2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1o
b3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC13cml0ZSIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWlu
aGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnkt
aW5oZXJpdGFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODE3YjYyYTE4OWEwMzFiOWQxODRlODE4ZWY3
MDE0Y2E1NjE5MGNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgcCBp
cyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBpc3N1ZS48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJs
ZT4KKyAgPGRpdj5UaGlzIGRpdiBhbmQgcGFyZW50IGRpdiBhcmUgcmVxdWlyZWQgdG8gcHJvZHVj
ZSB0aGUgaXNzdWUuPC9kaXY+CisgIDxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1ob3N0MSIgY29u
dGVudGVkaXRhYmxlPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9z
dDIiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1ob3N0
MyIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0ibm9uLWNvbnRlbnRlZGl0YWJsZS1o
b3N0MSI+PC9kaXY+Cis8ZGl2IGlkPSJub24tY29udGVudGVkaXRhYmxlLWhvc3QyIj48L2Rpdj4K
KzxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiPjwvZGl2PgorPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNvbXB1
dGVkU3R5bGUoZWxlbWVudCwgc3R5bGUpIHsKKyAgICB2YXIgY3MgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50KTsKKyAgICBpZiAoIWNzKQorICAgICAgICByZXR1cm4gJyhOQSknOwor
ICAgIGlmIChjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKSkKKyAgICAgICAgcmV0dXJuIGNz
LmdldFByb3BlcnR5Q1NTVmFsdWUoc3R5bGUpLmNzc1RleHQ7CisgICAgcmV0dXJuIHVuZGVmaW5l
ZDsKK30KKworZnVuY3Rpb24gcHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoaG9zdCwgY29udGVudEVk
aXRhYmxlQXR0cmlidXRlVmFsdWVGb3JOb2RlKSB7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgbm9kZUluU2hhZG93ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgaWYgKGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVZh
bHVlRm9yTm9kZSAhPSBudWxsKQorICAgICAgICBub2RlSW5TaGFkb3cuc2V0QXR0cmlidXRlKCdj
b250ZW50ZWRpdGFibGUnLCBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUpOwor
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobm9kZUluU2hhZG93KTsKKyAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldExlZnQ7CisgICAgcmV0dXJuIG5vZGVJblNoYWRvdzsKK30KKwordmFyIHVzZXJN
b2RpZnlQcm9wZXJ0eU5hbWUgPSAnLXdlYmtpdC11c2VyLW1vZGlmeSc7CisKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QxIiksIG51bGwpLCB1c2VyTW9k
aWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLW9ubHknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
Y29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJvcGVy
dHlOYW1lKScsICdyZWFkLW9ubHknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRT
dHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGVudGVkaXRhYmxlLWhvc3QzIiksICJ0cnVlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywg
J3JlYWQtd3JpdGUnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShwcmVw
YXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRl
ZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1v
bmx5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJ
blNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUt
aG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFk
b3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub24tY29udGVudGVkaXRhYmxlLWhvc3Qz
IiksICJ0cnVlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQtd3JpdGUnKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146538</attachid>
            <date>2012-06-08 04:18:15 -0700</date>
            <delta_ts>2012-06-10 15:54:48 -0700</delta_ts>
            <desc>iter</desc>
            <filename>bug-88514-20120608201814.patch</filename>
            <type>text/plain</type>
            <size>12277</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Nzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyY2E1ZDU4NDMwYWY0
Mjk4ZjJmMTdkZjg0ZDgwOThkMGMxNWI5Yy4uMWU5MjM4ZDU1NTgwMzZhZWViNjk0OTU4Njc1Y2M2
MGExZDY5NmFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTA3ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCgpLCB3ZSByZXNldCAnLXdlYmtpdC11c2VyLW1vZGlm
eScKKyAgICAgICAgQ1NTIHByb3BlcnR5IGFmdGVyIGluaGVyaXRpbmcgYSBwYXJlbnQgc3R5bGUs
IGJ1dCB0aGF0IGlzIG5vdAorICAgICAgICBlbm91Z2guICBXZSBhbHNvIGhhdmUgdG8gcmVzZXQg
Jy13ZWJraXQtdXNlci1tb2RpZnknIHdoZW4gd2UgdXNlIGEKKyAgICAgICAgY2FjaGVkIHJlc3Vs
dCBpbiBhcHBseWluZyBtYXRjaGVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwKKworICAgICAgICAqIGNzcy9T
dHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGx5
TWF0Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5
bGVGb3JFbGVtZW50KToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbmhlcml0RnJvbSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTItMDYtMDcgIFZpY3RvciBD
YXJidW5lICA8dmljdG9yQHJvc2VkdS5vcmc+CiAKICAgICAgICAgYWRkVGV4dFRyYWNrIHNob3Vs
ZCBzZXQgdHJhY2sgbW9kZSB0byBISURERU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAppbmRleCA2NDhmNjFiYmFlOTQ3MTcwNjQ1OTMxZGY3YzU5NDg5MGFiZDBjYjQ2Li5kNDMzNGMz
OTE0YjBlNTdkZWNiYzU0NzY2ZWYwNDZiODVmN2I2ZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCkBAIC0xNjE0LDcgKzE2MTQsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ1NT
RgogICAgIHJldHVybiBkb2N1bWVudFN0eWxlLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIGlzQXRTaGFkb3dCb3VuZGFyeShFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIGlubGlu
ZSBib29sIGlzQXRTaGFkb3dCb3VuZGFyeShjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewogICAg
IGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTY0OSwxNyArMTY0OSwx
MyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y3JlYXRlKCk7CiAKICAgICBpZiAobV9wYXJlbnRTdHlsZSkKLSAgICAgICAgbV9zdHlsZS0+aW5o
ZXJpdEZyb20obV9wYXJlbnRTdHlsZSk7CisgICAgICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKG1f
cGFyZW50U3R5bGUsIGlzQXRTaGFkb3dCb3VuZGFyeShlbGVtZW50KSA/IFJlbmRlclN0eWxlOjpB
dFNoYWRvd0JvdW5kYXJ5IDogUmVuZGVyU3R5bGU6Ok5vdEF0U2hhZG93Qm91bmRhcnkpOwogICAg
IGVsc2UgewogICAgICAgICBtX3BhcmVudFN0eWxlID0gc3R5bGUoKTsKICAgICAgICAgLy8gTWFr
ZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0aGVt
IGZyb20gb3VyIHBhcmVudCBzdHlsZS4KICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgw
KTsKICAgICB9CiAKLSAgICAvLyBFdmVuIGlmIHN1cnJvdW5kaW5nIGNvbnRlbnQgaXMgdXNlci1l
ZGl0YWJsZSwgc2hhZG93IERPTSBzaG91bGQgYWN0IGFzIGEgc2luZ2xlIHVuaXQsIGFuZCBub3Qg
bmVjZXNzYXJpbHkgYmUgZWRpdGFibGUKLSAgICBpZiAoaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1l
bnQpKQotICAgICAgICBtX3N0eWxlLT5zZXRVc2VyTW9kaWZ5KFJlbmRlclN0eWxlOjppbml0aWFs
VXNlck1vZGlmeSgpKTsKLQogICAgIGlmIChlbGVtZW50LT5pc0xpbmsoKSkgewogICAgICAgICBt
X3N0eWxlLT5zZXRJc0xpbmsodHJ1ZSk7CiAgICAgICAgIG1fc3R5bGUtPnNldEluc2lkZUxpbmso
bV9lbGVtZW50TGlua1N0YXRlKTsKQEAgLTE2NzMsNyArMTY2OSw3IEBAIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50
LCBSZW5kZXJTCiAgICAgZWxzZQogICAgICAgICBtYXRjaEFsbFJ1bGVzKG1hdGNoUmVzdWx0LCBt
YXRjaGluZ0JlaGF2aW9yICE9IE1hdGNoQWxsUnVsZXNFeGNsdWRpbmdTTUlMKTsKIAotICAgIGFw
cGx5TWF0Y2hlZFByb3BlcnRpZXMobWF0Y2hSZXN1bHQpOworICAgIGFwcGx5TWF0Y2hlZFByb3Bl
cnRpZXMobWF0Y2hSZXN1bHQsIGVsZW1lbnQpOwogCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0eWxl
IG9iamVjdCdzIGRpc3BsYXkgYW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZpeHVw
cykuCiAgICAgYWRqdXN0UmVuZGVyU3R5bGUoc3R5bGUoKSwgbV9wYXJlbnRTdHlsZSwgZWxlbWVu
dCk7CkBAIC0xODM0LDcgKzE4MzAsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJl
c29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNldWRvSWQgcHNldWRvLCBFbAogCiAgICAg
bV9zdHlsZS0+c2V0U3R5bGVUeXBlKHBzZXVkbyk7CiAKLSAgICBhcHBseU1hdGNoZWRQcm9wZXJ0
aWVzKG1hdGNoUmVzdWx0KTsKKyAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0
LCBlKTsKIAogICAgIC8vIENsZWFuIHVwIG91ciBzdHlsZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0
ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1cHMpLgogICAgIGFkanVzdFJlbmRlclN0
eWxlKHN0eWxlKCksIHBhcmVudFN0eWxlLCAwKTsKQEAgLTI4MTQsOCArMjgxMCw5IEBAIHN0YXRp
YyBib29sIGlzQ2FjaGVhYmxlSW5NYXRjaGVkUHJvcGVydGllc0NhY2hlKGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQsIGNvbnN0IFJlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1
bHQpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0
Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQogeworICAgIEFT
U0VSVChlbGVtZW50KTsKICAgICB1bnNpZ25lZCBjYWNoZUhhc2ggPSBtYXRjaFJlc3VsdC5pc0Nh
Y2hlYWJsZSA/IGNvbXB1dGVNYXRjaGVkUHJvcGVydGllc0hhc2gobWF0Y2hSZXN1bHQubWF0Y2hl
ZFByb3BlcnRpZXMuZGF0YSgpLCBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCkp
IDogMDsKICAgICBib29sIGFwcGx5SW5oZXJpdGVkT25seSA9IGZhbHNlOwogICAgIGNvbnN0IE1h
dGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtKiBjYWNoZUl0ZW0gPSAwOwpAQCAtMjgyOCw3ICsyODI1
LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1h
dGNoUmVzdWx0JiBtYXRjaFJlc3VsdCkKICAgICAgICAgICAgIEVJbnNpZGVMaW5rIGxpbmtTdGF0
dXMgPSBtX3N0eWxlLT5pbnNpZGVMaW5rKCk7CiAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUg
aXRlbSBwYXJlbnQgc3R5bGUgaGFzIGlkZW50aWNhbCBpbmhlcml0ZWQgcHJvcGVydGllcyB0byB0
aGUgY3VycmVudCBwYXJlbnQgc3R5bGUgdGhlbiB0aGUKICAgICAgICAgICAgIC8vIHJlc3VsdGlu
ZyBzdHlsZSB3aWxsIGJlIGlkZW50aWNhbCB0b28uIFdlIGNvcHkgdGhlIGluaGVyaXRlZCBwcm9w
ZXJ0aWVzIG92ZXIgZnJvbSB0aGUgY2FjaGUgYW5kIGFyZSBkb25lLgotICAgICAgICAgICAgbV9z
dHlsZS0+aW5oZXJpdEZyb20oY2FjaGVJdGVtLT5yZW5kZXJTdHlsZS5nZXQoKSk7CisgICAgICAg
ICAgICBtX3N0eWxlLT5pbmhlcml0RnJvbShjYWNoZUl0ZW0tPnJlbmRlclN0eWxlLmdldCgpLCBp
c0F0U2hhZG93Qm91bmRhcnkoZWxlbWVudCkgPyBSZW5kZXJTdHlsZTo6QXRTaGFkb3dCb3VuZGFy
eSA6IFJlbmRlclN0eWxlOjpOb3RBdFNoYWRvd0JvdW5kYXJ5KTsKICAgICAgICAgICAgIC8vIFVu
Zm9ydHVuYXRlbHkgdGhlIGxpbmsgc3RhdHVzIGlzIHRyZWF0ZWQgbGlrZSBhbiBpbmhlcml0ZWQg
cHJvcGVydHkuIFdlIG5lZWQgdG8gZXhwbGljaXRseSByZXN0b3JlIGl0LgogICAgICAgICAgICAg
bV9zdHlsZS0+c2V0SW5zaWRlTGluayhsaW5rU3RhdHVzKTsKICAgICAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDUzOWRkNjM1NmFlMDlmMWM2OGVmMjdm
NjJjOWEzZjU4MTE2ZDE1YmYuLmU3NWE2ODVjYTJlYWYzNjE1NmJiYTdhMzI0MDM4MGViZjY4NmJk
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMzUyLDcgKzM1Miw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIGNoZWNrU2VsZWN0b3IoY29uc3QgUnVsZURhdGEmLCBjb25zdCBD
b250YWluZXJOb2RlKiBzY29wZSA9IDApOwogICAgIGJvb2wgY2hlY2tSZWdpb25TZWxlY3RvcihD
U1NTZWxlY3RvciogcmVnaW9uU2VsZWN0b3IsIEVsZW1lbnQqIHJlZ2lvbkVsZW1lbnQpOwotICAg
IHZvaWQgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYpOworICAgIHZv
aWQgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYsIGNvbnN0IEVsZW1l
bnQqKTsKICAgICBlbnVtIFN0eWxlQXBwbGljYXRpb25QYXNzIHsKICAgICAgICAgSGlnaFByaW9y
aXR5UHJvcGVydGllcywKICAgICAgICAgTG93UHJpb3JpdHlQcm9wZXJ0aWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA3OTM0MmUzN2E1
MmU3NmRjYjhjMGM3YjAzYTM1MDlhODYyZjQ5ZWM2Li5lYzQ3MzBjM2VhNGRiMDkwOGJmMjhiMWJi
ODU4NTJhMDM3MjI5OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTE2Miw5ICsxNjIsMTUgQEAgQUxXQVlTX0lOTElORSBSZW5kZXJT
dHlsZTo6UmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIG8pCiB7CiB9CiAKLXZvaWQgUmVu
ZGVyU3R5bGU6OmluaGVyaXRGcm9tKGNvbnN0IFJlbmRlclN0eWxlKiBpbmhlcml0UGFyZW50KQot
ewotICAgIHJhcmVJbmhlcml0ZWREYXRhID0gaW5oZXJpdFBhcmVudC0+cmFyZUluaGVyaXRlZERh
dGE7Cit2b2lkIFJlbmRlclN0eWxlOjppbmhlcml0RnJvbShjb25zdCBSZW5kZXJTdHlsZSogaW5o
ZXJpdFBhcmVudCwgSXNBdFNoYWRvd0JvdW5kYXJ5IGlzQXRTaGFkb3dCb3VuZGFyeSkKK3sKKyAg
ICBpZiAoaXNBdFNoYWRvd0JvdW5kYXJ5ID09IEF0U2hhZG93Qm91bmRhcnkpIHsKKyAgICAgICAg
Ly8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRpdGFibGUsIHNoYWRvdyBE
T00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5lY2Vzc2FyaWx5IGJlIGVk
aXRhYmxlCisgICAgICAgIEVVc2VyTW9kaWZ5IGN1cnJlbnRVc2VyTW9kaWZ5ID0gdXNlck1vZGlm
eSgpOworICAgICAgICByYXJlSW5oZXJpdGVkRGF0YSA9IGluaGVyaXRQYXJlbnQtPnJhcmVJbmhl
cml0ZWREYXRhOworICAgICAgICBzZXRVc2VyTW9kaWZ5KGN1cnJlbnRVc2VyTW9kaWZ5KTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgcmFyZUluaGVyaXRlZERhdGEgPSBpbmhlcml0UGFyZW50LT5yYXJl
SW5oZXJpdGVkRGF0YTsKICAgICBpbmhlcml0ZWQgPSBpbmhlcml0UGFyZW50LT5pbmhlcml0ZWQ7
CiAgICAgaW5oZXJpdGVkX2ZsYWdzID0gaW5oZXJpdFBhcmVudC0+aW5oZXJpdGVkX2ZsYWdzOwog
I2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IGQ1N2ExMmYyYjIzMWVkNzM4N2FhNTNhODg0ZTBiMWJkOTBhODI1ZjUuLmRl
MWU5ODMzMDhhNGY4ZWE0MjU5NDI5ODA5MjJhMjI4YWNmMWY4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0zOTAsNyArMzkwLDEyIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlQW5vbnltb3Vz
U3R5bGVXaXRoRGlzcGxheShjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIEVEaXNwbGF5
KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY2xvbmUoY29uc3QgUmVuZGVy
U3R5bGUqKTsKIAotICAgIHZvaWQgaW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVy
aXRQYXJlbnQpOworICAgIGVudW0gSXNBdFNoYWRvd0JvdW5kYXJ5IHsKKyAgICAgICAgQXRTaGFk
b3dCb3VuZGFyeSwKKyAgICAgICAgTm90QXRTaGFkb3dCb3VuZGFyeSwKKyAgICB9OworCisgICAg
dm9pZCBpbmhlcml0RnJvbShjb25zdCBSZW5kZXJTdHlsZSogaW5oZXJpdFBhcmVudCwgSXNBdFNo
YWRvd0JvdW5kYXJ5ID0gTm90QXRTaGFkb3dCb3VuZGFyeSk7CiAgICAgdm9pZCBjb3B5Tm9uSW5o
ZXJpdGVkRnJvbShjb25zdCBSZW5kZXJTdHlsZSopOwogCiAgICAgUHNldWRvSWQgc3R5bGVUeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KG5vbmluaGVyaXRlZF9mbGFn
cy5fc3R5bGVUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVkYzk0MTVhZGMyZGYwMjUwNzk4ZmNkMjk4ZDI0ZWUy
YWZjYTI3ZGMuLjkyZjIwYjczZDU1NTczMThhY2E3MjlkMzg4ODM2YWMyZmY4YTZlOTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNyAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgQW4gaW5oZXJpdGFuY2Ugb2YgJy13ZWJraXQtdXNlci1tb2RpZnkn
IGRvZXMgbm90IHN0b3AgYXQgc2hhZG93IGJvdW5kYXJ5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1MTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1p
bmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0wNyAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHVubWF0Y2hl
ZCBwYXJlbnRoZXNpcyBpbiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxv
YWQtdW5zZXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Vz
ZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTIwNTViYmE4NTRlZGI5YTNmOGM5NmUzNGE5ODVkYWRhYTVmZjM0MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5v
ZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1o
b3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtb25seSIKK1BB
U1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJv
cGVydHlOYW1lKSBpcyAicmVhZC1vbmx5IgorUEFTUyBjb21wdXRlZFN0eWxlKHByZXBhcmVOb2Rl
SW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUtaG9z
dDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCitQ
QVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQ
cm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5v
ZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFi
bGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9u
bHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiKSwgInRydWUiKSwgdXNl
ck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmQ1NzEyNDFhZDNkZGRkYmI3NjBkYTA5MzRhNDFmYjk3NjFjZjllNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhl
cml0YW5jZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9zdDEi
IGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1ob3N0MiIg
Y29udGVudGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0iY29udGVudGVkaXRhYmxlLWhvc3QzIiBj
b250ZW50ZWRpdGFibGU+PC9kaXY+Cis8ZGl2IGlkPSJub24tY29udGVudGVkaXRhYmxlLWhvc3Qx
Ij48L2Rpdj4KKzxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDIiPjwvZGl2PgorPGRp
diBpZD0ibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MyI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY29tcHV0ZWRT
dHlsZShlbGVtZW50LCBzdHlsZSkgeworICAgIHZhciBjcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQpOworICAgIGlmICghY3MpCisgICAgICAgIHJldHVybiAnKE5BKSc7CisgICAg
aWYgKGNzLmdldFByb3BlcnR5Q1NTVmFsdWUoc3R5bGUpKQorICAgICAgICByZXR1cm4gY3MuZ2V0
UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkuY3NzVGV4dDsKKyAgICByZXR1cm4gdW5kZWZpbmVkOwor
fQorCitmdW5jdGlvbiBwcmVwYXJlTm9kZUluU2hhZG93Um9vdChob3N0LCBjb250ZW50RWRpdGFi
bGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUpIHsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KGhvc3QpOworICAgIHZhciBub2RlSW5TaGFkb3cgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICBpZiAoY29udGVudEVkaXRhYmxlQXR0cmlidXRlVmFsdWVG
b3JOb2RlICE9IG51bGwpCisgICAgICAgIG5vZGVJblNoYWRvdy5zZXRBdHRyaWJ1dGUoJ2NvbnRl
bnRlZGl0YWJsZScsIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVZhbHVlRm9yTm9kZSk7CisgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChub2RlSW5TaGFkb3cpOworICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0TGVmdDsKKyAgICByZXR1cm4gbm9kZUluU2hhZG93OworfQorCit2YXIgdXNlck1vZGlm
eVByb3BlcnR5TmFtZSA9ICctd2Via2l0LXVzZXItbW9kaWZ5JzsKKworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQ
cm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21w
dXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb250ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5h
bWUpJywgJ3JlYWQtb25seScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxl
KHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50
ZWRpdGFibGUtaG9zdDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVh
ZC13cml0ZScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBhcmVO
b2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub24tY29udGVudGVkaXRh
YmxlLWhvc3QxIiksIG51bGwpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLW9ubHkn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hh
ZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0
MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jv
b3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiKSwg
InRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC13cml0ZScpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146754</attachid>
            <date>2012-06-10 15:54:56 -0700</date>
            <delta_ts>2012-06-10 17:29:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88514-20120611075455.patch</filename>
            <type>text/plain</type>
            <size>12720</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Nzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyY2E1ZDU4NDMwYWY0
Mjk4ZjJmMTdkZjg0ZDgwOThkMGMxNWI5Yy4uNGUyOThjMTFmNTc5OTNlYWU0YjllOWE0NGE3NjVl
YTZlMDljNzMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTExICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBJbiBTdHlsZVJl
c29sdmVyOjpzdHlsZUZvckVsZW1lbnQoKSwgd2UgcmVzZXQgJy13ZWJraXQtdXNlci1tb2RpZnkn
CisgICAgICAgIENTUyBwcm9wZXJ0eSBhZnRlciBpbmhlcml0aW5nIGEgcGFyZW50IHN0eWxlLCBi
dXQgdGhhdCBpcyBub3QKKyAgICAgICAgZW5vdWdoLiAgV2UgYWxzbyBoYXZlIHRvIHJlc2V0ICct
d2Via2l0LXVzZXItbW9kaWZ5JyB3aGVuIHdlIHVzZSBhCisgICAgICAgIGNhY2hlZCByZXN1bHQg
aW4gYXBwbHlpbmcgbWF0Y2hlZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseU1h
dGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxl
Rm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0
eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDEyLTA2LTA3ICBWaWN0b3IgQ2Fy
YnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgogCiAgICAgICAgIGFkZFRleHRUcmFjayBzaG91bGQg
c2V0IHRyYWNrIG1vZGUgdG8gSElEREVOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggNjQ4ZjYxYmJhZTk0NzE3MDY0NTkzMWRmN2M1OTQ4OTBhYmQwY2I0Ni4uZDQzMzRjMzkx
NGIwZTU3ZGVjYmM1NDc2NmVmMDQ2Yjg1ZjdiNmYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcApAQCAtMTYxNCw3ICsxNjE0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIENTU0YK
ICAgICByZXR1cm4gZG9jdW1lbnRTdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0F0U2hhZG93Qm91bmRhcnkoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBpc0F0U2hhZG93Qm91bmRhcnkoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBp
ZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE2NDksMTcgKzE2NDksMTMg
QEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclMKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5bGU6OmNy
ZWF0ZSgpOwogCiAgICAgaWYgKG1fcGFyZW50U3R5bGUpCi0gICAgICAgIG1fc3R5bGUtPmluaGVy
aXRGcm9tKG1fcGFyZW50U3R5bGUpOworICAgICAgICBtX3N0eWxlLT5pbmhlcml0RnJvbShtX3Bh
cmVudFN0eWxlLCBpc0F0U2hhZG93Qm91bmRhcnkoZWxlbWVudCkgPyBSZW5kZXJTdHlsZTo6QXRT
aGFkb3dCb3VuZGFyeSA6IFJlbmRlclN0eWxlOjpOb3RBdFNoYWRvd0JvdW5kYXJ5KTsKICAgICBl
bHNlIHsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHN0eWxlKCk7CiAgICAgICAgIC8vIE1ha2Ug
c3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0IGluaGVyaXQgdGhlbSBm
cm9tIG91ciBwYXJlbnQgc3R5bGUuCiAgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7
CiAgICAgfQogCi0gICAgLy8gRXZlbiBpZiBzdXJyb3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRp
dGFibGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBhcyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5l
Y2Vzc2FyaWx5IGJlIGVkaXRhYmxlCi0gICAgaWYgKGlzQXRTaGFkb3dCb3VuZGFyeShlbGVtZW50
KSkKLSAgICAgICAgbV9zdHlsZS0+c2V0VXNlck1vZGlmeShSZW5kZXJTdHlsZTo6aW5pdGlhbFVz
ZXJNb2RpZnkoKSk7Ci0KICAgICBpZiAoZWxlbWVudC0+aXNMaW5rKCkpIHsKICAgICAgICAgbV9z
dHlsZS0+c2V0SXNMaW5rKHRydWUpOwogICAgICAgICBtX3N0eWxlLT5zZXRJbnNpZGVMaW5rKG1f
ZWxlbWVudExpbmtTdGF0ZSk7CkBAIC0xNjczLDcgKzE2NjksNyBAQCBQYXNzUmVmUHRyPFJlbmRl
clN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwg
UmVuZGVyUwogICAgIGVsc2UKICAgICAgICAgbWF0Y2hBbGxSdWxlcyhtYXRjaFJlc3VsdCwgbWF0
Y2hpbmdCZWhhdmlvciAhPSBNYXRjaEFsbFJ1bGVzRXhjbHVkaW5nU01JTCk7CiAKLSAgICBhcHBs
eU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0KTsKKyAgICBhcHBseU1hdGNoZWRQcm9wZXJ0
aWVzKG1hdGNoUmVzdWx0LCBlbGVtZW50KTsKIAogICAgIC8vIENsZWFuIHVwIG91ciBzdHlsZSBv
YmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBvdGhlciBmaXh1cHMp
LgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxlKCksIG1fcGFyZW50U3R5bGUsIGVsZW1lbnQp
OwpAQCAtMTgzNCw3ICsxODMwLDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNv
bHZlcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkIHBzZXVkbywgRWwKIAogICAgIG1f
c3R5bGUtPnNldFN0eWxlVHlwZShwc2V1ZG8pOwogCi0gICAgYXBwbHlNYXRjaGVkUHJvcGVydGll
cyhtYXRjaFJlc3VsdCk7CisgICAgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhtYXRjaFJlc3VsdCwg
ZSk7CiAKICAgICAvLyBDbGVhbiB1cCBvdXIgc3R5bGUgb2JqZWN0J3MgZGlzcGxheSBhbmQgdGV4
dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3RoZXIgZml4dXBzKS4KICAgICBhZGp1c3RSZW5kZXJTdHls
ZShzdHlsZSgpLCBwYXJlbnRTdHlsZSwgMCk7CkBAIC0yODE0LDggKzI4MTAsOSBAQCBzdGF0aWMg
Ym9vbCBpc0NhY2hlYWJsZUluTWF0Y2hlZFByb3BlcnRpZXNDYWNoZShjb25zdCBFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBSZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFN0eWxlUmVzb2x2
ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0
KQordm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNo
UmVzdWx0JiBtYXRjaFJlc3VsdCwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBBU1NF
UlQoZWxlbWVudCk7CiAgICAgdW5zaWduZWQgY2FjaGVIYXNoID0gbWF0Y2hSZXN1bHQuaXNDYWNo
ZWFibGUgPyBjb21wdXRlTWF0Y2hlZFByb3BlcnRpZXNIYXNoKG1hdGNoUmVzdWx0Lm1hdGNoZWRQ
cm9wZXJ0aWVzLmRhdGEoKSwgbWF0Y2hSZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpKSA6
IDA7CiAgICAgYm9vbCBhcHBseUluaGVyaXRlZE9ubHkgPSBmYWxzZTsKICAgICBjb25zdCBNYXRj
aGVkUHJvcGVydGllc0NhY2hlSXRlbSogY2FjaGVJdGVtID0gMDsKQEAgLTI4MjgsNyArMjgyNSw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRj
aFJlc3VsdCYgbWF0Y2hSZXN1bHQpCiAgICAgICAgICAgICBFSW5zaWRlTGluayBsaW5rU3RhdHVz
ID0gbV9zdHlsZS0+aW5zaWRlTGluaygpOwogICAgICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGl0
ZW0gcGFyZW50IHN0eWxlIGhhcyBpZGVudGljYWwgaW5oZXJpdGVkIHByb3BlcnRpZXMgdG8gdGhl
IGN1cnJlbnQgcGFyZW50IHN0eWxlIHRoZW4gdGhlCiAgICAgICAgICAgICAvLyByZXN1bHRpbmcg
c3R5bGUgd2lsbCBiZSBpZGVudGljYWwgdG9vLiBXZSBjb3B5IHRoZSBpbmhlcml0ZWQgcHJvcGVy
dGllcyBvdmVyIGZyb20gdGhlIGNhY2hlIGFuZCBhcmUgZG9uZS4KLSAgICAgICAgICAgIG1fc3R5
bGUtPmluaGVyaXRGcm9tKGNhY2hlSXRlbS0+cmVuZGVyU3R5bGUuZ2V0KCkpOworICAgICAgICAg
ICAgbV9zdHlsZS0+aW5oZXJpdEZyb20oY2FjaGVJdGVtLT5yZW5kZXJTdHlsZS5nZXQoKSwgaXNB
dFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hhZG93Qm91bmRhcnkg
OiBSZW5kZXJTdHlsZTo6Tm90QXRTaGFkb3dCb3VuZGFyeSk7CiAgICAgICAgICAgICAvLyBVbmZv
cnR1bmF0ZWx5IHRoZSBsaW5rIHN0YXR1cyBpcyB0cmVhdGVkIGxpa2UgYW4gaW5oZXJpdGVkIHBy
b3BlcnR5LiBXZSBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzdG9yZSBpdC4KICAgICAgICAgICAgIG1f
c3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXR1cyk7CiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA1MzlkZDYzNTZhZTA5ZjFjNjhlZjI3ZjYy
YzlhM2Y1ODExNmQxNWJmLi5lNzVhNjg1Y2EyZWFmMzYxNTZiYmE3YTMyNDAzODBlYmY2ODZiZDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTM1Miw3ICszNTIsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiwgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGUgPSAwKTsKICAgICBib29sIGNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NT
U2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVtZW50KiByZWdpb25FbGVtZW50KTsKLSAgICB2
b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmKTsKKyAgICB2b2lk
IGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmLCBjb25zdCBFbGVtZW50
Kik7CiAgICAgZW51bSBTdHlsZUFwcGxpY2F0aW9uUGFzcyB7CiAgICAgICAgIEhpZ2hQcmlvcml0
eVByb3BlcnRpZXMsCiAgICAgICAgIExvd1ByaW9yaXR5UHJvcGVydGllcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNzkzNDJlMzdhNTJl
NzZkY2I4YzBjN2IwM2EzNTA5YTg2MmY0OWVjNi4uZWM0NzMwYzNlYTRkYjA5MDhiZjI4YjFiYjg1
ODUyYTAzNzIyOTk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC0xNjIsOSArMTYyLDE1IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5
bGU6OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBvKQogewogfQogCi12b2lkIFJlbmRl
clN0eWxlOjppbmhlcml0RnJvbShjb25zdCBSZW5kZXJTdHlsZSogaW5oZXJpdFBhcmVudCkKLXsK
LSAgICByYXJlSW5oZXJpdGVkRGF0YSA9IGluaGVyaXRQYXJlbnQtPnJhcmVJbmhlcml0ZWREYXRh
Owordm9pZCBSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVy
aXRQYXJlbnQsIElzQXRTaGFkb3dCb3VuZGFyeSBpc0F0U2hhZG93Qm91bmRhcnkpCit7CisgICAg
aWYgKGlzQXRTaGFkb3dCb3VuZGFyeSA9PSBBdFNoYWRvd0JvdW5kYXJ5KSB7CisgICAgICAgIC8v
IEV2ZW4gaWYgc3Vycm91bmRpbmcgY29udGVudCBpcyB1c2VyLWVkaXRhYmxlLCBzaGFkb3cgRE9N
IHNob3VsZCBhY3QgYXMgYSBzaW5nbGUgdW5pdCwgYW5kIG5vdCBuZWNlc3NhcmlseSBiZSBlZGl0
YWJsZQorICAgICAgICBFVXNlck1vZGlmeSBjdXJyZW50VXNlck1vZGlmeSA9IHVzZXJNb2RpZnko
KTsKKyAgICAgICAgcmFyZUluaGVyaXRlZERhdGEgPSBpbmhlcml0UGFyZW50LT5yYXJlSW5oZXJp
dGVkRGF0YTsKKyAgICAgICAgc2V0VXNlck1vZGlmeShjdXJyZW50VXNlck1vZGlmeSk7CisgICAg
fSBlbHNlCisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhID0gaW5oZXJpdFBhcmVudC0+cmFyZUlu
aGVyaXRlZERhdGE7CiAgICAgaW5oZXJpdGVkID0gaW5oZXJpdFBhcmVudC0+aW5oZXJpdGVkOwog
ICAgIGluaGVyaXRlZF9mbGFncyA9IGluaGVyaXRQYXJlbnQtPmluaGVyaXRlZF9mbGFnczsKICNp
ZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAppbmRleCBkNTdhMTJmMmIyMzFlZDczODdhYTUzYTg4NGUwYjFiZDkwYTgyNWY1Li5kZTFl
OTgzMzA4YTRmOGVhNDI1OTQyOTgwOTIyYTIyOGFjZjFmODQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzkwLDcgKzM5MCwxMiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUFub255bW91c1N0
eWxlV2l0aERpc3BsYXkoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBFRGlzcGxheSk7
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNsb25lKGNvbnN0IFJlbmRlclN0
eWxlKik7CiAKLSAgICB2b2lkIGluaGVyaXRGcm9tKGNvbnN0IFJlbmRlclN0eWxlKiBpbmhlcml0
UGFyZW50KTsKKyAgICBlbnVtIElzQXRTaGFkb3dCb3VuZGFyeSB7CisgICAgICAgIEF0U2hhZG93
Qm91bmRhcnksCisgICAgICAgIE5vdEF0U2hhZG93Qm91bmRhcnksCisgICAgfTsKKworICAgIHZv
aWQgaW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVyaXRQYXJlbnQsIElzQXRTaGFk
b3dCb3VuZGFyeSA9IE5vdEF0U2hhZG93Qm91bmRhcnkpOwogICAgIHZvaWQgY29weU5vbkluaGVy
aXRlZEZyb20oY29uc3QgUmVuZGVyU3R5bGUqKTsKIAogICAgIFBzZXVkb0lkIHN0eWxlVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBzZXVkb0lkPihub25pbmhlcml0ZWRfZmxhZ3Mu
X3N0eWxlVHlwZSk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZGM5NDE1YWRjMmRmMDI1MDc5OGZjZDI5OGQyNGVlMmFm
Y2EyN2RjLi5kMGYzNTg1NWRkN2VjNThlMzBlMjkyM2FiYWYxN2QwMDY4Y2VhZGVjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTEgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEFuIGluaGVyaXRhbmNlIG9mICctd2Via2l0LXVzZXItbW9kaWZ5JyBk
b2VzIG5vdCBzdG9wIGF0IHNoYWRvdyBib3VuZGFyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlv
c3VrZSBOaXdhLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVy
aXRhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3Vz
ZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTA3ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggdW5tYXRjaGVkIHBh
cmVudGhlc2lzIGluIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11
bnNldC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1t
b2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjk2
ZDM2YWMxZTNiMzNhZDdmYzE0NGRmODM5MzMwMTA1OWRhZmVmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0byBlbnN1cmUgdGhhdCBhICctd2Via2l0
LXVzZXItbW9kaWZ5JyBDU1MgcG9ycGVydHkgaXMgbm90IGluaGVyaXRlZCBhY3Jvc3Mgc2hhZG93
IGJvdW5kYXJpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNvbXB1
dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkg
aXMgInJlYWQtb25seSIKK1BBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9v
dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxz
ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC1vbmx5IgorUEFTUyBjb21wdXRl
ZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250ZW50ZWRpdGFibGUtaG9zdDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkg
aXMgInJlYWQtd3JpdGUiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jv
b3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwg
bnVsbCksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1
dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0
eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNo
YWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9z
dDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFu
Y2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTJiMDFmNjc4ZTBmOTQ0MzUzOWJmMGU3ZjI3ZDFjMTU0M2E5
MmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXIt
bW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29udGVudGVkaXRhYmxlLWhvc3QxIiBjb250ZW50ZWRpdGFibGU+PC9k
aXY+Cis8ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9zdDIiIGNvbnRlbnRlZGl0YWJsZT48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIgY29udGVudGVkaXRhYmxlPjwvZGl2
PgorPGRpdiBpZD0ibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MSI+PC9kaXY+Cis8ZGl2IGlkPSJu
b24tY29udGVudGVkaXRhYmxlLWhvc3QyIj48L2Rpdj4KKzxkaXYgaWQ9Im5vbi1jb250ZW50ZWRp
dGFibGUtaG9zdDMiPjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IGEgJy13ZWJraXQtdXNlci1tb2RpZnkn
IENTUyBwb3JwZXJ0eSBpcyBub3QgaW5oZXJpdGVkIGFjcm9zcyBzaGFkb3cgYm91bmRhcmllcy4i
KTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIHN0
eWxlKSB7CisgICAgdmFyIGNzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7Cisg
ICAgaWYgKCFjcykKKyAgICAgICAgcmV0dXJuICcoTkEpJzsKKyAgICBpZiAoY3MuZ2V0UHJvcGVy
dHlDU1NWYWx1ZShzdHlsZSkpCisgICAgICAgIHJldHVybiBjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHN0eWxlKS5jc3NUZXh0OworICAgIHJldHVybiB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0aW9uIHBy
ZXBhcmVOb2RlSW5TaGFkb3dSb290KGhvc3QsIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVZhbHVl
Rm9yTm9kZSkgeworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9z
dCk7CisgICAgdmFyIG5vZGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIGlmIChjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUgIT0gbnVsbCkK
KyAgICAgICAgbm9kZUluU2hhZG93LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgY29u
dGVudEVkaXRhYmxlQXR0cmlidXRlVmFsdWVGb3JOb2RlKTsKKyAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKG5vZGVJblNoYWRvdyk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAg
IHJldHVybiBub2RlSW5TaGFkb3c7Cit9CisKK3ZhciB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lID0g
Jy13ZWJraXQtdXNlci1tb2RpZnknOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVk
U3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAn
cmVhZC1vbmx5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFy
ZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJs
ZS1ob3N0MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNo
YWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIp
LCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRlJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3Qo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVs
bCksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJub24tY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1
c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLW9ubHknKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9k
aWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRlJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146761</attachid>
            <date>2012-06-10 17:29:54 -0700</date>
            <delta_ts>2012-06-10 20:59:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88514-20120611092953.patch</filename>
            <type>text/plain</type>
            <size>12816</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ1YmVjYmRlNDc0MWRi
MjJjMTYwMDhmNDM2Y2U5MzcxNjc5YjBiOC4uM2Q5MTRlMmYyZmEwOTE3MjExNThkNjRkZjRmNWRm
ODVmNmQ3ZDc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTExICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBBbiBpbmhlcml0YW5jZSBv
ZiAnLXdlYmtpdC11c2VyLW1vZGlmeScgZG9lcyBub3Qgc3RvcCBhdCBzaGFkb3cgYm91bmRhcnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBJbiBTdHlsZVJl
c29sdmVyOjpzdHlsZUZvckVsZW1lbnQoKSwgd2UgcmVzZXQgJy13ZWJraXQtdXNlci1tb2RpZnkn
CisgICAgICAgIENTUyBwcm9wZXJ0eSBhZnRlciBpbmhlcml0aW5nIGEgcGFyZW50IHN0eWxlLCBi
dXQgdGhhdCBpcyBub3QKKyAgICAgICAgZW5vdWdoLiAgV2UgYWxzbyBoYXZlIHRvIHJlc2V0ICct
d2Via2l0LXVzZXItbW9kaWZ5JyB3aGVuIHdlIHVzZSBhCisgICAgICAgIGNhY2hlZCByZXN1bHQg
aW4gYXBwbHlpbmcgbWF0Y2hlZCBwcm9wZXJ0aWVzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCisKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseU1h
dGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxl
Rm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0
eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDEyLTA2LTEwICBQYWJsbyBGbG91
cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBBY2Nlc3MgY29udHJvbCBhbGxv
dyBsaXN0cyBzdGFydGluZyB3aXRoIGEgY29tbWEgYXJlIHBhcnNlZCBpbmNvcnJlY3RseSAoQ09S
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkZTMwMDFjMzQ0YTNkMzY1
YzU5MzRkZGZjOTI1NDdiZDFlYWFkYjMxLi40NWU3ZDEyMzRjYWExNjE2NDFmOTE0MWVkNDIwODkx
OTU3ZDg0ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNjE5LDcg
KzE2MTksNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZv
ckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ1NTRgogICAgIHJldHVybiBkb2N1bWVudFN0
eWxlLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzQXRTaGFkb3dCb3VuZGFy
eShFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIGlubGluZSBib29sIGlzQXRTaGFkb3dCb3VuZGFy
eShjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIGlmICghZWxlbWVudCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMTY1NCw3ICsxNjU0LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRl
clMKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwogCiAgICAgaWYgKG1fcGFy
ZW50U3R5bGUpCi0gICAgICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKG1fcGFyZW50U3R5bGUpOwor
ICAgICAgICBtX3N0eWxlLT5pbmhlcml0RnJvbShtX3BhcmVudFN0eWxlLCBpc0F0U2hhZG93Qm91
bmRhcnkoZWxlbWVudCkgPyBSZW5kZXJTdHlsZTo6QXRTaGFkb3dCb3VuZGFyeSA6IFJlbmRlclN0
eWxlOjpOb3RBdFNoYWRvd0JvdW5kYXJ5KTsKICAgICBlbHNlIHsKICAgICAgICAgbV9wYXJlbnRT
dHlsZSA9IHN0eWxlKCk7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRp
YWxpemVkIGlmIHdlIGRvbid0IGluaGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCkBA
IC0xNjY1LDEwICsxNjY1LDYgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclMKICAgICAgICAgICAg
IG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CiAgICAgfQogCi0gICAgLy8gRXZlbiBpZiBzdXJy
b3VuZGluZyBjb250ZW50IGlzIHVzZXItZWRpdGFibGUsIHNoYWRvdyBET00gc2hvdWxkIGFjdCBh
cyBhIHNpbmdsZSB1bml0LCBhbmQgbm90IG5lY2Vzc2FyaWx5IGJlIGVkaXRhYmxlCi0gICAgaWYg
KGlzQXRTaGFkb3dCb3VuZGFyeShlbGVtZW50KSkKLSAgICAgICAgbV9zdHlsZS0+c2V0VXNlck1v
ZGlmeShSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJNb2RpZnkoKSk7Ci0KICAgICBpZiAoZWxlbWVu
dC0+aXNMaW5rKCkpIHsKICAgICAgICAgbV9zdHlsZS0+c2V0SXNMaW5rKHRydWUpOwogICAgICAg
ICBtX3N0eWxlLT5zZXRJbnNpZGVMaW5rKG1fZWxlbWVudExpbmtTdGF0ZSk7CkBAIC0xNjgyLDcg
KzE2NzgsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgIGVsc2UKICAgICAgICAgbWF0
Y2hBbGxSdWxlcyhtYXRjaFJlc3VsdCwgbWF0Y2hpbmdCZWhhdmlvciAhPSBNYXRjaEFsbFJ1bGVz
RXhjbHVkaW5nU01JTCk7CiAKLSAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0
KTsKKyAgICBhcHBseU1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoUmVzdWx0LCBlbGVtZW50KTsKIAog
ICAgIC8vIENsZWFuIHVwIG91ciBzdHlsZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29y
YXRpb25zIChhbW9uZyBvdGhlciBmaXh1cHMpLgogICAgIGFkanVzdFJlbmRlclN0eWxlKHN0eWxl
KCksIG1fcGFyZW50U3R5bGUsIGVsZW1lbnQpOwpAQCAtMTg0Myw3ICsxODM5LDcgQEAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KFBz
ZXVkb0lkIHBzZXVkbywgRWwKIAogICAgIG1fc3R5bGUtPnNldFN0eWxlVHlwZShwc2V1ZG8pOwog
Ci0gICAgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhtYXRjaFJlc3VsdCk7CisgICAgYXBwbHlNYXRj
aGVkUHJvcGVydGllcyhtYXRjaFJlc3VsdCwgZSk7CiAKICAgICAvLyBDbGVhbiB1cCBvdXIgc3R5
bGUgb2JqZWN0J3MgZGlzcGxheSBhbmQgdGV4dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3RoZXIgZml4
dXBzKS4KICAgICBhZGp1c3RSZW5kZXJTdHlsZShzdHlsZSgpLCBwYXJlbnRTdHlsZSwgMCk7CkBA
IC0yODIzLDggKzI4MTksOSBAQCBzdGF0aWMgYm9vbCBpc0NhY2hlYWJsZUluTWF0Y2hlZFByb3Bl
cnRpZXNDYWNoZShjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBSZQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29u
c3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0KQordm9pZCBTdHlsZVJlc29sdmVyOjphcHBseU1h
dGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCwgY29uc3QgRWxl
bWVudCogZWxlbWVudCkKIHsKKyAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgdW5zaWduZWQgY2Fj
aGVIYXNoID0gbWF0Y2hSZXN1bHQuaXNDYWNoZWFibGUgPyBjb21wdXRlTWF0Y2hlZFByb3BlcnRp
ZXNIYXNoKG1hdGNoUmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLmRhdGEoKSwgbWF0Y2hSZXN1bHQu
bWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpKSA6IDA7CiAgICAgYm9vbCBhcHBseUluaGVyaXRlZE9u
bHkgPSBmYWxzZTsKICAgICBjb25zdCBNYXRjaGVkUHJvcGVydGllc0NhY2hlSXRlbSogY2FjaGVJ
dGVtID0gMDsKQEAgLTI4MzcsNyArMjgzNCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlN
YXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQpCiAgICAgICAg
ICAgICBFSW5zaWRlTGluayBsaW5rU3RhdHVzID0gbV9zdHlsZS0+aW5zaWRlTGluaygpOwogICAg
ICAgICAgICAgLy8gSWYgdGhlIGNhY2hlIGl0ZW0gcGFyZW50IHN0eWxlIGhhcyBpZGVudGljYWwg
aW5oZXJpdGVkIHByb3BlcnRpZXMgdG8gdGhlIGN1cnJlbnQgcGFyZW50IHN0eWxlIHRoZW4gdGhl
CiAgICAgICAgICAgICAvLyByZXN1bHRpbmcgc3R5bGUgd2lsbCBiZSBpZGVudGljYWwgdG9vLiBX
ZSBjb3B5IHRoZSBpbmhlcml0ZWQgcHJvcGVydGllcyBvdmVyIGZyb20gdGhlIGNhY2hlIGFuZCBh
cmUgZG9uZS4KLSAgICAgICAgICAgIG1fc3R5bGUtPmluaGVyaXRGcm9tKGNhY2hlSXRlbS0+cmVu
ZGVyU3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20oY2FjaGVJ
dGVtLT5yZW5kZXJTdHlsZS5nZXQoKSwgaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVu
ZGVyU3R5bGU6OkF0U2hhZG93Qm91bmRhcnkgOiBSZW5kZXJTdHlsZTo6Tm90QXRTaGFkb3dCb3Vu
ZGFyeSk7CiAgICAgICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5IHRoZSBsaW5rIHN0YXR1cyBpcyB0
cmVhdGVkIGxpa2UgYW4gaW5oZXJpdGVkIHByb3BlcnR5LiBXZSBuZWVkIHRvIGV4cGxpY2l0bHkg
cmVzdG9yZSBpdC4KICAgICAgICAgICAgIG1fc3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXR1
cyk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRl
eCA3ZThmM2ExMDBhZDk1OGRjZWIxZGUyMTcwMDAyMzgxNzk2NTI1OWQ5Li41MWYwZWY0YTNlMDY4
MDdmNTQ4ZjcyNmMyYjQ4NjVlMWU1MmFiODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmgKQEAgLTM1Myw3ICszNTMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjaGVja1NlbGVjdG9y
KGNvbnN0IFJ1bGVEYXRhJiwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwKTsKICAgICBi
b29sIGNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVt
ZW50KiByZWdpb25FbGVtZW50KTsKLSAgICB2b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29u
c3QgTWF0Y2hSZXN1bHQmKTsKKyAgICB2b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3Qg
TWF0Y2hSZXN1bHQmLCBjb25zdCBFbGVtZW50Kik7CiAgICAgZW51bSBTdHlsZUFwcGxpY2F0aW9u
UGFzcyB7CiAgICAgICAgIEhpZ2hQcmlvcml0eVByb3BlcnRpZXMsCiAgICAgICAgIExvd1ByaW9y
aXR5UHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggNzkzNDJlMzdhNTJlNzZkY2I4YzBjN2IwM2EzNTA5YTg2MmY0OWVjNi4u
ZWM0NzMwYzNlYTRkYjA5MDhiZjI4YjFiYjg1ODUyYTAzNzIyOTk1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNjIsOSArMTYyLDE1
IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlJiBvKQogewogfQogCi12b2lkIFJlbmRlclN0eWxlOjppbmhlcml0RnJvbShjb25zdCBSZW5k
ZXJTdHlsZSogaW5oZXJpdFBhcmVudCkKLXsKLSAgICByYXJlSW5oZXJpdGVkRGF0YSA9IGluaGVy
aXRQYXJlbnQtPnJhcmVJbmhlcml0ZWREYXRhOwordm9pZCBSZW5kZXJTdHlsZTo6aW5oZXJpdEZy
b20oY29uc3QgUmVuZGVyU3R5bGUqIGluaGVyaXRQYXJlbnQsIElzQXRTaGFkb3dCb3VuZGFyeSBp
c0F0U2hhZG93Qm91bmRhcnkpCit7CisgICAgaWYgKGlzQXRTaGFkb3dCb3VuZGFyeSA9PSBBdFNo
YWRvd0JvdW5kYXJ5KSB7CisgICAgICAgIC8vIEV2ZW4gaWYgc3Vycm91bmRpbmcgY29udGVudCBp
cyB1c2VyLWVkaXRhYmxlLCBzaGFkb3cgRE9NIHNob3VsZCBhY3QgYXMgYSBzaW5nbGUgdW5pdCwg
YW5kIG5vdCBuZWNlc3NhcmlseSBiZSBlZGl0YWJsZQorICAgICAgICBFVXNlck1vZGlmeSBjdXJy
ZW50VXNlck1vZGlmeSA9IHVzZXJNb2RpZnkoKTsKKyAgICAgICAgcmFyZUluaGVyaXRlZERhdGEg
PSBpbmhlcml0UGFyZW50LT5yYXJlSW5oZXJpdGVkRGF0YTsKKyAgICAgICAgc2V0VXNlck1vZGlm
eShjdXJyZW50VXNlck1vZGlmeSk7CisgICAgfSBlbHNlCisgICAgICAgIHJhcmVJbmhlcml0ZWRE
YXRhID0gaW5oZXJpdFBhcmVudC0+cmFyZUluaGVyaXRlZERhdGE7CiAgICAgaW5oZXJpdGVkID0g
aW5oZXJpdFBhcmVudC0+aW5oZXJpdGVkOwogICAgIGluaGVyaXRlZF9mbGFncyA9IGluaGVyaXRQ
YXJlbnQtPmluaGVyaXRlZF9mbGFnczsKICNpZiBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBkNTdhMTJmMmIyMzFlZDczODdh
YTUzYTg4NGUwYjFiZDkwYTgyNWY1Li5kZTFlOTgzMzA4YTRmOGVhNDI1OTQyOTgwOTIyYTIyOGFj
ZjFmODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aApAQCAtMzkwLDcgKzM5MCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IGNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoY29uc3QgUmVuZGVyU3R5
bGUqIHBhcmVudFN0eWxlLCBFRGlzcGxheSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IGNsb25lKGNvbnN0IFJlbmRlclN0eWxlKik7CiAKLSAgICB2b2lkIGluaGVyaXRGcm9t
KGNvbnN0IFJlbmRlclN0eWxlKiBpbmhlcml0UGFyZW50KTsKKyAgICBlbnVtIElzQXRTaGFkb3dC
b3VuZGFyeSB7CisgICAgICAgIEF0U2hhZG93Qm91bmRhcnksCisgICAgICAgIE5vdEF0U2hhZG93
Qm91bmRhcnksCisgICAgfTsKKworICAgIHZvaWQgaW5oZXJpdEZyb20oY29uc3QgUmVuZGVyU3R5
bGUqIGluaGVyaXRQYXJlbnQsIElzQXRTaGFkb3dCb3VuZGFyeSA9IE5vdEF0U2hhZG93Qm91bmRh
cnkpOwogICAgIHZvaWQgY29weU5vbkluaGVyaXRlZEZyb20oY29uc3QgUmVuZGVyU3R5bGUqKTsK
IAogICAgIFBzZXVkb0lkIHN0eWxlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBz
ZXVkb0lkPihub25pbmhlcml0ZWRfZmxhZ3MuX3N0eWxlVHlwZSk7IH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWQ0YjBl
OWViNWE0MWRkYmMwM2E2MzI3NzRmYThkMjgxODMwZGZmLi5iZTc5NThhNWE5YmNhZjY5ODg0ZWZl
OGQ0NzY1ZDk5MWU3YWU0MWFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMTEgIEhh
eWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFuIGluaGVyaXRhbmNl
IG9mICctd2Via2l0LXVzZXItbW9kaWZ5JyBkb2VzIG5vdCBzdG9wIGF0IHNoYWRvdyBib3VuZGFy
eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTE0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgICogZmFzdC9k
b20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA2LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEV4cG9zZSBsYXlvdXRUZXN0Q29udHJvbGxlciBhcyB0ZXN0UnVubmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWlu
aGVyaXRhbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjk2ZDM2YWMxZTNiMzNhZDdmYzE0
NGRmODM5MzMwMTA1OWRhZmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE1IEBACitUZXN0cyB0byBlbnN1cmUgdGhhdCBhICctd2Via2l0LXVzZXItbW9kaWZ5JyBDU1Mg
cG9ycGVydHkgaXMgbm90IGluaGVyaXRlZCBhY3Jvc3Mgc2hhZG93IGJvdW5kYXJpZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5v
ZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1o
b3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtb25seSIKK1BB
U1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJv
cGVydHlOYW1lKSBpcyAicmVhZC1vbmx5IgorUEFTUyBjb21wdXRlZFN0eWxlKHByZXBhcmVOb2Rl
SW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUtaG9z
dDMiKSwgInRydWUiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCitQ
QVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQ
cm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5v
ZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFi
bGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9u
bHkiCitQQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiKSwgInRydWUiKSwgdXNl
ck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtd3JpdGUiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZTJiMDFmNjc4ZTBmOTQ0MzUzOWJmMGU3ZjI3ZDFjMTU0M2E5MmNlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNl
Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
dGVudGVkaXRhYmxlLWhvc3QxIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Cis8ZGl2IGlkPSJjb250
ZW50ZWRpdGFibGUtaG9zdDIiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KKzxkaXYgaWQ9ImNvbnRl
bnRlZGl0YWJsZS1ob3N0MyIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0ibm9uLWNv
bnRlbnRlZGl0YWJsZS1ob3N0MSI+PC9kaXY+Cis8ZGl2IGlkPSJub24tY29udGVudGVkaXRhYmxl
LWhvc3QyIj48L2Rpdj4KKzxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiPjwvZGl2
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IHRvIGVuc3VyZSB0aGF0IGEgJy13ZWJraXQtdXNlci1tb2RpZnknIENTUyBwb3JwZXJ0eSBpcyBu
b3QgaW5oZXJpdGVkIGFjcm9zcyBzaGFkb3cgYm91bmRhcmllcy4iKTsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIHN0eWxlKSB7CisgICAgdmFyIGNz
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7CisgICAgaWYgKCFjcykKKyAgICAg
ICAgcmV0dXJuICcoTkEpJzsKKyAgICBpZiAoY3MuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkp
CisgICAgICAgIHJldHVybiBjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKS5jc3NUZXh0Owor
ICAgIHJldHVybiB1bmRlZmluZWQ7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVOb2RlSW5TaGFkb3dS
b290KGhvc3QsIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVZhbHVlRm9yTm9kZSkgeworICAgIHZh
ciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIG5vZGVJ
blNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGlmIChjb250ZW50
RWRpdGFibGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUgIT0gbnVsbCkKKyAgICAgICAgbm9kZUluU2hh
ZG93LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgY29udGVudEVkaXRhYmxlQXR0cmli
dXRlVmFsdWVGb3JOb2RlKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG5vZGVJblNoYWRv
dyk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHJldHVybiBub2RlSW5TaGFk
b3c7Cit9CisKK3ZhciB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lID0gJy13ZWJraXQtdXNlci1tb2Rp
ZnknOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJ
blNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0
MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3Qo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MiIpLCAiZmFsc2Ui
KSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9k
aWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRlJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQcm9w
ZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRl
ZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJu
b24tY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlO
YW1lKScsICdyZWFkLW9ubHknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHls
ZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNv
bnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScs
ICdyZWFkLXdyaXRlJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>