<?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>109176</bug_id>
          
          <creation_ts>2013-02-07 04:23:26 -0800</creation_ts>
          <short_desc>Support a relatedTarget attribute on focus/blur events</short_desc>
          <delta_ts>2023-03-29 14:41:12 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=254655</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>cbiesinger</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>827307</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 04:23:26 -0800</bug_when>
    <thetext>In bug 76216, we supported a relatedTarget attribute on focusin/focusout events. We should support it on focus/blur events too.

See http://lists.w3.org/Archives/Public/www-dom/2012OctDec/0061.html for the www-dom discussion.

In a follow-up patch, I&apos;ll move {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator to FocusEvent.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827309</commentid>
    <comment_count>1</comment_count>
      <attachid>187060</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 04:26:06 -0800</bug_when>
    <thetext>Created attachment 187060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827585</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-07 08:58:45 -0800</bug_when>
    <thetext>Hayato-san</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827604</commentid>
    <comment_count>3</comment_count>
      <attachid>187060</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-07 09:24:24 -0800</bug_when>
    <thetext>Comment on attachment 187060
Patch

Attachment 187060 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16434235

New failing tests:
fast/dom/adopt-node-prevented.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827678</commentid>
    <comment_count>4</comment_count>
      <attachid>187060</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 10:40:25 -0800</bug_when>
    <thetext>Comment on attachment 187060
Patch

Attachment 187060 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16428282

New failing tests:
fast/forms/time-multiple-fields/time-multiple-fields-crash-after-adoptnode.html
fast/dom/adopt-node-prevented.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827726</commentid>
    <comment_count>5</comment_count>
      <attachid>187060</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-07 11:05:48 -0800</bug_when>
    <thetext>Comment on attachment 187060
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2426
&gt; +    dispatchScopedEventDispatchMediator(FocusEventDispatchMediator::create(FocusEvent::create(eventNames().focusEvent, false, false, document()-&gt;defaultView(), 0, 0), oldFocusedNode));

I feel like we should have an internal create method which takes fewer args.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828093</commentid>
    <comment_count>6</comment_count>
      <attachid>187216</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 18:48:27 -0800</bug_when>
    <thetext>Created attachment 187216
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828096</commentid>
    <comment_count>7</comment_count>
      <attachid>187216</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 18:58:01 -0800</bug_when>
    <thetext>Comment on attachment 187216
patch for landing

hayato-san: cq? if it looks OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828135</commentid>
    <comment_count>8</comment_count>
      <attachid>187216</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-07 20:24:48 -0800</bug_when>
    <thetext>Comment on attachment 187216
patch for landing

RelatedTarget! Yay! I hope that makes both event retargeting code and section 5 of shadow dom spec much simpler.

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

&gt; Source/WebCore/dom/EventDispatchMediator.cpp:55
&gt; +PassRefPtr&lt;FocusEventDispatchMediator&gt; FocusEventDispatchMediator::create(PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;Node&gt; oldFocusedNode)

We don&apos;t need a second parameter since FocusEvent has a relatedTarget. It seems redundant.

&gt; Source/WebCore/dom/EventDispatchMediator.cpp:60
&gt; +FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;Node&gt; oldFocusedNode)

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.cpp:72
&gt; +PassRefPtr&lt;BlurEventDispatchMediator&gt; BlurEventDispatchMediator::create(PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;Node&gt; newFocusedNode)

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.cpp:77
&gt; +BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;Node&gt; newFocusedNode)

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:62
&gt; +    static PassRefPtr&lt;FocusEventDispatchMediator&gt; create(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:64
&gt; +    FocusEventDispatchMediator(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:71
&gt; +    static PassRefPtr&lt;BlurEventDispatchMediator&gt; create(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:73
&gt; +    BlurEventDispatchMediator(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/Node.cpp:2426
&gt; +    RefPtr&lt;FocusEvent&gt; event = FocusEvent::create(eventNames().focusEvent, false, false, document()-&gt;defaultView(), 0, 0);

You should pass oldFocusedNode to FocusEvent::create().

&gt; Source/WebCore/dom/Node.cpp:2427
&gt; +    EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release(), oldFocusedNode));

Then you don&apos;t have to pass oldFocusedNode here.

&gt; Source/WebCore/dom/Node.cpp:2435
&gt; +    RefPtr&lt;FocusEvent&gt; event = FocusEvent::create(eventNames().blurEvent, false, false, document()-&gt;defaultView(), 0, 0);

Ditto.

&gt; Source/WebCore/dom/Node.cpp:2436
&gt; +    EventDispatcher::dispatchEvent(this, BlurEventDispatchMediator::create(event.release(), newFocusedNode));

Ditto.

&gt; LayoutTests/fast/events/related-target-focusevent.html:22
&gt; +input1.addEventListener(&quot;focus&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;null&apos;); });

Use shouldBeNull(..)

&gt; LayoutTests/fast/events/related-target-focusevent.html:28
&gt;  input3.addEventListener(&quot;focusin&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;input2&apos;); });

it seems tests for input2 and input3 are testing the same things. We can remove either test.

&gt; LayoutTests/fast/events/related-target-focusevent.html:33
&gt;  for (var i = 0; i &lt; 4; i++) {

I am afraid that it is not guaranteed that pressing tab key will focus the first focusable node (input1) in document.
It might be safe to focus input1 explicitly  at the begining before sending tab key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828168</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 21:22:34 -0800</bug_when>
    <thetext>Thanks hayato-san

&gt; &gt; Source/WebCore/dom/Node.cpp:2426
&gt; &gt; +    RefPtr&lt;FocusEvent&gt; event = FocusEvent::create(eventNames().focusEvent, false, false, document()-&gt;defaultView(), 0, 0);
&gt; 
&gt; You should pass oldFocusedNode to FocusEvent::create().
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:2427
&gt; &gt; +    EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release(), oldFocusedNode));
&gt; 
&gt; Then you don&apos;t have to pass oldFocusedNode here.

We&apos;ve tried this before, but it caused failures on fast/dom/shadow/shadow-boundary-events.html. Events wrongly propagated over shadow boundaries. (See https://bugs.webkit.org/show_bug.cgi?id=76216.) It looks like we shouldn&apos;t set a relatedTarget until EventContext::handleLocalEvents() is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828177</commentid>
    <comment_count>10</comment_count>
      <attachid>187233</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 21:35:05 -0800</bug_when>
    <thetext>Created attachment 187233
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828182</commentid>
    <comment_count>11</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-07 21:39:39 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thanks hayato-san
&gt; 
&gt; &gt; &gt; Source/WebCore/dom/Node.cpp:2426
&gt; &gt; &gt; +    RefPtr&lt;FocusEvent&gt; event = FocusEvent::create(eventNames().focusEvent, false, false, document()-&gt;defaultView(), 0, 0);
&gt; &gt; 
&gt; &gt; You should pass oldFocusedNode to FocusEvent::create().
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/Node.cpp:2427
&gt; &gt; &gt; +    EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release(), oldFocusedNode));
&gt; &gt; 
&gt; &gt; Then you don&apos;t have to pass oldFocusedNode here.
&gt; 
&gt; We&apos;ve tried this before, but it caused failures on fast/dom/shadow/shadow-boundary-events.html. Events wrongly propagated over shadow boundaries. (See https://bugs.webkit.org/show_bug.cgi?id=76216.) It looks like we shouldn&apos;t set a relatedTarget until EventContext::handleLocalEvents() is called.

Could you figure out the reason?

I cannot read why we can not set relatedTaraget in FocusEvent constructor in https://bugs.webkit.org/show_bug.cgi?id=76216.
The thread is too long. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828183</commentid>
    <comment_count>12</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 21:41:07 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Could you figure out the reason?

OK, will try later. I couldn&apos;t figure out in one day debugging though:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828184</commentid>
    <comment_count>13</comment_count>
      <attachid>187235</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 21:43:01 -0800</bug_when>
    <thetext>Created attachment 187235
patch that fixed test cases for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828201</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 22:23:27 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:22
&gt; &gt; +input1.addEventListener(&quot;focus&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;null&apos;); });
&gt; 
&gt; Use shouldBeNull(..)

Fixed.

&gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:28
&gt; &gt;  input3.addEventListener(&quot;focusin&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;input2&apos;); });
&gt; 
&gt; it seems tests for input2 and input3 are testing the same things. We can remove either test.

Fixed.

&gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:33
&gt; &gt;  for (var i = 0; i &lt; 4; i++) {
&gt; 
&gt; I am afraid that it is not guaranteed that pressing tab key will focus the first focusable node (input1) in document.
&gt; It might be safe to focus input1 explicitly  at the begining before sending tab key.

Fixed.


&gt; I cannot read why we can not set relatedTaraget in FocusEvent constructor in https://bugs.webkit.org/show_bug.cgi?id=76216.

This issue happens not only in focus/blur events but also in focusin/focusout events. I filed a bug for this (https://bugs.webkit.org/show_bug.cgi?id=109261). Let me fix it after landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828205</commentid>
    <comment_count>15</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-07 22:39:37 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #8)
&gt; &gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:22
&gt; &gt; &gt; +input1.addEventListener(&quot;focus&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;null&apos;); });
&gt; &gt; 
&gt; &gt; Use shouldBeNull(..)
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:28
&gt; &gt; &gt;  input3.addEventListener(&quot;focusin&quot;, function(event) { shouldBe(&apos;event.relatedTarget&apos;, &apos;input2&apos;); });
&gt; &gt; 
&gt; &gt; it seems tests for input2 and input3 are testing the same things. We can remove either test.
&gt; 
&gt; Fixed.

You don&apos;t have to remove both. We should have a test where a relatedTarget is null.

