<?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>119061</bug_id>
          
          <creation_ts>2013-07-24 12:47:46 -0700</creation_ts>
          <short_desc>Setting up OrderIterator shouldn&apos;t require an extra Vector</short_desc>
          <delta_ts>2014-05-27 00:18:33 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>132408</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>911404</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-24 12:47:46 -0700</bug_when>
    <thetext>Consider merging https://chromium.googlesource.com/chromium/blink/+/55ebfdcea9f07cba9887ffd1494c2968def48a97
or come up with a better fix.

This change reuses the OrderIterator&apos;s Vector for fun and profit.
The idea is to have an helper class OrderIteratorPopulator, used for
manipulating the Vector directly.

The helper class has the nice upside of consolidating the code into a
single implementation across flexbox and grid.

Also tweaked the Vector to have an inline capacity for a single entry
that will cover the common case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913080</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-30 16:14:50 -0700</bug_when>
    <thetext>Also see https://chromium.googlesource.com/chromium/blink/+/bff4f889e1e3f97952fca3a9464212e887ccb0db</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913143</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-30 19:29:08 -0700</bug_when>
    <thetext>Also https://src.chromium.org/viewvc/blink?revision=154445&amp;view=revision
and
https://chromium.googlesource.com/chromium/blink/+/336cf4c90ae5dd5759f5c1aea09b568461bcb856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996505</commentid>
    <comment_count>3</comment_count>
      <attachid>228336</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-01 16:14:10 -0700</bug_when>
    <thetext>Created attachment 228336
Patch

This is a patch merging https://src.chromium.org/viewvc/blink?revision=153971&amp;view=revision and https://src.chromium.org/viewvc/blink?revision=158388&amp;view=revision from Blink. As the other changes were finally reverted there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997281</commentid>
    <comment_count>4</comment_count>
      <attachid>228537</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-03 13:41:54 -0700</bug_when>
    <thetext>Created attachment 228537
Patch

I&apos;ve realized that std::set is not used in WebKit, so I think it&apos;s better to go step by step and this first patch will only port https://src.chromium.org/viewvc/blink?revision=153971&amp;view=revision from Blink. Further improvements could be done in later patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997541</commentid>
    <comment_count>5</comment_count>
      <attachid>228585</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-04 05:03:59 -0700</bug_when>
    <thetext>Created attachment 228585
Patch

This is a different approach partially based on Blink r153971.\n\nThe idea is to avoid the extra loops in OrderIterator for each different order value. It has some minor performance impact in the grid tests, however it drastically improves the performance if you use different order values.\nOn top of that, OrderIterator code is simplified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003780</commentid>
    <comment_count>6</comment_count>
      <attachid>230107</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-24 14:38:27 -0700</bug_when>
    <thetext>Created attachment 230107
Patch

Remove unneeded initialization of OrderIterator using default constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003896</commentid>
    <comment_count>7</comment_count>
      <attachid>230107</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-24 17:11:34 -0700</bug_when>
    <thetext>Comment on attachment 230107
Patch

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

Looks good. review- because of the use of an iterator rather than an index for m_childrenIterator.

&gt; Source/WebCore/rendering/OrderIterator.cpp:59
&gt; +static bool sortByOrderValueAndIndex(ChildIndex childIndex1, const ChildIndex childIndex2)

The const here is neither needed nor helpful.

I don’t think the name “sort” is good for a less-than function. Maybe “compareBy” or “isLessThanBy”?

&gt; Source/WebCore/rendering/OrderIterator.cpp:74
&gt; +    m_iterator.m_children.append(std::make_pair(&amp;child, m_childIndex++));

No need for make_pair any more, can just use braces in C++11:

    m_iterator.m_children.append({ &amp;child, m_childIndex++ });

&gt; Source/WebCore/rendering/OrderIterator.h:42
&gt; +typedef std::pair&lt;RenderBox*, int&gt; ChildIndex;

Seems a little overkill to typedef this. Also the name is too broad. ChildIndex doesn’t give a rendering context, or even an OrderIterator context.

&gt; Source/WebCore/rendering/OrderIterator.h:44
&gt;  class OrderIterator {

This name also seems to broad. I think OrderedRendererChildIterator would be better, or some other name like this.

&gt; Source/WebCore/rendering/OrderIterator.h:55
&gt; +    typedef Vector&lt;ChildIndex&gt; ChildrenVector;

No need for a typedef here.

&gt; Source/WebCore/rendering/OrderIterator.h:57
&gt; +    ChildrenVector::const_iterator m_childrenIterator;

Should use an index, not an iterator, to track a position within a vector. It’s especially dangerous to have this if there’s any chance m_children might be modified while the iterator is around, since the vector memory can be reallocated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004063</commentid>
    <comment_count>8</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-25 05:26:29 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 230107 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230107&amp;action=review
&gt; 
&gt; Looks good. review- because of the use of an iterator rather than an index for m_childrenIterator.

Thanks for the review. I&apos;m uploading a new patch following your suggestions.

&gt; &gt; Source/WebCore/rendering/OrderIterator.h:44
&gt; &gt;  class OrderIterator {
&gt; 
&gt; This name also seems to broad. I think OrderedRendererChildIterator would be better, or some other name like this.

I think we can leave this change for a later patch to avoid mixing the rename with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004064</commentid>
    <comment_count>9</comment_count>
      <attachid>230172</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-25 05:28:03 -0700</bug_when>
    <thetext>Created attachment 230172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004504</commentid>
    <comment_count>10</comment_count>
      <attachid>230172</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-28 01:27:34 -0700</bug_when>
    <thetext>Comment on attachment 230172
Patch

Clearing flags on attachment: 230172

Committed r167879: &lt;http://trac.webkit.org/changeset/167879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004505</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-28 01:27:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004991</commentid>
    <comment_count>12</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-29 09:48:38 -0700</bug_when>
    <thetext>This patch introduces a regression in RenderFlexibleBox that is being managed at bug #132337 (with patch included).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005566</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-30 16:14:35 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 132408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011222</commentid>
    <comment_count>14</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-23 04:55:26 -0700</bug_when>
    <thetext>I forgot to note down the bug that leads me to rollout this change. It was bug #132400 which I didn&apos;t manage to reproduce in GTK+ port yet, but I&apos;ll keep taking a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011705</commentid>
    <comment_count>15</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 05:32:39 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I forgot to note down the bug that leads me to rollout this change. It was bug #132400 which I didn&apos;t manage to reproduce in GTK+ port yet, but I&apos;ll keep taking a look.

Maybe the problem is that we&apos;re not adding/removing new children from OrderIterator.
In addition, knowing that we&apos;re using a Vector of pairs it won&apos;t be easy/cheap to keep it updated.

So I think that as initial step we could only port the Blink change that will allow us to share code between grids and flexboxes:
https://src.chromium.org/viewvc/blink?revision=153971&amp;view=revision</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011706</commentid>
    <comment_count>16</comment_count>
      <attachid>232071</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 05:34:11 -0700</bug_when>
    <thetext>Created attachment 232071
Patch

New patch sharing code between RenderFlexibleBox and RenderGrid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011773</commentid>
    <comment_count>17</comment_count>
      <attachid>232071</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-26 09:13:37 -0700</bug_when>
    <thetext>Comment on attachment 232071
Patch

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

&gt; Source/WebCore/rendering/OrderIterator.cpp:94
&gt; +    OrderIterator::OrderValues&amp; orderValues = m_iterator.m_orderValues;

I suggest auto&amp; here.

&gt; Source/WebCore/rendering/OrderIterator.h:46
&gt; +    OrderIterator(RenderBox&amp;);

Should mark this explicit.

&gt; Source/WebCore/rendering/OrderIterator.h:58
&gt; +    typedef Vector&lt;int, 1&gt; OrderValues;

I don’t think we need a typedef for this. The only places that would use this type should just use auto instead.

&gt; Source/WebCore/rendering/OrderIterator.h:73
&gt; +    OrderIteratorPopulator(OrderIterator&amp; iterator)
&gt; +        : m_iterator(iterator)
&gt; +    {
&gt; +        // Note that we don&apos;t release the memory here, we only invalidate the size
&gt; +        // This avoids unneeded reallocation if the size ends up not changing.
&gt; +        m_iterator.m_orderValues.shrink(0);
&gt; +    }
&gt; +
&gt; +    ~OrderIteratorPopulator();

I’m not sure I understand why the constructor is inlined and included here in the header but none of the other functions are. It would be nice to be consistent. Maybe no inlining is the right way to start.

&gt; Source/WebCore/rendering/OrderIterator.h:78
&gt; +

Please omit this blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011831</commentid>
    <comment_count>18</comment_count>
      <attachid>232094</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 13:38:51 -0700</bug_when>
    <thetext>Created attachment 232094
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011907</commentid>
    <comment_count>19</comment_count>
      <attachid>232094</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-27 00:18:26 -0700</bug_when>
    <thetext>Comment on attachment 232094
Patch for landing.

Clearing flags on attachment: 232094

Committed r169372: &lt;http://trac.webkit.org/changeset/169372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011908</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-27 00:18:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228336</attachid>
            <date>2014-04-01 16:14:10 -0700</date>
            <delta_ts>2014-04-03 13:41:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140402011346.patch</filename>
            <type>text/plain</type>
            <size>11251</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGViZTJlOTEyOTE4OTAx
YjQ4Zjc4MzYxMzNkZGUzODA5ZWRjZWFhMS4uYTEwNTRmNjhhYWYxNzgwOTZlYTQzYWY5ODgyZDdm
ZDM1MDFjMjcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTA0LTAxICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNldHRpbmcg
dXAgT3JkZXJJdGVyYXRvciBzaG91bGRuJ3QgcmVxdWlyZSBhbiBleHRyYSBWZWN0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE1
Mzk3MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisgICAgICAgIEZyb20gQmxpbmsgcjE1
ODM4OCBieSA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhpcyBwYXRjaCB1c2VzIGEg
c3RkOjpzZXQgaW5zdGVhZCBvZiBhIHZlY3RvciBpbiBPcmRlckl0ZXJhdG9yIHRvIGtlZXAgdHJh
Y2sgb2Ygb3JkZXIgcHJvcGVydHkgdmFsdWVzLgorCisgICAgICAgIEl0IHByb3ZpZGVzIGEgaGVs
cGVyIGNsYXNzIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IsIHVzZWQgZm9yIG1hbmlwdWxhdGluZyB0
aGUgc2V0IGRpcmVjdGx5LiBXaGljaCBhbGxvd3MgdG8KKyAgICAgICAgY29uc29saWRhdGUgdGhl
IGNvZGUgaW50byBhIHNpbmdsZSBpbXBsZW1lbnRhdGlvbiBhY3Jvc3MgZmxleGJveCBhbmQgZ3Jp
ZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVz
dHMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpPcmRlckl0ZXJhdG9yKTogSW5pdGlhbGl6ZSBuZXcgY2xh
c3MgbWVtYmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6Om5leHQpOiBSZWlt
cGxlbWVudCB1c2luZyB0aGUgc2V0IGFuZCBpdHMgaXRlcmF0b3IuCisgICAgICAgIChXZWJDb3Jl
OjpPcmRlckl0ZXJhdG9yOjpyZXNldCk6IFJlc2V0IG5ldyBtZW1iZXJzLgorICAgICAgICAoV2Vi
Q29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6fk9yZGVySXRlcmF0b3JQb3B1bGF0b3IpOiBS
ZXNldCBPcmRlckl0ZXJhdG9yLgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRvclBvcHVs
YXRvcjo6Y29sbGVjdENoaWxkKTogSW5zZXJ0IG9yZGVyIHByb3BlcnR5IHZhbHVlIGluIHRoZSBz
ZXQuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpzZXRPcmRlclZhbHVlcyk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaDogVXNlIGEgc2V0IGlu
c3RlYWQgb2YgYSBWZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yUG9wdWxh
dG9yOjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQWRkIGhlbHBlciBjbGFzcyB0byBtYW5pcHVs
YXRlIE9yZGVyVmFsdWVzIHNldC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2Nr
KTogUmVtb3ZlIHVubmVlZGVkIGNvZGUgcmVsYXRlZCB0byBvbGQgT3JkZXJWYWx1ZXMgdmVjdG9y
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVPcmRlckl0ZXJh
dG9yQW5kTWFyZ2lucyk6IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENoaWxk
KCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6IFJlbmFtZSBjb21w
dXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcygpIHRvIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFy
Z2lucygpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcik6
IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENoaWxkKCkuCisKIDIwMTQtMDQt
MDEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIGEgY291cGxlIG9mIHVzZWxlc3Mgc3RhdGljIHN0cmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAppbmRleCBlMDk5MjRmOTc3OTFkZjdiNjM2ZmI3YWFk
NDViYjVjOWRhNGQ2ZTdjLi5mNjRjN2ViZTMzMGMzZTcwNTlmNjViMjczM2E1ZTZlYjY2NDQzNGRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwCkBAIC0zMiwy
OSArMzIsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJPcmRlckl0ZXJhdG9y
LmgiCiAKLSNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgotI2luY2x1ZGUgIlJlbmRlckdy
aWQuaCIKKyNpbmNsdWRlICJSZW5kZXJCb3guaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgY29uc3QgaW50IGNJbnZhbGlkSW5kZXggPSAtMTsKLQotT3JkZXJJdGVyYXRvcjo6T3Jk
ZXJJdGVyYXRvcihSZW5kZXJCb3gmIGNvbnRhaW5lckJveCkKK09yZGVySXRlcmF0b3I6Ok9yZGVy
SXRlcmF0b3IoY29uc3QgUmVuZGVyQm94JiBjb250YWluZXJCb3gpCiAgICAgOiBtX2NvbnRhaW5l
ckJveChjb250YWluZXJCb3gpCisgICAgLCBtX2N1cnJlbnRDaGlsZChudWxscHRyKQorICAgICwg
bV9pc1Jlc2V0KGZhbHNlKQogewotICAgIHJlc2V0KCk7Ci19Ci0KLXZvaWQgT3JkZXJJdGVyYXRv
cjo6c2V0T3JkZXJWYWx1ZXMoT3JkZXJWYWx1ZXMmJiBvcmRlclZhbHVlcykKLXsKLSAgICByZXNl
dCgpOwotICAgIG1fb3JkZXJWYWx1ZXMgPSBzdGQ6Om1vdmUob3JkZXJWYWx1ZXMpOwotICAgIGlm
IChtX29yZGVyVmFsdWVzLnNpemUoKSA8IDIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0ZDo6
c29ydChtX29yZGVyVmFsdWVzLmJlZ2luKCksIG1fb3JkZXJWYWx1ZXMuZW5kKCkpOwotICAgIGF1
dG8gbmV4dEVsZW1lbnQgPSBzdGQ6OnVuaXF1ZShtX29yZGVyVmFsdWVzLmJlZ2luKCksIG1fb3Jk
ZXJWYWx1ZXMuZW5kKCkpOwotICAgIG1fb3JkZXJWYWx1ZXMuc2hyaW5rQ2FwYWNpdHkobmV4dEVs
ZW1lbnQgLSBtX29yZGVyVmFsdWVzLmJlZ2luKCkpOwogfQogCiBSZW5kZXJCb3gqIE9yZGVySXRl
cmF0b3I6OmZpcnN0KCkKQEAgLTY1LDI1ICs1MSwyMiBAQCBSZW5kZXJCb3gqIE9yZGVySXRlcmF0
b3I6OmZpcnN0KCkKIAogUmVuZGVyQm94KiBPcmRlckl0ZXJhdG9yOjpuZXh0KCkKIHsKLSAgICBp
bnQgZW5kSW5kZXggPSBtX29yZGVyVmFsdWVzLnNpemUoKTsKICAgICBkbyB7Ci0gICAgICAgIGlm
IChtX2N1cnJlbnRDaGlsZCkgewotICAgICAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSBtX2N1cnJl
bnRDaGlsZC0+bmV4dFNpYmxpbmdCb3goKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9CisgICAgICAgIGlmICghbV9jdXJyZW50Q2hpbGQpIHsKKyAgICAgICAgICAgIGlmIChtX29y
ZGVyVmFsdWVzSXRlcmF0b3IgPT0gbV9vcmRlclZhbHVlcy5lbmQoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBpZiAobV9vcmRlckluZGV4ID09IGVuZEluZGV4
KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIW1faXNSZXNl
dCkgeworICAgICAgICAgICAgICAgICsrbV9vcmRlclZhbHVlc0l0ZXJhdG9yOworICAgICAgICAg
ICAgICAgIGlmIChtX29yZGVyVmFsdWVzSXRlcmF0b3IgPT0gbV9vcmRlclZhbHVlcy5lbmQoKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICBtX2lzUmVzZXQgPSBmYWxzZTsKIAotICAgICAgICBpZiAobV9vcmRl
ckluZGV4ICE9IGNJbnZhbGlkSW5kZXgpIHsKLSAgICAgICAgICAgICsrbV9vcmRlckluZGV4Owot
ICAgICAgICAgICAgaWYgKG1fb3JkZXJJbmRleCA9PSBlbmRJbmRleCkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIG1fY3VycmVudENoaWxkID0gbV9jb250YWlu
ZXJCb3guZmlyc3RDaGlsZEJveCgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fb3Jk
ZXJJbmRleCA9IDA7Ci0KLSAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSBtX2NvbnRhaW5lckJveC5m
aXJzdENoaWxkQm94KCk7Ci0gICAgfSB3aGlsZSAoIW1fY3VycmVudENoaWxkIHx8IG1fY3VycmVu
dENoaWxkLT5zdHlsZSgpLm9yZGVyKCkgIT0gbV9vcmRlclZhbHVlc1ttX29yZGVySW5kZXhdKTsK
KyAgICAgICAgICAgIG1fY3VycmVudENoaWxkID0gbV9jdXJyZW50Q2hpbGQtPm5leHRTaWJsaW5n
Qm94KCk7CisgICAgfSB3aGlsZSAoIW1fY3VycmVudENoaWxkIHx8IG1fY3VycmVudENoaWxkLT5z
dHlsZSgpLm9yZGVyKCkgIT0gKm1fb3JkZXJWYWx1ZXNJdGVyYXRvcik7CiAKICAgICByZXR1cm4g
bV9jdXJyZW50Q2hpbGQ7CiB9CkBAIC05MSw3ICs3NCwxOCBAQCBSZW5kZXJCb3gqIE9yZGVySXRl
cmF0b3I6Om5leHQoKQogdm9pZCBPcmRlckl0ZXJhdG9yOjpyZXNldCgpCiB7CiAgICAgbV9jdXJy
ZW50Q2hpbGQgPSBudWxscHRyOwotICAgIG1fb3JkZXJJbmRleCA9IGNJbnZhbGlkSW5kZXg7Cisg
ICAgbV9vcmRlclZhbHVlc0l0ZXJhdG9yID0gbV9vcmRlclZhbHVlcy5iZWdpbigpOworICAgIG1f
aXNSZXNldCA9IHRydWU7Cit9CisKK09yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJh
dG9yUG9wdWxhdG9yKCkKK3sKKyAgICBtX2l0ZXJhdG9yLnJlc2V0KCk7Cit9CisKK3ZvaWQgT3Jk
ZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQp
Cit7CisgICAgbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLmluc2VydChjaGlsZC5zdHlsZSgpLm9y
ZGVyKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL09yZGVySXRlcmF0b3IuaAppbmRleCBlNDdjODUwY2E1Y2QwZTY0ZGYzODNlM2RjMzYzZWNl
MzVlNzUxZTZmLi5iMTgwNTQzYWE5NThhZmU2NWE2NThmZDYzYTMzNWY4ZTExNWM5ZjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpZm5kZWYgT3JkZXJJdGVyYXRvcl9oCiAjZGVmaW5lIE9yZGVySXRlcmF0b3JfaAogCisjaW5j
bHVkZSA8c2V0PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIApAQCAtNDEsMTAgKzQyLDkgQEAgY2xhc3MgUmVuZGVyQm94OwogCiBjbGFzcyBP
cmRlckl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBPcmRlckl0ZXJhdG9yKFJlbmRlckJveCYpOwor
ICAgIGZyaWVuZCBjbGFzcyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOwogCi0gICAgdHlwZWRlZiBW
ZWN0b3I8aW50LCAxPiBPcmRlclZhbHVlczsKLSAgICB2b2lkIHNldE9yZGVyVmFsdWVzKE9yZGVy
VmFsdWVzJiYpOworICAgIE9yZGVySXRlcmF0b3IoY29uc3QgUmVuZGVyQm94Jik7CiAKICAgICBS
ZW5kZXJCb3gqIGN1cnJlbnRDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudENoaWxkOyB9
CiAgICAgUmVuZGVyQm94KiBmaXJzdCgpOwpAQCAtNTMsMTAgKzUzLDI5IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgUmVuZGVyQm94JiBtX2NvbnRhaW5lckJv
eDsKKyAgICBjb25zdCBSZW5kZXJCb3gmIG1fY29udGFpbmVyQm94OwogICAgIFJlbmRlckJveCog
bV9jdXJyZW50Q2hpbGQ7CisKKyAgICB0eXBlZGVmIHN0ZDo6c2V0PGludD4gT3JkZXJWYWx1ZXM7
CiAgICAgT3JkZXJWYWx1ZXMgbV9vcmRlclZhbHVlczsKLSAgICBpbnQgbV9vcmRlckluZGV4Owor
ICAgIE9yZGVyVmFsdWVzOjpjb25zdF9pdGVyYXRvciBtX29yZGVyVmFsdWVzSXRlcmF0b3I7Cisg
ICAgYm9vbCBtX2lzUmVzZXQ7Cit9OworCitjbGFzcyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKE9yZGVySXRlcmF0
b3ImIGl0ZXJhdG9yKQorICAgICAgICA6IG1faXRlcmF0b3IoaXRlcmF0b3IpCisgICAgeworICAg
ICAgICBtX2l0ZXJhdG9yLm1fb3JkZXJWYWx1ZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICB+T3Jk
ZXJJdGVyYXRvclBvcHVsYXRvcigpOworCisgICAgdm9pZCBjb2xsZWN0Q2hpbGQoY29uc3QgUmVu
ZGVyQm94Jik7CisKK3ByaXZhdGU6CisgICAgT3JkZXJJdGVyYXRvciYgbV9pdGVyYXRvcjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDQ4NTIxYThiZmI5MjNhYzE4NDc5NDI1ZTcwYjNj
OWIzYjM4ZmU2ZDguLmI4OTMyNWFmOGI5NDQ3ZDEyN2I5YmEwODEzOTA5ZjYzYmRkMGFlY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAt
Mjc1LDEzICsyNzUsMTEgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgZGlydHlGb3JMYXlvdXRGcm9t
UGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7CiAKLSAgICBWZWN0b3I8TGluZUNvbnRleHQ+
IGxpbmVDb250ZXh0czsKLSAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBvcmRlclZhbHVl
czsKLSAgICBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhvcmRlclZhbHVlcyk7Ci0gICAg
bV9vcmRlckl0ZXJhdG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZhbHVlcykpOwor
ICAgIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogCiAgICAgQ2hpbGRGcmFtZVJl
Y3RzIG9sZENoaWxkUmVjdHM7CiAgICAgYXBwZW5kQ2hpbGRGcmFtZVJlY3RzKG9sZENoaWxkUmVj
dHMpOworICAgIFZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwogICAgIGxheW91dEZs
ZXhJdGVtcyhyZWxheW91dENoaWxkcmVuLCBsaW5lQ29udGV4dHMpOwogCiAgICAgdXBkYXRlTG9n
aWNhbEhlaWdodCgpOwpAQCAtODM0LDE2ICs4MzIsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4
aWJsZUJveDo6Y29tcHV0ZUNoaWxkTWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pCiAg
ICAgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtYXJnaW4sIGF2YWlsYWJsZVNpemUpOwog
fQogCi12b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXpl
cyhPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyYgb3JkZXJWYWx1ZXMpCit2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKQogewotICAgIEFTU0VS
VChvcmRlclZhbHVlcy5pc0VtcHR5KCkpOworICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9w
dWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBm
aXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7
Ci0gICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1vbi1jYXNl
IGRlZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNhc2Ug
d2hpY2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEgZmV3IHZhbHVlcyB3aXRoIHRoZSBkZWZhdWx0
IG9yZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0gY2hpbGQtPnN0eWxlKCkub3JkZXIoKTsKLSAg
ICAgICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBvcmRlclZhbHVlcy5sYXN0KCkgIT0g
b3JkZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOworICAgICAgICBw
b3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLT5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA5MWI1NDdhY2E5ZTgwNTVj
YmI1NzZkM2M2MGYzYjhjY2UwMTU3ODQxLi4zNTg1MmM5YmNmMThiZDUwZTQxMWM3MGY3YTdmMDky
MWQ5MWRlNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5C
b3hBc2NlbnRGb3JDaGlsZChSZW5kZXJCb3gmKTsKIAogICAgIExheW91dFVuaXQgY29tcHV0ZUNo
aWxkTWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pOwotICAgIHZvaWQgY29tcHV0ZU1h
aW5BeGlzUHJlZmVycmVkU2l6ZXMoT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMmKTsKKyAgICB2
b2lkIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQgYWRq
dXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYsIExheW91dFVuaXQgY2hpbGRTaXpl
KTsKICAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoT3JkZXJlZEZsZXhJdGVtTGlzdCYgb3Jk
ZXJlZENoaWxkcmVuLCBMYXlvdXRVbml0JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZG91Ymxl
JiB0b3RhbEZsZXhHcm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBMYXlvdXRV
bml0JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQsIGJvb2wmIGhhc0luZmluaXRlTGluZUxl
bmd0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBmMjEz
MzVmYzI1N2I3OTdlN2RjZjljMWMyODBjYmJlOWI5MmNkYjYwLi4xMTU2ODllNzAyZTQxODJjYWRi
NjVkZjBlZmVjZWEyMjk4Y2Q1YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwCkBAIC02OTksMTcgKzY5OSwxMiBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNP
bkdyaWQoKQogCiB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJ
dGVyYXRvcigpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJl
IE9yZGVyVmFsdWVzJ3MgaW5pdGlhbGl6YXRpb24gY29kZSB3aXRoIFJlbmRlckZsZXhpYmxlQm94
LgotICAgIE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVzIG9yZGVyVmFsdWVzOworICAgIE9yZGVy
SXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7CiAgICAgc2l6ZV90
IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkUm93Q291
bnQoKSk7CiAgICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4o
MSwgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hp
bGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0Jv
eCgpKSB7Ci0gICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1v
bi1jYXNlIGRlZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9u
IGNhc2Ugd2hpY2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEgZmV3IHZhbHVlcyB3aXRoIHRoZSBk
ZWZhdWx0IG9yZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0gY2hpbGQtPnN0eWxlKCkub3JkZXIo
KTsKLSAgICAgICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBvcmRlclZhbHVlcy5sYXN0
KCkgIT0gb3JkZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOworICAg
ICAgICBwb3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgLy8gVGhpcyBm
dW5jdGlvbiBieXBhc3NlcyB0aGUgY2FjaGUgKGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFzIGl0
IGlzIHVzZWQgdG8gYnVpbGQgaXQuCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
cm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvclJv
d3MpOwpAQCAtNzI2LDggKzcyMSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNp
dEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKICAgICBtX2dyaWQuZ3JvdyhtYXhpbXVtUm93SW5kZXgp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ncmlkLnNpemUoKTsgKytpKQogICAgICAg
ICBtX2dyaWRbaV0uZ3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgpOwotCi0gICAgbV9vcmRlckl0ZXJh
dG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZhbHVlcykpOwogfQogCiB2b2lkIFJl
bmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRl
ckJveCo+IGF1dG9HcmlkSXRlbXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228537</attachid>
            <date>2014-04-03 13:41:54 -0700</date>
            <delta_ts>2014-04-04 05:03:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140403224133.patch</filename>
            <type>text/plain</type>
            <size>10279</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGViZTJlOTEyOTE4OTAx
YjQ4Zjc4MzYxMzNkZGUzODA5ZWRjZWFhMS4uZDRmYWJmOTFhMDg1NmZhMDhiNzIwNWZlZmZjZWE5
YmQzOTI0MzY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA0LTAzICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNldHRpbmcg
dXAgT3JkZXJJdGVyYXRvciBzaG91bGRuJ3QgcmVxdWlyZSBhbiBleHRyYSBWZWN0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE1
Mzk3MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhpcyBwYXRjaGVz
IHJldXNlIHRoZSBPcmRlckl0ZXJhdG9yJ3MgVmVjdG9yLiBJdCBwcm92aWRlcyBhIGhlbHBlciBj
bGFzcyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yLCB1c2VkIGZvcgorICAgICAgICBtYW5pcHVsYXRp
bmcgdGhlIFZlY3RvciBkaXJlY3RseS4gV2hpY2ggYWxsb3dzIHRvIGNvbnNvbGlkYXRlIHRoZSBj
b2RlIGludG8gYSBzaW5nbGUgaW1wbGVtZW50YXRpb24gYWNyb3NzCisgICAgICAgIGZsZXhib3gg
YW5kIGdyaWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3Vy
cmVudCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9w
dWxhdG9yKTogUmVzZXQgT3JkZXJJdGVyYXRvciBhbmQgY2FsbAorICAgICAgICByZW1vdmVEdXBs
aWNhdGVkT3JkZXJWYWx1ZXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1
bGF0b3I6OnJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVlcyk6IFNvcnRzIHRoZSBWZWN0b3IgYW5k
IHJlbW92ZXMgdGhlIGR1cGxpY2F0ZWQKKyAgICAgICAgb3JkZXIgdmFsdWVzLgorICAgICAgICAo
V2ViQ29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKTogQ29sbGVjdCBv
cmRlciB2YWx1ZSBpbmZvcm1hdGlvbiBmcm9tIGNoaWxkLgorICAgICAgICAoV2ViQ29yZTo6T3Jk
ZXJJdGVyYXRvcjo6c2V0T3JkZXJWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9PcmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yUG9wdWxh
dG9yOjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQWRkIGhlbHBlciBjbGFzcyB0byBtYW5pcHVs
YXRlIE9yZGVyVmFsdWVzIFZlY3Rvci4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJs
b2NrKTogUmVtb3ZlIHVubmVlZGVkIGNvZGUgcmVsYXRlZCB0byBvbGQgT3JkZXJWYWx1ZXMgdmVj
dG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVPcmRlckl0
ZXJhdG9yQW5kTWFyZ2lucyk6IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENo
aWxkKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU1haW5B
eGlzUHJlZmVycmVkU2l6ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oOiBSZW5hbWUgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoKSB0byBw
cmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxp
Y2l0R3JpZEFuZE9yZGVySXRlcmF0b3IpOiBQb3B1bGF0ZSBPcmRlckl0ZXJhdG9yIHVzaW5nIGNv
bGxlY3RDaGlsZCgpLgorCiAyMDE0LTA0LTAxICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhIGNvdXBsZSBvZiB1c2VsZXNzIHN0YXRpYyBz
dHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAKaW5kZXgg
ZTA5OTI0Zjk3NzkxZGY3YjYzNmZiN2FhZDQ1YmI1YzlkYTRkNmU3Yy4uNzAxMTc1ZmE1MjJjYjdl
MjI5NjA1NzZiMjZmOTY3NmEyM2JmOGNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9P
cmRlckl0ZXJhdG9yLmNwcApAQCAtMzIsOCArMzIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIk9yZGVySXRlcmF0b3IuaCIKIAotI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94
LmgiCi0jaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDE4ICs0NCw2IEBAIE9yZGVySXRlcmF0b3I6Ok9y
ZGVySXRlcmF0b3IoUmVuZGVyQm94JiBjb250YWluZXJCb3gpCiAgICAgcmVzZXQoKTsKIH0KIAot
dm9pZCBPcmRlckl0ZXJhdG9yOjpzZXRPcmRlclZhbHVlcyhPcmRlclZhbHVlcyYmIG9yZGVyVmFs
dWVzKQotewotICAgIHJlc2V0KCk7Ci0gICAgbV9vcmRlclZhbHVlcyA9IHN0ZDo6bW92ZShvcmRl
clZhbHVlcyk7Ci0gICAgaWYgKG1fb3JkZXJWYWx1ZXMuc2l6ZSgpIDwgMikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgc3RkOjpzb3J0KG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSwgbV9vcmRlclZhbHVl
cy5lbmQoKSk7Ci0gICAgYXV0byBuZXh0RWxlbWVudCA9IHN0ZDo6dW5pcXVlKG1fb3JkZXJWYWx1
ZXMuYmVnaW4oKSwgbV9vcmRlclZhbHVlcy5lbmQoKSk7Ci0gICAgbV9vcmRlclZhbHVlcy5zaHJp
bmtDYXBhY2l0eShuZXh0RWxlbWVudCAtIG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSk7Ci19Ci0KIFJl
bmRlckJveCogT3JkZXJJdGVyYXRvcjo6Zmlyc3QoKQogewogICAgIHJlc2V0KCk7CkBAIC05NCw0
ICs4MSw0MCBAQCB2b2lkIE9yZGVySXRlcmF0b3I6OnJlc2V0KCkKICAgICBtX29yZGVySW5kZXgg
PSBjSW52YWxpZEluZGV4OwogfQogCitPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjp+T3JkZXJJdGVy
YXRvclBvcHVsYXRvcigpCit7CisgICAgbV9pdGVyYXRvci5yZXNldCgpOworCisgICAgaWYgKG1f
aXRlcmF0b3IubV9vcmRlclZhbHVlcy5zaXplKCkgPiAxKQorICAgICAgICByZW1vdmVEdXBsaWNh
dGVkT3JkZXJWYWx1ZXMoKTsKKworICAgIC8vIEVuc3VyZSB0aGF0IHdlIHJlbGVhc2UgYW55IGV4
dHJhIG1lbW9yeSB3ZSBob2xkIG9udG8uCisgICAgbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLnNo
cmlua1RvRml0KCk7Cit9CisKK3ZvaWQgT3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6cmVtb3ZlRHVw
bGljYXRlZE9yZGVyVmFsdWVzKCkKK3sKKyAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyYg
b3JkZXJWYWx1ZXMgPSBtX2l0ZXJhdG9yLm1fb3JkZXJWYWx1ZXM7CisKKyAgICBzdGQ6OnNvcnQo
b3JkZXJWYWx1ZXMuYmVnaW4oKSwgb3JkZXJWYWx1ZXMuZW5kKCkpOworCisgICAgaW50IHByZXZp
b3VzID0gb3JkZXJWYWx1ZXNbMF07CisgICAgc2l6ZV90IHVuaXF1ZUl0ZW1JbmRleCA9IDA7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBvcmRlclZhbHVlcy5zaXplKCk7ICsraSkgeworICAg
ICAgICBpbnQgY3VycmVudCA9IG9yZGVyVmFsdWVzW2ldOworICAgICAgICBpZiAoY3VycmVudCA9
PSBwcmV2aW91cykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICArK3VuaXF1ZUl0ZW1J
bmRleDsKKyAgICAgICAgc3RkOjpzd2FwKG9yZGVyVmFsdWVzW2ldLCBvcmRlclZhbHVlc1t1bmlx
dWVJdGVtSW5kZXhdKTsKKyAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OworICAgIH0KKyAgICBv
cmRlclZhbHVlcy5zaHJpbmsodW5pcXVlSXRlbUluZGV4ICsgMSk7Cit9CisKK3ZvaWQgT3JkZXJJ
dGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpCit7
CisgICAgbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLmFwcGVuZChjaGlsZC5zdHlsZSgpLm9yZGVy
KCkpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvT3JkZXJJdGVyYXRvci5oCmluZGV4IGU0N2M4NTBjYTVjZDBlNjRkZjM4M2UzZGMzNjNlY2Uz
NWU3NTFlNmYuLmJhOTBkODhhM2E4MGNjYjI3MGQ5MzU4YzNjOGUwYzA2ODgzMjkyMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaApAQCAtNDEsMTAgKzQxLDkgQEAg
Y2xhc3MgUmVuZGVyQm94OwogCiBjbGFzcyBPcmRlckl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBP
cmRlckl0ZXJhdG9yKFJlbmRlckJveCYpOworICAgIGZyaWVuZCBjbGFzcyBPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yOwogCi0gICAgdHlwZWRlZiBWZWN0b3I8aW50LCAxPiBPcmRlclZhbHVlczsKLSAg
ICB2b2lkIHNldE9yZGVyVmFsdWVzKE9yZGVyVmFsdWVzJiYpOworICAgIE9yZGVySXRlcmF0b3Io
UmVuZGVyQm94Jik7CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRDaGlsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudENoaWxkOyB9CiAgICAgUmVuZGVyQm94KiBmaXJzdCgpOwpAQCAtNTUsMTAg
KzU0LDMzIEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJCb3gmIG1fY29udGFpbmVyQm94OwogICAg
IFJlbmRlckJveCogbV9jdXJyZW50Q2hpbGQ7CisKKyAgICB0eXBlZGVmIFZlY3RvcjxpbnQsIDE+
IE9yZGVyVmFsdWVzOwogICAgIE9yZGVyVmFsdWVzIG1fb3JkZXJWYWx1ZXM7CiAgICAgaW50IG1f
b3JkZXJJbmRleDsKIH07CiAKK2NsYXNzIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgeworcHVibGlj
OgorICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IoT3JkZXJJdGVyYXRvciYgaXRlcmF0b3IpCisg
ICAgICAgIDogbV9pdGVyYXRvcihpdGVyYXRvcikKKyAgICB7CisgICAgICAgIC8vIE5vdGUgdGhh
dCB3ZSBkb24ndCByZWxlYXNlIHRoZSBtZW1vcnkgaGVyZSwgd2Ugb25seSBpbnZhbGlkYXRlIHRo
ZSBzaXplCisgICAgICAgIC8vIFRoaXMgYXZvaWRzIHVubmVlZGVkIHJlYWxsb2NhdGlvbiBpZiB0
aGUgc2l6ZSBlbmRzIHVwIG5vdCBjaGFuZ2luZy4KKyAgICAgICAgbV9pdGVyYXRvci5tX29yZGVy
VmFsdWVzLnNocmluaygwKTsKKyAgICB9CisKKyAgICB+T3JkZXJJdGVyYXRvclBvcHVsYXRvcigp
OworCisgICAgdm9pZCBjb2xsZWN0Q2hpbGQoY29uc3QgUmVuZGVyQm94Jik7CisKK3ByaXZhdGU6
CisKKyAgICB2b2lkIHJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVlcygpOworCisgICAgT3JkZXJJ
dGVyYXRvciYgbV9pdGVyYXRvcjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vICBPcmRlckl0ZXJhdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDQ4NTIxYThiZmI5MjNhYzE4NDc5NDI1ZTcwYjNjOWIz
YjM4ZmU2ZDguLmI4OTMyNWFmOGI5NDQ3ZDEyN2I5YmEwODEzOTA5ZjYzYmRkMGFlY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjc1
LDEzICsyNzUsMTEgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgZGlydHlGb3JMYXlvdXRGcm9tUGVy
Y2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7CiAKLSAgICBWZWN0b3I8TGluZUNvbnRleHQ+IGxp
bmVDb250ZXh0czsKLSAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBvcmRlclZhbHVlczsK
LSAgICBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhvcmRlclZhbHVlcyk7Ci0gICAgbV9v
cmRlckl0ZXJhdG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZhbHVlcykpOworICAg
IHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogCiAgICAgQ2hpbGRGcmFtZVJlY3Rz
IG9sZENoaWxkUmVjdHM7CiAgICAgYXBwZW5kQ2hpbGRGcmFtZVJlY3RzKG9sZENoaWxkUmVjdHMp
OworICAgIFZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwogICAgIGxheW91dEZsZXhJ
dGVtcyhyZWxheW91dENoaWxkcmVuLCBsaW5lQ29udGV4dHMpOwogCiAgICAgdXBkYXRlTG9naWNh
bEhlaWdodCgpOwpAQCAtODM0LDE2ICs4MzIsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJs
ZUJveDo6Y29tcHV0ZUNoaWxkTWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pCiAgICAg
cmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtYXJnaW4sIGF2YWlsYWJsZVNpemUpOwogfQog
Ci12b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhP
cmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyYgb3JkZXJWYWx1ZXMpCit2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjpwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKQogewotICAgIEFTU0VSVChv
cmRlclZhbHVlcy5pc0VtcHR5KCkpOworICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxh
dG9yKG1fb3JkZXJJdGVyYXRvcik7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJz
dENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0g
ICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1vbi1jYXNlIGRl
ZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNhc2Ugd2hp
Y2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEgZmV3IHZhbHVlcyB3aXRoIHRoZSBkZWZhdWx0IG9y
ZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0gY2hpbGQtPnN0eWxlKCkub3JkZXIoKTsKLSAgICAg
ICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBvcmRlclZhbHVlcy5sYXN0KCkgIT0gb3Jk
ZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOworICAgICAgICBwb3B1
bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLT5pc091dE9m
Rmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA5MWI1NDdhY2E5ZTgwNTVjYmI1
NzZkM2M2MGYzYjhjY2UwMTU3ODQxLi4zNTg1MmM5YmNmMThiZDUwZTQxMWM3MGY3YTdmMDkyMWQ5
MWRlNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
aApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3hB
c2NlbnRGb3JDaGlsZChSZW5kZXJCb3gmKTsKIAogICAgIExheW91dFVuaXQgY29tcHV0ZUNoaWxk
TWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pOwotICAgIHZvaWQgY29tcHV0ZU1haW5B
eGlzUHJlZmVycmVkU2l6ZXMoT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMmKTsKKyAgICB2b2lk
IHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQgYWRqdXN0
Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYsIExheW91dFVuaXQgY2hpbGRTaXplKTsK
ICAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoT3JkZXJlZEZsZXhJdGVtTGlzdCYgb3JkZXJl
ZENoaWxkcmVuLCBMYXlvdXRVbml0JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZG91YmxlJiB0
b3RhbEZsZXhHcm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBMYXlvdXRVbml0
JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQsIGJvb2wmIGhhc0luZmluaXRlTGluZUxlbmd0
aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBmMjEzMzVm
YzI1N2I3OTdlN2RjZjljMWMyODBjYmJlOWI5MmNkYjYwLi4xMTU2ODllNzAyZTQxODJjYWRiNjVk
ZjBlZmVjZWEyMjk4Y2Q1YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCkBAIC02OTksMTcgKzY5OSwxMiBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdy
aWQoKQogCiB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVy
YXRvcigpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIE9y
ZGVyVmFsdWVzJ3MgaW5pdGlhbGl6YXRpb24gY29kZSB3aXRoIFJlbmRlckZsZXhpYmxlQm94Lgot
ICAgIE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVzIG9yZGVyVmFsdWVzOworICAgIE9yZGVySXRl
cmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7CiAgICAgc2l6ZV90IG1h
eGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkUm93Q291bnQo
KSk7CiAgICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwg
ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQg
PSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgp
KSB7Ci0gICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1vbi1j
YXNlIGRlZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNh
c2Ugd2hpY2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEgZmV3IHZhbHVlcyB3aXRoIHRoZSBkZWZh
dWx0IG9yZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0gY2hpbGQtPnN0eWxlKCkub3JkZXIoKTsK
LSAgICAgICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBvcmRlclZhbHVlcy5sYXN0KCkg
IT0gb3JkZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOworICAgICAg
ICBwb3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgLy8gVGhpcyBmdW5j
dGlvbiBieXBhc3NlcyB0aGUgY2FjaGUgKGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFzIGl0IGlz
IHVzZWQgdG8gYnVpbGQgaXQuCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93
UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvclJvd3Mp
OwpAQCAtNzI2LDggKzcyMSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdy
aWRBbmRPcmRlckl0ZXJhdG9yKCkKICAgICBtX2dyaWQuZ3JvdyhtYXhpbXVtUm93SW5kZXgpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ncmlkLnNpemUoKTsgKytpKQogICAgICAgICBt
X2dyaWRbaV0uZ3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgpOwotCi0gICAgbV9vcmRlckl0ZXJhdG9y
LnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZhbHVlcykpOwogfQogCiB2b2lkIFJlbmRl
ckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoVmVjdG9yPFJlbmRlckJv
eCo+IGF1dG9HcmlkSXRlbXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228585</attachid>
            <date>2014-04-04 05:03:59 -0700</date>
            <delta_ts>2014-04-24 14:38:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140404140338.patch</filename>
            <type>text/plain</type>
            <size>13715</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGViZTJlOTEyOTE4OTAx
YjQ4Zjc4MzYxMzNkZGUzODA5ZWRjZWFhMS4uNTU4Yzk3ZTc5NzFmNjgzNDllOGUxZjg4OTFkNWEz
MTIyOWNhYWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA0LTA0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE9yZGVySXRl
cmF0b3IgcmVmYWN0b3JpbmcgdG8gYXZvaWQgZXh0cmEgbG9vcHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBvcmRlciB2
YWx1ZXMgVmVjdG9yIGFuZCB1c2UgYSBWZWN0b3Igb2YgcGFpcnMgaW5zdGVhZC4gVGhlIHBhaXJz
IGFyZSBmb3JtZWQgYnkgYSBjaGlsZAorICAgICAgICAoUmVuZGVyQm94KSBhbmQgdGhlIGluZGV4
IG9mIHRoaXMgY2hpbGQuIEluIGFkZGl0aW9uLCBPcmRlckl0ZXJhdG9yIGNvZGUgaXMgc2ltcGxp
ZmllZC4KKworICAgICAgICBJdCBwcm92aWRlcyBhIGhlbHBlciBjbGFzcyBPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yLCB1c2VkIGZvciBtYW5pcHVsYXRpbmcgdGhlIFZlY3RvciBkaXJlY3RseS4gV2hp
Y2ggYWxsb3dzIHRvCisgICAgICAgIGNvbnNvbGlkYXRlIHRoZSBjb2RlIGludG8gYSBzaW5nbGUg
aW1wbGVtZW50YXRpb24gYWNyb3NzIGZsZXhib3ggYW5kIGdyaWQuIE9yZGVySXRlcmF0b3JQb3B1
bGF0b3IgcGFydCBpcyBiYXNlZAorICAgICAgICBvbiBhIHBhdGNoIGZyb20gQmxpbmsgcjE1Mzk3
MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+LgorCisgICAgICAgIEN1cnJlbnQgaW1wbGVt
ZW50YXRpb24gaXMgTyhudW1iZXIgb2YgY2hpbGRyZW4gKiBudW1iZXIgb2Ygb3JkZXIgdmFsdWVz
KS4gTm93IGl0IHdpbGwganVzdCBkbyBhIHNvcnQgb3BlcmF0aW9uCisgICAgICAgIGFuZCB0aGVu
IGEgcmVndWxhciBsb29wLiBTbyBpZiB5b3UgaGF2ZSBkaWZmZXJlbnQgb3JkZXIgdmFsdWVzIGlu
IGEgZmxleGJveCBvciBncmlkIHRoZSBwZXJmb3JtYW5jZSB3aWxsCisgICAgICAgIGltcHJvdmUu
CisKKyAgICAgICAgQ29tcGFyaW5nIHJlc3VsdHMgb2YgcGVyZi10ZXN0czoKKyAgICAgICAgKiBM
YXlvdXQvYXV0by1ncmlkLWxvdHMtb2YtZGF0YTogfjIlIHdvcnNlLgorICAgICAgICAqIExheW91
dC9maXhlZC1ncmlkLWxvdHMtb2YtZGF0YTogfjMlIHdvcnNlLgorICAgICAgICAqIExheW91dC9m
aXhlZC1ncmlkLWxvdHMtb2YtZGF0YSAoc2V0dGluZyAxMDAgZGlmZmVyZW50IG9yZGVyIHZhbHVl
cyk6IH40NyUgYmV0dGVyLgorICAgICAgICAqIExheW91dC9mbGV4Ym94LWxvdHMtb2YtZGF0YTog
c2FtZSByZXN1bHQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkg
Y3VycmVudCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6OmN1cnJlbnRDaGlsZCk6IFJldHVybiBj
dXJyZW50IGNoaWxkIGFjY29yZGluZyB0byBtX2NoaWxkcmVuSXRlcmF0b3IuCisgICAgICAgIChX
ZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpmaXJzdCk6IEluaXRpYWxpemUgbV9jaGlsZHJlbkl0ZXJh
dG9yIGFuZCByZXR1cm4gY3VycmVudCBjaGlsZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRl
cmF0b3I6Om5leHQpOiBNb3ZlIG1fY2hpbGRyZW5JdGVyYXRvciBhbmQgcmV0dXJuIGN1cnJlbnQg
Y2hpbGQuCisgICAgICAgIChXZWJDb3JlOjpzb3J0QnlPcmRlclZhbHVlQW5kSW5kZXgpOiBTb3J0
cyB0aGUgVmVjdG9yIGJ5IG9yZGVyIHZhbHVlIGFuZCBpbmRleC4KKyAgICAgICAgKFdlYkNvcmU6
Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQ2FsbHMg
c29ydEJ5T3JkZXJWYWx1ZUFuZEluZGV4KCkgaWYgdGhlcmUgaXMgYW55CisgICAgICAgIGNoaWxk
IHdpdGggbm9uIGRlZmF1bHQgb3JkZXIgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0
ZXJhdG9yUG9wdWxhdG9yOjpjb2xsZWN0Q2hpbGQpOiBBZGRzIHRoZSBjaGlsZCBhbmQgaW5kZXgg
dG8gdGhlIFZlY3Rvci4gVXBkYXRlCisgICAgICAgIG1fYWxsQ2hpbGRyZW5IYXZlRGVmYXVsdE9y
ZGVyVmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpP
cmRlckl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6
OnNldE9yZGVyVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0
b3I6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6T3JkZXJJdGVyYXRv
clBvcHVsYXRvcik6IE5ldyBoZWxwZXIgY2xhc3MgdG8gbWFuaXB1bGF0ZSB0aGUgVmVjdG9yLgor
ICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRvcjo6Y3VycmVudENoaWxkKTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxleGlibGVCb3g6OlJlbmRlckZsZXhpYmxlQm94KTogQ2hhbmdlIE9yZGVy
SXRlcmF0b3IgaW50aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayk6IFJlbW92ZSB1bm5lZWRlZCBjb2RlIHJlbGF0ZWQgdG8gb2xkIE9y
ZGVyVmFsdWVzIHZlY3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpw
cmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMpOiBQb3B1bGF0ZSBPcmRlckl0ZXJhdG9yIHVz
aW5nIGNvbGxlY3RDaGlsZCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6
OmNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDogUmVuYW1lIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJl
ZFNpemVzKCkgdG8gcHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKCkuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
UmVuZGVyR3JpZCk6IENoYW5nZSBPcmRlckl0ZXJhdG9yIGluaXRpYWxpemF0aW9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJh
dG9yKTogUG9wdWxhdGUgT3JkZXJJdGVyYXRvciB1c2luZyBjb2xsZWN0Q2hpbGQoKS4KKwogMjAx
NC0wNC0wMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgYSBjb3VwbGUgb2YgdXNlbGVzcyBzdGF0aWMgc3RyaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwCmluZGV4IGUwOTkyNGY5Nzc5MWRmN2I2MzZm
YjdhYWQ0NWJiNWM5ZGE0ZDZlN2MuLjMyZWUxYTIyZTEzM2Q3OGZlYzkwMmM5OTIxZmU4OWNlMTJm
NzZiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAKQEAg
LTMyLDY2ICszMiw1MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9yZGVySXRl
cmF0b3IuaCIKIAotI2luY2x1ZGUgIlJlbmRlckZsZXhpYmxlQm94LmgiCi0jaW5jbHVkZSAiUmVu
ZGVyR3JpZC5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0YXRpYyBjb25zdCBpbnQgY0ludmFsaWRJbmRleCA9IC0xOwotCi1PcmRlckl0ZXJhdG9y
OjpPcmRlckl0ZXJhdG9yKFJlbmRlckJveCYgY29udGFpbmVyQm94KQotICAgIDogbV9jb250YWlu
ZXJCb3goY29udGFpbmVyQm94KQotewotICAgIHJlc2V0KCk7Ci19Ci0KLXZvaWQgT3JkZXJJdGVy
YXRvcjo6c2V0T3JkZXJWYWx1ZXMoT3JkZXJWYWx1ZXMmJiBvcmRlclZhbHVlcykKK1JlbmRlckJv
eCogT3JkZXJJdGVyYXRvcjo6Y3VycmVudENoaWxkKCkgY29uc3QKIHsKLSAgICByZXNldCgpOwot
ICAgIG1fb3JkZXJWYWx1ZXMgPSBzdGQ6Om1vdmUob3JkZXJWYWx1ZXMpOwotICAgIGlmIChtX29y
ZGVyVmFsdWVzLnNpemUoKSA8IDIpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV9jaGlsZHJl
bkl0ZXJhdG9yID09IG1fY2hpbGRyZW4uZW5kKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgc3RkOjpzb3J0KG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSwgbV9vcmRlclZhbHVlcy5lbmQo
KSk7Ci0gICAgYXV0byBuZXh0RWxlbWVudCA9IHN0ZDo6dW5pcXVlKG1fb3JkZXJWYWx1ZXMuYmVn
aW4oKSwgbV9vcmRlclZhbHVlcy5lbmQoKSk7Ci0gICAgbV9vcmRlclZhbHVlcy5zaHJpbmtDYXBh
Y2l0eShuZXh0RWxlbWVudCAtIG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSk7CisgICAgcmV0dXJuICgq
bV9jaGlsZHJlbkl0ZXJhdG9yKS5maXJzdDsKIH0KIAogUmVuZGVyQm94KiBPcmRlckl0ZXJhdG9y
OjpmaXJzdCgpCiB7Ci0gICAgcmVzZXQoKTsKLSAgICByZXR1cm4gbmV4dCgpOworICAgIG1fY2hp
bGRyZW5JdGVyYXRvciA9IG1fY2hpbGRyZW4uYmVnaW4oKTsKKyAgICByZXR1cm4gY3VycmVudENo
aWxkKCk7CiB9CiAKIFJlbmRlckJveCogT3JkZXJJdGVyYXRvcjo6bmV4dCgpCiB7Ci0gICAgaW50
IGVuZEluZGV4ID0gbV9vcmRlclZhbHVlcy5zaXplKCk7Ci0gICAgZG8gewotICAgICAgICBpZiAo
bV9jdXJyZW50Q2hpbGQpIHsKLSAgICAgICAgICAgIG1fY3VycmVudENoaWxkID0gbV9jdXJyZW50
Q2hpbGQtPm5leHRTaWJsaW5nQm94KCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmIChtX29yZGVySW5kZXggPT0gZW5kSW5kZXgpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgICAgICBpZiAobV9vcmRlckluZGV4ICE9IGNJbnZhbGlkSW5k
ZXgpIHsKLSAgICAgICAgICAgICsrbV9vcmRlckluZGV4OwotICAgICAgICAgICAgaWYgKG1fb3Jk
ZXJJbmRleCA9PSBlbmRJbmRleCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX29yZGVySW5kZXggPSAwOworICAgICsrbV9jaGls
ZHJlbkl0ZXJhdG9yOworICAgIHJldHVybiBjdXJyZW50Q2hpbGQoKTsKK30KIAotICAgICAgICBt
X2N1cnJlbnRDaGlsZCA9IG1fY29udGFpbmVyQm94LmZpcnN0Q2hpbGRCb3goKTsKLSAgICB9IHdo
aWxlICghbV9jdXJyZW50Q2hpbGQgfHwgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCkub3JkZXIoKSAh
PSBtX29yZGVyVmFsdWVzW21fb3JkZXJJbmRleF0pOworc3RhdGljIGJvb2wgc29ydEJ5T3JkZXJW
YWx1ZUFuZEluZGV4KENoaWxkSW5kZXggY2hpbGRJbmRleDEsIGNvbnN0IENoaWxkSW5kZXggY2hp
bGRJbmRleDIpCit7CisgICAgaWYgKGNoaWxkSW5kZXgxLmZpcnN0LT5zdHlsZSgpLm9yZGVyKCkg
IT0gY2hpbGRJbmRleDIuZmlyc3QtPnN0eWxlKCkub3JkZXIoKSkKKyAgICAgICAgcmV0dXJuIGNo
aWxkSW5kZXgxLmZpcnN0LT5zdHlsZSgpLm9yZGVyKCkgPCBjaGlsZEluZGV4Mi5maXJzdC0+c3R5
bGUoKS5vcmRlcigpOworICAgIHJldHVybiBjaGlsZEluZGV4MS5zZWNvbmQgPCBjaGlsZEluZGV4
Mi5zZWNvbmQ7Cit9CiAKLSAgICByZXR1cm4gbV9jdXJyZW50Q2hpbGQ7CitPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yOjp+T3JkZXJJdGVyYXRvclBvcHVsYXRvcigpCit7CisgICAgaWYgKCFtX2FsbENo
aWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlKQorICAgICAgICBzdGQ6OnNvcnQobV9pdGVyYXRv
ci5tX2NoaWxkcmVuLmJlZ2luKCksIG1faXRlcmF0b3IubV9jaGlsZHJlbi5lbmQoKSwgc29ydEJ5
T3JkZXJWYWx1ZUFuZEluZGV4KTsKIH0KIAotdm9pZCBPcmRlckl0ZXJhdG9yOjpyZXNldCgpCit2
b2lkIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6OmNvbGxlY3RDaGlsZChSZW5kZXJCb3gmIGNoaWxk
KQogewotICAgIG1fY3VycmVudENoaWxkID0gbnVsbHB0cjsKLSAgICBtX29yZGVySW5kZXggPSBj
SW52YWxpZEluZGV4OworICAgIG1faXRlcmF0b3IubV9jaGlsZHJlbi5hcHBlbmQoc3RkOjptYWtl
X3BhaXIoJmNoaWxkLCBtX2NoaWxkSW5kZXgrKykpOworCisgICAgaWYgKG1fYWxsQ2hpbGRyZW5I
YXZlRGVmYXVsdE9yZGVyVmFsdWUgJiYgY2hpbGQuc3R5bGUoKS5vcmRlcigpKQorICAgICAgICBt
X2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlID0gZmFsc2U7CiB9CiAKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09y
ZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgK
aW5kZXggZTQ3Yzg1MGNhNWNkMGU2NGRmMzgzZTNkYzM2M2VjZTM1ZTc1MWU2Zi4uOGU1OTFiNjc2
ZGY2NWYxYmEwYTQ2YzkxMzE0ZjMzYTdhYjdmMjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvT3JkZXJJdGVyYXRvci5oCkBAIC0zOSwyNCArMzksNDIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBSZW5kZXJCb3g7CiAKK3R5cGVkZWYgc3RkOjpwYWlyPFJlbmRlckJveCosIGlu
dD4gQ2hpbGRJbmRleDsKKwogY2xhc3MgT3JkZXJJdGVyYXRvciB7CiBwdWJsaWM6Ci0gICAgT3Jk
ZXJJdGVyYXRvcihSZW5kZXJCb3gmKTsKLQotICAgIHR5cGVkZWYgVmVjdG9yPGludCwgMT4gT3Jk
ZXJWYWx1ZXM7Ci0gICAgdm9pZCBzZXRPcmRlclZhbHVlcyhPcmRlclZhbHVlcyYmKTsKKyAgICBm
cmllbmQgY2xhc3MgT3JkZXJJdGVyYXRvclBvcHVsYXRvcjsKIAotICAgIFJlbmRlckJveCogY3Vy
cmVudENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q2hpbGQ7IH0KKyAgICBSZW5kZXJC
b3gqIGN1cnJlbnRDaGlsZCgpIGNvbnN0OwogICAgIFJlbmRlckJveCogZmlyc3QoKTsKICAgICBS
ZW5kZXJCb3gqIG5leHQoKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICBS
ZW5kZXJCb3gmIG1fY29udGFpbmVyQm94OwotICAgIFJlbmRlckJveCogbV9jdXJyZW50Q2hpbGQ7
Ci0gICAgT3JkZXJWYWx1ZXMgbV9vcmRlclZhbHVlczsKLSAgICBpbnQgbV9vcmRlckluZGV4Owor
ICAgIHR5cGVkZWYgVmVjdG9yPENoaWxkSW5kZXg+IENoaWxkcmVuVmVjdG9yOworICAgIENoaWxk
cmVuVmVjdG9yIG1fY2hpbGRyZW47CisgICAgQ2hpbGRyZW5WZWN0b3I6OmNvbnN0X2l0ZXJhdG9y
IG1fY2hpbGRyZW5JdGVyYXRvcjsKK307CisKK2NsYXNzIE9yZGVySXRlcmF0b3JQb3B1bGF0b3Ig
eworcHVibGljOgorICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IoT3JkZXJJdGVyYXRvciYgaXRl
cmF0b3IpCisgICAgICAgIDogbV9pdGVyYXRvcihpdGVyYXRvcikKKyAgICAgICAgLCBtX2NoaWxk
SW5kZXgoMCkKKyAgICAgICAgLCBtX2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlKHRy
dWUpCisgICAgeworICAgICAgICBtX2l0ZXJhdG9yLm1fY2hpbGRyZW4uY2xlYXIoKTsKKyAgICB9
CisKKyAgICB+T3JkZXJJdGVyYXRvclBvcHVsYXRvcigpOworCisgICAgdm9pZCBjb2xsZWN0Q2hp
bGQoUmVuZGVyQm94Jik7CisKK3ByaXZhdGU6CisgICAgT3JkZXJJdGVyYXRvciYgbV9pdGVyYXRv
cjsKKyAgICBzaXplX3QgbV9jaGlsZEluZGV4OworICAgIGJvb2wgbV9hbGxDaGlsZHJlbkhhdmVE
ZWZhdWx0T3JkZXJWYWx1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDQ4NTIxYThi
ZmI5MjNhYzE4NDc5NDI1ZTcwYjNjOWIzYjM4ZmU2ZDguLmFmNmM2NDNkZjgwYTJjYzk5YjZjOWQx
YzdiNzY1Mzc2NDgxMGQ1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcApAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgUmVuZGVyRmxleGlibGVC
b3g6OlZpb2xhdGlvbiB7CiAKIFJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChF
bGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKICAgICA6IFJlbmRl
ckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCi0gICAgLCBtX29yZGVySXRlcmF0
b3IoKnRoaXMpCisgICAgLCBtX29yZGVySXRlcmF0b3IoKQogICAgICwgbV9udW1iZXJPZkluRmxv
d0NoaWxkcmVuT25GaXJzdExpbmUoLTEpCiB7CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUoZmFsc2Up
OyAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2stbGV2ZWwuCkBAIC03Niw3ICs3
Niw3IEBAIFJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVtZW50JiBlbGVt
ZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsCiAKIFJlbmRlckZsZXhpYmxlQm94OjpSZW5k
ZXJGbGV4aWJsZUJveChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0
eWxlKQogICAgIDogUmVuZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCi0g
ICAgLCBtX29yZGVySXRlcmF0b3IoKnRoaXMpCisgICAgLCBtX29yZGVySXRlcmF0b3IoKQogICAg
ICwgbV9udW1iZXJPZkluRmxvd0NoaWxkcmVuT25GaXJzdExpbmUoLTEpCiB7CiAgICAgc2V0Q2hp
bGRyZW5JbmxpbmUoZmFsc2UpOyAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2st
bGV2ZWwuCkBAIC0yNzUsMTMgKzI3NSwxMSBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlv
dXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAKICAgICBkaXJ0eUZv
ckxheW91dEZyb21QZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHMoKTsKIAotICAgIFZlY3RvcjxM
aW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwotICAgIE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVz
IG9yZGVyVmFsdWVzOwotICAgIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKG9yZGVyVmFs
dWVzKTsKLSAgICBtX29yZGVySXRlcmF0b3Iuc2V0T3JkZXJWYWx1ZXMoc3RkOjptb3ZlKG9yZGVy
VmFsdWVzKSk7CisgICAgcHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKCk7CiAKICAgICBD
aGlsZEZyYW1lUmVjdHMgb2xkQ2hpbGRSZWN0czsKICAgICBhcHBlbmRDaGlsZEZyYW1lUmVjdHMo
b2xkQ2hpbGRSZWN0cyk7CisgICAgVmVjdG9yPExpbmVDb250ZXh0PiBsaW5lQ29udGV4dHM7CiAg
ICAgbGF5b3V0RmxleEl0ZW1zKHJlbGF5b3V0Q2hpbGRyZW4sIGxpbmVDb250ZXh0cyk7CiAKICAg
ICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CkBAIC04MzQsMTYgKzgzMiwxMiBAQCBMYXlvdXRVbml0
IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQ2hpbGRNYXJnaW5WYWx1ZShjb25zdCBMZW5ndGgm
IG1hcmdpbikKICAgICByZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKG1hcmdpbiwgYXZhaWxh
YmxlU2l6ZSk7CiB9CiAKLXZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc1By
ZWZlcnJlZFNpemVzKE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVzJiBvcmRlclZhbHVlcykKK3Zv
aWQgUmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpCiB7
Ci0gICAgQVNTRVJUKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSk7CisgICAgT3JkZXJJdGVyYXRvclBv
cHVsYXRvciBwb3B1bGF0b3IobV9vcmRlckl0ZXJhdG9yKTsKIAogICAgIGZvciAoUmVuZGVyQm94
KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nQm94KCkpIHsKLSAgICAgICAgLy8gQXZvaWQgZ3Jvd2luZyB0aGUgdmVjdG9yIGZvciB0aGUg
Y29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1ZSBvZiAwLiBUaGlzIG9wdGltaXplcyB0aGUgbW9zdCBj
b21tb24gY2FzZSB3aGljaCBpcwotICAgICAgICAvLyBvbmUgb3IgYSBmZXcgdmFsdWVzIHdpdGgg
dGhlIGRlZmF1bHQgb3JkZXIgMAotICAgICAgICBpbnQgb3JkZXIgPSBjaGlsZC0+c3R5bGUoKS5v
cmRlcigpOwotICAgICAgICBpZiAob3JkZXJWYWx1ZXMuaXNFbXB0eSgpIHx8IG9yZGVyVmFsdWVz
Lmxhc3QoKSAhPSBvcmRlcikKLSAgICAgICAgICAgIG9yZGVyVmFsdWVzLmFwcGVuZChvcmRlcik7
CisgICAgICAgIHBvcHVsYXRvci5jb2xsZWN0Q2hpbGQoKmNoaWxkKTsKIAogICAgICAgICBpZiAo
Y2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IDkxYjU0
N2FjYTllODA1NWNiYjU3NmQzYzYwZjNiOGNjZTAxNTc4NDEuLjM1ODUyYzliY2YxOGJkNTBlNDEx
YzcwZjdhN2YwOTIxZDkxZGU1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRV
bml0IG1hcmdpbkJveEFzY2VudEZvckNoaWxkKFJlbmRlckJveCYpOwogCiAgICAgTGF5b3V0VW5p
dCBjb21wdXRlQ2hpbGRNYXJnaW5WYWx1ZShjb25zdCBMZW5ndGgmIG1hcmdpbik7Ci0gICAgdm9p
ZCBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVl
cyYpOworICAgIHZvaWQgcHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKCk7CiAgICAgTGF5
b3V0VW5pdCBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoUmVuZGVyQm94JiwgTGF5b3V0VW5p
dCBjaGlsZFNpemUpOwogICAgIGJvb2wgY29tcHV0ZU5leHRGbGV4TGluZShPcmRlcmVkRmxleEl0
ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1haW5BeGlzRXh0
ZW50LCBkb3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJp
bmssIExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCwgYm9vbCYgaGFzSW5m
aW5pdGVMaW5lTGVuZ3RoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CmluZGV4IGYyMTMzNWZjMjU3Yjc5N2U3ZGNmOWMxYzI4MGNiYmU5YjkyY2RiNjAuLjZkYzA4NGFi
ZTc2YzdlMjIwOGQ2NzUxNTc4NzdjNTBjYWRlMTU5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAKIFJlbmRlckdy
aWQ6OlJlbmRlckdyaWQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiAgICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQotICAg
ICwgbV9vcmRlckl0ZXJhdG9yKCp0aGlzKQorICAgICwgbV9vcmRlckl0ZXJhdG9yKCkKIHsKICAg
ICAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2sgbGV2ZWwuCiAgICAgc2V0Q2hp
bGRyZW5JbmxpbmUoZmFsc2UpOwpAQCAtNjk5LDE3ICs2OTksMTIgQEAgdm9pZCBSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0
R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZmluZCBh
IHdheSB0byBzaGFyZSBPcmRlclZhbHVlcydzIGluaXRpYWxpemF0aW9uIGNvZGUgd2l0aCBSZW5k
ZXJGbGV4aWJsZUJveC4KLSAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBvcmRlclZhbHVl
czsKKyAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvcihtX29yZGVySXRlcmF0b3Ip
OwogICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxp
Y2l0R3JpZFJvd0NvdW50KCkpOwogICAgIHNpemVfdCBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6
Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkpOwogCiAgICAgZm9yIChS
ZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmdCb3goKSkgewotICAgICAgICAvLyBBdm9pZCBncm93aW5nIHRoZSB2ZWN0b3Ig
Zm9yIHRoZSBjb21tb24tY2FzZSBkZWZhdWx0IHZhbHVlIG9mIDAuIFRoaXMgb3B0aW1pemVzIHRo
ZSBtb3N0IGNvbW1vbiBjYXNlIHdoaWNoIGlzCi0gICAgICAgIC8vIG9uZSBvciBhIGZldyB2YWx1
ZXMgd2l0aCB0aGUgZGVmYXVsdCBvcmRlciAwCi0gICAgICAgIGludCBvcmRlciA9IGNoaWxkLT5z
dHlsZSgpLm9yZGVyKCk7Ci0gICAgICAgIGlmIChvcmRlclZhbHVlcy5pc0VtcHR5KCkgfHwgb3Jk
ZXJWYWx1ZXMubGFzdCgpICE9IG9yZGVyKQotICAgICAgICAgICAgb3JkZXJWYWx1ZXMuYXBwZW5k
KG9yZGVyKTsKKyAgICAgICAgcG9wdWxhdG9yLmNvbGxlY3RDaGlsZCgqY2hpbGQpOwogCiAgICAg
ICAgIC8vIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hlIChjYWNoZWRHcmlkQ29vcmRp
bmF0ZSgpKSBhcyBpdCBpcyB1c2VkIHRvIGJ1aWxkIGl0LgogICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxl
KGNoaWxkLCBGb3JSb3dzKTsKQEAgLTcyNiw4ICs3MjEsNiBAQCB2b2lkIFJlbmRlckdyaWQ6OnBv
cHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiAgICAgbV9ncmlkLmdyb3cobWF4
aW11bVJvd0luZGV4KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZ3JpZC5zaXplKCk7
ICsraSkKICAgICAgICAgbV9ncmlkW2ldLmdyb3cobWF4aW11bUNvbHVtbkluZGV4KTsKLQotICAg
IG1fb3JkZXJJdGVyYXRvci5zZXRPcmRlclZhbHVlcyhzdGQ6Om1vdmUob3JkZXJWYWx1ZXMpKTsK
IH0KIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNwZWNpZmllZE1ham9yQXhpc0l0ZW1zT25Hcmlk
KFZlY3RvcjxSZW5kZXJCb3gqPiBhdXRvR3JpZEl0ZW1zKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230107</attachid>
            <date>2014-04-24 14:38:27 -0700</date>
            <delta_ts>2014-04-25 05:27:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140424233805.patch</filename>
            <type>text/plain</type>
            <size>13674</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU2ODRkZDRhMTM0ODFm
MTdjZTY2YWRjY2U1ZTFiYTFmZjU2Mzc0OS4uNmQ1NWJmNjY3NmY0OGMzNjQ4MmUzYTI2YWY4YjE2
MmY5NjQ5YmQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA0LTI0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE9yZGVySXRl
cmF0b3IgcmVmYWN0b3JpbmcgdG8gYXZvaWQgZXh0cmEgbG9vcHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBvcmRlciB2
YWx1ZXMgVmVjdG9yIGFuZCB1c2UgYSBWZWN0b3Igb2YgcGFpcnMgaW5zdGVhZC4gVGhlIHBhaXJz
IGFyZSBmb3JtZWQgYnkgYSBjaGlsZAorICAgICAgICAoUmVuZGVyQm94KSBhbmQgdGhlIGluZGV4
IG9mIHRoaXMgY2hpbGQuIEluIGFkZGl0aW9uLCBPcmRlckl0ZXJhdG9yIGNvZGUgaXMgc2ltcGxp
ZmllZC4KKworICAgICAgICBJdCBwcm92aWRlcyBhIGhlbHBlciBjbGFzcyBPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yLCB1c2VkIGZvciBtYW5pcHVsYXRpbmcgdGhlIFZlY3RvciBkaXJlY3RseS4gV2hp
Y2ggYWxsb3dzIHRvCisgICAgICAgIGNvbnNvbGlkYXRlIHRoZSBjb2RlIGludG8gYSBzaW5nbGUg
aW1wbGVtZW50YXRpb24gYWNyb3NzIGZsZXhib3ggYW5kIGdyaWQuIE9yZGVySXRlcmF0b3JQb3B1
bGF0b3IgcGFydCBpcyBiYXNlZAorICAgICAgICBvbiBhIHBhdGNoIGZyb20gQmxpbmsgcjE1Mzk3
MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+LgorCisgICAgICAgIEN1cnJlbnQgaW1wbGVt
ZW50YXRpb24gaXMgTyhudW1iZXIgb2YgY2hpbGRyZW4gKiBudW1iZXIgb2Ygb3JkZXIgdmFsdWVz
KS4gTm93IGl0IHdpbGwganVzdCBkbyBhIHNvcnQgb3BlcmF0aW9uCisgICAgICAgIGFuZCB0aGVu
IGEgcmVndWxhciBsb29wLiBTbyBpZiB5b3UgaGF2ZSBkaWZmZXJlbnQgb3JkZXIgdmFsdWVzIGlu
IGEgZmxleGJveCBvciBncmlkIHRoZSBwZXJmb3JtYW5jZSB3aWxsCisgICAgICAgIGltcHJvdmUu
CisKKyAgICAgICAgQ29tcGFyaW5nIHJlc3VsdHMgb2YgcGVyZi10ZXN0czoKKyAgICAgICAgKiBM
YXlvdXQvYXV0by1ncmlkLWxvdHMtb2YtZGF0YTogfjAuNSUgd29yc2UuCisgICAgICAgICogTGF5
b3V0L2ZpeGVkLWdyaWQtbG90cy1vZi1kYXRhOiB+MC41JSB3b3JzZS4KKyAgICAgICAgKiBMYXlv
dXQvZml4ZWQtZ3JpZC1sb3RzLW9mLWRhdGEgKHNldHRpbmcgMTAwIGRpZmZlcmVudCBvcmRlciB2
YWx1ZXMpOiB+NTAlIGJldHRlci4KKyAgICAgICAgKiBMYXlvdXQvZmxleGJveC1sb3RzLW9mLWRh
dGE6IH41JSBiZXR0ZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQg
YnkgY3VycmVudCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6OmN1cnJlbnRDaGlsZCk6IFJldHVy
biBjdXJyZW50IGNoaWxkIGFjY29yZGluZyB0byBtX2NoaWxkcmVuSXRlcmF0b3IuCisgICAgICAg
IChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpmaXJzdCk6IEluaXRpYWxpemUgbV9jaGlsZHJlbkl0
ZXJhdG9yIGFuZCByZXR1cm4gY3VycmVudCBjaGlsZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVy
SXRlcmF0b3I6Om5leHQpOiBNb3ZlIG1fY2hpbGRyZW5JdGVyYXRvciBhbmQgcmV0dXJuIGN1cnJl
bnQgY2hpbGQuCisgICAgICAgIChXZWJDb3JlOjpzb3J0QnlPcmRlclZhbHVlQW5kSW5kZXgpOiBT
b3J0cyB0aGUgVmVjdG9yIGJ5IG9yZGVyIHZhbHVlIGFuZCBpbmRleC4KKyAgICAgICAgKFdlYkNv
cmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQ2Fs
bHMgc29ydEJ5T3JkZXJWYWx1ZUFuZEluZGV4KCkgaWYgdGhlcmUgaXMgYW55CisgICAgICAgIGNo
aWxkIHdpdGggbm9uIGRlZmF1bHQgb3JkZXIgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpPcmRl
ckl0ZXJhdG9yUG9wdWxhdG9yOjpjb2xsZWN0Q2hpbGQpOiBBZGRzIHRoZSBjaGlsZCBhbmQgaW5k
ZXggdG8gdGhlIFZlY3Rvci4gVXBkYXRlCisgICAgICAgIG1fYWxsQ2hpbGRyZW5IYXZlRGVmYXVs
dE9yZGVyVmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9y
OjpPcmRlckl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0
b3I6OnNldE9yZGVyVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRl
cmF0b3I6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvT3JkZXJJdGVyYXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6T3JkZXJJdGVy
YXRvclBvcHVsYXRvcik6IE5ldyBoZWxwZXIgY2xhc3MgdG8gbWFuaXB1bGF0ZSB0aGUgVmVjdG9y
LgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRvcjo6Y3VycmVudENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OlJlbmRlckZsZXhpYmxlQm94KTogUmVtb3ZlIE9y
ZGVySXRlcmF0b3IgaW50aWFsaXphdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhp
YmxlQm94OjpsYXlvdXRCbG9jayk6IFJlbW92ZSB1bm5lZWRlZCBjb2RlIHJlbGF0ZWQgdG8gb2xk
IE9yZGVyVmFsdWVzIHZlY3Rvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94
OjpwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMpOiBQb3B1bGF0ZSBPcmRlckl0ZXJhdG9y
IHVzaW5nIGNvbGxlY3RDaGlsZCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVC
b3g6OmNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDogUmVuYW1lIGNvbXB1dGVNYWluQXhpc1ByZWZl
cnJlZFNpemVzKCkgdG8gcHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKCkuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6UmVuZGVyR3JpZCk6IFJlbW92ZSBPcmRlckl0ZXJhdG9yIGluaXRpYWxpemF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0
ZXJhdG9yKTogUG9wdWxhdGUgT3JkZXJJdGVyYXRvciB1c2luZyBjb2xsZWN0Q2hpbGQoKS4KKwog
MjAxNC0wNC0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gSFRNTCBNZWRpYSBjYXB0dXJlIGF0dHJpYnV0ZSBpcyBhIGJvb2xlYW4g
c2luY2UgcjE2Mzk1OApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVy
SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3Bw
CmluZGV4IGUwOTkyNGY5Nzc5MWRmN2I2MzZmYjdhYWQ0NWJiNWM5ZGE0ZDZlN2MuLjMyZWUxYTIy
ZTEzM2Q3OGZlYzkwMmM5OTIxZmU4OWNlMTJmNzZiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAKQEAgLTMyLDY2ICszMiw1MCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIk9yZGVySXRlcmF0b3IuaCIKIAotI2luY2x1ZGUgIlJlbmRlckZs
ZXhpYmxlQm94LmgiCi0jaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2luY2x1ZGUgIlJlbmRlckJv
eC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgY0ludmFsaWRJ
bmRleCA9IC0xOwotCi1PcmRlckl0ZXJhdG9yOjpPcmRlckl0ZXJhdG9yKFJlbmRlckJveCYgY29u
dGFpbmVyQm94KQotICAgIDogbV9jb250YWluZXJCb3goY29udGFpbmVyQm94KQotewotICAgIHJl
c2V0KCk7Ci19Ci0KLXZvaWQgT3JkZXJJdGVyYXRvcjo6c2V0T3JkZXJWYWx1ZXMoT3JkZXJWYWx1
ZXMmJiBvcmRlclZhbHVlcykKK1JlbmRlckJveCogT3JkZXJJdGVyYXRvcjo6Y3VycmVudENoaWxk
KCkgY29uc3QKIHsKLSAgICByZXNldCgpOwotICAgIG1fb3JkZXJWYWx1ZXMgPSBzdGQ6Om1vdmUo
b3JkZXJWYWx1ZXMpOwotICAgIGlmIChtX29yZGVyVmFsdWVzLnNpemUoKSA8IDIpCi0gICAgICAg
IHJldHVybjsKKyAgICBpZiAobV9jaGlsZHJlbkl0ZXJhdG9yID09IG1fY2hpbGRyZW4uZW5kKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3RkOjpzb3J0KG1fb3JkZXJWYWx1ZXMu
YmVnaW4oKSwgbV9vcmRlclZhbHVlcy5lbmQoKSk7Ci0gICAgYXV0byBuZXh0RWxlbWVudCA9IHN0
ZDo6dW5pcXVlKG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSwgbV9vcmRlclZhbHVlcy5lbmQoKSk7Ci0g
ICAgbV9vcmRlclZhbHVlcy5zaHJpbmtDYXBhY2l0eShuZXh0RWxlbWVudCAtIG1fb3JkZXJWYWx1
ZXMuYmVnaW4oKSk7CisgICAgcmV0dXJuICgqbV9jaGlsZHJlbkl0ZXJhdG9yKS5maXJzdDsKIH0K
IAogUmVuZGVyQm94KiBPcmRlckl0ZXJhdG9yOjpmaXJzdCgpCiB7Ci0gICAgcmVzZXQoKTsKLSAg
ICByZXR1cm4gbmV4dCgpOworICAgIG1fY2hpbGRyZW5JdGVyYXRvciA9IG1fY2hpbGRyZW4uYmVn
aW4oKTsKKyAgICByZXR1cm4gY3VycmVudENoaWxkKCk7CiB9CiAKIFJlbmRlckJveCogT3JkZXJJ
dGVyYXRvcjo6bmV4dCgpCiB7Ci0gICAgaW50IGVuZEluZGV4ID0gbV9vcmRlclZhbHVlcy5zaXpl
KCk7Ci0gICAgZG8gewotICAgICAgICBpZiAobV9jdXJyZW50Q2hpbGQpIHsKLSAgICAgICAgICAg
IG1fY3VycmVudENoaWxkID0gbV9jdXJyZW50Q2hpbGQtPm5leHRTaWJsaW5nQm94KCk7Ci0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX29yZGVySW5kZXgg
PT0gZW5kSW5kZXgpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgICAgICBpZiAo
bV9vcmRlckluZGV4ICE9IGNJbnZhbGlkSW5kZXgpIHsKLSAgICAgICAgICAgICsrbV9vcmRlcklu
ZGV4OwotICAgICAgICAgICAgaWYgKG1fb3JkZXJJbmRleCA9PSBlbmRJbmRleCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX29y
ZGVySW5kZXggPSAwOworICAgICsrbV9jaGlsZHJlbkl0ZXJhdG9yOworICAgIHJldHVybiBjdXJy
ZW50Q2hpbGQoKTsKK30KIAotICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fY29udGFpbmVyQm94
LmZpcnN0Q2hpbGRCb3goKTsKLSAgICB9IHdoaWxlICghbV9jdXJyZW50Q2hpbGQgfHwgbV9jdXJy
ZW50Q2hpbGQtPnN0eWxlKCkub3JkZXIoKSAhPSBtX29yZGVyVmFsdWVzW21fb3JkZXJJbmRleF0p
Oworc3RhdGljIGJvb2wgc29ydEJ5T3JkZXJWYWx1ZUFuZEluZGV4KENoaWxkSW5kZXggY2hpbGRJ
bmRleDEsIGNvbnN0IENoaWxkSW5kZXggY2hpbGRJbmRleDIpCit7CisgICAgaWYgKGNoaWxkSW5k
ZXgxLmZpcnN0LT5zdHlsZSgpLm9yZGVyKCkgIT0gY2hpbGRJbmRleDIuZmlyc3QtPnN0eWxlKCku
b3JkZXIoKSkKKyAgICAgICAgcmV0dXJuIGNoaWxkSW5kZXgxLmZpcnN0LT5zdHlsZSgpLm9yZGVy
KCkgPCBjaGlsZEluZGV4Mi5maXJzdC0+c3R5bGUoKS5vcmRlcigpOworICAgIHJldHVybiBjaGls
ZEluZGV4MS5zZWNvbmQgPCBjaGlsZEluZGV4Mi5zZWNvbmQ7Cit9CiAKLSAgICByZXR1cm4gbV9j
dXJyZW50Q2hpbGQ7CitPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjp+T3JkZXJJdGVyYXRvclBvcHVs
YXRvcigpCit7CisgICAgaWYgKCFtX2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlKQor
ICAgICAgICBzdGQ6OnNvcnQobV9pdGVyYXRvci5tX2NoaWxkcmVuLmJlZ2luKCksIG1faXRlcmF0
b3IubV9jaGlsZHJlbi5lbmQoKSwgc29ydEJ5T3JkZXJWYWx1ZUFuZEluZGV4KTsKIH0KIAotdm9p
ZCBPcmRlckl0ZXJhdG9yOjpyZXNldCgpCit2b2lkIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6OmNv
bGxlY3RDaGlsZChSZW5kZXJCb3gmIGNoaWxkKQogewotICAgIG1fY3VycmVudENoaWxkID0gbnVs
bHB0cjsKLSAgICBtX29yZGVySW5kZXggPSBjSW52YWxpZEluZGV4OworICAgIG1faXRlcmF0b3Iu
bV9jaGlsZHJlbi5hcHBlbmQoc3RkOjptYWtlX3BhaXIoJmNoaWxkLCBtX2NoaWxkSW5kZXgrKykp
OworCisgICAgaWYgKG1fYWxsQ2hpbGRyZW5IYXZlRGVmYXVsdE9yZGVyVmFsdWUgJiYgY2hpbGQu
c3R5bGUoKS5vcmRlcigpKQorICAgICAgICBtX2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZh
bHVlID0gZmFsc2U7CiB9CiAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKaW5kZXggZTQ3Yzg1MGNhNWNkMGU2NGRmMzgzZTNk
YzM2M2VjZTM1ZTc1MWU2Zi4uOGU1OTFiNjc2ZGY2NWYxYmEwYTQ2YzkxMzE0ZjMzYTdhYjdmMjRl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCkBAIC0zOSwyNCAr
MzksNDIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJCb3g7CiAKK3R5cGVk
ZWYgc3RkOjpwYWlyPFJlbmRlckJveCosIGludD4gQ2hpbGRJbmRleDsKKwogY2xhc3MgT3JkZXJJ
dGVyYXRvciB7CiBwdWJsaWM6Ci0gICAgT3JkZXJJdGVyYXRvcihSZW5kZXJCb3gmKTsKLQotICAg
IHR5cGVkZWYgVmVjdG9yPGludCwgMT4gT3JkZXJWYWx1ZXM7Ci0gICAgdm9pZCBzZXRPcmRlclZh
bHVlcyhPcmRlclZhbHVlcyYmKTsKKyAgICBmcmllbmQgY2xhc3MgT3JkZXJJdGVyYXRvclBvcHVs
YXRvcjsKIAotICAgIFJlbmRlckJveCogY3VycmVudENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50Q2hpbGQ7IH0KKyAgICBSZW5kZXJCb3gqIGN1cnJlbnRDaGlsZCgpIGNvbnN0OwogICAg
IFJlbmRlckJveCogZmlyc3QoKTsKICAgICBSZW5kZXJCb3gqIG5leHQoKTsKIAogcHJpdmF0ZToK
ICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICBSZW5kZXJCb3gmIG1fY29udGFpbmVyQm94OwotICAg
IFJlbmRlckJveCogbV9jdXJyZW50Q2hpbGQ7Ci0gICAgT3JkZXJWYWx1ZXMgbV9vcmRlclZhbHVl
czsKLSAgICBpbnQgbV9vcmRlckluZGV4OworICAgIHR5cGVkZWYgVmVjdG9yPENoaWxkSW5kZXg+
IENoaWxkcmVuVmVjdG9yOworICAgIENoaWxkcmVuVmVjdG9yIG1fY2hpbGRyZW47CisgICAgQ2hp
bGRyZW5WZWN0b3I6OmNvbnN0X2l0ZXJhdG9yIG1fY2hpbGRyZW5JdGVyYXRvcjsKK307CisKK2Ns
YXNzIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgeworcHVibGljOgorICAgIE9yZGVySXRlcmF0b3JQ
b3B1bGF0b3IoT3JkZXJJdGVyYXRvciYgaXRlcmF0b3IpCisgICAgICAgIDogbV9pdGVyYXRvcihp
dGVyYXRvcikKKyAgICAgICAgLCBtX2NoaWxkSW5kZXgoMCkKKyAgICAgICAgLCBtX2FsbENoaWxk
cmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlKHRydWUpCisgICAgeworICAgICAgICBtX2l0ZXJhdG9y
Lm1fY2hpbGRyZW4uY2xlYXIoKTsKKyAgICB9CisKKyAgICB+T3JkZXJJdGVyYXRvclBvcHVsYXRv
cigpOworCisgICAgdm9pZCBjb2xsZWN0Q2hpbGQoUmVuZGVyQm94Jik7CisKK3ByaXZhdGU6Cisg
ICAgT3JkZXJJdGVyYXRvciYgbV9pdGVyYXRvcjsKKyAgICBzaXplX3QgbV9jaGlsZEluZGV4Owor
ICAgIGJvb2wgbV9hbGxDaGlsZHJlbkhhdmVEZWZhdWx0T3JkZXJWYWx1ZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guY3BwCmluZGV4IDQ4NTIxYThiZmI5MjNhYzE4NDc5NDI1ZTcwYjNjOWIzYjM4ZmU2
ZDguLjYxMmM0ZDNlNjMyNTg1NzJiMjMxZjMzYjQ2ZDFjY2I4MTI1NTVhZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtNjgsNyArNjgs
NiBAQCBzdHJ1Y3QgUmVuZGVyRmxleGlibGVCb3g6OlZpb2xhdGlvbiB7CiAKIFJlbmRlckZsZXhp
YmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIDApCi0gICAgLCBtX29yZGVySXRlcmF0b3IoKnRoaXMpCiAgICAgLCBtX251bWJlck9mSW5G
bG93Q2hpbGRyZW5PbkZpcnN0TGluZSgtMSkKIHsKICAgICBzZXRDaGlsZHJlbklubGluZShmYWxz
ZSk7IC8vIEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBiZSBibG9jay1sZXZlbC4KQEAgLTc2LDcg
Kzc1LDYgQEAgUmVuZGVyRmxleGlibGVCb3g6OlJlbmRlckZsZXhpYmxlQm94KEVsZW1lbnQmIGVs
ZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWwKIAogUmVuZGVyRmxleGlibGVCb3g6OlJl
bmRlckZsZXhpYmxlQm94KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4g
c3R5bGUpCiAgICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkK
LSAgICAsIG1fb3JkZXJJdGVyYXRvcigqdGhpcykKICAgICAsIG1fbnVtYmVyT2ZJbkZsb3dDaGls
ZHJlbk9uRmlyc3RMaW5lKC0xKQogewogICAgIHNldENoaWxkcmVuSW5saW5lKGZhbHNlKTsgLy8g
QWxsIG9mIG91ciBjaGlsZHJlbiBtdXN0IGJlIGJsb2NrLWxldmVsLgpAQCAtMjc1LDEzICsyNzMs
MTEgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0KQogCiAgICAgZGlydHlGb3JMYXlvdXRGcm9tUGVyY2VudGFnZUhl
aWdodERlc2NlbmRhbnRzKCk7CiAKLSAgICBWZWN0b3I8TGluZUNvbnRleHQ+IGxpbmVDb250ZXh0
czsKLSAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBvcmRlclZhbHVlczsKLSAgICBjb21w
dXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhvcmRlclZhbHVlcyk7Ci0gICAgbV9vcmRlckl0ZXJh
dG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZhbHVlcykpOworICAgIHByZXBhcmVP
cmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogCiAgICAgQ2hpbGRGcmFtZVJlY3RzIG9sZENoaWxk
UmVjdHM7CiAgICAgYXBwZW5kQ2hpbGRGcmFtZVJlY3RzKG9sZENoaWxkUmVjdHMpOworICAgIFZl
Y3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwogICAgIGxheW91dEZsZXhJdGVtcyhyZWxh
eW91dENoaWxkcmVuLCBsaW5lQ29udGV4dHMpOwogCiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgp
OwpAQCAtODM0LDE2ICs4MzAsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6Y29t
cHV0ZUNoaWxkTWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pCiAgICAgcmV0dXJuIG1p
bmltdW1WYWx1ZUZvckxlbmd0aChtYXJnaW4sIGF2YWlsYWJsZVNpemUpOwogfQogCi12b2lkIFJl
bmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhPcmRlckl0ZXJh
dG9yOjpPcmRlclZhbHVlcyYgb3JkZXJWYWx1ZXMpCit2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpw
cmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKQogewotICAgIEFTU0VSVChvcmRlclZhbHVl
cy5pc0VtcHR5KCkpOworICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3Jk
ZXJJdGVyYXRvcik7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIC8v
IEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1vbi1jYXNlIGRlZmF1bHQgdmFs
dWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNhc2Ugd2hpY2ggaXMKLSAg
ICAgICAgLy8gb25lIG9yIGEgZmV3IHZhbHVlcyB3aXRoIHRoZSBkZWZhdWx0IG9yZGVyIDAKLSAg
ICAgICAgaW50IG9yZGVyID0gY2hpbGQtPnN0eWxlKCkub3JkZXIoKTsKLSAgICAgICAgaWYgKG9y
ZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBvcmRlclZhbHVlcy5sYXN0KCkgIT0gb3JkZXIpCi0gICAg
ICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOworICAgICAgICBwb3B1bGF0b3IuY29s
bGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA5MWI1NDdhY2E5ZTgwNTVjYmI1NzZkM2M2MGYz
YjhjY2UwMTU3ODQxLi4zNTg1MmM5YmNmMThiZDUwZTQxMWM3MGY3YTdmMDkyMWQ5MWRlNWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtMTM3
LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3hBc2NlbnRGb3JD
aGlsZChSZW5kZXJCb3gmKTsKIAogICAgIExheW91dFVuaXQgY29tcHV0ZUNoaWxkTWFyZ2luVmFs
dWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4pOwotICAgIHZvaWQgY29tcHV0ZU1haW5BeGlzUHJlZmVy
cmVkU2l6ZXMoT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMmKTsKKyAgICB2b2lkIHByZXBhcmVP
cmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQgYWRqdXN0Q2hpbGRTaXpl
Rm9yTWluQW5kTWF4KFJlbmRlckJveCYsIExheW91dFVuaXQgY2hpbGRTaXplKTsKICAgICBib29s
IGNvbXB1dGVOZXh0RmxleExpbmUoT3JkZXJlZEZsZXhJdGVtTGlzdCYgb3JkZXJlZENoaWxkcmVu
LCBMYXlvdXRVbml0JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZG91YmxlJiB0b3RhbEZsZXhH
cm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBMYXlvdXRVbml0JiBtaW5NYXhB
cHBsaWVkTWFpbkF4aXNFeHRlbnQsIGJvb2wmIGhhc0luZmluaXRlTGluZUxlbmd0aCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBhZDE5MTAzOWRiY2M0ZGRi
ZDQ4ZTVkMzVjZWQwZDU5ZDg3ZDEzNDE5Li4xM2FlNDgzZjRmNjFkMWE3MDAyOWVjMDI0ZTZmMjA4
MTg1ZDliOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0x
NjQsNyArMTY0LDYgQEAgcHVibGljOgogCiBSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKEVsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2so
ZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKLSAgICAsIG1fb3JkZXJJdGVyYXRvcigqdGhp
cykKIHsKICAgICAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2sgbGV2ZWwuCiAg
ICAgc2V0Q2hpbGRyZW5JbmxpbmUoZmFsc2UpOwpAQCAtNjk5LDE3ICs2OTgsMTIgQEAgdm9pZCBS
ZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0
ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZmluZCBhIHdheSB0byBzaGFyZSBPcmRlclZhbHVlcydzIGluaXRpYWxpemF0aW9uIGNvZGUg
d2l0aCBSZW5kZXJGbGV4aWJsZUJveC4KLSAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBv
cmRlclZhbHVlczsKKyAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvcihtX29yZGVy
SXRlcmF0b3IpOwogICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+
KDEsIGV4cGxpY2l0R3JpZFJvd0NvdW50KCkpOwogICAgIHNpemVfdCBtYXhpbXVtQ29sdW1uSW5k
ZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkpOwogCiAg
ICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewotICAgICAgICAvLyBBdm9pZCBncm93aW5nIHRo
ZSB2ZWN0b3IgZm9yIHRoZSBjb21tb24tY2FzZSBkZWZhdWx0IHZhbHVlIG9mIDAuIFRoaXMgb3B0
aW1pemVzIHRoZSBtb3N0IGNvbW1vbiBjYXNlIHdoaWNoIGlzCi0gICAgICAgIC8vIG9uZSBvciBh
IGZldyB2YWx1ZXMgd2l0aCB0aGUgZGVmYXVsdCBvcmRlciAwCi0gICAgICAgIGludCBvcmRlciA9
IGNoaWxkLT5zdHlsZSgpLm9yZGVyKCk7Ci0gICAgICAgIGlmIChvcmRlclZhbHVlcy5pc0VtcHR5
KCkgfHwgb3JkZXJWYWx1ZXMubGFzdCgpICE9IG9yZGVyKQotICAgICAgICAgICAgb3JkZXJWYWx1
ZXMuYXBwZW5kKG9yZGVyKTsKKyAgICAgICAgcG9wdWxhdG9yLmNvbGxlY3RDaGlsZCgqY2hpbGQp
OwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hlIChjYWNoZWRH
cmlkQ29vcmRpbmF0ZSgpKSBhcyBpdCBpcyB1c2VkIHRvIGJ1aWxkIGl0LgogICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKGNoaWxkLCBGb3JSb3dzKTsKQEAgLTcyNiw4ICs3MjAsNiBAQCB2b2lkIFJlbmRl
ckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiAgICAgbV9ncmlk
Lmdyb3cobWF4aW11bVJvd0luZGV4KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZ3Jp
ZC5zaXplKCk7ICsraSkKICAgICAgICAgbV9ncmlkW2ldLmdyb3cobWF4aW11bUNvbHVtbkluZGV4
KTsKLQotICAgIG1fb3JkZXJJdGVyYXRvci5zZXRPcmRlclZhbHVlcyhzdGQ6Om1vdmUob3JkZXJW
YWx1ZXMpKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNwZWNpZmllZE1ham9yQXhpc0l0
ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0b0dyaWRJdGVtcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230172</attachid>
            <date>2014-04-25 05:28:03 -0700</date>
            <delta_ts>2014-05-26 05:34:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140425142741.patch</filename>
            <type>text/plain</type>
            <size>13657</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFiNDRlNjY5MjNjZTg0
NzI5YTliYjYxYWQwOTNkZGIwNTllMDM0Ni4uMDRjZjI2ZjhlOGMwZjk0ZTdjZGEyYTRhZDM1YTk3
MGJkNGZiZjk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA0LTI1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIE9yZGVySXRl
cmF0b3IgcmVmYWN0b3JpbmcgdG8gYXZvaWQgZXh0cmEgbG9vcHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBvcmRlciB2
YWx1ZXMgVmVjdG9yIGFuZCB1c2UgYSBWZWN0b3Igb2YgcGFpcnMgaW5zdGVhZC4gVGhlIHBhaXJz
IGFyZSBmb3JtZWQgYnkgYSBjaGlsZAorICAgICAgICAoUmVuZGVyQm94KSBhbmQgdGhlIGluZGV4
IG9mIHRoaXMgY2hpbGQuIEluIGFkZGl0aW9uLCBPcmRlckl0ZXJhdG9yIGNvZGUgaXMgc2ltcGxp
ZmllZC4KKworICAgICAgICBJdCBwcm92aWRlcyBhIGhlbHBlciBjbGFzcyBPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yLCB1c2VkIGZvciBtYW5pcHVsYXRpbmcgdGhlIFZlY3RvciBkaXJlY3RseS4gV2hp
Y2ggYWxsb3dzIHRvCisgICAgICAgIGNvbnNvbGlkYXRlIHRoZSBjb2RlIGludG8gYSBzaW5nbGUg
aW1wbGVtZW50YXRpb24gYWNyb3NzIGZsZXhib3ggYW5kIGdyaWQuIE9yZGVySXRlcmF0b3JQb3B1
bGF0b3IgcGFydCBpcyBiYXNlZAorICAgICAgICBvbiBhIHBhdGNoIGZyb20gQmxpbmsgcjE1Mzk3
MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+LgorCisgICAgICAgIEN1cnJlbnQgaW1wbGVt
ZW50YXRpb24gaXMgTyhudW1iZXIgb2YgY2hpbGRyZW4gKiBudW1iZXIgb2Ygb3JkZXIgdmFsdWVz
KS4gTm93IGl0IHdpbGwganVzdCBkbyBhIHNvcnQgb3BlcmF0aW9uCisgICAgICAgIGFuZCB0aGVu
IGEgcmVndWxhciBsb29wLiBTbyBpZiB5b3UgaGF2ZSBkaWZmZXJlbnQgb3JkZXIgdmFsdWVzIGlu
IGEgZmxleGJveCBvciBncmlkIHRoZSBwZXJmb3JtYW5jZSB3aWxsCisgICAgICAgIGltcHJvdmUu
CisKKyAgICAgICAgQ29tcGFyaW5nIHJlc3VsdHMgb2YgcGVyZi10ZXN0czoKKyAgICAgICAgKiBM
YXlvdXQvYXV0by1ncmlkLWxvdHMtb2YtZGF0YTogfjAuNSUgd29yc2UuCisgICAgICAgICogTGF5
b3V0L2ZpeGVkLWdyaWQtbG90cy1vZi1kYXRhOiB+MC41JSB3b3JzZS4KKyAgICAgICAgKiBMYXlv
dXQvZml4ZWQtZ3JpZC1sb3RzLW9mLWRhdGEgKHNldHRpbmcgMTAwIGRpZmZlcmVudCBvcmRlciB2
YWx1ZXMpOiB+NTAlIGJldHRlci4KKyAgICAgICAgKiBMYXlvdXQvZmxleGJveC1sb3RzLW9mLWRh
dGE6IH41JSBiZXR0ZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQg
YnkgY3VycmVudCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6OmN1cnJlbnRDaGlsZCk6IFJldHVy
biBjdXJyZW50IGNoaWxkIGFjY29yZGluZyB0byBtX2NoaWxkcmVuSW5kZXguCisgICAgICAgIChX
ZWJDb3JlOjpPcmRlckl0ZXJhdG9yOjpmaXJzdCk6IEluaXRpYWxpemUgbV9jaGlsZHJlbkluZGV4
IGFuZCByZXR1cm4gY3VycmVudCBjaGlsZC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0
b3I6Om5leHQpOiBJbmNyZWFzZSBtX2NoaWxkcmVuSW5kZXggYW5kIHJldHVybiBjdXJyZW50IGNo
aWxkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUJ5T3JkZXJWYWx1ZUFuZEluZGV4KTogU29y
dHMgdGhlIFZlY3RvciBieSBvcmRlciB2YWx1ZSBhbmQgaW5kZXguCisgICAgICAgIChXZWJDb3Jl
OjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjp+T3JkZXJJdGVyYXRvclBvcHVsYXRvcik6IENhbGxz
IGNvbXBhcmVCeU9yZGVyVmFsdWVBbmRJbmRleCgpIGlmIHRoZXJlIGlzIGFueQorICAgICAgICBj
aGlsZCB3aXRoIG5vbiBkZWZhdWx0IG9yZGVyIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6T3Jk
ZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKTogQWRkcyB0aGUgY2hpbGQgYW5kIGlu
ZGV4IHRvIHRoZSBWZWN0b3IuIFVwZGF0ZQorICAgICAgICBtX2FsbENoaWxkcmVuSGF2ZURlZmF1
bHRPcmRlclZhbHVlIGFjY29yZGluZ2x5LgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJdGVyYXRv
cjo6T3JkZXJJdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJh
dG9yOjpzZXRPcmRlclZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0
ZXJhdG9yOjpyZXNldCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL09yZGVySXRlcmF0
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6Ok9yZGVySXRl
cmF0b3JQb3B1bGF0b3IpOiBOZXcgaGVscGVyIGNsYXNzIHRvIG1hbmlwdWxhdGUgdGhlIFZlY3Rv
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3I6OmN1cnJlbnRDaGlsZCk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveCk6IFJlbW92ZSBP
cmRlckl0ZXJhdG9yIGludGlhbGl6YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4
aWJsZUJveDo6bGF5b3V0QmxvY2spOiBSZW1vdmUgdW5uZWVkZWQgY29kZSByZWxhdGVkIHRvIG9s
ZCBPcmRlclZhbHVlcyB2ZWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJv
eDo6cHJlcGFyZU9yZGVySXRlcmF0b3JBbmRNYXJnaW5zKTogUG9wdWxhdGUgT3JkZXJJdGVyYXRv
ciB1c2luZyBjb2xsZWN0Q2hpbGQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94Ojpjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyk6IERlbGV0ZWQuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6IFJlbmFtZSBjb21wdXRlTWFpbkF4aXNQcmVm
ZXJyZWRTaXplcygpIHRvIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OlJlbmRlckdyaWQpOiBSZW1vdmUgT3JkZXJJdGVyYXRvciBpbml0aWFsaXphdGlvbi4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJ
dGVyYXRvcik6IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENoaWxkKCkuCisK
IDIwMTQtMDQtMjQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1MgV2ViS2l0Ml0gRW5hYmxlIG9wdGltaXphdGlvbiB0byBtbWFwIGRvd25sb2FkZWQgcmVz
b3VyY2VzIG9uY2UgdGhleSBiZWNvbWUgZmlsZS1iYWNrZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvT3JkZXJJdGVyYXRvci5jcHAKaW5kZXggZTA5OTI0Zjk3NzkxZGY3YjYzNmZiN2FhZDQ1
YmI1YzlkYTRkNmU3Yy4uOTg3ZjU1MmRhZDU3OTIzMmU4OTM0Nzc2Y2E2MjM0YzhlNzcyMTI4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcApAQCAtMzIsNjYg
KzMyLDUxIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiT3JkZXJJdGVyYXRvci5o
IgogCi0jaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKLSNpbmNsdWRlICJSZW5kZXJHcmlk
LmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGNvbnN0IGludCBjSW52YWxpZEluZGV4ID0gLTE7Ci0KLU9yZGVySXRlcmF0b3I6Ok9yZGVy
SXRlcmF0b3IoUmVuZGVyQm94JiBjb250YWluZXJCb3gpCi0gICAgOiBtX2NvbnRhaW5lckJveChj
b250YWluZXJCb3gpCi17Ci0gICAgcmVzZXQoKTsKLX0KLQotdm9pZCBPcmRlckl0ZXJhdG9yOjpz
ZXRPcmRlclZhbHVlcyhPcmRlclZhbHVlcyYmIG9yZGVyVmFsdWVzKQorUmVuZGVyQm94KiBPcmRl
ckl0ZXJhdG9yOjpjdXJyZW50Q2hpbGQoKSBjb25zdAogewotICAgIHJlc2V0KCk7Ci0gICAgbV9v
cmRlclZhbHVlcyA9IHN0ZDo6bW92ZShvcmRlclZhbHVlcyk7Ci0gICAgaWYgKG1fb3JkZXJWYWx1
ZXMuc2l6ZSgpIDwgMikKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2NoaWxkcmVuSW5kZXgg
PT0gbV9jaGlsZHJlbi5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3Rk
Ojpzb3J0KG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSwgbV9vcmRlclZhbHVlcy5lbmQoKSk7Ci0gICAg
YXV0byBuZXh0RWxlbWVudCA9IHN0ZDo6dW5pcXVlKG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSwgbV9v
cmRlclZhbHVlcy5lbmQoKSk7Ci0gICAgbV9vcmRlclZhbHVlcy5zaHJpbmtDYXBhY2l0eShuZXh0
RWxlbWVudCAtIG1fb3JkZXJWYWx1ZXMuYmVnaW4oKSk7CisgICAgcmV0dXJuIG1fY2hpbGRyZW5b
bV9jaGlsZHJlbkluZGV4XS5maXJzdDsKIH0KIAogUmVuZGVyQm94KiBPcmRlckl0ZXJhdG9yOjpm
aXJzdCgpCiB7Ci0gICAgcmVzZXQoKTsKLSAgICByZXR1cm4gbmV4dCgpOworICAgIG1fY2hpbGRy
ZW5JbmRleCA9IDA7CisgICAgcmV0dXJuIGN1cnJlbnRDaGlsZCgpOwogfQogCiBSZW5kZXJCb3gq
IE9yZGVySXRlcmF0b3I6Om5leHQoKQogewotICAgIGludCBlbmRJbmRleCA9IG1fb3JkZXJWYWx1
ZXMuc2l6ZSgpOwotICAgIGRvIHsKLSAgICAgICAgaWYgKG1fY3VycmVudENoaWxkKSB7Ci0gICAg
ICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fY3VycmVudENoaWxkLT5uZXh0U2libGluZ0JveCgp
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobV9vcmRl
ckluZGV4ID09IGVuZEluZGV4KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAg
ICAgaWYgKG1fb3JkZXJJbmRleCAhPSBjSW52YWxpZEluZGV4KSB7Ci0gICAgICAgICAgICArK21f
b3JkZXJJbmRleDsKLSAgICAgICAgICAgIGlmIChtX29yZGVySW5kZXggPT0gZW5kSW5kZXgpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgbV9vcmRlckluZGV4ID0gMDsKKyAgICArK21fY2hpbGRyZW5JbmRleDsKKyAgICByZXR1cm4g
Y3VycmVudENoaWxkKCk7Cit9CiAKLSAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSBtX2NvbnRhaW5l
ckJveC5maXJzdENoaWxkQm94KCk7Ci0gICAgfSB3aGlsZSAoIW1fY3VycmVudENoaWxkIHx8IG1f
Y3VycmVudENoaWxkLT5zdHlsZSgpLm9yZGVyKCkgIT0gbV9vcmRlclZhbHVlc1ttX29yZGVySW5k
ZXhdKTsKK3N0YXRpYyBib29sIGNvbXBhcmVCeU9yZGVyVmFsdWVBbmRJbmRleChzdGQ6OnBhaXI8
UmVuZGVyQm94KiwgaW50PiBjaGlsZEFuZEluZGV4MSwgc3RkOjpwYWlyPFJlbmRlckJveCosIGlu
dD4gY2hpbGRBbmRJbmRleDIpCit7CisgICAgaWYgKGNoaWxkQW5kSW5kZXgxLmZpcnN0LT5zdHls
ZSgpLm9yZGVyKCkgIT0gY2hpbGRBbmRJbmRleDIuZmlyc3QtPnN0eWxlKCkub3JkZXIoKSkKKyAg
ICAgICAgcmV0dXJuIGNoaWxkQW5kSW5kZXgxLmZpcnN0LT5zdHlsZSgpLm9yZGVyKCkgPCBjaGls
ZEFuZEluZGV4Mi5maXJzdC0+c3R5bGUoKS5vcmRlcigpOworICAgIHJldHVybiBjaGlsZEFuZElu
ZGV4MS5zZWNvbmQgPCBjaGlsZEFuZEluZGV4Mi5zZWNvbmQ7Cit9CiAKLSAgICByZXR1cm4gbV9j
dXJyZW50Q2hpbGQ7CitPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjp+T3JkZXJJdGVyYXRvclBvcHVs
YXRvcigpCit7CisgICAgaWYgKCFtX2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVlKQor
ICAgICAgICBzdGQ6OnNvcnQobV9pdGVyYXRvci5tX2NoaWxkcmVuLmJlZ2luKCksIG1faXRlcmF0
b3IubV9jaGlsZHJlbi5lbmQoKSwgY29tcGFyZUJ5T3JkZXJWYWx1ZUFuZEluZGV4KTsKIH0KIAot
dm9pZCBPcmRlckl0ZXJhdG9yOjpyZXNldCgpCit2b2lkIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6
OmNvbGxlY3RDaGlsZChSZW5kZXJCb3gmIGNoaWxkKQogewotICAgIG1fY3VycmVudENoaWxkID0g
bnVsbHB0cjsKLSAgICBtX29yZGVySW5kZXggPSBjSW52YWxpZEluZGV4OworICAgIHN0ZDo6cGFp
cjxSZW5kZXJCb3gqLCBpbnQ+IGNoaWxkQW5kSW5kZXggPSB7ICZjaGlsZCwgbV9jaGlsZEluZGV4
KysgfTsKKyAgICBtX2l0ZXJhdG9yLm1fY2hpbGRyZW4uYXBwZW5kKGNoaWxkQW5kSW5kZXgpOwor
CisgICAgaWYgKG1fYWxsQ2hpbGRyZW5IYXZlRGVmYXVsdE9yZGVyVmFsdWUgJiYgY2hpbGQuc3R5
bGUoKS5vcmRlcigpKQorICAgICAgICBtX2FsbENoaWxkcmVuSGF2ZURlZmF1bHRPcmRlclZhbHVl
ID0gZmFsc2U7CiB9CiAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKaW5kZXggZTQ3Yzg1MGNhNWNkMGU2NGRmMzgzZTNkYzM2
M2VjZTM1ZTc1MWU2Zi4uMWQxZjU4YWIzNzQyYjhhMGEyMjA4NTFiMmM0YTY1NzNmZmIyYzAwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCkBAIC00MSwyMiArNDEs
MzcgQEAgY2xhc3MgUmVuZGVyQm94OwogCiBjbGFzcyBPcmRlckl0ZXJhdG9yIHsKIHB1YmxpYzoK
LSAgICBPcmRlckl0ZXJhdG9yKFJlbmRlckJveCYpOworICAgIGZyaWVuZCBjbGFzcyBPcmRlckl0
ZXJhdG9yUG9wdWxhdG9yOwogCi0gICAgdHlwZWRlZiBWZWN0b3I8aW50LCAxPiBPcmRlclZhbHVl
czsKLSAgICB2b2lkIHNldE9yZGVyVmFsdWVzKE9yZGVyVmFsdWVzJiYpOwotCi0gICAgUmVuZGVy
Qm94KiBjdXJyZW50Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRDaGlsZDsgfQorICAg
IFJlbmRlckJveCogY3VycmVudENoaWxkKCkgY29uc3Q7CiAgICAgUmVuZGVyQm94KiBmaXJzdCgp
OwogICAgIFJlbmRlckJveCogbmV4dCgpOwogCiBwcml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsK
IAotICAgIFJlbmRlckJveCYgbV9jb250YWluZXJCb3g7Ci0gICAgUmVuZGVyQm94KiBtX2N1cnJl
bnRDaGlsZDsKLSAgICBPcmRlclZhbHVlcyBtX29yZGVyVmFsdWVzOwotICAgIGludCBtX29yZGVy
SW5kZXg7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZW5kZXJCb3gqLCBpbnQ+PiBtX2NoaWxkcmVu
OworICAgIHNpemVfdCBtX2NoaWxkcmVuSW5kZXg7Cit9OworCitjbGFzcyBPcmRlckl0ZXJhdG9y
UG9wdWxhdG9yIHsKK3B1YmxpYzoKKyAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKE9yZGVySXRl
cmF0b3ImIGl0ZXJhdG9yKQorICAgICAgICA6IG1faXRlcmF0b3IoaXRlcmF0b3IpCisgICAgICAg
ICwgbV9jaGlsZEluZGV4KDApCisgICAgICAgICwgbV9hbGxDaGlsZHJlbkhhdmVEZWZhdWx0T3Jk
ZXJWYWx1ZSh0cnVlKQorICAgIHsKKyAgICAgICAgbV9pdGVyYXRvci5tX2NoaWxkcmVuLmNsZWFy
KCk7CisgICAgfQorCisgICAgfk9yZGVySXRlcmF0b3JQb3B1bGF0b3IoKTsKKworICAgIHZvaWQg
Y29sbGVjdENoaWxkKFJlbmRlckJveCYpOworCitwcml2YXRlOgorICAgIE9yZGVySXRlcmF0b3Im
IG1faXRlcmF0b3I7CisgICAgc2l6ZV90IG1fY2hpbGRJbmRleDsKKyAgICBib29sIG1fYWxsQ2hp
bGRyZW5IYXZlRGVmYXVsdE9yZGVyVmFsdWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRl
eCA0ODUyMWE4YmZiOTIzYWMxODQ3OTQyNWU3MGIzYzliM2IzOGZlNmQ4Li42MTJjNGQzZTYzMjU4
NTcyYjIzMWYzM2I0NmQxY2NiODEyNTU1YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTY4LDcgKzY4LDYgQEAgc3RydWN0IFJlbmRl
ckZsZXhpYmxlQm94OjpWaW9sYXRpb24gewogCiBSZW5kZXJGbGV4aWJsZUJveDo6UmVuZGVyRmxl
eGlibGVCb3goRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAg
ICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQotICAgICwgbV9v
cmRlckl0ZXJhdG9yKCp0aGlzKQogICAgICwgbV9udW1iZXJPZkluRmxvd0NoaWxkcmVuT25GaXJz
dExpbmUoLTEpCiB7CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUoZmFsc2UpOyAvLyBBbGwgb2Ygb3Vy
IGNoaWxkcmVuIG11c3QgYmUgYmxvY2stbGV2ZWwuCkBAIC03Niw3ICs3NSw2IEBAIFJlbmRlckZs
ZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJl
bmRlclN0eWxlPiBzdHlsCiAKIFJlbmRlckZsZXhpYmxlQm94OjpSZW5kZXJGbGV4aWJsZUJveChE
b2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogICAgIDogUmVu
ZGVyQmxvY2soZG9jdW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCi0gICAgLCBtX29yZGVySXRl
cmF0b3IoKnRoaXMpCiAgICAgLCBtX251bWJlck9mSW5GbG93Q2hpbGRyZW5PbkZpcnN0TGluZSgt
MSkKIHsKICAgICBzZXRDaGlsZHJlbklubGluZShmYWxzZSk7IC8vIEFsbCBvZiBvdXIgY2hpbGRy
ZW4gbXVzdCBiZSBibG9jay1sZXZlbC4KQEAgLTI3NSwxMyArMjczLDExIEBAIHZvaWQgUmVuZGVy
RmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCkKIAogICAgIGRpcnR5Rm9yTGF5b3V0RnJvbVBlcmNlbnRhZ2VIZWlnaHREZXNjZW5kYW50cygp
OwogCi0gICAgVmVjdG9yPExpbmVDb250ZXh0PiBsaW5lQ29udGV4dHM7Ci0gICAgT3JkZXJJdGVy
YXRvcjo6T3JkZXJWYWx1ZXMgb3JkZXJWYWx1ZXM7Ci0gICAgY29tcHV0ZU1haW5BeGlzUHJlZmVy
cmVkU2l6ZXMob3JkZXJWYWx1ZXMpOwotICAgIG1fb3JkZXJJdGVyYXRvci5zZXRPcmRlclZhbHVl
cyhzdGQ6Om1vdmUob3JkZXJWYWx1ZXMpKTsKKyAgICBwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1h
cmdpbnMoKTsKIAogICAgIENoaWxkRnJhbWVSZWN0cyBvbGRDaGlsZFJlY3RzOwogICAgIGFwcGVu
ZENoaWxkRnJhbWVSZWN0cyhvbGRDaGlsZFJlY3RzKTsKKyAgICBWZWN0b3I8TGluZUNvbnRleHQ+
IGxpbmVDb250ZXh0czsKICAgICBsYXlvdXRGbGV4SXRlbXMocmVsYXlvdXRDaGlsZHJlbiwgbGlu
ZUNvbnRleHRzKTsKIAogICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKQEAgLTgzNCwxNiArODMw
LDEyIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVDaGlsZE1hcmdpblZh
bHVlKGNvbnN0IExlbmd0aCYgbWFyZ2luKQogICAgIHJldHVybiBtaW5pbXVtVmFsdWVGb3JMZW5n
dGgobWFyZ2luLCBhdmFpbGFibGVTaXplKTsKIH0KIAotdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6
Y29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMm
IG9yZGVyVmFsdWVzKQordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cHJlcGFyZU9yZGVySXRlcmF0
b3JBbmRNYXJnaW5zKCkKIHsKLSAgICBBU1NFUlQob3JkZXJWYWx1ZXMuaXNFbXB0eSgpKTsKKyAg
ICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvcihtX29yZGVySXRlcmF0b3IpOwogCiAg
ICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewotICAgICAgICAvLyBBdm9pZCBncm93aW5nIHRo
ZSB2ZWN0b3IgZm9yIHRoZSBjb21tb24tY2FzZSBkZWZhdWx0IHZhbHVlIG9mIDAuIFRoaXMgb3B0
aW1pemVzIHRoZSBtb3N0IGNvbW1vbiBjYXNlIHdoaWNoIGlzCi0gICAgICAgIC8vIG9uZSBvciBh
IGZldyB2YWx1ZXMgd2l0aCB0aGUgZGVmYXVsdCBvcmRlciAwCi0gICAgICAgIGludCBvcmRlciA9
IGNoaWxkLT5zdHlsZSgpLm9yZGVyKCk7Ci0gICAgICAgIGlmIChvcmRlclZhbHVlcy5pc0VtcHR5
KCkgfHwgb3JkZXJWYWx1ZXMubGFzdCgpICE9IG9yZGVyKQotICAgICAgICAgICAgb3JkZXJWYWx1
ZXMuYXBwZW5kKG9yZGVyKTsKKyAgICAgICAgcG9wdWxhdG9yLmNvbGxlY3RDaGlsZCgqY2hpbGQp
OwogCiAgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmgKaW5kZXggOTFiNTQ3YWNhOWU4MDU1Y2JiNTc2ZDNjNjBmM2I4Y2NlMDE1Nzg0MS4uMzU4
NTJjOWJjZjE4YmQ1MGU0MTFjNzBmN2E3ZjA5MjFkOTFkZTViMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwcml2
YXRlOgogICAgIExheW91dFVuaXQgbWFyZ2luQm94QXNjZW50Rm9yQ2hpbGQoUmVuZGVyQm94Jik7
CiAKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDaGlsZE1hcmdpblZhbHVlKGNvbnN0IExlbmd0aCYg
bWFyZ2luKTsKLSAgICB2b2lkIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKE9yZGVySXRl
cmF0b3I6Ok9yZGVyVmFsdWVzJik7CisgICAgdm9pZCBwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1h
cmdpbnMoKTsKICAgICBMYXlvdXRVbml0IGFkanVzdENoaWxkU2l6ZUZvck1pbkFuZE1heChSZW5k
ZXJCb3gmLCBMYXlvdXRVbml0IGNoaWxkU2l6ZSk7CiAgICAgYm9vbCBjb21wdXRlTmV4dEZsZXhM
aW5lKE9yZGVyZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcHJl
ZmVycmVkTWFpbkF4aXNFeHRlbnQsIGRvdWJsZSYgdG90YWxGbGV4R3JvdywgZG91YmxlJiB0b3Rh
bFdlaWdodGVkRmxleFNocmluaywgTGF5b3V0VW5pdCYgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0
ZW50LCBib29sJiBoYXNJbmZpbml0ZUxpbmVMZW5ndGgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggYWQxOTEwMzlkYmNjNGRkYmQ0OGU1ZDM1Y2VkMGQ1OWQ4
N2QxMzQxOS4uMTNhZTQ4M2Y0ZjYxZDFhNzAwMjllYzAyNGU2ZjIwODE4NWQ5YjhlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTY0LDcgKzE2NCw2IEBAIHB1
YmxpYzoKIAogUmVuZGVyR3JpZDo6UmVuZGVyR3JpZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVm
PFJlbmRlclN0eWxlPiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92
ZShzdHlsZSksIDApCi0gICAgLCBtX29yZGVySXRlcmF0b3IoKnRoaXMpCiB7CiAgICAgLy8gQWxs
IG9mIG91ciBjaGlsZHJlbiBtdXN0IGJlIGJsb2NrIGxldmVsLgogICAgIHNldENoaWxkcmVuSW5s
aW5lKGZhbHNlKTsKQEAgLTY5OSwxNyArNjk4LDEyIEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJ
dGVtc09uR3JpZCgpCiAKIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRP
cmRlckl0ZXJhdG9yKCkKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
c2hhcmUgT3JkZXJWYWx1ZXMncyBpbml0aWFsaXphdGlvbiBjb2RlIHdpdGggUmVuZGVyRmxleGli
bGVCb3guCi0gICAgT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMgb3JkZXJWYWx1ZXM7CisgICAg
T3JkZXJJdGVyYXRvclBvcHVsYXRvciBwb3B1bGF0b3IobV9vcmRlckl0ZXJhdG9yKTsKICAgICBz
aXplX3QgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXg8c2l6ZV90PigxLCBleHBsaWNpdEdyaWRS
b3dDb3VudCgpKTsKICAgICBzaXplX3QgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXg8c2l6
ZV90PigxLCBleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpKTsKIAogICAgIGZvciAoUmVuZGVyQm94
KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nQm94KCkpIHsKLSAgICAgICAgLy8gQXZvaWQgZ3Jvd2luZyB0aGUgdmVjdG9yIGZvciB0aGUg
Y29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1ZSBvZiAwLiBUaGlzIG9wdGltaXplcyB0aGUgbW9zdCBj
b21tb24gY2FzZSB3aGljaCBpcwotICAgICAgICAvLyBvbmUgb3IgYSBmZXcgdmFsdWVzIHdpdGgg
dGhlIGRlZmF1bHQgb3JkZXIgMAotICAgICAgICBpbnQgb3JkZXIgPSBjaGlsZC0+c3R5bGUoKS5v
cmRlcigpOwotICAgICAgICBpZiAob3JkZXJWYWx1ZXMuaXNFbXB0eSgpIHx8IG9yZGVyVmFsdWVz
Lmxhc3QoKSAhPSBvcmRlcikKLSAgICAgICAgICAgIG9yZGVyVmFsdWVzLmFwcGVuZChvcmRlcik7
CisgICAgICAgIHBvcHVsYXRvci5jb2xsZWN0Q2hpbGQoKmNoaWxkKTsKIAogICAgICAgICAvLyBU
aGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5hdGUoKSkg
YXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4KICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiByb3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwg
Rm9yUm93cyk7CkBAIC03MjYsOCArNzIwLDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4
cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogICAgIG1fZ3JpZC5ncm93KG1heGltdW1Sb3dJ
bmRleCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2dyaWQuc2l6ZSgpOyArK2kpCiAg
ICAgICAgIG1fZ3JpZFtpXS5ncm93KG1heGltdW1Db2x1bW5JbmRleCk7Ci0KLSAgICBtX29yZGVy
SXRlcmF0b3Iuc2V0T3JkZXJWYWx1ZXMoc3RkOjptb3ZlKG9yZGVyVmFsdWVzKSk7CiB9CiAKIHZv
aWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChjb25zdCBW
ZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9HcmlkSXRlbXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232071</attachid>
            <date>2014-05-26 05:34:11 -0700</date>
            <delta_ts>2014-05-26 13:38:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119061-20140526143346.patch</filename>
            <type>text/plain</type>
            <size>9968</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhZjZlZGJiMGMzMGM2
NGFkODlkODUyMTFhNzZjODkyMDY5ZjFlNi4uM2IyYmFlNDE3OWE3YmIyMGU1ZGJjNzI4MjhmYzI1
MWM4NTMyNjZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA1LTI2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNldHRpbmcg
dXAgT3JkZXJJdGVyYXRvciBzaG91bGRuJ3QgcmVxdWlyZSBhbiBleHRyYSBWZWN0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE1
Mzk3MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhpcyBwYXRjaGVz
IHJldXNlIHRoZSBPcmRlckl0ZXJhdG9yJ3MgVmVjdG9yLiBJdCBwcm92aWRlcyBhIGhlbHBlciBj
bGFzcyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yLCB1c2VkIGZvcgorICAgICAgICBtYW5pcHVsYXRp
bmcgdGhlIFZlY3RvciBkaXJlY3RseS4gV2hpY2ggYWxsb3dzIHRvIGNvbnNvbGlkYXRlIHRoZSBj
b2RlIGludG8gYSBzaW5nbGUgaW1wbGVtZW50YXRpb24gYWNyb3NzCisgICAgICAgIGZsZXhib3gg
YW5kIGdyaWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3Vy
cmVudCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9w
dWxhdG9yKTogUmVzZXQgT3JkZXJJdGVyYXRvciBhbmQgY2FsbAorICAgICAgICByZW1vdmVEdXBs
aWNhdGVkT3JkZXJWYWx1ZXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1
bGF0b3I6OnJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVlcyk6IFNvcnRzIHRoZSBWZWN0b3IgYW5k
IHJlbW92ZXMgdGhlIGR1cGxpY2F0ZWQKKyAgICAgICAgb3JkZXIgdmFsdWVzLgorICAgICAgICAo
V2ViQ29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKTogQ29sbGVjdCBv
cmRlciB2YWx1ZSBpbmZvcm1hdGlvbiBmcm9tIGNoaWxkLgorICAgICAgICAoV2ViQ29yZTo6T3Jk
ZXJJdGVyYXRvcjo6c2V0T3JkZXJWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9PcmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yUG9wdWxh
dG9yOjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQWRkIGhlbHBlciBjbGFzcyB0byBtYW5pcHVs
YXRlIE9yZGVyVmFsdWVzIFZlY3Rvci4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJs
b2NrKTogUmVtb3ZlIHVubmVlZGVkIGNvZGUgcmVsYXRlZCB0byBvbGQgT3JkZXJWYWx1ZXMgdmVj
dG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVPcmRlckl0
ZXJhdG9yQW5kTWFyZ2lucyk6IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENo
aWxkKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU1haW5B
eGlzUHJlZmVycmVkU2l6ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oOiBSZW5hbWUgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoKSB0byBw
cmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxp
Y2l0R3JpZEFuZE9yZGVySXRlcmF0b3IpOiBQb3B1bGF0ZSBPcmRlckl0ZXJhdG9yIHVzaW5nIGNv
bGxlY3RDaGlsZCgpLgorCiAyMDE0LTA1LTI2ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8
bS5wYWt1bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW5wdXQgZmllbGRzIGFuZCB0
ZXh0IGFyZWFzIGFyZSBub3QgcmVuZGVyZWQgY29ycmVjdGx5IGFmdGVyIHIxNjc3NzEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAppbmRleCBlMDk5MjRmOTc3OTFk
ZjdiNjM2ZmI3YWFkNDViYjVjOWRhNGQ2ZTdjLi5kZjZlZGJkZTdjMTk1MzZlYzIwY2ZkYjBkYWY2
YjdlYzAxZDU4ZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3Iu
Y3BwCkBAIC0zMiw4ICszMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiT3Jk
ZXJJdGVyYXRvci5oIgogCi0jaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKLSNpbmNsdWRl
ICJSZW5kZXJHcmlkLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDUsMTggKzQ0LDYgQEAgT3JkZXJJdGVyYXRvcjo6T3JkZXJJdGVyYXRvcihS
ZW5kZXJCb3gmIGNvbnRhaW5lckJveCkKICAgICByZXNldCgpOwogfQogCi12b2lkIE9yZGVySXRl
cmF0b3I6OnNldE9yZGVyVmFsdWVzKE9yZGVyVmFsdWVzJiYgb3JkZXJWYWx1ZXMpCi17Ci0gICAg
cmVzZXQoKTsKLSAgICBtX29yZGVyVmFsdWVzID0gc3RkOjptb3ZlKG9yZGVyVmFsdWVzKTsKLSAg
ICBpZiAobV9vcmRlclZhbHVlcy5zaXplKCkgPCAyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBz
dGQ6OnNvcnQobV9vcmRlclZhbHVlcy5iZWdpbigpLCBtX29yZGVyVmFsdWVzLmVuZCgpKTsKLSAg
ICBhdXRvIG5leHRFbGVtZW50ID0gc3RkOjp1bmlxdWUobV9vcmRlclZhbHVlcy5iZWdpbigpLCBt
X29yZGVyVmFsdWVzLmVuZCgpKTsKLSAgICBtX29yZGVyVmFsdWVzLnNocmlua0NhcGFjaXR5KG5l
eHRFbGVtZW50IC0gbV9vcmRlclZhbHVlcy5iZWdpbigpKTsKLX0KLQogUmVuZGVyQm94KiBPcmRl
ckl0ZXJhdG9yOjpmaXJzdCgpCiB7CiAgICAgcmVzZXQoKTsKQEAgLTk0LDQgKzgxLDI3IEBAIHZv
aWQgT3JkZXJJdGVyYXRvcjo6cmVzZXQoKQogICAgIG1fb3JkZXJJbmRleCA9IGNJbnZhbGlkSW5k
ZXg7CiB9CiAKK09yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9wdWxhdG9y
KCkKK3sKKyAgICBtX2l0ZXJhdG9yLnJlc2V0KCk7CisKKyAgICBpZiAobV9pdGVyYXRvci5tX29y
ZGVyVmFsdWVzLnNpemUoKSA+IDEpCisgICAgICAgIHJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVl
cygpOworfQorCit2b2lkIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6OnJlbW92ZUR1cGxpY2F0ZWRP
cmRlclZhbHVlcygpCit7CisgICAgT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMmIG9yZGVyVmFs
dWVzID0gbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzOworCisgICAgc3RkOjpzb3J0KG9yZGVyVmFs
dWVzLmJlZ2luKCksIG9yZGVyVmFsdWVzLmVuZCgpKTsKKyAgICBhdXRvIG5leHRFbGVtZW50ID0g
c3RkOjp1bmlxdWUob3JkZXJWYWx1ZXMuYmVnaW4oKSwgb3JkZXJWYWx1ZXMuZW5kKCkpOworICAg
IG9yZGVyVmFsdWVzLnNocmlua0NhcGFjaXR5KG5leHRFbGVtZW50IC0gb3JkZXJWYWx1ZXMuYmVn
aW4oKSk7Cit9CisKK3ZvaWQgT3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKGNv
bnN0IFJlbmRlckJveCYgY2hpbGQpCit7CisgICAgbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLmFw
cGVuZChjaGlsZC5zdHlsZSgpLm9yZGVyKCkpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCmluZGV4IGU0N2M4NTBj
YTVjZDBlNjRkZjM4M2UzZGMzNjNlY2UzNWU3NTFlNmYuLmJhOTBkODhhM2E4MGNjYjI3MGQ5MzU4
YzNjOGUwYzA2ODgzMjkyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9P
cmRlckl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0
b3IuaApAQCAtNDEsMTAgKzQxLDkgQEAgY2xhc3MgUmVuZGVyQm94OwogCiBjbGFzcyBPcmRlckl0
ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBPcmRlckl0ZXJhdG9yKFJlbmRlckJveCYpOworICAgIGZy
aWVuZCBjbGFzcyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOwogCi0gICAgdHlwZWRlZiBWZWN0b3I8
aW50LCAxPiBPcmRlclZhbHVlczsKLSAgICB2b2lkIHNldE9yZGVyVmFsdWVzKE9yZGVyVmFsdWVz
JiYpOworICAgIE9yZGVySXRlcmF0b3IoUmVuZGVyQm94Jik7CiAKICAgICBSZW5kZXJCb3gqIGN1
cnJlbnRDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudENoaWxkOyB9CiAgICAgUmVuZGVy
Qm94KiBmaXJzdCgpOwpAQCAtNTUsMTAgKzU0LDMzIEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJC
b3gmIG1fY29udGFpbmVyQm94OwogICAgIFJlbmRlckJveCogbV9jdXJyZW50Q2hpbGQ7CisKKyAg
ICB0eXBlZGVmIFZlY3RvcjxpbnQsIDE+IE9yZGVyVmFsdWVzOwogICAgIE9yZGVyVmFsdWVzIG1f
b3JkZXJWYWx1ZXM7CiAgICAgaW50IG1fb3JkZXJJbmRleDsKIH07CiAKK2NsYXNzIE9yZGVySXRl
cmF0b3JQb3B1bGF0b3IgeworcHVibGljOgorICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IoT3Jk
ZXJJdGVyYXRvciYgaXRlcmF0b3IpCisgICAgICAgIDogbV9pdGVyYXRvcihpdGVyYXRvcikKKyAg
ICB7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBkb24ndCByZWxlYXNlIHRoZSBtZW1vcnkgaGVy
ZSwgd2Ugb25seSBpbnZhbGlkYXRlIHRoZSBzaXplCisgICAgICAgIC8vIFRoaXMgYXZvaWRzIHVu
bmVlZGVkIHJlYWxsb2NhdGlvbiBpZiB0aGUgc2l6ZSBlbmRzIHVwIG5vdCBjaGFuZ2luZy4KKyAg
ICAgICAgbV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLnNocmluaygwKTsKKyAgICB9CisKKyAgICB+
T3JkZXJJdGVyYXRvclBvcHVsYXRvcigpOworCisgICAgdm9pZCBjb2xsZWN0Q2hpbGQoY29uc3Qg
UmVuZGVyQm94Jik7CisKK3ByaXZhdGU6CisKKyAgICB2b2lkIHJlbW92ZUR1cGxpY2F0ZWRPcmRl
clZhbHVlcygpOworCisgICAgT3JkZXJJdGVyYXRvciYgbV9pdGVyYXRvcjsKK307CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vICBPcmRlckl0ZXJhdG9yX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDNiM2NlMjMz
NzZiMWU4ZTAyMTFlNTZmMzhkMjgzYmU1NTQwNDE0ZWYuLmRhZWNiZmQ2NGZmNjc5NWQ3YTljNWY1
ZTA2Mzk5ZWViMzg4OTc4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcApAQCAtMjc1LDEzICsyNzUsMTEgQEAgdm9pZCBSZW5kZXJGbGV4aWJs
ZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogCiAg
ICAgZGlydHlGb3JMYXlvdXRGcm9tUGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7CiAKLSAg
ICBWZWN0b3I8TGluZUNvbnRleHQ+IGxpbmVDb250ZXh0czsKLSAgICBPcmRlckl0ZXJhdG9yOjpP
cmRlclZhbHVlcyBvcmRlclZhbHVlczsKLSAgICBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXpl
cyhvcmRlclZhbHVlcyk7Ci0gICAgbV9vcmRlckl0ZXJhdG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6
bW92ZShvcmRlclZhbHVlcykpOworICAgIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygp
OwogCiAgICAgQ2hpbGRGcmFtZVJlY3RzIG9sZENoaWxkUmVjdHM7CiAgICAgYXBwZW5kQ2hpbGRG
cmFtZVJlY3RzKG9sZENoaWxkUmVjdHMpOworICAgIFZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNv
bnRleHRzOwogICAgIGxheW91dEZsZXhJdGVtcyhyZWxheW91dENoaWxkcmVuLCBsaW5lQ29udGV4
dHMpOwogCiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwpAQCAtODM0LDE2ICs4MzIsMTIgQEAg
TGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZUNoaWxkTWFyZ2luVmFsdWUoY29u
c3QgTGVuZ3RoJiBtYXJnaW4pCiAgICAgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtYXJn
aW4sIGF2YWlsYWJsZVNpemUpOwogfQogCi12b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRl
TWFpbkF4aXNQcmVmZXJyZWRTaXplcyhPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyYgb3JkZXJW
YWx1ZXMpCit2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1h
cmdpbnMoKQogewotICAgIEFTU0VSVChvcmRlclZhbHVlcy5pc0VtcHR5KCkpOworICAgIE9yZGVy
SXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7CiAKICAgICBmb3Ig
KFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3Rv
ciBmb3IgdGhlIGNvbW1vbi1jYXNlIGRlZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMg
dGhlIG1vc3QgY29tbW9uIGNhc2Ugd2hpY2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEgZmV3IHZh
bHVlcyB3aXRoIHRoZSBkZWZhdWx0IG9yZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0gY2hpbGQt
PnN0eWxlKCkub3JkZXIoKTsKLSAgICAgICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHkoKSB8fCBv
cmRlclZhbHVlcy5sYXN0KCkgIT0gb3JkZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBl
bmQob3JkZXIpOworICAgICAgICBwb3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAg
ICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApp
bmRleCA5MWI1NDdhY2E5ZTgwNTVjYmI1NzZkM2M2MGYzYjhjY2UwMTU3ODQxLi4zNTg1MmM5YmNm
MThiZDUwZTQxMWM3MGY3YTdmMDkyMWQ5MWRlNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAg
ICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3hBc2NlbnRGb3JDaGlsZChSZW5kZXJCb3gmKTsKIAogICAg
IExheW91dFVuaXQgY29tcHV0ZUNoaWxkTWFyZ2luVmFsdWUoY29uc3QgTGVuZ3RoJiBtYXJnaW4p
OwotICAgIHZvaWQgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoT3JkZXJJdGVyYXRvcjo6
T3JkZXJWYWx1ZXMmKTsKKyAgICB2b2lkIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygp
OwogICAgIExheW91dFVuaXQgYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYs
IExheW91dFVuaXQgY2hpbGRTaXplKTsKICAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoT3Jk
ZXJlZEZsZXhJdGVtTGlzdCYgb3JkZXJlZENoaWxkcmVuLCBMYXlvdXRVbml0JiBwcmVmZXJyZWRN
YWluQXhpc0V4dGVudCwgZG91YmxlJiB0b3RhbEZsZXhHcm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0
ZWRGbGV4U2hyaW5rLCBMYXlvdXRVbml0JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQsIGJv
b2wmIGhhc0luZmluaXRlTGluZUxlbmd0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcAppbmRleCBkYTM2YzI5NTcyNzIyZDg5NDJlODc0NWIzZDZlNTZkZjllOTExNTNh
Li43NWU4YmViZDc1ZjUwOWE1MGNhZjg4ODdlY2Y0ODFiYzhhNTk2OTBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC02OTgsMTcgKzY5OCwxMiBAQCB2b2lkIFJl
bmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogCiB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRl
RXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBmaW5kIGEgd2F5IHRvIHNoYXJlIE9yZGVyVmFsdWVzJ3MgaW5pdGlhbGl6YXRpb24gY29kZSB3
aXRoIFJlbmRlckZsZXhpYmxlQm94LgotICAgIE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVzIG9y
ZGVyVmFsdWVzOworICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJ
dGVyYXRvcik7CiAgICAgc2l6ZV90IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4o
MSwgZXhwbGljaXRHcmlkUm93Q291bnQoKSk7CiAgICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRl
eCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CiAKICAg
ICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhl
IHZlY3RvciBmb3IgdGhlIGNvbW1vbi1jYXNlIGRlZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRp
bWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNhc2Ugd2hpY2ggaXMKLSAgICAgICAgLy8gb25lIG9yIGEg
ZmV3IHZhbHVlcyB3aXRoIHRoZSBkZWZhdWx0IG9yZGVyIDAKLSAgICAgICAgaW50IG9yZGVyID0g
Y2hpbGQtPnN0eWxlKCkub3JkZXIoKTsKLSAgICAgICAgaWYgKG9yZGVyVmFsdWVzLmlzRW1wdHko
KSB8fCBvcmRlclZhbHVlcy5sYXN0KCkgIT0gb3JkZXIpCi0gICAgICAgICAgICBvcmRlclZhbHVl
cy5hcHBlbmQob3JkZXIpOworICAgICAgICBwb3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7
CiAKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgY2FjaGUgKGNhY2hlZEdy
aWRDb29yZGluYXRlKCkpIGFzIGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQuCiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNG
cm9tU3R5bGUoY2hpbGQsIEZvclJvd3MpOwpAQCAtNzI1LDggKzcyMCw2IEBAIHZvaWQgUmVuZGVy
R3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKICAgICBtX2dyaWQu
Z3JvdyhtYXhpbXVtUm93SW5kZXgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ncmlk
LnNpemUoKTsgKytpKQogICAgICAgICBtX2dyaWRbaV0uZ3JvdyhtYXhpbXVtQ29sdW1uSW5kZXgp
OwotCi0gICAgbV9vcmRlckl0ZXJhdG9yLnNldE9yZGVyVmFsdWVzKHN0ZDo6bW92ZShvcmRlclZh
bHVlcykpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRl
bXNPbkdyaWQoY29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpZEl0ZW1zKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232094</attachid>
            <date>2014-05-26 13:38:51 -0700</date>
            <delta_ts>2014-05-27 00:18:25 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-119061-20140526223827.patch</filename>
            <type>text/plain</type>
            <size>9985</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhZjZlZGJiMGMzMGM2
NGFkODlkODUyMTFhNzZjODkyMDY5ZjFlNi4uNzE0YWZiNmQyNmVjNmRhNzA0MDI1ZDQzNzhmNjVh
ODU1YmE5ZThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA1LTI2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNldHRpbmcg
dXAgT3JkZXJJdGVyYXRvciBzaG91bGRuJ3QgcmVxdWlyZSBhbiBleHRyYSBWZWN0b3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE1Mzk3
MSBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGhpcyBwYXRjaGVzIHJl
dXNlIHRoZSBPcmRlckl0ZXJhdG9yJ3MgVmVjdG9yLiBJdCBwcm92aWRlcyBhIGhlbHBlciBjbGFz
cyBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yLCB1c2VkIGZvcgorICAgICAgICBtYW5pcHVsYXRpbmcg
dGhlIFZlY3RvciBkaXJlY3RseS4gV2hpY2ggYWxsb3dzIHRvIGNvbnNvbGlkYXRlIHRoZSBjb2Rl
IGludG8gYSBzaW5nbGUgaW1wbGVtZW50YXRpb24gYWNyb3NzCisgICAgICAgIGZsZXhib3ggYW5k
IGdyaWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVu
dCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRlckl0ZXJhdG9yUG9wdWxh
dG9yKTogUmVzZXQgT3JkZXJJdGVyYXRvciBhbmQgY2FsbAorICAgICAgICByZW1vdmVEdXBsaWNh
dGVkT3JkZXJWYWx1ZXMoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVySXRlcmF0b3JQb3B1bGF0
b3I6OnJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVlcyk6IFNvcnRzIHRoZSBWZWN0b3IgYW5kIHJl
bW92ZXMgdGhlIGR1cGxpY2F0ZWQKKyAgICAgICAgb3JkZXIgdmFsdWVzLgorICAgICAgICAoV2Vi
Q29yZTo6T3JkZXJJdGVyYXRvclBvcHVsYXRvcjo6Y29sbGVjdENoaWxkKTogQ29sbGVjdCBvcmRl
ciB2YWx1ZSBpbmZvcm1hdGlvbiBmcm9tIGNoaWxkLgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJJ
dGVyYXRvcjo6c2V0T3JkZXJWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9P
cmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9y
OjpPcmRlckl0ZXJhdG9yUG9wdWxhdG9yKTogQWRkIGhlbHBlciBjbGFzcyB0byBtYW5pcHVsYXRl
IE9yZGVyVmFsdWVzIFZlY3Rvci4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2Nr
KTogUmVtb3ZlIHVubmVlZGVkIGNvZGUgcmVsYXRlZCB0byBvbGQgT3JkZXJWYWx1ZXMgdmVjdG9y
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVPcmRlckl0ZXJh
dG9yQW5kTWFyZ2lucyk6IFBvcHVsYXRlIE9yZGVySXRlcmF0b3IgdXNpbmcgY29sbGVjdENoaWxk
KCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU1haW5BeGlz
UHJlZmVycmVkU2l6ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oOiBSZW5hbWUgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoKSB0byBwcmVw
YXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0
R3JpZEFuZE9yZGVySXRlcmF0b3IpOiBQb3B1bGF0ZSBPcmRlckl0ZXJhdG9yIHVzaW5nIGNvbGxl
Y3RDaGlsZCgpLgorCiAyMDE0LTA1LTI2ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5w
YWt1bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW5wdXQgZmllbGRzIGFuZCB0ZXh0
IGFyZWFzIGFyZSBub3QgcmVuZGVyZWQgY29ycmVjdGx5IGFmdGVyIHIxNjc3NzEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAppbmRleCBlMDk5MjRmOTc3OTFkZjdi
NjM2ZmI3YWFkNDViYjVjOWRhNGQ2ZTdjLi5hMzg5ODY3N2Y2M2FkY2IwNDZiNzYyODM5NWQ1ZTUy
ZDlhM2E2MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVy
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuY3Bw
CkBAIC0zMiw4ICszMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiT3JkZXJJ
dGVyYXRvci5oIgogCi0jaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKLSNpbmNsdWRlICJS
ZW5kZXJHcmlkLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDUsMTggKzQ0LDYgQEAgT3JkZXJJdGVyYXRvcjo6T3JkZXJJdGVyYXRvcihSZW5k
ZXJCb3gmIGNvbnRhaW5lckJveCkKICAgICByZXNldCgpOwogfQogCi12b2lkIE9yZGVySXRlcmF0
b3I6OnNldE9yZGVyVmFsdWVzKE9yZGVyVmFsdWVzJiYgb3JkZXJWYWx1ZXMpCi17Ci0gICAgcmVz
ZXQoKTsKLSAgICBtX29yZGVyVmFsdWVzID0gc3RkOjptb3ZlKG9yZGVyVmFsdWVzKTsKLSAgICBp
ZiAobV9vcmRlclZhbHVlcy5zaXplKCkgPCAyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzdGQ6
OnNvcnQobV9vcmRlclZhbHVlcy5iZWdpbigpLCBtX29yZGVyVmFsdWVzLmVuZCgpKTsKLSAgICBh
dXRvIG5leHRFbGVtZW50ID0gc3RkOjp1bmlxdWUobV9vcmRlclZhbHVlcy5iZWdpbigpLCBtX29y
ZGVyVmFsdWVzLmVuZCgpKTsKLSAgICBtX29yZGVyVmFsdWVzLnNocmlua0NhcGFjaXR5KG5leHRF
bGVtZW50IC0gbV9vcmRlclZhbHVlcy5iZWdpbigpKTsKLX0KLQogUmVuZGVyQm94KiBPcmRlckl0
ZXJhdG9yOjpmaXJzdCgpCiB7CiAgICAgcmVzZXQoKTsKQEAgLTk0LDQgKzgxLDM1IEBAIHZvaWQg
T3JkZXJJdGVyYXRvcjo6cmVzZXQoKQogICAgIG1fb3JkZXJJbmRleCA9IGNJbnZhbGlkSW5kZXg7
CiB9CiAKK09yZGVySXRlcmF0b3JQb3B1bGF0b3I6Ok9yZGVySXRlcmF0b3JQb3B1bGF0b3IoT3Jk
ZXJJdGVyYXRvciYgaXRlcmF0b3IpCisgICAgOiBtX2l0ZXJhdG9yKGl0ZXJhdG9yKQoreworICAg
IC8vIE5vdGUgdGhhdCB3ZSBkb24ndCByZWxlYXNlIHRoZSBtZW1vcnkgaGVyZSwgd2Ugb25seSBp
bnZhbGlkYXRlIHRoZSBzaXplCisgICAgLy8gVGhpcyBhdm9pZHMgdW5uZWVkZWQgcmVhbGxvY2F0
aW9uIGlmIHRoZSBzaXplIGVuZHMgdXAgbm90IGNoYW5naW5nLgorICAgIG1faXRlcmF0b3IubV9v
cmRlclZhbHVlcy5zaHJpbmsoMCk7Cit9CisKK09yZGVySXRlcmF0b3JQb3B1bGF0b3I6On5PcmRl
ckl0ZXJhdG9yUG9wdWxhdG9yKCkKK3sKKyAgICBtX2l0ZXJhdG9yLnJlc2V0KCk7CisKKyAgICBp
ZiAobV9pdGVyYXRvci5tX29yZGVyVmFsdWVzLnNpemUoKSA+IDEpCisgICAgICAgIHJlbW92ZUR1
cGxpY2F0ZWRPcmRlclZhbHVlcygpOworfQorCit2b2lkIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I6
OnJlbW92ZUR1cGxpY2F0ZWRPcmRlclZhbHVlcygpCit7CisgICAgYXV0byYgb3JkZXJWYWx1ZXMg
PSBtX2l0ZXJhdG9yLm1fb3JkZXJWYWx1ZXM7CisKKyAgICBzdGQ6OnNvcnQob3JkZXJWYWx1ZXMu
YmVnaW4oKSwgb3JkZXJWYWx1ZXMuZW5kKCkpOworICAgIGF1dG8gbmV4dEVsZW1lbnQgPSBzdGQ6
OnVuaXF1ZShvcmRlclZhbHVlcy5iZWdpbigpLCBvcmRlclZhbHVlcy5lbmQoKSk7CisgICAgb3Jk
ZXJWYWx1ZXMuc2hyaW5rQ2FwYWNpdHkobmV4dEVsZW1lbnQgLSBvcmRlclZhbHVlcy5iZWdpbigp
KTsKK30KKwordm9pZCBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yOjpjb2xsZWN0Q2hpbGQoY29uc3Qg
UmVuZGVyQm94JiBjaGlsZCkKK3sKKyAgICBtX2l0ZXJhdG9yLm1fb3JkZXJWYWx1ZXMuYXBwZW5k
KGNoaWxkLnN0eWxlKCkub3JkZXIoKSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVySXRlcmF0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKaW5kZXggZTQ3Yzg1MGNhNWNk
MGU2NGRmMzgzZTNkYzM2M2VjZTM1ZTc1MWU2Zi4uNTJmM2YxMTdkNjY4NTE1ZGJkNDcxNmQ0NmQw
ZDZhYTg3NGMyNzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL09yZGVy
SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5o
CkBAIC00MSwxMCArNDEsOSBAQCBjbGFzcyBSZW5kZXJCb3g7CiAKIGNsYXNzIE9yZGVySXRlcmF0
b3IgewogcHVibGljOgotICAgIE9yZGVySXRlcmF0b3IoUmVuZGVyQm94Jik7CisgICAgZnJpZW5k
IGNsYXNzIE9yZGVySXRlcmF0b3JQb3B1bGF0b3I7CiAKLSAgICB0eXBlZGVmIFZlY3RvcjxpbnQs
IDE+IE9yZGVyVmFsdWVzOwotICAgIHZvaWQgc2V0T3JkZXJWYWx1ZXMoT3JkZXJWYWx1ZXMmJik7
CisgICAgZXhwbGljaXQgT3JkZXJJdGVyYXRvcihSZW5kZXJCb3gmKTsKIAogICAgIFJlbmRlckJv
eCogY3VycmVudENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q2hpbGQ7IH0KICAgICBS
ZW5kZXJCb3gqIGZpcnN0KCk7CkBAIC01NSwxMCArNTQsMjQgQEAgcHJpdmF0ZToKIAogICAgIFJl
bmRlckJveCYgbV9jb250YWluZXJCb3g7CiAgICAgUmVuZGVyQm94KiBtX2N1cnJlbnRDaGlsZDsK
LSAgICBPcmRlclZhbHVlcyBtX29yZGVyVmFsdWVzOworCisgICAgVmVjdG9yPGludCwgMT4gbV9v
cmRlclZhbHVlczsKICAgICBpbnQgbV9vcmRlckluZGV4OwogfTsKIAorY2xhc3MgT3JkZXJJdGVy
YXRvclBvcHVsYXRvciB7CitwdWJsaWM6CisgICAgT3JkZXJJdGVyYXRvclBvcHVsYXRvcihPcmRl
ckl0ZXJhdG9yJik7CisgICAgfk9yZGVySXRlcmF0b3JQb3B1bGF0b3IoKTsKKworICAgIHZvaWQg
Y29sbGVjdENoaWxkKGNvbnN0IFJlbmRlckJveCYpOworCitwcml2YXRlOgorICAgIHZvaWQgcmVt
b3ZlRHVwbGljYXRlZE9yZGVyVmFsdWVzKCk7CisKKyAgICBPcmRlckl0ZXJhdG9yJiBtX2l0ZXJh
dG9yOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIE9yZGVySXRl
cmF0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKaW5kZXggM2IzY2UyMzM3NmIxZThlMDIxMWU1NmYzOGQyODNiZTU1NDA0MTRlZi4uZGFlY2Jm
ZDY0ZmY2Nzk1ZDdhOWM1ZjVlMDYzOTllZWIzODg5Nzg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0yNzUsMTMgKzI3NSwxMSBAQCB2
b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4s
IExheW91dFVuaXQpCiAKICAgICBkaXJ0eUZvckxheW91dEZyb21QZXJjZW50YWdlSGVpZ2h0RGVz
Y2VuZGFudHMoKTsKIAotICAgIFZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRleHRzOwotICAg
IE9yZGVySXRlcmF0b3I6Ok9yZGVyVmFsdWVzIG9yZGVyVmFsdWVzOwotICAgIGNvbXB1dGVNYWlu
QXhpc1ByZWZlcnJlZFNpemVzKG9yZGVyVmFsdWVzKTsKLSAgICBtX29yZGVySXRlcmF0b3Iuc2V0
T3JkZXJWYWx1ZXMoc3RkOjptb3ZlKG9yZGVyVmFsdWVzKSk7CisgICAgcHJlcGFyZU9yZGVySXRl
cmF0b3JBbmRNYXJnaW5zKCk7CiAKICAgICBDaGlsZEZyYW1lUmVjdHMgb2xkQ2hpbGRSZWN0czsK
ICAgICBhcHBlbmRDaGlsZEZyYW1lUmVjdHMob2xkQ2hpbGRSZWN0cyk7CisgICAgVmVjdG9yPExp
bmVDb250ZXh0PiBsaW5lQ29udGV4dHM7CiAgICAgbGF5b3V0RmxleEl0ZW1zKHJlbGF5b3V0Q2hp
bGRyZW4sIGxpbmVDb250ZXh0cyk7CiAKICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CkBAIC04
MzQsMTYgKzgzMiwxMiBAQCBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQ2hp
bGRNYXJnaW5WYWx1ZShjb25zdCBMZW5ndGgmIG1hcmdpbikKICAgICByZXR1cm4gbWluaW11bVZh
bHVlRm9yTGVuZ3RoKG1hcmdpbiwgYXZhaWxhYmxlU2l6ZSk7CiB9CiAKLXZvaWQgUmVuZGVyRmxl
eGlibGVCb3g6OmNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKE9yZGVySXRlcmF0b3I6Ok9y
ZGVyVmFsdWVzJiBvcmRlclZhbHVlcykKK3ZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnByZXBhcmVP
cmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpCiB7Ci0gICAgQVNTRVJUKG9yZGVyVmFsdWVzLmlzRW1w
dHkoKSk7CisgICAgT3JkZXJJdGVyYXRvclBvcHVsYXRvciBwb3B1bGF0b3IobV9vcmRlckl0ZXJh
dG9yKTsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKLSAgICAgICAgLy8gQXZvaWQg
Z3Jvd2luZyB0aGUgdmVjdG9yIGZvciB0aGUgY29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1ZSBvZiAw
LiBUaGlzIG9wdGltaXplcyB0aGUgbW9zdCBjb21tb24gY2FzZSB3aGljaCBpcwotICAgICAgICAv
LyBvbmUgb3IgYSBmZXcgdmFsdWVzIHdpdGggdGhlIGRlZmF1bHQgb3JkZXIgMAotICAgICAgICBp
bnQgb3JkZXIgPSBjaGlsZC0+c3R5bGUoKS5vcmRlcigpOwotICAgICAgICBpZiAob3JkZXJWYWx1
ZXMuaXNFbXB0eSgpIHx8IG9yZGVyVmFsdWVzLmxhc3QoKSAhPSBvcmRlcikKLSAgICAgICAgICAg
IG9yZGVyVmFsdWVzLmFwcGVuZChvcmRlcik7CisgICAgICAgIHBvcHVsYXRvci5jb2xsZWN0Q2hp
bGQoKmNoaWxkKTsKIAogICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
KQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oCmluZGV4IDkxYjU0N2FjYTllODA1NWNiYjU3NmQzYzYwZjNiOGNjZTAx
NTc4NDEuLjM1ODUyYzliY2YxOGJkNTBlNDExYzcwZjdhN2YwOTIxZDkxZGU1YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xMzcsNyArMTM3
LDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IG1hcmdpbkJveEFzY2VudEZvckNoaWxkKFJl
bmRlckJveCYpOwogCiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ2hpbGRNYXJnaW5WYWx1ZShjb25z
dCBMZW5ndGgmIG1hcmdpbik7Ci0gICAgdm9pZCBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXpl
cyhPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyYpOworICAgIHZvaWQgcHJlcGFyZU9yZGVySXRl
cmF0b3JBbmRNYXJnaW5zKCk7CiAgICAgTGF5b3V0VW5pdCBhZGp1c3RDaGlsZFNpemVGb3JNaW5B
bmRNYXgoUmVuZGVyQm94JiwgTGF5b3V0VW5pdCBjaGlsZFNpemUpOwogICAgIGJvb2wgY29tcHV0
ZU5leHRGbGV4TGluZShPcmRlcmVkRmxleEl0ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91
dFVuaXQmIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCBkb3VibGUmIHRvdGFsRmxleEdyb3csIGRv
dWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmssIExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRN
YWluQXhpc0V4dGVudCwgYm9vbCYgaGFzSW5maW5pdGVMaW5lTGVuZ3RoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGRhMzZjMjk1NzI3MjJkODk0MmU4NzQ1
YjNkNmU1NmRmOWU5MTE1M2EuLjc1ZThiZWJkNzVmNTA5YTUwY2FmODg4N2VjZjQ4MWJjOGE1OTY5
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTY5OCwxNyAr
Njk4LDEyIEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAKIHZvaWQgUmVu
ZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKIHsKLSAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hhcmUgT3JkZXJWYWx1ZXMncyBpbml0
aWFsaXphdGlvbiBjb2RlIHdpdGggUmVuZGVyRmxleGlibGVCb3guCi0gICAgT3JkZXJJdGVyYXRv
cjo6T3JkZXJWYWx1ZXMgb3JkZXJWYWx1ZXM7CisgICAgT3JkZXJJdGVyYXRvclBvcHVsYXRvciBw
b3B1bGF0b3IobV9vcmRlckl0ZXJhdG9yKTsKICAgICBzaXplX3QgbWF4aW11bVJvd0luZGV4ID0g
c3RkOjptYXg8c2l6ZV90PigxLCBleHBsaWNpdEdyaWRSb3dDb3VudCgpKTsKICAgICBzaXplX3Qg
bWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXg8c2l6ZV90PigxLCBleHBsaWNpdEdyaWRDb2x1
bW5Db3VudCgpKTsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3go
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKLSAgICAgICAgLy8g
QXZvaWQgZ3Jvd2luZyB0aGUgdmVjdG9yIGZvciB0aGUgY29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1
ZSBvZiAwLiBUaGlzIG9wdGltaXplcyB0aGUgbW9zdCBjb21tb24gY2FzZSB3aGljaCBpcwotICAg
ICAgICAvLyBvbmUgb3IgYSBmZXcgdmFsdWVzIHdpdGggdGhlIGRlZmF1bHQgb3JkZXIgMAotICAg
ICAgICBpbnQgb3JkZXIgPSBjaGlsZC0+c3R5bGUoKS5vcmRlcigpOwotICAgICAgICBpZiAob3Jk
ZXJWYWx1ZXMuaXNFbXB0eSgpIHx8IG9yZGVyVmFsdWVzLmxhc3QoKSAhPSBvcmRlcikKLSAgICAg
ICAgICAgIG9yZGVyVmFsdWVzLmFwcGVuZChvcmRlcik7CisgICAgICAgIHBvcHVsYXRvci5jb2xs
ZWN0Q2hpbGQoKmNoaWxkKTsKIAogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRo
ZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5hdGUoKSkgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBp
dC4KICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSByZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yUm93cyk7CkBAIC03MjUsOCArNzIw
LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0
b3IoKQogICAgIG1fZ3JpZC5ncm93KG1heGltdW1Sb3dJbmRleCk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2dyaWQuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZ3JpZFtpXS5ncm93KG1h
eGltdW1Db2x1bW5JbmRleCk7Ci0KLSAgICBtX29yZGVySXRlcmF0b3Iuc2V0T3JkZXJWYWx1ZXMo
c3RkOjptb3ZlKG9yZGVyVmFsdWVzKSk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVj
aWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChjb25zdCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9H
cmlkSXRlbXMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>