&gt; 
&gt; &gt; &gt; LayoutTests/fast/events/related-target-focusevent.html:33
&gt; &gt; &gt;  for (var i = 0; i &lt; 4; i++) {
&gt; &gt; 
&gt; &gt; I am afraid that it is not guaranteed that pressing tab key will focus the first focusable node (input1) in document.
&gt; &gt; It might be safe to focus input1 explicitly  at the begining before sending tab key.
&gt; 
&gt; Fixed.
&gt; 
&gt; 
&gt; &gt; I cannot read why we can not set relatedTaraget in FocusEvent constructor in https://bugs.webkit.org/show_bug.cgi?id=76216.
&gt; 
&gt; This issue happens not only in focus/blur events but also in focusin/focusout events. I filed a bug for this (https://bugs.webkit.org/show_bug.cgi?id=109261). Let me fix it after landing the patch.

Ideally, we should fix bug 109261 before landing this since this patch is spreading the misusage.
Fixing later is okay to me, but you should add FIXME comments, pointing to bug id, near the corresponding code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828215</commentid>
    <comment_count>16</comment_count>
      <attachid>187242</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 22:56:56 -0800</bug_when>
    <thetext>Created attachment 187242
comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828216</commentid>
    <comment_count>17</comment_count>
      <attachid>187242</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 22:58:43 -0800</bug_when>
    <thetext>Comment on attachment 187242
comments addressed

&gt; You don&apos;t have to remove both. We should have a test where a relatedTarget is null.

Fixed.

&gt; Ideally, we should fix bug 109261 before landing this since this patch is spreading the misusage.
&gt; Fixing later is okay to me, but you should add FIXME comments, pointing to bug id, near the corresponding code.

Thanks. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828218</commentid>
    <comment_count>18</comment_count>
      <attachid>187242</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-07 23:08:20 -0800</bug_when>
    <thetext>Comment on attachment 187242
comments addressed

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

&gt; Source/WebCore/dom/EventDispatchMediator.h:62
&gt; +    static PassRefPtr&lt;FocusEventDispatchMediator&gt; create(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Could you add  the parameter name for PassRefPtr&lt;Node&gt; here?

&gt; Source/WebCore/dom/EventDispatchMediator.h:64
&gt; +    FocusEventDispatchMediator(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:71
&gt; +    static PassRefPtr&lt;BlurEventDispatchMediator&gt; create(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.

&gt; Source/WebCore/dom/EventDispatchMediator.h:73
&gt; +    BlurEventDispatchMediator(PassRefPtr&lt;Event&gt;, PassRefPtr&lt;Node&gt;);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828220</commentid>
    <comment_count>19</comment_count>
      <attachid>187243</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 23:10:58 -0800</bug_when>
    <thetext>Created attachment 187243
comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828221</commentid>
    <comment_count>20</comment_count>
      <attachid>187243</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 23:11:36 -0800</bug_when>
    <thetext>Comment on attachment 187243
comments addressed

&gt; Could you add  the parameter name for PassRefPtr&lt;Node&gt; here?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828226</commentid>
    <comment_count>21</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-07 23:20:07 -0800</bug_when>
    <thetext>Thank you!
Unofficial rs=me on this.

(In reply to comment #20)
&gt; (From update of attachment 187243 [details])
&gt; &gt; Could you add  the parameter name for PassRefPtr&lt;Node&gt; here?
&gt; 
&gt; Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828228</commentid>
    <comment_count>22</comment_count>
      <attachid>187243</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-07 23:21:40 -0800</bug_when>
    <thetext>Comment on attachment 187243
comments addressed

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828256</commentid>
    <comment_count>23</comment_count>
      <attachid>187243</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 00:07:25 -0800</bug_when>
    <thetext>Comment on attachment 187243
comments addressed

Clearing flags on attachment: 187243

Committed r142240: &lt;http://trac.webkit.org/changeset/142240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828257</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 00:07:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187060</attachid>
            <date>2013-02-07 04:26:06 -0800</date>
            <delta_ts>2013-02-07 18:48:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109176-20130207212242.patch</filename>
            <type>text/plain</type>
            <size>13772</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVjMGYyNWEwZTM0MDQ3
MDg2YjEwY2E3NzFlMGFlMDBiZjllYTNmMi4uZTkxYjA4N2ZjMzY5MWI3YTBlZTIxN2U3NWYzMTVi
ODIzOTQ2ZjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGJ1ZyA3NjIxNiwgd2Ugc3VwcG9y
dGVkIGEgcmVsYXRlZFRhcmdldCBhdHRyaWJ1dGUgb24KKyAgICAgICAgZm9jdXNpbi9mb2N1c291
dCBldmVudHMuIFdlIHNob3VsZCBhbHNvIHN1cHBvcnQgaXQgb24gZm9jdXMvYmx1ciBldmVudHMu
CisKKyAgICAgICAgU2VlIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1k
b20vMjAxMk9jdERlYy8wMDYxLmh0bWwKKyAgICAgICAgZm9yIHRoZSB3d3ctZG9tIGRpc2N1c3Np
b24uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVu
dHMuaHRtbAorICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2
ZW50Lmh0bWwKKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Rm9jdXNFdmVudERpc3Bh
dGNoTWVkaWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6
OkJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
TWVkaWF0b3IuaDoKKyAgICAgICAgKEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAgICAg
ICAgKEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkaXNwYXRjaEJsdXJFdmVudCk6CisKIDIwMTMtMDItMDcgIElseWEgVGlr
aG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZml4
IGZvciBpbnNwZWN0b3IgdGVzdHMgaW4gZGVidWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dERpc3BhdGNoTWVkaWF0b3IuY3BwCmluZGV4IDhkYjNjYjFiYTkyMWQzNzBiZDY3ZTQ1ZGRjYWZk
ODY2MjNmMzdmMmYuLmQ5ZGI2MzBjMTQwOWRkOTJmYWVkN2MzOWYyOTBjY2IxZmIzMTRkM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCkBAIC01Miwx
MyArNTIsMTMgQEAgYm9vbCBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQoRXZl
bnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAogICAgIHJldHVybiBkaXNwYXRjaGVyLT5k
aXNwYXRjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpOwogfQogCi1QYXNzUmVmUHRyPEZvY3VzRXZlbnRE
aXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCitQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRj
aE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8
RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3Iob2xkRm9jdXNlZE5v
ZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9y
KGV2ZW50LCBvbGRGb2N1c2VkTm9kZSkpOwogfQogCi1Gb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2Vk
Tm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKQorRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0
b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlh
dG9yKGV2ZW50KQogICAgICwgbV9vbGRGb2N1c2VkTm9kZShvbGRGb2N1c2VkTm9kZSkKIHsKIH0K
QEAgLTY5LDEzICs2OSwxMyBAQCBib29sIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNw
YXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29ucwogICAgIHJldHVybiBF
dmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQoZGlzcGF0Y2hlcik7CiB9CiAKLVBh
c3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gQmx1ckV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCitQYXNzUmVmUHRy
PEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2Vk
Tm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0
b3IobmV3Rm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3IoZXZlbnQsIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKLUJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3I6OkJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkpCitCbHVyRXZlbnREaXNw
YXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8RXZlbnQ+
IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQorICAgIDogRXZlbnREaXNw
YXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9uZXdGb2N1c2VkTm9kZShuZXdGb2N1c2VkTm9k
ZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVk
aWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuaAppbmRl
eCAyNmI2MzA1YTJlZTYzZDcwOGVjNGM0NzBkYjVhZjcyNzljNzljZWNhLi42NDBmNmJiZWNmZjg5
Y2Y5YWYyOTkzOTI1Y2FmMjBkMzhlNzYzZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
RGlzcGF0Y2hNZWRpYXRvci5oCkBAIC01OSwxOCArNTksMTggQEAgcHJpdmF0ZToKIAogY2xhc3Mg
Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMgRXZlbnREaXNwYXRjaE1lZGlhdG9y
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxGb2N1c0V2ZW50RGlzcGF0Y2hNZWRp
YXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0
cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBGb2N1
c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsK
KyAgICBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1Jl
ZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRj
aGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5vZGU+IG1fb2xkRm9jdXNlZE5vZGU7
CiB9OwogCiBjbGFzcyBCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yIDogcHVibGljIEV2ZW50RGlz
cGF0Y2hNZWRpYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Qmx1ckV2ZW50
RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IGNyZWF0
ZShQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1
c2VkTm9kZSk7CisgICAgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50
PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZl
bnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5vZGU+IG1fbmV3Rm9j
dXNlZE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc0YTY0YzJjNTc5NmM4MzdkOWFkZjdm
YTU2ZjZlMjNhM2VjMDM2YmYuLmU5ZmM3NjIxOTVkNmExMDJlMzU5ZTdkY2M5YzgyMDViNTBjMmVl
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MjMsNyArMjQyMyw3IEBAIHZvaWQgTm9kZTo6ZGlz
cGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGly
ZWN0aW9uKQogICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCkpCiAgICAgICAgIGRvY3VtZW50KCkt
PnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5lbGVtZW50RGlkRm9jdXModGhpcyk7CiAgICAg
Ci0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEZvY3VzRXZlbnREaXNw
YXRjaE1lZGlhdG9yOjpjcmVhdGUob2xkRm9jdXNlZE5vZGUpKTsKKyAgICBkaXNwYXRjaFNjb3Bl
ZEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRl
KEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNl
LCBkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCAwLCAwKSwgb2xkRm9jdXNlZE5vZGUpKTsKIH0K
IAogdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3Vz
ZWROb2RlKQpAQCAtMjQzMSw3ICsyNDMxLDcgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVu
dChQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQogICAgIGlmIChkb2N1bWVudCgpLT5w
YWdlKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5l
bGVtZW50RGlkQmx1cih0aGlzKTsKIAotICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVu
dCh0aGlzLCBCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUobmV3Rm9jdXNlZE5vZGUp
KTsKKyAgICBkaXNwYXRjaFNjb3BlZEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihGb2N1c0V2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1
ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDAsIDApLCBu
ZXdGb2N1c2VkTm9kZSkpOwogfQogCiB2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGIwOTU0NmEyMjE0NDhmMjAzMDUxYzZjNzNmOGUyY2M3Zjk5ZGY3OGMuLjVhMjM4MWJm
MmI5NTllNGU0YTNmOTRjNGE2NDg3ZTY2YTg3ZTU5OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMy0wMi0wNyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgU3VwcG9ydCBhIHJlbGF0ZWRUYXJnZXQgYXR0cmlidXRlIG9uIGZvY3VzL2JsdXIgZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxNzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBidWcg
NzYyMTYsIHdlIHN1cHBvcnRlZCBhIHJlbGF0ZWRUYXJnZXQgYXR0cmlidXRlIG9uCisgICAgICAg
IGZvY3VzaW4vZm9jdXNvdXQgZXZlbnRzLiBXZSBzaG91bGQgYWxzbyBzdXBwb3J0IGl0IG9uIGZv
Y3VzL2JsdXIgZXZlbnRzLgorCisgICAgICAgIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hp
dmVzL1B1YmxpYy93d3ctZG9tLzIwMTJPY3REZWMvMDA2MS5odG1sCisgICAgICAgIGZvciB0aGUg
d3d3LWRvbSBkaXNjdXNzaW9uLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1i
b3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcmVsYXRl
ZC10YXJnZXQtZm9jdXNldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMv
cmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sOgorCiAyMDEzLTAyLTA3ICBNYXR0IEZhbGtl
bmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSb2xsb3V0IHIxNDIwNTgg
dmFyaW91cyBjcmFzaGVzIGFuZCB0aW1lb3V0cyBvbiBBcHBsZU1hYyBhbmQgQ2hyb21pdW0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZl
bnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91
bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCA0MGNlYmMyN2NlZWMxMGRlNGM2M2M3NGQ0
NzUxN2MzYjc3YTBlMzQ1Li5kYjg1ZTc2NmRhMDRmY2I5MTEwYjFmYjJhNzRlZTkwMDM2NDIxNmRl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5
LWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC03MSwxMyArNzEsMTMgQEAgUEFT
UyBkaXNwYXRjaGVkRXZlbnQoImZvY3Vzb3V0IikgaXMgWyJkaXZIKDwtc2hhZG93SykoQGRpdkgp
IiwgInNoYWRvd0coPC1zaGFkb3cKIAogTW92ZSBmb2N1cyBmcm9tIGEgbm9kZSB0byBpdHMgc2li
bGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LgogTW92
aW5nIGZvY3VzIGZyb20gZGl2QiB0byBkaXZDCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9jdXMi
KSBpcyBbImRpdkMoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2QyhAZGl2QykiXQotUEFT
UyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBbImRpdkIoQGRpdkEpKGNhcHR1cmluZyBwaGFz
ZSkiLCAiZGl2QihAZGl2QikiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJk
aXZDKDwtZGl2QikoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZD
KSJdCitQQVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsiZGl2Qig8LWRpdkMpKEBkaXZB
KShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXQogCiBPbGQgZm9jdXNl
ZCBub2RlIGFuZCBuZXcgZm9jdXNlZCBub2RlIGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlcywg
Y3Jvc3Npbmcgc2hhZG93IGJvdW5kYXJpZXMuIE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQgaXMg
bm90IGRpc3BhdGNoZWQgYmV5b25kIHRoZSBsb3dlc3QgY29tbW9uIGJvdW5kYXJ5LgogTW92aW5n
IGZvY3VzIGZyb20gc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCB0byBzaGFkb3dEL3NoYWRv
d0svZGl2TAotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJzaGFkb3dLKEBkaXZK
KShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0soQHNoYWRvd0spIiwgImRpdkwoQGRpdkwpIl0K
LVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJzaGFkb3dGKEBkaXZFKShjYXB0dXJp
bmcgcGhhc2UpIiwgInNoYWRvd0YoQHNoYWRvd0YpIiwgInNoYWRvd0coQHNoYWRvd0cpIiwgImRp
dkgoQGRpdkgpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsic2hhZG93Syg8
LXNoYWRvd0YpKEBkaXZKKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0soPC1zaGFkb3dGKShA
c2hhZG93SykiLCAiZGl2TCg8LXNoYWRvd0YpKEBkaXZMKSJdCitQQVNTIGRpc3BhdGNoZWRFdmVu
dCgiYmx1ciIpIGlzIFsic2hhZG93Rig8LXNoYWRvd0spKEBkaXZFKShjYXB0dXJpbmcgcGhhc2Up
IiwgInNoYWRvd0YoPC1zaGFkb3dLKShAc2hhZG93RikiLCAic2hhZG93Ryg8LXNoYWRvd0spKEBz
aGFkb3dHKSIsICJkaXZIKDwtc2hhZG93SykoQGRpdkgpIl0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKaW5kZXggOGRmYzBjNzY0
NTg2MzIyMjI5ZjVlN2ViMDQzODZmYTU4M2Y2YjJmZS4uOGJhN2ZiNWQzZjU1NmE4MzJmNTY1Mzdi
YzIzMGRhZmU5NmJjZjJlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sCkBAIC0xOTQsMTMgKzE5NCwxMyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAvLyBUZXN0IGZvciBmb2N1cy9ibHVyIGV2ZW50cy4gRXZlbnQg
bGlzdG5lcnMgc2hvdWxkIGJlIHJlZ2lzdGVyZCBvbiBjYXB0dXJlaW5nIHBoYXNlLgogICAgIG1v
dmVGb2N1cygnZGl2QicsICdkaXZDJywKICAgICAgICAgICAgICAgJ01vdmUgZm9jdXMgZnJvbSBh
IG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRv
dyBib3VuZGFyeS4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywg
J1siZGl2QyhAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZDKEBkaXZDKSJdJyk7Ci0gICAg
c2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2QihAZGl2QSkoY2FwdHVy
aW5nIHBoYXNlKSIsICJkaXZCKEBkaXZCKSJdJyk7CisgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRF
dmVudCgiZm9jdXMiKScsICdbImRpdkMoPC1kaXZCKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIs
ICJkaXZDKDwtZGl2QikoQGRpdkMpIl0nKTsKKyAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50
KCJibHVyIiknLCAnWyJkaXZCKDwtZGl2QykoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2
Qig8LWRpdkMpKEBkaXZCKSJdJyk7CiAKICAgICBtb3ZlRm9jdXMoJ3NoYWRvd0Qvc2hhZG93Ri9z
aGFkb3dHL2RpdkgnLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnLAogICAgICAgICAgICAgICAnT2xk
IGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBzZXBhcmF0ZWQgc3Vi
dHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtpbmcgc3VyZSB0aGF0IGFuIGV2
ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0IGNvbW1vbiBib3VuZGFyeS4n
KTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1sic2hhZG93SyhA
ZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKEBzaGFkb3dLKSIsICJkaXZMKEBkaXZM
KSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1sic2hhZG93
RihAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKEBzaGFkb3dGKSIsICJzaGFkb3dH
KEBzaGFkb3dHKSIsICJkaXZIKEBkaXZIKSJdJyk7CisgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRF
dmVudCgiZm9jdXMiKScsICdbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBo
YXNlKSIsICJzaGFkb3dLKDwtc2hhZG93RikoQHNoYWRvd0spIiwgImRpdkwoPC1zaGFkb3dGKShA
ZGl2TCkiXScpOworICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdbInNo
YWRvd0YoPC1zaGFkb3dLKShAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKDwtc2hh
ZG93SykoQHNoYWRvd0YpIiwgInNoYWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAiZGl2SCg8
LXNoYWRvd0spKEBkaXZIKSJdJyk7CiB9CiAKIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC1leHBlY3Rl
ZC50eHQKaW5kZXggMzhiOWIzMDM2OTNhMmE2MWZkMTUyMmYwMDQ2ODgxNjRiM2RiMTE3NS4uNDk4
ZjU3Y2M2NTBhODU2MWE3OWIxMzE5NjQxN2VlODFmMGZmMDliYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC1l
eHBlY3RlZC50eHQKQEAgLTEsOSArMSwxNSBAQAogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlz
IG51bGwKK1BBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBudWxsCitQQVNTIGV2ZW50LnJlbGF0
ZWRUYXJnZXQgaXMgaW5wdXQyCiBQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQyCiBQ
QVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQxCitQQVNTIGV2ZW50LnJlbGF0ZWRUYXJn
ZXQgaXMgaW5wdXQxCiBQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQzCitQQVNTIGV2
ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQzCitQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMg
aW5wdXQyCiBQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQyCiBQQVNTIGV2ZW50LnJl
bGF0ZWRUYXJnZXQgaXMgaW5wdXQ0CitQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgaW5wdXQ0
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAppbmRleCBmZDc2MzUzMjk1YjlhNjNkODEyNjc1YjdkOWNiZTVkYmY1YWJmNTM0Li5lZTRl
MTJhODE3ZmM5ZDI4NTRhYTdkOGU4MGVjYzgyYzBjYTY1Mzg0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sCkBAIC0x
OSwxMCArMTksMTYgQEAgdmFyIGlucHV0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1
dDMnKTsKIAogaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVu
dCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdudWxsJyk7IH0pOwogaW5wdXQx
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUo
J2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQyJyk7IH0pOworaW5wdXQxLmFkZEV2ZW50TGlz
dGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRU
YXJnZXQnLCAnbnVsbCcpOyB9KTsKK2lucHV0MS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgZnVu
Y3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQyJyk7
IH0pOwogaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkg
eyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDEnKTsgfSk7CiBpbnB1dDIu
YWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgn
ZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDMnKTsgfSk7CitpbnB1dDIuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRh
cmdldCcsICdpbnB1dDEnKTsgfSk7CitpbnB1dDIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIGZ1
bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0Mycp
OyB9KTsKIGlucHV0My5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQp
IHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQyJyk7IH0pOwotaW5wdXQz
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUo
J2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQ0Jyk7IGZpbmlzaEpTVGVzdCgpOyB9KTsKK2lu
cHV0My5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3Vs
ZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0NCcpOyB9KTsKK2lucHV0My5hZGRFdmVu
dExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxh
dGVkVGFyZ2V0JywgJ2lucHV0MicpOyB9KTsKK2lucHV0My5hZGRFdmVudExpc3RlbmVyKCJibHVy
IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5w
dXQ0Jyk7IGZpbmlzaEpTVGVzdCgpOyB9KTsKIAogZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKysp
IHsKICAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187216</attachid>
            <date>2013-02-07 18:48:27 -0800</date>
            <delta_ts>2013-02-07 21:35:02 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-109176-20130208114502.patch</filename>
            <type>text/plain</type>
            <size>13962</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxOWE2NjM0NzhmNTZi
YWUzYjFlODY2YjBhYmY1ZjQ5ZjAxYzVmMi4uNGU0OThkYzRmZjkxOWFlNzdjMmI2ZDM1ZTEyMDg5
OWUyYjRiZjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQg
YSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2
ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKwor
ICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8y
MDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRp
YXRvci5oOgorICAgICAgICAoRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAo
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KToKKworMjAxMy0wMi0wNyAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW1Y4XSAjaWZuZGVmIE5ERUJVRyBp
cyByZWR1bmRhbnQgZm9yIGFzc2VydENvbnRleHRIYXNDb3JyZWN0UHJvdG90eXBlKCkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE2NwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCmluZGV4IDhkYjNjYjFi
YTkyMWQzNzBiZDY3ZTQ1ZGRjYWZkODY2MjNmMzdmMmYuLmQ5ZGI2MzBjMTQwOWRkOTJmYWVkN2Mz
OWYyOTBjY2IxZmIzMTRkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
TWVkaWF0b3IuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgYm9vbCBFdmVudERpc3BhdGNoTWVkaWF0
b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAogICAg
IHJldHVybiBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpOwogfQogCi1Q
YXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCitQYXNzUmVm
UHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZv
Y3VzZWROb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3Iob2xkRm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBvbGRGb2N1c2VkTm9kZSkpOwogfQogCi1Gb2N1
c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKQorRm9j
dXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorICAg
IDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9vbGRGb2N1c2VkTm9kZShv
bGRGb2N1c2VkTm9kZSkKIHsKIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBib29sIEZvY3VzRXZlbnRE
aXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hl
cikgY29ucwogICAgIHJldHVybiBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQo
ZGlzcGF0Y2hlcik7CiB9CiAKLVBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4g
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCitQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVu
dERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3IobmV3Rm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoZXZlbnQsIG5ld0ZvY3VzZWROb2Rl
KSk7CiB9CiAKLUJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OkJsdXJFdmVudERpc3BhdGNoTWVk
aWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBm
YWxzZSkpCitCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWRO
b2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9uZXdGb2N1
c2VkTm9kZShuZXdGb2N1c2VkTm9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuaAppbmRleCAyNmI2MzA1YTJlZTYzZDcwOGVjNGM0NzBkYjVhZjcyNzlj
NzljZWNhLi42NDBmNmJiZWNmZjg5Y2Y5YWYyOTkzOTI1Y2FmMjBkMzhlNzYzZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5oCkBAIC01OSwxOCArNTksMTgg
QEAgcHJpdmF0ZToKIAogY2xhc3MgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3Bh
dGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fb2xkRm9jdXNlZE5vZGU7CiB9OwogCiBjbGFzcyBCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2Rl
Pik7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFz
c1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CisgICAgQmx1ckV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBi
b29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbmV3Rm9jdXNlZE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc0
YTY0YzJjNTc5NmM4MzdkOWFkZjdmYTU2ZjZlMjNhM2VjMDM2YmYuLmRjZTU5ZWRiYTg2MGQzZTE3
MzQ2MDg5ZWE4NmRlNTVhNmJmY2I3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MjIsOCArMjQy
Miw5IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKQogewogICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCkpCiAgICAgICAgIGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5lbGVt
ZW50RGlkRm9jdXModGhpcyk7Ci0gICAgCi0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2
ZW50KHRoaXMsIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUob2xkRm9jdXNlZE5v
ZGUpKTsKKworICAgIFJlZlB0cjxGb2N1c0V2ZW50PiBldmVudCA9IEZvY3VzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLT5kZWZh
dWx0VmlldygpLCAwLCAwKTsKKyAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhp
cywgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5yZWxlYXNlKCksIG9s
ZEZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKQEAgLTI0MzEsNyArMjQzMiw4IEBAIHZvaWQgTm9k
ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAg
ICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5jbGllbnQoKS0+ZWxlbWVudERpZEJsdXIodGhpcyk7CiAKLSAgICBFdmVudERpc3Bh
dGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3Jl
YXRlKG5ld0ZvY3VzZWROb2RlKSk7CisgICAgUmVmUHRyPEZvY3VzRXZlbnQ+IGV2ZW50ID0gRm9j
dXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCk7CisgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNw
YXRjaEV2ZW50KHRoaXMsIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5y
ZWxlYXNlKCksIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hDaGFu
Z2VFdmVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNmU2OTNkN2M4NTJhNjAzZGVmNTVjNjZmZjBiZDQ1MDEzMWUwMzBm
ZC4uMTI5MDcyYjU0NzE4MjEwMWE4ODZlNzBiMWZhZTRlYTBiNjgxOGFmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTAyLTA3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBTdXBwb3J0IGEgcmVsYXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMv
Ymx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAg
SW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQgYSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgor
ICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBp
dCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKworICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9y
Zy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBm
b3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbDoKKwogMjAxMy0wMi0wNyAgWm9s
dGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNd
IFR1cm4gc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzIHRlc3Qg
aW50byBhIHJlZnRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggNDBjZWJj
MjdjZWVjMTBkZTRjNjNjNzRkNDc1MTdjM2I3N2EwZTM0NS4uZGI4NWU3NjZkYTA0ZmNiOTExMGIx
ZmIyYTc0ZWU5MDAzNjQyMTZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
NzEsMTMgKzcxLDEzIEBAIFBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c291dCIpIGlzIFsiZGl2
SCg8LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93CiAKIE1vdmUgZm9jdXMgZnJv
bSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNo
YWRvdyBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIGRpdkIgdG8gZGl2QwotUEFTUyBkaXNw
YXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoQGRpdkMpIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJkaXZCKEBk
aXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2
ZW50KCJmb2N1cyIpIGlzIFsiZGl2Qyg8LWRpdkIpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoPC1kaXZCKShAZGl2QykiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBb
ImRpdkIoPC1kaXZDKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKDwtZGl2QykoQGRp
dkIpIl0KIAogT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBz
ZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtpbmcgc3Vy
ZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0IGNvbW1v
biBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2Rp
dkggdG8gc2hhZG93RC9zaGFkb3dLL2RpdkwKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIp
IGlzIFsic2hhZG93SyhAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKEBzaGFkb3dL
KSIsICJkaXZMKEBkaXZMKSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsic2hh
ZG93RihAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKEBzaGFkb3dGKSIsICJzaGFk
b3dHKEBzaGFkb3dHKSIsICJkaXZIKEBkaXZIKSJdCitQQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKSBpcyBbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJz
aGFkb3dLKDwtc2hhZG93RikoQHNoYWRvd0spIiwgImRpdkwoPC1zaGFkb3dGKShAZGl2TCkiXQor
UEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBbInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2
RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNo
YWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAiZGl2SCg8LXNoYWRvd0spKEBkaXZIKSJdCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCmluZGV4IDhkZmMwYzc2NDU4NjMyMjIyOWY1ZTdlYjA0Mzg2ZmE1ODNmNmIyZmUuLjhiYTdm
YjVkM2Y1NTZhODMyZjU2NTM3YmMyMzBkYWZlOTZiY2YyZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbApAQCAt
MTk0LDEzICsxOTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gVGVzdCBmb3IgZm9jdXMv
Ymx1ciBldmVudHMuIEV2ZW50IGxpc3RuZXJzIHNob3VsZCBiZSByZWdpc3RlcmQgb24gY2FwdHVy
ZWluZyBwaGFzZS4KICAgICBtb3ZlRm9jdXMoJ2RpdkInLCAnZGl2QycsCiAgICAgICAgICAgICAg
ICdNb3ZlIGZvY3VzIGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBh
cmUgb3V0c2lkZSBvZiBzaGFkb3cgYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgiZm9jdXMiKScsICdbImRpdkMoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2
QyhAZGl2QykiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdb
ImRpdkIoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2QihAZGl2QikiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJkaXZDKDwtZGl2QikoQGRpdkEp
KGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdJyk7CisgICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0
dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXScpOwogCiAgICAgbW92ZUZvY3Vz
KCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Sy9kaXZMJywK
ICAgICAgICAgICAgICAgJ09sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhp
c3QgaW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFr
aW5nIHN1cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2Vz
dCBjb21tb24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKScsICdbInNoYWRvd0soQGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93SyhAc2hh
ZG93SykiLCAiZGl2TChAZGl2TCkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQo
ImJsdXIiKScsICdbInNoYWRvd0YoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93RihA
c2hhZG93RikiLCAic2hhZG93RyhAc2hhZG93RykiLCAiZGl2SChAZGl2SCkiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJzaGFkb3dLKDwtc2hhZG93Riko
QGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIs
ICJkaXZMKDwtc2hhZG93RikoQGRpdkwpIl0nKTsKKyAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKDwtc2hhZG93SykoQGRpdkUpKGNhcHR1cmluZyBwaGFz
ZSkiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSIsICJzaGFkb3dHKDwtc2hhZG93Syko
QHNoYWRvd0cpIiwgImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiXScpOwogfQogCiB0ZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0
LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDM4YjliMzAzNjkzYTJhNjFmZDE1MjJmMDA0
Njg4MTY0YjNkYjExNzUuLjQ5OGY1N2NjNjUwYTg1NjFhNzliMTMxOTY0MTdlZTgxZjBmZjA5YmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3Vz
ZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQt
dGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsMTUgQEAKIFBBU1MgZXZl
bnQucmVsYXRlZFRhcmdldCBpcyBudWxsCitQQVNTIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgbnVs
bAorUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MgogUEFTUyBldmVudC5yZWxhdGVk
VGFyZ2V0IGlzIGlucHV0MgogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MQorUEFT
UyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MQogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0
IGlzIGlucHV0MworUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MworUEFTUyBldmVu
dC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MgogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlu
cHV0MgogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0NAorUEFTUyBldmVudC5yZWxh
dGVkVGFyZ2V0IGlzIGlucHV0NAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVk
LXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVk
LXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKaW5kZXggZmQ3NjM1MzI5NWI5YTYzZDgxMjY3NWI3ZDlj
YmU1ZGJmNWFiZjUzNC4uZWU0ZTEyYTgxN2ZjOWQyODU0YWE3ZDhlODBlY2M4MmMwY2E2NTM4NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNl
dmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZv
Y3VzZXZlbnQuaHRtbApAQCAtMTksMTAgKzE5LDE2IEBAIHZhciBpbnB1dDMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5wdXQzJyk7CiAKIGlucHV0MS5hZGRFdmVudExpc3RlbmVyKCJmb2N1
c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAn
bnVsbCcpOyB9KTsKIGlucHV0MS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9u
KGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0MicpOyB9KTsK
K2lucHV0MS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3Vs
ZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ251bGwnKTsgfSk7CitpbnB1dDEuYWRkRXZlbnRM
aXN0ZW5lcigiYmx1ciIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVk
VGFyZ2V0JywgJ2lucHV0MicpOyB9KTsKIGlucHV0Mi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2lu
IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5w
dXQxJyk7IH0pOwogaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24o
ZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQzJyk7IH0pOwor
aW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxk
QmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQxJyk7IH0pOworaW5wdXQyLmFkZEV2ZW50
TGlzdGVuZXIoImJsdXIiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRl
ZFRhcmdldCcsICdpbnB1dDMnKTsgfSk7CiBpbnB1dDMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNp
biIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lu
cHV0MicpOyB9KTsKLWlucHV0My5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9u
KGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0NCcpOyBmaW5p
c2hKU1Rlc3QoKTsgfSk7CitpbnB1dDMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBmdW5j
dGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDQnKTsg
fSk7CitpbnB1dDMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbihldmVudCkgeyBz
aG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDInKTsgfSk7CitpbnB1dDMuYWRk
RXZlbnRMaXN0ZW5lcigiYmx1ciIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5y
ZWxhdGVkVGFyZ2V0JywgJ2lucHV0NCcpOyBmaW5pc2hKU1Rlc3QoKTsgfSk7CiAKIGZvciAodmFy
IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187233</attachid>
            <date>2013-02-07 21:35:05 -0800</date>
            <delta_ts>2013-02-07 21:42:57 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-109176-20130208143140.patch</filename>
            <type>text/plain</type>
            <size>14270</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxOWE2NjM0NzhmNTZi
YWUzYjFlODY2YjBhYmY1ZjQ5ZjAxYzVmMi4uNGU0OThkYzRmZjkxOWFlNzdjMmI2ZDM1ZTEyMDg5
OWUyYjRiZjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQg
YSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2
ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKwor
ICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8y
MDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRp
YXRvci5oOgorICAgICAgICAoRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAo
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KToKKworMjAxMy0wMi0wNyAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW1Y4XSAjaWZuZGVmIE5ERUJVRyBp
cyByZWR1bmRhbnQgZm9yIGFzc2VydENvbnRleHRIYXNDb3JyZWN0UHJvdG90eXBlKCkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE2NwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCmluZGV4IDhkYjNjYjFi
YTkyMWQzNzBiZDY3ZTQ1ZGRjYWZkODY2MjNmMzdmMmYuLmQ5ZGI2MzBjMTQwOWRkOTJmYWVkN2Mz
OWYyOTBjY2IxZmIzMTRkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
TWVkaWF0b3IuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgYm9vbCBFdmVudERpc3BhdGNoTWVkaWF0
b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAogICAg
IHJldHVybiBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpOwogfQogCi1Q
YXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCitQYXNzUmVm
UHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZv
Y3VzZWROb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3Iob2xkRm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBvbGRGb2N1c2VkTm9kZSkpOwogfQogCi1Gb2N1
c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKQorRm9j
dXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorICAg
IDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9vbGRGb2N1c2VkTm9kZShv
bGRGb2N1c2VkTm9kZSkKIHsKIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBib29sIEZvY3VzRXZlbnRE
aXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hl
cikgY29ucwogICAgIHJldHVybiBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQo
ZGlzcGF0Y2hlcik7CiB9CiAKLVBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4g
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCitQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVu
dERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3IobmV3Rm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoZXZlbnQsIG5ld0ZvY3VzZWROb2Rl
KSk7CiB9CiAKLUJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OkJsdXJFdmVudERpc3BhdGNoTWVk
aWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBm
YWxzZSkpCitCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWRO
b2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9uZXdGb2N1
c2VkTm9kZShuZXdGb2N1c2VkTm9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuaAppbmRleCAyNmI2MzA1YTJlZTYzZDcwOGVjNGM0NzBkYjVhZjcyNzlj
NzljZWNhLi42NDBmNmJiZWNmZjg5Y2Y5YWYyOTkzOTI1Y2FmMjBkMzhlNzYzZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5oCkBAIC01OSwxOCArNTksMTgg
QEAgcHJpdmF0ZToKIAogY2xhc3MgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3Bh
dGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fb2xkRm9jdXNlZE5vZGU7CiB9OwogCiBjbGFzcyBCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2Rl
Pik7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFz
c1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CisgICAgQmx1ckV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBi
b29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbmV3Rm9jdXNlZE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc0
YTY0YzJjNTc5NmM4MzdkOWFkZjdmYTU2ZjZlMjNhM2VjMDM2YmYuLmRjZTU5ZWRiYTg2MGQzZTE3
MzQ2MDg5ZWE4NmRlNTVhNmJmY2I3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MjIsOCArMjQy
Miw5IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKQogewogICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCkpCiAgICAgICAgIGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5lbGVt
ZW50RGlkRm9jdXModGhpcyk7Ci0gICAgCi0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2
ZW50KHRoaXMsIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUob2xkRm9jdXNlZE5v
ZGUpKTsKKworICAgIFJlZlB0cjxGb2N1c0V2ZW50PiBldmVudCA9IEZvY3VzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLT5kZWZh
dWx0VmlldygpLCAwLCAwKTsKKyAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhp
cywgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5yZWxlYXNlKCksIG9s
ZEZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKQEAgLTI0MzEsNyArMjQzMiw4IEBAIHZvaWQgTm9k
ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAg
ICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5jbGllbnQoKS0+ZWxlbWVudERpZEJsdXIodGhpcyk7CiAKLSAgICBFdmVudERpc3Bh
dGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3Jl
YXRlKG5ld0ZvY3VzZWROb2RlKSk7CisgICAgUmVmUHRyPEZvY3VzRXZlbnQ+IGV2ZW50ID0gRm9j
dXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCk7CisgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNw
YXRjaEV2ZW50KHRoaXMsIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5y
ZWxlYXNlKCksIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hDaGFu
Z2VFdmVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNmU2OTNkN2M4NTJhNjAzZGVmNTVjNjZmZjBiZDQ1MDEzMWUwMzBm
ZC4uMTI5MDcyYjU0NzE4MjEwMWE4ODZlNzBiMWZhZTRlYTBiNjgxOGFmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTAyLTA3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBTdXBwb3J0IGEgcmVsYXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMv
Ymx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAg
SW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQgYSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgor
ICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBp
dCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKworICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9y
Zy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBm
b3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbDoKKwogMjAxMy0wMi0wNyAgWm9s
dGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNd
IFR1cm4gc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzIHRlc3Qg
aW50byBhIHJlZnRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggNDBjZWJj
MjdjZWVjMTBkZTRjNjNjNzRkNDc1MTdjM2I3N2EwZTM0NS4uZGI4NWU3NjZkYTA0ZmNiOTExMGIx
ZmIyYTc0ZWU5MDAzNjQyMTZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
NzEsMTMgKzcxLDEzIEBAIFBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c291dCIpIGlzIFsiZGl2
SCg8LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93CiAKIE1vdmUgZm9jdXMgZnJv
bSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNo
YWRvdyBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIGRpdkIgdG8gZGl2QwotUEFTUyBkaXNw
YXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoQGRpdkMpIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJkaXZCKEBk
aXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2
ZW50KCJmb2N1cyIpIGlzIFsiZGl2Qyg8LWRpdkIpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoPC1kaXZCKShAZGl2QykiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBb
ImRpdkIoPC1kaXZDKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKDwtZGl2QykoQGRp
dkIpIl0KIAogT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBz
ZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtpbmcgc3Vy
ZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0IGNvbW1v
biBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2Rp
dkggdG8gc2hhZG93RC9zaGFkb3dLL2RpdkwKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIp
IGlzIFsic2hhZG93SyhAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKEBzaGFkb3dL
KSIsICJkaXZMKEBkaXZMKSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsic2hh
ZG93RihAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKEBzaGFkb3dGKSIsICJzaGFk
b3dHKEBzaGFkb3dHKSIsICJkaXZIKEBkaXZIKSJdCitQQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKSBpcyBbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJz
aGFkb3dLKDwtc2hhZG93RikoQHNoYWRvd0spIiwgImRpdkwoPC1zaGFkb3dGKShAZGl2TCkiXQor
UEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBbInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2
RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNo
YWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAiZGl2SCg8LXNoYWRvd0spKEBkaXZIKSJdCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCmluZGV4IDhkZmMwYzc2NDU4NjMyMjIyOWY1ZTdlYjA0Mzg2ZmE1ODNmNmIyZmUuLjhiYTdm
YjVkM2Y1NTZhODMyZjU2NTM3YmMyMzBkYWZlOTZiY2YyZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbApAQCAt
MTk0LDEzICsxOTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gVGVzdCBmb3IgZm9jdXMv
Ymx1ciBldmVudHMuIEV2ZW50IGxpc3RuZXJzIHNob3VsZCBiZSByZWdpc3RlcmQgb24gY2FwdHVy
ZWluZyBwaGFzZS4KICAgICBtb3ZlRm9jdXMoJ2RpdkInLCAnZGl2QycsCiAgICAgICAgICAgICAg
ICdNb3ZlIGZvY3VzIGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBh
cmUgb3V0c2lkZSBvZiBzaGFkb3cgYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgiZm9jdXMiKScsICdbImRpdkMoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2
QyhAZGl2QykiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdb
ImRpdkIoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2QihAZGl2QikiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJkaXZDKDwtZGl2QikoQGRpdkEp
KGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdJyk7CisgICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0
dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXScpOwogCiAgICAgbW92ZUZvY3Vz
KCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Sy9kaXZMJywK
ICAgICAgICAgICAgICAgJ09sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhp
c3QgaW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFr
aW5nIHN1cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2Vz
dCBjb21tb24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKScsICdbInNoYWRvd0soQGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93SyhAc2hh
ZG93SykiLCAiZGl2TChAZGl2TCkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQo
ImJsdXIiKScsICdbInNoYWRvd0YoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93RihA
c2hhZG93RikiLCAic2hhZG93RyhAc2hhZG93RykiLCAiZGl2SChAZGl2SCkiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJzaGFkb3dLKDwtc2hhZG93Riko
QGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIs
ICJkaXZMKDwtc2hhZG93RikoQGRpdkwpIl0nKTsKKyAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKDwtc2hhZG93SykoQGRpdkUpKGNhcHR1cmluZyBwaGFz
ZSkiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSIsICJzaGFkb3dHKDwtc2hhZG93Syko
QHNoYWRvd0cpIiwgImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiXScpOwogfQogCiB0ZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0
LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDM4YjliMzAzNjkzYTJhNjFmZDE1MjJmMDA0
Njg4MTY0YjNkYjExNzUuLmM4ZjBmMTZkMWJhMGVmYjI4ZDIzMmEzMWFiZTVmMjNlMDc1ZDI4YTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3Vz
ZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQt
dGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsNyBAQAotUEFTUyBldmVu
dC5yZWxhdGVkVGFyZ2V0IGlzIG51bGwKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1
dDIKLVBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDEKLVBBU1MgZXZlbnQucmVsYXRl
ZFRhcmdldCBpcyBpbnB1dDMKLVBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDIKLVBB
U1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDQKK0ZBSUwgZXZlbnQucmVsYXRlZFRhcmdl
dCBzaG91bGQgYmUgW29iamVjdCBIVE1MSW5wdXRFbGVtZW50XS4gV2FzIFtvYmplY3QgSFRNTElu
cHV0RWxlbWVudF0uCitGQUlMIGV2ZW50LnJlbGF0ZWRUYXJnZXQgc2hvdWxkIGJlIFtvYmplY3Qg
SFRNTElucHV0RWxlbWVudF0uIFdhcyBbb2JqZWN0IEhUTUxJbnB1dEVsZW1lbnRdLgorRkFJTCBl
dmVudC5yZWxhdGVkVGFyZ2V0IHNob3VsZCBiZSBudWxsLiBXYXMgW29iamVjdCBIVE1MSW5wdXRF
bGVtZW50XS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpAQCAtMTIsNCArMTAsNCBAQCBDaGVja3MgdGhhdCB0aGUgcmVsYXRlZFRhcmdldCBhdHRyaWJ1
dGUgZm9yIEZvY3VzRXZlbnQgb2JqZWN0cyBpcyBiZWluZyBzZXQgY29ycgogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCiAKLSAgIAorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbAppbmRleCBmZDc2MzUzMjk1Yjlh
NjNkODEyNjc1YjdkOWNiZTVkYmY1YWJmNTM0Li42NDg5MjdmMmEwYTYzODg0MjVjY2QzNzJkZDk4
MjM2ZDY5NzVhYzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVk
LXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVs
YXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sCkBAIC03LDcgKzcsNiBAQAogPGlucHV0IGlkPSJp
bnB1dDEiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8aW5wdXQgaWQ9ImlucHV0MiIgdHlwZT0idGV4
dCI+PC9pbnB1dD4KIDxpbnB1dCBpZD0iaW5wdXQzIiB0eXBlPSJ0ZXh0Ij48L2lucHV0PgotPGlu
cHV0IGlkPSJpbnB1dDQiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8c2NyaXB0PgoganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKQEAgLTE1LDE2ICsxNCwxNCBAQCBkZXNjcmlwdGlvbigiQ2hlY2tzIHRo
YXQgdGhlIHJlbGF0ZWRUYXJnZXQgYXR0cmlidXRlIGZvciBGb2N1c0V2ZW50IG9iamVjdHMgaXMg
YgogCiB2YXIgaW5wdXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MScpOwogdmFy
IGlucHV0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDInKTsKLXZhciBpbnB1dDMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQzJyk7CitpbnB1dDEuZm9jdXMoKTsKIAot
aW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91
bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdudWxsJyk7IH0pOworaW5wdXQxLmFkZEV2ZW50
TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZU51bGwoJ2V2ZW50
LnJlbGF0ZWRUYXJnZXQnKTsgfSk7CiBpbnB1dDEuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQi
LCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1
dDInKTsgfSk7Ci1pbnB1dDIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZ1bmN0aW9uKGV2
ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0MScpOyB9KTsKLWlu
cHV0Mi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3Vs
ZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0MycpOyB9KTsKLWlucHV0My5hZGRFdmVu
dExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJl
bGF0ZWRUYXJnZXQnLCAnaW5wdXQyJyk7IH0pOwotaW5wdXQzLmFkZEV2ZW50TGlzdGVuZXIoImZv
Y3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQn
LCAnaW5wdXQ0Jyk7IGZpbmlzaEpTVGVzdCgpOyB9KTsKK2lucHV0My5hZGRFdmVudExpc3RlbmVy
KCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJn
ZXQnLCAnaW5wdXQxJyk7IH0pOworaW5wdXQzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iiwg
ZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQz
Jyk7IGZpbmlzaEpTVGVzdCgpOyB9KTsKIAotZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAgZXZlbnRTZW5kZXIua2V5RG93bign
XHQnKTsKIH0KIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187235</attachid>
            <date>2013-02-07 21:43:01 -0800</date>
            <delta_ts>2013-02-07 22:56:51 -0800</delta_ts>
            <desc>patch that fixed test cases for now</desc>
            <filename>bug-109176-20130208143935.patch</filename>
            <type>text/plain</type>
            <size>14218</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxOWE2NjM0NzhmNTZi
YWUzYjFlODY2YjBhYmY1ZjQ5ZjAxYzVmMi4uNGU0OThkYzRmZjkxOWFlNzdjMmI2ZDM1ZTEyMDg5
OWUyYjRiZjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQg
YSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2
ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKwor
ICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8y
MDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRp
YXRvci5oOgorICAgICAgICAoRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAo
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KToKKworMjAxMy0wMi0wNyAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW1Y4XSAjaWZuZGVmIE5ERUJVRyBp
cyByZWR1bmRhbnQgZm9yIGFzc2VydENvbnRleHRIYXNDb3JyZWN0UHJvdG90eXBlKCkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE2NwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCmluZGV4IDhkYjNjYjFi
YTkyMWQzNzBiZDY3ZTQ1ZGRjYWZkODY2MjNmMzdmMmYuLmQ5ZGI2MzBjMTQwOWRkOTJmYWVkN2Mz
OWYyOTBjY2IxZmIzMTRkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
TWVkaWF0b3IuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgYm9vbCBFdmVudERpc3BhdGNoTWVkaWF0
b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAogICAg
IHJldHVybiBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpOwogfQogCi1Q
YXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCitQYXNzUmVm
UHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZv
Y3VzZWROb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3Iob2xkRm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBvbGRGb2N1c2VkTm9kZSkpOwogfQogCi1Gb2N1
c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKQorRm9j
dXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorICAg
IDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9vbGRGb2N1c2VkTm9kZShv
bGRGb2N1c2VkTm9kZSkKIHsKIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBib29sIEZvY3VzRXZlbnRE
aXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hl
cikgY29ucwogICAgIHJldHVybiBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQo
ZGlzcGF0Y2hlcik7CiB9CiAKLVBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4g
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCitQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVu
dERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3IobmV3Rm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoZXZlbnQsIG5ld0ZvY3VzZWROb2Rl
KSk7CiB9CiAKLUJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OkJsdXJFdmVudERpc3BhdGNoTWVk
aWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBm
YWxzZSkpCitCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWRO
b2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9uZXdGb2N1
c2VkTm9kZShuZXdGb2N1c2VkTm9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuaAppbmRleCAyNmI2MzA1YTJlZTYzZDcwOGVjNGM0NzBkYjVhZjcyNzlj
NzljZWNhLi42NDBmNmJiZWNmZjg5Y2Y5YWYyOTkzOTI1Y2FmMjBkMzhlNzYzZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5oCkBAIC01OSwxOCArNTksMTgg
QEAgcHJpdmF0ZToKIAogY2xhc3MgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3Bh
dGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fb2xkRm9jdXNlZE5vZGU7CiB9OwogCiBjbGFzcyBCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2Rl
Pik7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFz
c1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CisgICAgQmx1ckV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBi
b29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbmV3Rm9jdXNlZE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc0
YTY0YzJjNTc5NmM4MzdkOWFkZjdmYTU2ZjZlMjNhM2VjMDM2YmYuLmRjZTU5ZWRiYTg2MGQzZTE3
MzQ2MDg5ZWE4NmRlNTVhNmJmY2I3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI0MjIsOCArMjQy
Miw5IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKQogewogICAgIGlmIChkb2N1bWVudCgpLT5wYWdl
KCkpCiAgICAgICAgIGRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5lbGVt
ZW50RGlkRm9jdXModGhpcyk7Ci0gICAgCi0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2
ZW50KHRoaXMsIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUob2xkRm9jdXNlZE5v
ZGUpKTsKKworICAgIFJlZlB0cjxGb2N1c0V2ZW50PiBldmVudCA9IEZvY3VzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLT5kZWZh
dWx0VmlldygpLCAwLCAwKTsKKyAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhp
cywgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5yZWxlYXNlKCksIG9s
ZEZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKQEAgLTI0MzEsNyArMjQzMiw4IEBAIHZvaWQgTm9k
ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAg
ICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNo
cm9tZSgpLT5jbGllbnQoKS0+ZWxlbWVudERpZEJsdXIodGhpcyk7CiAKLSAgICBFdmVudERpc3Bh
dGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3Jl
YXRlKG5ld0ZvY3VzZWROb2RlKSk7CisgICAgUmVmUHRyPEZvY3VzRXZlbnQ+IGV2ZW50ID0gRm9j
dXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCk7CisgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNw
YXRjaEV2ZW50KHRoaXMsIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudC5y
ZWxlYXNlKCksIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6ZGlzcGF0Y2hDaGFu
Z2VFdmVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNmU2OTNkN2M4NTJhNjAzZGVmNTVjNjZmZjBiZDQ1MDEzMWUwMzBm
ZC4uMTI5MDcyYjU0NzE4MjEwMWE4ODZlNzBiMWZhZTRlYTBiNjgxOGFmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEzLTAyLTA3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBTdXBwb3J0IGEgcmVsYXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMv
Ymx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAg
SW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQgYSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgor
ICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBp
dCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKworICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9y
Zy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBm
b3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbDoKKwogMjAxMy0wMi0wNyAgWm9s
dGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNd
IFR1cm4gc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQtcmVnaW9uLWZsb3dzIHRlc3Qg
aW50byBhIHJlZnRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggNDBjZWJj
MjdjZWVjMTBkZTRjNjNjNzRkNDc1MTdjM2I3N2EwZTM0NS4uZGI4NWU3NjZkYTA0ZmNiOTExMGIx
ZmIyYTc0ZWU5MDAzNjQyMTZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
NzEsMTMgKzcxLDEzIEBAIFBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c291dCIpIGlzIFsiZGl2
SCg8LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93CiAKIE1vdmUgZm9jdXMgZnJv
bSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNo
YWRvdyBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIGRpdkIgdG8gZGl2QwotUEFTUyBkaXNw
YXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoQGRpdkMpIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJkaXZCKEBk
aXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2
ZW50KCJmb2N1cyIpIGlzIFsiZGl2Qyg8LWRpdkIpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoPC1kaXZCKShAZGl2QykiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBb
ImRpdkIoPC1kaXZDKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKDwtZGl2QykoQGRp
dkIpIl0KIAogT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBz
ZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtpbmcgc3Vy
ZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0IGNvbW1v
biBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2Rp
dkggdG8gc2hhZG93RC9zaGFkb3dLL2RpdkwKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIp
IGlzIFsic2hhZG93SyhAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKEBzaGFkb3dL
KSIsICJkaXZMKEBkaXZMKSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsic2hh
ZG93RihAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKEBzaGFkb3dGKSIsICJzaGFk
b3dHKEBzaGFkb3dHKSIsICJkaXZIKEBkaXZIKSJdCitQQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKSBpcyBbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJz
aGFkb3dLKDwtc2hhZG93RikoQHNoYWRvd0spIiwgImRpdkwoPC1zaGFkb3dGKShAZGl2TCkiXQor
UEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBbInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2
RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNo
YWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAiZGl2SCg8LXNoYWRvd0spKEBkaXZIKSJdCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCmluZGV4IDhkZmMwYzc2NDU4NjMyMjIyOWY1ZTdlYjA0Mzg2ZmE1ODNmNmIyZmUuLjhiYTdm
YjVkM2Y1NTZhODMyZjU2NTM3YmMyMzBkYWZlOTZiY2YyZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbApAQCAt
MTk0LDEzICsxOTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgLy8gVGVzdCBmb3IgZm9jdXMv
Ymx1ciBldmVudHMuIEV2ZW50IGxpc3RuZXJzIHNob3VsZCBiZSByZWdpc3RlcmQgb24gY2FwdHVy
ZWluZyBwaGFzZS4KICAgICBtb3ZlRm9jdXMoJ2RpdkInLCAnZGl2QycsCiAgICAgICAgICAgICAg
ICdNb3ZlIGZvY3VzIGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBh
cmUgb3V0c2lkZSBvZiBzaGFkb3cgYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgiZm9jdXMiKScsICdbImRpdkMoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2
QyhAZGl2QykiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdb
ImRpdkIoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2QihAZGl2QikiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJkaXZDKDwtZGl2QikoQGRpdkEp
KGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdJyk7CisgICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0
dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXScpOwogCiAgICAgbW92ZUZvY3Vz
KCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Sy9kaXZMJywK
ICAgICAgICAgICAgICAgJ09sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhp
c3QgaW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFr
aW5nIHN1cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2Vz
dCBjb21tb24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKScsICdbInNoYWRvd0soQGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93SyhAc2hh
ZG93SykiLCAiZGl2TChAZGl2TCkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQo
ImJsdXIiKScsICdbInNoYWRvd0YoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93RihA
c2hhZG93RikiLCAic2hhZG93RyhAc2hhZG93RykiLCAiZGl2SChAZGl2SCkiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJzaGFkb3dLKDwtc2hhZG93Riko
QGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIs
ICJkaXZMKDwtc2hhZG93RikoQGRpdkwpIl0nKTsKKyAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKDwtc2hhZG93SykoQGRpdkUpKGNhcHR1cmluZyBwaGFz
ZSkiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSIsICJzaGFkb3dHKDwtc2hhZG93Syko
QHNoYWRvd0cpIiwgImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiXScpOwogfQogCiB0ZXN0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0
LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDM4YjliMzAzNjkzYTJhNjFmZDE1MjJmMDA0
Njg4MTY0YjNkYjExNzUuLjk0NjgzMjFkZDRiMDI1ZWQwMmQ4N2RmN2ZlN2RjM2ZjZWQxMjUwNWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3Vz
ZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQt
dGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotUEFTUyBldmVu
dC5yZWxhdGVkVGFyZ2V0IGlzIG51bGwKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1
dDIKK1BBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDIKK1BBU1MgZXZlbnQucmVsYXRl
ZFRhcmdldCBpcyBpbnB1dDEKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDEKIFBB
U1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDMKLVBBU1MgZXZlbnQucmVsYXRlZFRhcmdl
dCBpcyBpbnB1dDIKLVBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDQKK1BBU1MgZXZl
bnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDMKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpAQCAtMTIsNCArMTIsNCBAQCBDaGVja3MgdGhhdCB0aGUgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgZm9yIEZvY3VzRXZlbnQgb2JqZWN0cyBpcyBiZWluZyBzZXQg
Y29ycgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLSAgIAorICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbApp
bmRleCBmZDc2MzUzMjk1YjlhNjNkODEyNjc1YjdkOWNiZTVkYmY1YWJmNTM0Li44YjVlOTNhODc5
NzM3Yzg4ZWJiMWYwOGVkYWMzZDhmZDcwOGMwMjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sCkBAIC03LDcgKzcs
NiBAQAogPGlucHV0IGlkPSJpbnB1dDEiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8aW5wdXQgaWQ9
ImlucHV0MiIgdHlwZT0idGV4dCI+PC9pbnB1dD4KIDxpbnB1dCBpZD0iaW5wdXQzIiB0eXBlPSJ0
ZXh0Ij48L2lucHV0PgotPGlucHV0IGlkPSJpbnB1dDQiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8
c2NyaXB0PgoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKQEAgLTE3LDE0ICsxNiwxNyBAQCB2YXIg
aW5wdXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MScpOwogdmFyIGlucHV0MiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dDInKTsKIHZhciBpbnB1dDMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaW5wdXQzJyk7CiAKLWlucHV0MS5hZGRFdmVudExpc3RlbmVyKCJm
b2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQn
LCAnbnVsbCcpOyB9KTsKK2lucHV0MS5mb2N1cygpOworaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIo
ImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZU51bGwoJ2V2ZW50LnJlbGF0ZWRU
YXJnZXQnKTsgfSk7CiBpbnB1dDEuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBmdW5jdGlv
bihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDInKTsgfSk7
CitpbnB1dDEuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBmdW5jdGlvbihldmVudCkgeyBzaG91
bGRCZU51bGwoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnKTsgfSk7CitpbnB1dDEuYWRkRXZlbnRMaXN0
ZW5lcigiYmx1ciIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFy
Z2V0JywgJ2lucHV0MicpOyB9KTsKIGlucHV0Mi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwg
ZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQx
Jyk7IH0pOwogaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZl
bnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQzJyk7IH0pOwotaW5w
dXQzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRC
ZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDInKTsgfSk7Ci1pbnB1dDMuYWRkRXZlbnRM
aXN0ZW5lcigiZm9jdXNvdXQiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVs
YXRlZFRhcmdldCcsICdpbnB1dDQnKTsgZmluaXNoSlNUZXN0KCk7IH0pOworaW5wdXQyLmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJl
bGF0ZWRUYXJnZXQnLCAnaW5wdXQxJyk7IH0pOworaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImJs
dXIiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdp
bnB1dDMnKTsgZmluaXNoSlNUZXN0KCk7IH0pOwogCi1mb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkr
KykgeworZm9yICh2YXIgaSA9IDA7IGkgPCAyOyBpKyspIHsKICAgICBldmVudFNlbmRlci5rZXlE
b3duKCdcdCcpOwogfQogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187242</attachid>
            <date>2013-02-07 22:56:56 -0800</date>
            <delta_ts>2013-02-07 23:10:54 -0800</delta_ts>
            <desc>comments addressed</desc>
            <filename>bug-109176-20130208155330.patch</filename>
            <type>text/plain</type>
            <size>15981</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxOWE2NjM0NzhmNTZi
YWUzYjFlODY2YjBhYmY1ZjQ5ZjAxYzVmMi4uNGU0OThkYzRmZjkxOWFlNzdjMmI2ZDM1ZTEyMDg5
OWUyYjRiZjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQg
YSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2
ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKwor
ICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8y
MDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRp
YXRvci5oOgorICAgICAgICAoRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAo
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KToKKworMjAxMy0wMi0wNyAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW1Y4XSAjaWZuZGVmIE5ERUJVRyBp
cyByZWR1bmRhbnQgZm9yIGFzc2VydENvbnRleHRIYXNDb3JyZWN0UHJvdG90eXBlKCkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE2NwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuY3BwCmluZGV4IDhkYjNjYjFi
YTkyMWQzNzBiZDY3ZTQ1ZGRjYWZkODY2MjNmMzdmMmYuLmQ5ZGI2MzBjMTQwOWRkOTJmYWVkN2Mz
OWYyOTBjY2IxZmIzMTRkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
TWVkaWF0b3IuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgYm9vbCBFdmVudERpc3BhdGNoTWVkaWF0
b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAogICAg
IHJldHVybiBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpOwogfQogCi1Q
YXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCitQYXNzUmVm
UHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6Y3JlYXRlKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZv
Y3VzZWROb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3Iob2xkRm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBvbGRGb2N1c2VkTm9kZSkpOwogfQogCi1Gb2N1
c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1Jl
ZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKQorRm9j
dXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorICAg
IDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9vbGRGb2N1c2VkTm9kZShv
bGRGb2N1c2VkTm9kZSkKIHsKIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBib29sIEZvY3VzRXZlbnRE
aXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hl
cikgY29ucwogICAgIHJldHVybiBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQo
ZGlzcGF0Y2hlcik7CiB9CiAKLVBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4g
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCitQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVu
dERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3IobmV3Rm9jdXNlZE5vZGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoZXZlbnQsIG5ld0ZvY3VzZWROb2Rl
KSk7CiB9CiAKLUJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OkJsdXJFdmVudERpc3BhdGNoTWVk
aWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKLSAgICA6IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBm
YWxzZSkpCitCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWRO
b2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50KQogICAgICwgbV9uZXdGb2N1
c2VkTm9kZShuZXdGb2N1c2VkTm9kZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoTWVkaWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoTWVkaWF0b3IuaAppbmRleCAyNmI2MzA1YTJlZTYzZDcwOGVjNGM0NzBkYjVhZjcyNzlj
NzljZWNhLi42NDBmNmJiZWNmZjg5Y2Y5YWYyOTkzOTI1Y2FmMjBkMzhlNzYzZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5oCkBAIC01OSwxOCArNTksMTgg
QEAgcHJpdmF0ZToKIAogY2xhc3MgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMg
RXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
b2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBib29sIGRpc3Bh
dGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fb2xkRm9jdXNlZE5vZGU7CiB9OwogCiBjbGFzcyBCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERp
c3BhdGNoTWVkaWF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2Rl
Pik7CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFz
c1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CisgICAgQmx1ckV2ZW50RGlzcGF0Y2hNZWRp
YXRvcihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAgICAgdmlydHVhbCBi
b29sIGRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKikgY29uc3QgT1ZFUlJJREU7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbmV3Rm9jdXNlZE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDc0
YTY0YzJjNTc5NmM4MzdkOWFkZjdmYTU2ZjZlMjNhM2VjMDM2YmYuLjY0NTgyNDJlYzUzYmE5OGE5
YjM5NjQ4OTcwYmUyZWJiZDhlZGE1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIzNTcsNiArMjM1
Nyw5IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0luRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhc3NSZWZQdHI8Tm9kZT4KIHsKICAgICBBU1NFUlQoIU5vRXZlbnREaXNw
YXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAgIEFTU0VSVChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3VzaW5FdmVudCB8fCBldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLkRPTUZvY3VzSW5FdmVudCk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNz
IG9sZEZvY3VzZWROb2RlIHRvIEZvY3VzRXZlbnQ6OmNyZWF0ZSgpIGFuZAorICAgIC8vIHJlbW92
ZSBvbGRGb2N1c2VkTm9kZSBmcm9tIEZvY3VzSW5FdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0
ZSgpLgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5MjYxCiAgICAgZGlzcGF0Y2hTY29wZWRFdmVudERpc3BhdGNoTWVkaWF0b3IoRm9jdXNJbkV2
ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUs
IHRydWUsIGZhbHNlLCBkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCAwLCAwKSwgb2xkRm9jdXNl
ZE5vZGUpKTsKIH0KIApAQCAtMjM2NCw2ICsyMzY3LDkgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaEZv
Y3VzT3V0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8Tm9k
ZT4KIHsKICAgICBBU1NFUlQoIU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3Bh
dGNoRm9yYmlkZGVuKCkpOwogICAgIEFTU0VSVChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmZv
Y3Vzb3V0RXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5ET01Gb2N1c091dEV2ZW50
KTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgbmV3Rm9jdXNlZE5vZGUgdG8gRm9jdXNF
dmVudDo6Y3JlYXRlKCkgYW5kCisgICAgLy8gcmVtb3ZlIG5ld0ZvY3VzZWROb2RlIGZyb20gRm9j
dXNPdXRFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSgpLgorICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjYxCiAgICAgZGlzcGF0Y2hTY29w
ZWRFdmVudERpc3BhdGNoTWVkaWF0b3IoRm9jdXNPdXRFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCB0cnVlLCBmYWxzZSwgZG9jdW1lbnQo
KS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCksIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKQEAgLTI0MjIs
OCArMjQyOCwxMiBAQCB2b2lkIE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5v
ZGU+IG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAoZG9jdW1lbnQo
KS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+ZWxlbWVudERpZEZvY3VzKHRoaXMpOwotICAgIAotICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCh0aGlzLCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKG9sZEZv
Y3VzZWROb2RlKSk7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3Mgb2xkRm9jdXNlZE5v
ZGUgdG8gRm9jdXNFdmVudDo6Y3JlYXRlKCkgYW5kCisgICAgLy8gcmVtb3ZlIG9sZEZvY3VzZWRO
b2RlIGZyb20gRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSgpLgorICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjYxCisgICAgUmVm
UHRyPEZvY3VzRXZlbnQ+IGV2ZW50ID0gRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5m
b2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDAsIDAp
OworICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBGb2N1c0V2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKGV2ZW50LnJlbGVhc2UoKSwgb2xkRm9jdXNlZE5vZGUpKTsK
IH0KIAogdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPE5vZGU+IG5ld0Zv
Y3VzZWROb2RlKQpAQCAtMjQzMSw3ICsyNDQxLDExIEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVy
RXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAgICBpZiAoZG9jdW1lbnQo
KS0+cGFnZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+ZWxlbWVudERpZEJsdXIodGhpcyk7CiAKLSAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNo
RXZlbnQodGhpcywgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKG5ld0ZvY3VzZWRO
b2RlKSk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIG5ld0ZvY3VzZWROb2RlIHRvIEZv
Y3VzRXZlbnQ6OmNyZWF0ZSgpIGFuZAorICAgIC8vIHJlbW92ZSBuZXdGb2N1c2VkTm9kZSBmcm9t
IEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSgpLgorICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjYxCisgICAgUmVmUHRyPEZvY3Vz
RXZlbnQ+IGV2ZW50ID0gRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQs
IGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCk7CisgICAgRXZl
bnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0
b3I6OmNyZWF0ZShldmVudC5yZWxlYXNlKCksIG5ld0ZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQg
Tm9kZTo6ZGlzcGF0Y2hDaGFuZ2VFdmVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmU2OTNkN2M4NTJhNjAzZGVmNTVj
NjZmZjBiZDQ1MDEzMWUwMzBmZC4uMTI5MDcyYjU0NzE4MjEwMWE4ODZlNzBiMWZhZTRlYTBiNjgx
OGFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTA3ICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGEgcmVsYXRlZFRhcmdldCBh
dHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4g
VmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQgYSByZWxhdGVkVGFy
Z2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2ZW50cy4gV2Ugc2hv
dWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKworICAgICAgICBTZWUg
aHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEyT2N0RGVjLzAw
NjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4KKworICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbDoK
KwogMjAxMy0wMi0wNyAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBbQ1NTIFJlZ2lvbnNdIFR1cm4gc2VsZWN0aW5nLXRleHQtdGhyb3VnaC1kaWZmZXJlbnQt
cmVnaW9uLWZsb3dzIHRlc3QgaW50byBhIHJlZnRlc3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3Rl
ZC50eHQKaW5kZXggNDBjZWJjMjdjZWVjMTBkZTRjNjNjNzRkNDc1MTdjM2I3N2EwZTM0NS4uZGI4
NWU3NjZkYTA0ZmNiOTExMGIxZmIyYTc0ZWU5MDAzNjQyMTZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtNzEsMTMgKzcxLDEzIEBAIFBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJm
b2N1c291dCIpIGlzIFsiZGl2SCg8LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93
CiAKIE1vdmUgZm9jdXMgZnJvbSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVz
IGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIGRpdkIg
dG8gZGl2QwotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKEBkaXZBKShj
YXB0dXJpbmcgcGhhc2UpIiwgImRpdkMoQGRpdkMpIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJi
bHVyIikgaXMgWyJkaXZCKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0K
K1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsiZGl2Qyg8LWRpdkIpKEBkaXZBKShj
YXB0dXJpbmcgcGhhc2UpIiwgImRpdkMoPC1kaXZCKShAZGl2QykiXQorUEFTUyBkaXNwYXRjaGVk
RXZlbnQoImJsdXIiKSBpcyBbImRpdkIoPC1kaXZDKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIs
ICJkaXZCKDwtZGl2QykoQGRpdkIpIl0KIAogT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3Vz
ZWQgbm9kZSBleGlzdCBpbiBzZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3Vu
ZGFyaWVzLiBNYWtpbmcgc3VyZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9u
ZCB0aGUgbG93ZXN0IGNvbW1vbiBib3VuZGFyeS4KIE1vdmluZyBmb2N1cyBmcm9tIHNoYWRvd0Qv
c2hhZG93Ri9zaGFkb3dHL2RpdkggdG8gc2hhZG93RC9zaGFkb3dLL2RpdkwKLVBBU1MgZGlzcGF0
Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsic2hhZG93SyhAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIs
ICJzaGFkb3dLKEBzaGFkb3dLKSIsICJkaXZMKEBkaXZMKSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVu
dCgiYmx1ciIpIGlzIFsic2hhZG93RihAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dG
KEBzaGFkb3dGKSIsICJzaGFkb3dHKEBzaGFkb3dHKSIsICJkaXZIKEBkaXZIKSJdCitQQVNTIGRp
c3BhdGNoZWRFdmVudCgiZm9jdXMiKSBpcyBbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2Fw
dHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKDwtc2hhZG93RikoQHNoYWRvd0spIiwgImRpdkwoPC1z
aGFkb3dGKShAZGl2TCkiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBbInNoYWRv
d0YoPC1zaGFkb3dLKShAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dGKDwtc2hhZG93
SykoQHNoYWRvd0YpIiwgInNoYWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAiZGl2SCg8LXNo
YWRvd0spKEBkaXZIKSJdCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Ym91bmRhcnktZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWJvdW5kYXJ5LWV2ZW50cy5odG1sCmluZGV4IDhkZmMwYzc2NDU4NjMyMjIyOWY1ZTdlYjA0Mzg2
ZmE1ODNmNmIyZmUuLjhiYTdmYjVkM2Y1NTZhODMyZjU2NTM3YmMyMzBkYWZlOTZiY2YyZTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZl
bnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFy
eS1ldmVudHMuaHRtbApAQCAtMTk0LDEzICsxOTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
Ly8gVGVzdCBmb3IgZm9jdXMvYmx1ciBldmVudHMuIEV2ZW50IGxpc3RuZXJzIHNob3VsZCBiZSBy
ZWdpc3RlcmQgb24gY2FwdHVyZWluZyBwaGFzZS4KICAgICBtb3ZlRm9jdXMoJ2RpdkInLCAnZGl2
QycsCiAgICAgICAgICAgICAgICdNb3ZlIGZvY3VzIGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5n
IG5vZGUuIEFsbCBub2RlcyBhcmUgb3V0c2lkZSBvZiBzaGFkb3cgYm91bmRhcnkuJyk7Ci0gICAg
c2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbImRpdkMoQGRpdkEpKGNhcHR1
cmluZyBwaGFzZSkiLCAiZGl2QyhAZGl2QykiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVk
RXZlbnQoImJsdXIiKScsICdbImRpdkIoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2QihA
ZGl2QikiXScpOworICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJk
aXZDKDwtZGl2QikoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZD
KSJdJyk7CisgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2Qig8
LWRpdkMpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXScp
OwogCiAgICAgbW92ZUZvY3VzKCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRv
d0Qvc2hhZG93Sy9kaXZMJywKICAgICAgICAgICAgICAgJ09sZCBmb2N1c2VkIG5vZGUgYW5kIG5l
dyBmb2N1c2VkIG5vZGUgZXhpc3QgaW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFk
b3cgYm91bmRhcmllcy4gTWFraW5nIHN1cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hl
ZCBiZXlvbmQgdGhlIGxvd2VzdCBjb21tb24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rp
c3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbInNoYWRvd0soQGRpdkopKGNhcHR1cmluZyBwaGFz
ZSkiLCAic2hhZG93SyhAc2hhZG93SykiLCAiZGl2TChAZGl2TCkiXScpOwotICAgIHNob3VsZEJl
KCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdbInNoYWRvd0YoQGRpdkUpKGNhcHR1cmluZyBw
aGFzZSkiLCAic2hhZG93RihAc2hhZG93RikiLCAic2hhZG93RyhAc2hhZG93RykiLCAiZGl2SChA
ZGl2SCkiXScpOworICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJz
aGFkb3dLKDwtc2hhZG93RikoQGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Syg8LXNo
YWRvd0YpKEBzaGFkb3dLKSIsICJkaXZMKDwtc2hhZG93RikoQGRpdkwpIl0nKTsKKyAgICBzaG91
bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKDwtc2hhZG93SykoQGRp
dkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSIsICJz
aGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cpIiwgImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiXScp
OwogfQogCiB0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxh
dGVkLXRhcmdldC1mb2N1c2V2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDM4YjliMzAz
NjkzYTJhNjFmZDE1MjJmMDA0Njg4MTY0YjNkYjExNzUuLjg3NGU3OWJjMDg3YzBjMWE5MTEwMWYw
MThjY2Y3OTNhMmFjYzg3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
bGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDkg
KzEsMTEgQEAKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBudWxsCitQQVNTIGV2ZW50LnJl
bGF0ZWRUYXJnZXQgaXMgbnVsbAorUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0Mgog
UEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MgogUEFTUyBldmVudC5yZWxhdGVkVGFy
Z2V0IGlzIGlucHV0MQorUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MQorUEFTUyBl
dmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MwogUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlz
IGlucHV0MwotUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlzIGlucHV0MgotUEFTUyBldmVudC5y
ZWxhdGVkVGFyZ2V0IGlzIGlucHV0NAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCkBAIC0xMiw0ICsxNCw0IEBAIENoZWNrcyB0aGF0IHRoZSByZWxhdGVk
VGFyZ2V0IGF0dHJpYnV0ZSBmb3IgRm9jdXNFdmVudCBvYmplY3RzIGlzIGJlaW5nIHNldCBjb3Jy
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotICAgCisgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sCmluZGV4
IGZkNzYzNTMyOTViOWE2M2Q4MTI2NzViN2Q5Y2JlNWRiZjVhYmY1MzQuLmZlMWZiMmQ3MzI3MmQ1
M2IwMzgyMTYzMThlZmYyOGQ0NDkzNzliNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKQEAgLTcsNyArNyw2IEBA
CiA8aW5wdXQgaWQ9ImlucHV0MSIgdHlwZT0idGV4dCI+PC9pbnB1dD4KIDxpbnB1dCBpZD0iaW5w
dXQyIiB0eXBlPSJ0ZXh0Ij48L2lucHV0PgogPGlucHV0IGlkPSJpbnB1dDMiIHR5cGU9InRleHQi
PjwvaW5wdXQ+Ci08aW5wdXQgaWQ9ImlucHV0NCIgdHlwZT0idGV4dCI+PC9pbnB1dD4KIDxzY3Jp
cHQ+CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIApAQCAtMTcsMTQgKzE2LDE3IEBAIHZhciBpbnB1
dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQxJyk7CiB2YXIgaW5wdXQyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MicpOwogdmFyIGlucHV0MyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbnB1dDMnKTsKIAotaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vz
aW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdu
dWxsJyk7IH0pOworaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLCBmdW5jdGlvbihl
dmVudCkgeyBzaG91bGRCZU51bGwoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnKTsgfSk7CiBpbnB1dDEu
YWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgn
ZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDInKTsgfSk7CitpbnB1dDEuYWRkRXZlbnRMaXN0
ZW5lcigiZm9jdXMiLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZU51bGwoJ2V2ZW50LnJlbGF0
ZWRUYXJnZXQnKTsgfSk7CitpbnB1dDEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIGZ1bmN0aW9u
KGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0MicpOyB9KTsK
IGlucHV0Mi5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hv
dWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQxJyk7IH0pOwogaW5wdXQyLmFkZEV2
ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50
LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQzJyk7IH0pOwotaW5wdXQzLmFkZEV2ZW50TGlzdGVuZXIo
ImZvY3VzaW4iLCBmdW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdl
dCcsICdpbnB1dDInKTsgfSk7Ci1pbnB1dDMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBm
dW5jdGlvbihldmVudCkgeyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDQn
KTsgZmluaXNoSlNUZXN0KCk7IH0pOworaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwg
ZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQx
Jyk7IH0pOworaW5wdXQyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCBmdW5jdGlvbihldmVudCkg
eyBzaG91bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDMnKTsgZmluaXNoSlNUZXN0
KCk7IH0pOwogCi1mb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykgeworaW5wdXQxLmZvY3VzKCk7
Citmb3IgKHZhciBpID0gMDsgaSA8IDI7IGkrKykgewogICAgIGV2ZW50U2VuZGVyLmtleURvd24o
J1x0Jyk7CiB9CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187243</attachid>
            <date>2013-02-07 23:10:58 -0800</date>
            <delta_ts>2013-02-08 00:07:25 -0800</delta_ts>
            <desc>comments addressed</desc>
            <filename>bug-109176-20130208160733.patch</filename>
            <type>text/plain</type>
            <size>16138</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxOWE2NjM0NzhmNTZi
YWUzYjFlODY2YjBhYmY1ZjQ5ZjAxYzVmMi4uMDMyNDJlYjcyOTFlNTljY2JmZDg4ZWMyNDc4YTAz
MWFkM2Y1MmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDEzLTAyLTA3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBTdXBwb3J0IGEgcmVs
YXRlZFRhcmdldCBhdHRyaWJ1dGUgb24gZm9jdXMvYmx1ciBldmVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTE3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgSW4gYnVnIDc2MjE2LCB3ZSBzdXBwb3J0ZWQg
YSByZWxhdGVkVGFyZ2V0IGF0dHJpYnV0ZSBvbgorICAgICAgICBmb2N1c2luL2ZvY3Vzb3V0IGV2
ZW50cy4gV2Ugc2hvdWxkIGFsc28gc3VwcG9ydCBpdCBvbiBmb2N1cy9ibHVyIGV2ZW50cy4KKwor
ICAgICAgICBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8y
MDEyT2N0RGVjLzAwNjEuaHRtbAorICAgICAgICBmb3IgdGhlIHd3dy1kb20gZGlzY3Vzc2lvbi4K
KworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hN
ZWRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hNZWRp
YXRvci5oOgorICAgICAgICAoRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IpOgorICAgICAgICAo
Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c0luRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmRpc3BhdGNoRm9jdXNFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaXNwYXRj
aEJsdXJFdmVudCk6CisKKzIwMTMtMDItMDcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFtWOF0gI2lmbmRlZiBOREVCVUcgaXMgcmVkdW5kYW50IGZvciBh
c3NlcnRDb250ZXh0SGFzQ29ycmVjdFByb3RvdHlwZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxNjcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcAppbmRleCA4ZGIzY2IxYmE5MjFkMzcwYmQ2N2U0NWRk
Y2FmZDg2NjIzZjM3ZjJmLi5kOWRiNjMwYzE0MDlkZDkyZmFlZDdjMzlmMjkwY2NiMWZiMzE0ZDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmNwcApAQCAt
NTIsMTMgKzUyLDEzIEBAIGJvb2wgRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50
KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29uc3QKICAgICByZXR1cm4gZGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hFdmVudChtX2V2ZW50LmdldCgpKTsKIH0KIAotUGFzc1JlZlB0cjxGb2N1c0V2
ZW50RGlzcGF0Y2hNZWRpYXRvcj4gRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQ
YXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQorUGFzc1JlZlB0cjxGb2N1c0V2ZW50RGlz
cGF0Y2hNZWRpYXRvcj4gRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKG9sZEZvY3Vz
ZWROb2RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRp
YXRvcihldmVudCwgb2xkRm9jdXNlZE5vZGUpKTsKIH0KIAotRm9jdXNFdmVudERpc3BhdGNoTWVk
aWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpCi0gICAgOiBFdmVudERpc3BhdGNoTWVkaWF0b3IoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlKSkKK0ZvY3VzRXZlbnREaXNwYXRjaE1l
ZGlhdG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCwgUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSkKKyAgICA6IEV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcihldmVudCkKICAgICAsIG1fb2xkRm9jdXNlZE5vZGUob2xkRm9jdXNlZE5vZGUpCiB7
CiB9CkBAIC02OSwxMyArNjksMTMgQEAgYm9vbCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpIGNvbnMKICAgICByZXR1
cm4gRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KGRpc3BhdGNoZXIpOwogfQog
Ci1QYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IEJsdXJFdmVudERpc3BhdGNo
TWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQorUGFzc1Jl
ZlB0cjxCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVyRXZlbnREaXNwYXRjaE1l
ZGlhdG9yKG5ld0ZvY3VzZWROb2RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVyRXZl
bnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBuZXdGb2N1c2VkTm9kZSkpOwogfQogCi1CbHVyRXZl
bnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCi0gICAgOiBFdmVudERpc3BhdGNoTWVkaWF0b3IoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UpKQorQmx1ckV2ZW50
RGlzcGF0Y2hNZWRpYXRvcjo6Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2
ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKKyAgICA6IEV2ZW50
RGlzcGF0Y2hNZWRpYXRvcihldmVudCkKICAgICAsIG1fbmV3Rm9jdXNlZE5vZGUobmV3Rm9jdXNl
ZE5vZGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aE1lZGlhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgK
aW5kZXggMjZiNjMwNWEyZWU2M2Q3MDhlYzRjNDcwZGI1YWY3Mjc5Yzc5Y2VjYS4uMTBjOWVlMzc1
NTljYWQyNWI2ODA1ZTBlZGYwMjdlZmM1MWFjNzkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hNZWRpYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoTWVkaWF0b3IuaApAQCAtNTksMTggKzU5LDE4IEBAIHByaXZhdGU6CiAKIGNs
YXNzIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRp
YXRvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3I+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NS
ZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2Rl
PiBvbGRGb2N1c2VkTm9kZSk7CisgICAgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1Jl
ZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpOwogICAgIHZpcnR1
YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0IE9WRVJSSURFOwog
ICAgIFJlZlB0cjxOb2RlPiBtX29sZEZvY3VzZWROb2RlOwogfTsKIAogY2xhc3MgQmx1ckV2ZW50
RGlzcGF0Y2hNZWRpYXRvciA6IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxFdmVudD4sIFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBC
bHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUp
OworICAgIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2
ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0IE9WRVJSSURFOwogICAgIFJlZlB0cjxOb2RlPiBt
X25ld0ZvY3VzZWROb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA3NGE2NGMyYzU3OTZjODM3
ZDlhZGY3ZmE1NmY2ZTIzYTNlYzAzNmJmLi42NDU4MjQyZWM1M2JhOThhOWIzOTY0ODk3MGJlMmVi
YmQ4ZWRhNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMzU3LDYgKzIzNTcsOSBAQCB2b2lkIE5v
ZGU6OmRpc3BhdGNoRm9jdXNJbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQ
YXNzUmVmUHRyPE5vZGU+CiB7CiAgICAgQVNTRVJUKCFOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246
OmlzRXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKICAgICBBU1NFUlQoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5mb2N1c2luRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5ET01G
b2N1c0luRXZlbnQpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyBvbGRGb2N1c2VkTm9k
ZSB0byBGb2N1c0V2ZW50OjpjcmVhdGUoKSBhbmQKKyAgICAvLyByZW1vdmUgb2xkRm9jdXNlZE5v
ZGUgZnJvbSBGb2N1c0luRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoKS4KKyAgICAvLyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTI2MQogICAgIGRp
c3BhdGNoU2NvcGVkRXZlbnREaXNwYXRjaE1lZGlhdG9yKEZvY3VzSW5FdmVudERpc3BhdGNoTWVk
aWF0b3I6OmNyZWF0ZShGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCB0cnVlLCBmYWxzZSwg
ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgMCwgMCksIG9sZEZvY3VzZWROb2RlKSk7CiB9CiAK
QEAgLTIzNjQsNiArMjM2Nyw5IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPE5vZGU+CiB7CiAgICAgQVNT
RVJUKCFOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OmlzRXZlbnREaXNwYXRjaEZvcmJpZGRlbigp
KTsKICAgICBBU1NFUlQoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c291dEV2ZW50IHx8
IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuRE9NRm9jdXNPdXRFdmVudCk7CisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBwYXNzIG5ld0ZvY3VzZWROb2RlIHRvIEZvY3VzRXZlbnQ6OmNyZWF0ZSgp
IGFuZAorICAgIC8vIHJlbW92ZSBuZXdGb2N1c2VkTm9kZSBmcm9tIEZvY3VzT3V0RXZlbnREaXNw
YXRjaE1lZGlhdG9yOjpjcmVhdGUoKS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTI2MQogICAgIGRpc3BhdGNoU2NvcGVkRXZlbnREaXNwYXRj
aE1lZGlhdG9yKEZvY3VzT3V0RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoRm9jdXNFdmVu
dDo6Y3JlYXRlKGV2ZW50VHlwZSwgdHJ1ZSwgZmFsc2UsIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksIDAsIDApLCBuZXdGb2N1c2VkTm9kZSkpOwogfQogCkBAIC0yNDIyLDggKzI0MjgsMTIgQEAg
dm9pZCBOb2RlOjpkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2Vk
Tm9kZSwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkKICAg
ICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmVsZW1lbnREaWRG
b2N1cyh0aGlzKTsKLSAgICAKLSAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhp
cywgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShvbGRGb2N1c2VkTm9kZSkpOwor
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIG9sZEZvY3VzZWROb2RlIHRvIEZvY3VzRXZl
bnQ6OmNyZWF0ZSgpIGFuZAorICAgIC8vIHJlbW92ZSBvbGRGb2N1c2VkTm9kZSBmcm9tIEZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoKS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTI2MQorICAgIFJlZlB0cjxGb2N1c0V2ZW50
PiBldmVudCA9IEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFs
c2UsIGZhbHNlLCBkb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCAwLCAwKTsKKyAgICBFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I6
OmNyZWF0ZShldmVudC5yZWxlYXNlKCksIG9sZEZvY3VzZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9k
ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKQEAg
LTI0MzEsNyArMjQ0MSwxMSBAQCB2b2lkIE5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkKICAg
ICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmVsZW1lbnREaWRC
bHVyKHRoaXMpOwogCi0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShuZXdGb2N1c2VkTm9kZSkpOworICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgcGFzcyBuZXdGb2N1c2VkTm9kZSB0byBGb2N1c0V2ZW50OjpjcmVh
dGUoKSBhbmQKKyAgICAvLyByZW1vdmUgbmV3Rm9jdXNlZE5vZGUgZnJvbSBCbHVyRXZlbnREaXNw
YXRjaE1lZGlhdG9yOjpjcmVhdGUoKS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTI2MQorICAgIFJlZlB0cjxGb2N1c0V2ZW50PiBldmVudCA9
IEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2Us
IGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIDAsIDApOworICAgIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hFdmVudCh0aGlzLCBCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoZXZl
bnQucmVsZWFzZSgpLCBuZXdGb2N1c2VkTm9kZSkpOwogfQogCiB2b2lkIE5vZGU6OmRpc3BhdGNo
Q2hhbmdlRXZlbnQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlNjkzZDdjODUyYTYwM2RlZjU1YzY2ZmYwYmQ0NTAxMzFl
MDMwZmQuLjEyOTA3MmI1NDcxODIxMDFhODg2ZTcwYjFmYWU0ZWEwYjY4MThhZmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxMy0wMi0wNyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBhIHJlbGF0ZWRUYXJnZXQgYXR0cmlidXRlIG9uIGZv
Y3VzL2JsdXIgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDkxNzYKKworICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAg
ICAgIEluIGJ1ZyA3NjIxNiwgd2Ugc3VwcG9ydGVkIGEgcmVsYXRlZFRhcmdldCBhdHRyaWJ1dGUg
b24KKyAgICAgICAgZm9jdXNpbi9mb2N1c291dCBldmVudHMuIFdlIHNob3VsZCBhbHNvIHN1cHBv
cnQgaXQgb24gZm9jdXMvYmx1ciBldmVudHMuCisKKyAgICAgICAgU2VlIGh0dHA6Ly9saXN0cy53
My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAxMk9jdERlYy8wMDYxLmh0bWwKKyAgICAg
ICAgZm9yIHRoZSB3d3ctZG9tIGRpc2N1c3Npb24uCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2ZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1mb2N1c2V2ZW50Lmh0bWw6CisKIDIwMTMtMDItMDcg
IFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBSZWdp
b25zXSBUdXJuIHNlbGVjdGluZy10ZXh0LXRocm91Z2gtZGlmZmVyZW50LXJlZ2lvbi1mbG93cyB0
ZXN0IGludG8gYSByZWZ0ZXN0IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDQw
Y2ViYzI3Y2VlYzEwZGU0YzYzYzc0ZDQ3NTE3YzNiNzdhMGUzNDUuLmRiODVlNzY2ZGEwNGZjYjkx
MTBiMWZiMmE3NGVlOTAwMzY0MjE2ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBlY3RlZC50eHQK
QEAgLTcxLDEzICs3MSwxMyBAQCBQQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9jdXNvdXQiKSBpcyBb
ImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiLCAic2hhZG93Ryg8LXNoYWRvdwogCiBNb3ZlIGZvY3Vz
IGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBhcmUgb3V0c2lkZSBv
ZiBzaGFkb3cgYm91bmRhcnkuCiBNb3ZpbmcgZm9jdXMgZnJvbSBkaXZCIHRvIGRpdkMKLVBBU1Mg
ZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsiZGl2QyhAZGl2QSkoY2FwdHVyaW5nIHBoYXNl
KSIsICJkaXZDKEBkaXZDKSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsiZGl2
QihAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKEBkaXZCKSJdCitQQVNTIGRpc3BhdGNo
ZWRFdmVudCgiZm9jdXMiKSBpcyBbImRpdkMoPC1kaXZCKShAZGl2QSkoY2FwdHVyaW5nIHBoYXNl
KSIsICJkaXZDKDwtZGl2QikoQGRpdkMpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikg
aXMgWyJkaXZCKDwtZGl2QykoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qig8LWRpdkMp
KEBkaXZCKSJdCiAKIE9sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhpc3Qg
aW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFraW5n
IHN1cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBj
b21tb24gYm91bmRhcnkuCiBNb3ZpbmcgZm9jdXMgZnJvbSBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93
Ry9kaXZIIHRvIHNoYWRvd0Qvc2hhZG93Sy9kaXZMCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9j
dXMiKSBpcyBbInNoYWRvd0soQGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93SyhAc2hh
ZG93SykiLCAiZGl2TChAZGl2TCkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImJsdXIiKSBpcyBb
InNoYWRvd0YoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93RihAc2hhZG93RikiLCAi
c2hhZG93RyhAc2hhZG93RykiLCAiZGl2SChAZGl2SCkiXQorUEFTUyBkaXNwYXRjaGVkRXZlbnQo
ImZvY3VzIikgaXMgWyJzaGFkb3dLKDwtc2hhZG93RikoQGRpdkopKGNhcHR1cmluZyBwaGFzZSki
LCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIsICJkaXZMKDwtc2hhZG93RikoQGRpdkwp
Il0KK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJzaGFkb3dGKDwtc2hhZG93Syko
QGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSIs
ICJzaGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cpIiwgImRpdkgoPC1zaGFkb3dLKShAZGl2SCki
XQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVu
dHMuaHRtbAppbmRleCA4ZGZjMGM3NjQ1ODYzMjIyMjlmNWU3ZWIwNDM4NmZhNTgzZjZiMmZlLi44
YmE3ZmI1ZDNmNTU2YTgzMmY1NjUzN2JjMjMwZGFmZTk2YmNmMmUxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwK
QEAgLTE5NCwxMyArMTk0LDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIC8vIFRlc3QgZm9yIGZv
Y3VzL2JsdXIgZXZlbnRzLiBFdmVudCBsaXN0bmVycyBzaG91bGQgYmUgcmVnaXN0ZXJkIG9uIGNh
cHR1cmVpbmcgcGhhc2UuCiAgICAgbW92ZUZvY3VzKCdkaXZCJywgJ2RpdkMnLAogICAgICAgICAg
ICAgICAnTW92ZSBmb2N1cyBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9k
ZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNw
YXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJkaXZDKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkMoQGRpdkMpIl0nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikn
LCAnWyJkaXZCKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0nKTsKKyAg
ICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siZGl2Qyg8LWRpdkIpKEBk
aXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkMoPC1kaXZCKShAZGl2QykiXScpOworICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdbImRpdkIoPC1kaXZDKShAZGl2QSko
Y2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKDwtZGl2QykoQGRpdkIpIl0nKTsKIAogICAgIG1vdmVG
b2N1cygnc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCcsICdzaGFkb3dEL3NoYWRvd0svZGl2
TCcsCiAgICAgICAgICAgICAgICdPbGQgZm9jdXNlZCBub2RlIGFuZCBuZXcgZm9jdXNlZCBub2Rl
IGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlcywgY3Jvc3Npbmcgc2hhZG93IGJvdW5kYXJpZXMu
IE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQgaXMgbm90IGRpc3BhdGNoZWQgYmV5b25kIHRoZSBs
b3dlc3QgY29tbW9uIGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQo
ImZvY3VzIiknLCAnWyJzaGFkb3dLKEBkaXZKKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0so
QHNoYWRvd0spIiwgImRpdkwoQGRpdkwpIl0nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKEBkaXZFKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRv
d0YoQHNoYWRvd0YpIiwgInNoYWRvd0coQHNoYWRvd0cpIiwgImRpdkgoQGRpdkgpIl0nKTsKKyAg
ICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1sic2hhZG93Syg8LXNoYWRv
d0YpKEBkaXZKKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0soPC1zaGFkb3dGKShAc2hhZG93
SykiLCAiZGl2TCg8LXNoYWRvd0YpKEBkaXZMKSJdJyk7CisgICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgiYmx1ciIpJywgJ1sic2hhZG93Rig8LXNoYWRvd0spKEBkaXZFKShjYXB0dXJpbmcg
cGhhc2UpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShAc2hhZG93RikiLCAic2hhZG93Ryg8LXNoYWRv
d0spKEBzaGFkb3dHKSIsICJkaXZIKDwtc2hhZG93SykoQGRpdkgpIl0nKTsKIH0KIAogdGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVsYXRlZC10YXJnZXQtZm9j
dXNldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRh
cmdldC1mb2N1c2V2ZW50LWV4cGVjdGVkLnR4dAppbmRleCAzOGI5YjMwMzY5M2EyYTYxZmQxNTIy
ZjAwNDY4ODE2NGIzZGIxMTc1Li44NzRlNzliYzA4N2MwYzFhOTExMDFmMDE4Y2NmNzkzYTJhY2M4
NzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVkLXRhcmdldC1m
b2N1c2V2ZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxh
dGVkLXRhcmdldC1mb2N1c2V2ZW50LWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDExIEBACiBQQVNT
IGV2ZW50LnJlbGF0ZWRUYXJnZXQgaXMgbnVsbAorUEFTUyBldmVudC5yZWxhdGVkVGFyZ2V0IGlz
IG51bGwKK1BBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDIKIFBBU1MgZXZlbnQucmVs
YXRlZFRhcmdldCBpcyBpbnB1dDIKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDEK
K1BBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDEKK1BBU1MgZXZlbnQucmVsYXRlZFRh
cmdldCBpcyBpbnB1dDMKIFBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDMKLVBBU1Mg
ZXZlbnQucmVsYXRlZFRhcmdldCBpcyBpbnB1dDIKLVBBU1MgZXZlbnQucmVsYXRlZFRhcmdldCBp
cyBpbnB1dDQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpAQCAtMTIsNCArMTQsNCBAQCBDaGVja3MgdGhhdCB0aGUgcmVsYXRlZFRhcmdldCBhdHRyaWJ1
dGUgZm9yIEZvY3VzRXZlbnQgb2JqZWN0cyBpcyBiZWluZyBzZXQgY29ycgogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCiAKLSAgIAorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbGF0ZWQtdGFyZ2V0LWZvY3VzZXZlbnQuaHRtbAppbmRleCBmZDc2MzUzMjk1Yjlh
NjNkODEyNjc1YjdkOWNiZTVkYmY1YWJmNTM0Li5mZTFmYjJkNzMyNzJkNTNiMDM4MjE2MzE4ZWZm
MjhkNDQ5Mzc5YjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZWxhdGVk
LXRhcmdldC1mb2N1c2V2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVs
YXRlZC10YXJnZXQtZm9jdXNldmVudC5odG1sCkBAIC03LDcgKzcsNiBAQAogPGlucHV0IGlkPSJp
bnB1dDEiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8aW5wdXQgaWQ9ImlucHV0MiIgdHlwZT0idGV4
dCI+PC9pbnB1dD4KIDxpbnB1dCBpZD0iaW5wdXQzIiB0eXBlPSJ0ZXh0Ij48L2lucHV0PgotPGlu
cHV0IGlkPSJpbnB1dDQiIHR5cGU9InRleHQiPjwvaW5wdXQ+CiA8c2NyaXB0PgoganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKQEAgLTE3LDE0ICsxNiwxNyBAQCB2YXIgaW5wdXQxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lucHV0MScpOwogdmFyIGlucHV0MiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbnB1dDInKTsKIHZhciBpbnB1dDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aW5wdXQzJyk7CiAKLWlucHV0MS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24o
ZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnbnVsbCcpOyB9KTsKK2lu
cHV0MS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxk
QmVOdWxsKCdldmVudC5yZWxhdGVkVGFyZ2V0Jyk7IH0pOwogaW5wdXQxLmFkZEV2ZW50TGlzdGVu
ZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRU
YXJnZXQnLCAnaW5wdXQyJyk7IH0pOworaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwg
ZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmVOdWxsKCdldmVudC5yZWxhdGVkVGFyZ2V0Jyk7IH0p
OworaW5wdXQxLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCBmdW5jdGlvbihldmVudCkgeyBzaG91
bGRCZSgnZXZlbnQucmVsYXRlZFRhcmdldCcsICdpbnB1dDInKTsgfSk7CiBpbnB1dDIuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXNpbiIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5y
ZWxhdGVkVGFyZ2V0JywgJ2lucHV0MScpOyB9KTsKIGlucHV0Mi5hZGRFdmVudExpc3RlbmVyKCJm
b2N1c291dCIsIGZ1bmN0aW9uKGV2ZW50KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0
JywgJ2lucHV0MycpOyB9KTsKLWlucHV0My5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIiwgZnVu
Y3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQyJyk7
IH0pOwotaW5wdXQzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IiwgZnVuY3Rpb24oZXZlbnQp
IHsgc2hvdWxkQmUoJ2V2ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQ0Jyk7IGZpbmlzaEpTVGVz
dCgpOyB9KTsKK2lucHV0Mi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50
KSB7IHNob3VsZEJlKCdldmVudC5yZWxhdGVkVGFyZ2V0JywgJ2lucHV0MScpOyB9KTsKK2lucHV0
Mi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgZnVuY3Rpb24oZXZlbnQpIHsgc2hvdWxkQmUoJ2V2
ZW50LnJlbGF0ZWRUYXJnZXQnLCAnaW5wdXQzJyk7IGZpbmlzaEpTVGVzdCgpOyB9KTsKIAotZm9y
ICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHsKK2lucHV0MS5mb2N1cygpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAyOyBpKyspIHsKICAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOwogfQogPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>