<?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>165131</bug_id>
          
          <creation_ts>2016-11-28 18:13:34 -0800</creation_ts>
          <short_desc>Some animated image do not animate after reseting their animations</short_desc>
          <delta_ts>2017-03-08 17:24:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155322</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254151</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-28 18:13:34 -0800</bug_when>
    <thetext>1. Create an HTML page with a single &lt;img&gt; tag.
2. Set the src of the image tag to a local animated image.
3. Load the page in MiniBrowser.
4. Reload the same page in WebKit by pressing Enter in the address bar in MiniBrowser for example.

Result: The animated image stops animating after reloading the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254152</commentid>
    <comment_count>1</comment_count>
      <attachid>295564</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-28 18:14:43 -0800</bug_when>
    <thetext>Created attachment 295564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254177</commentid>
    <comment_count>2</comment_count>
      <attachid>295564</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-28 19:54:37 -0800</bug_when>
    <thetext>Comment on attachment 295564
Patch

Attachment 295564 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/2586292

New failing tests:
intersection-observer/intersection-observer-entry-interface.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254178</commentid>
    <comment_count>3</comment_count>
      <attachid>295572</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-11-28 19:54:41 -0800</bug_when>
    <thetext>Created attachment 295572
Archive of layout-test-results from ews123 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews123  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254346</commentid>
    <comment_count>4</comment_count>
      <attachid>295607</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 11:10:14 -0800</bug_when>
    <thetext>Created attachment 295607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254368</commentid>
    <comment_count>5</comment_count>
      <attachid>295607</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-29 11:39:20 -0800</bug_when>
    <thetext>Comment on attachment 295607
Patch

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

&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:249
&gt; +    if (!frame.isBeingDecoded())
&gt; +        return;

This is a bit confusing. Is the frame&apos;s &quot;being decoded&quot; state true because we know the caller is decoding the frame that it&apos;s passing to this function? What is the state in which this is not true? If the decoding thread is terminated, why not pass a null image in here?

&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:300
&gt; +        m_frameRequestQueue.open();
&gt;          startAsyncDecodingQueue();

Confusing that the m_frameRequestQueue and the &quot;async decoding queue&quot; are two separate things.

&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:307
&gt; +    if (frame.isBeingDecoded())
&gt; +        return true;

Seems odd to check this here and not in the caller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254381</commentid>
    <comment_count>6</comment_count>
      <attachid>295607</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 12:03:48 -0800</bug_when>
    <thetext>Comment on attachment 295607
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:249
&gt;&gt; +        return;
&gt; 
&gt; This is a bit confusing. Is the frame&apos;s &quot;being decoded&quot; state true because we know the caller is decoding the frame that it&apos;s passing to this function? What is the state in which this is not true? If the decoding thread is terminated, why not pass a null image in here?

This can happen because of the following call in the decoding thread:

            // Update the cached frames on the main thread to avoid updating the MemoryCache from a different thread.
            callOnMainThread([this, nativeImage, frameRequest] () mutable {
                // The queue may be closed if after we got the frame NativeImage, stopAsyncDecodingQueue() was called
                if (hasDecodingQueue())
                    cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);
            });

This is another asynchronous call. It can be issued just before the decoding thread is terminating but it was not executed. Then ImageFrameCache::stopAsyncDecodingQueue() is called which will terminates the decoding thread and sets m_decodingQueue to null. Then the same image is reused from the cache and ImageFrameCache::startAsyncDecodingQueue() is called. Now m_decodingQueue is set to a new WorkQueue object. Then the following statement is executed on the main thread:

                if (hasDecodingQueue())
                    cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);

This will check whether m_decodingQueue is not null. It finds it is not null but actually it is a new WorkQueue different from the one that issues it. So it calls cacheFrameNativeImageAtIndex(). The only thing I can check that this NativeImage a left-over code that we have to ignore is to check frame.isBeingDecoded(). So I have to call frame.clear() for all these frames which are being decoded in ImageFrameCache::stopAsyncDecodingQueue().

&gt;&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:300
&gt;&gt;          startAsyncDecodingQueue();
&gt; 
&gt; Confusing that the m_frameRequestQueue and the &quot;async decoding queue&quot; are two separate things.

m_frameRequestQueue.open() is moved to startAsyncDecodingQueue() before starting the decoding thread.

&gt;&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:307
&gt;&gt; +        return true;
&gt; 
&gt; Seems odd to check this here and not in the caller.

This is an optimization and the plan is call requestFrameAsyncDecodingAtIndex() from two places: BitmapImage::draw() for large images and BitmapImage::internalStartAnimation() for animated images. So I think it is better to have this check in one place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254513</commentid>
    <comment_count>7</comment_count>
      <attachid>295653</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 15:28:28 -0800</bug_when>
    <thetext>Created attachment 295653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254536</commentid>
    <comment_count>8</comment_count>
      <attachid>295607</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 15:59:46 -0800</bug_when>
    <thetext>Comment on attachment 295607
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:249
&gt;&gt;&gt; +        return;
&gt;&gt; 
&gt;&gt; This is a bit confusing. Is the frame&apos;s &quot;being decoded&quot; state true because we know the caller is decoding the frame that it&apos;s passing to this function? What is the state in which this is not true? If the decoding thread is terminated, why not pass a null image in here?
&gt; 
&gt; This can happen because of the following call in the decoding thread:
&gt; 
&gt;             // Update the cached frames on the main thread to avoid updating the MemoryCache from a different thread.
&gt;             callOnMainThread([this, nativeImage, frameRequest] () mutable {
&gt;                 // The queue may be closed if after we got the frame NativeImage, stopAsyncDecodingQueue() was called
&gt;                 if (hasDecodingQueue())
&gt;                     cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);
&gt;             });
&gt; 
&gt; This is another asynchronous call. It can be issued just before the decoding thread is terminating but it was not executed. Then ImageFrameCache::stopAsyncDecodingQueue() is called which will terminates the decoding thread and sets m_decodingQueue to null. Then the same image is reused from the cache and ImageFrameCache::startAsyncDecodingQueue() is called. Now m_decodingQueue is set to a new WorkQueue object. Then the following statement is executed on the main thread:
&gt; 
&gt;                 if (hasDecodingQueue())
&gt;                     cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);
&gt; 
&gt; This will check whether m_decodingQueue is not null. It finds it is not null but actually it is a new WorkQueue different from the one that issues it. So it calls cacheFrameNativeImageAtIndex(). The only thing I can check that this NativeImage a left-over code that we have to ignore is to check frame.isBeingDecoded(). So I have to call frame.clear() for all these frames which are being decoded in ImageFrameCache::stopAsyncDecodingQueue().

It is normal for a function passed to callOnMainThread() to be called after the calling thread terminates. We need to handle this case especially when reloading the same page: (1) the document is destroyed, (2) the animation is stopped (3) the resources are set to be garbage collected, (4) a new document is created, (5) the resources are reused from the memory cache and (6) and the animation is reset. I hit a scenario where the function of callOnMainThread() was called after the animation was restarted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254550</commentid>
    <comment_count>9</comment_count>
      <attachid>295665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 16:09:07 -0800</bug_when>
    <thetext>Created attachment 295665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254587</commentid>
    <comment_count>10</comment_count>
      <attachid>295665</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-29 17:16:45 -0800</bug_when>
    <thetext>Comment on attachment 295665
Patch

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

&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:307
&gt; +    if (frame.isBeingDecoded())
&gt; +        return true;

I think you need a comment here explaining this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254662</commentid>
    <comment_count>11</comment_count>
      <attachid>295697</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 20:05:25 -0800</bug_when>
    <thetext>Created attachment 295697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254671</commentid>
    <comment_count>12</comment_count>
      <attachid>295699</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 20:31:43 -0800</bug_when>
    <thetext>Created attachment 295699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254676</commentid>
    <comment_count>13</comment_count>
      <attachid>295665</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-29 20:38:46 -0800</bug_when>
    <thetext>Comment on attachment 295665
Patch

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

&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:250
&gt; +    ASSERT(index &lt; m_frames.size());
&gt; +    ImageFrame&amp; frame = m_frames[index];
&gt; +
&gt; +    if (!frame.isBeingDecoded())
&gt; +        return;
&gt; +

I removed this confusing code and I made another change before calling cacheFrameNativeImageAtIndex() through callOnMainThread() in the decoding thread. I replaced

&lt;&lt;    if (hasDecodingQueue())
          cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);

with

&gt;&gt;    if (protectedQueue.ptr() == m_decodingQueue)
          cacheFrameNativeImageAtIndex(WTFMove(nativeImage), frameRequest.index, frameRequest.subsamplingLevel);

The condition if (protectedQueue.ptr() == m_decodingQueue) will be false if the decoding thread was terminated or restarted. In both cases, the NativeImage will not cached in the ImageFrame and this is what we want.  Note that the old if (hasDecodingQueue()) was false only if the decoding thread was terminated but not restarted.

&gt;&gt; Source/WebCore/platform/graphics/ImageFrameCache.cpp:307
&gt;&gt; +        return true;
&gt; 
&gt; I think you need a comment here explaining this check.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254714</commentid>
    <comment_count>14</comment_count>
      <attachid>295699</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-29 23:25:03 -0800</bug_when>
    <thetext>Comment on attachment 295699
Patch

Rejecting attachment 295699 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 295699, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/2593560</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254767</commentid>
    <comment_count>15</comment_count>
      <attachid>295717</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-11-30 08:31:57 -0800</bug_when>
    <thetext>Created attachment 295717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254780</commentid>
    <comment_count>16</comment_count>
      <attachid>295717</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 09:10:24 -0800</bug_when>
    <thetext>Comment on attachment 295717
Patch

Clearing flags on attachment: 295717

Committed r209131: &lt;http://trac.webkit.org/changeset/209131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254781</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-30 09:10:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295564</attachid>
            <date>2016-11-28 18:14:43 -0800</date>
            <delta_ts>2016-11-29 11:10:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161128181419.patch</filename>
            <type>text/plain</type>
            <size>3970</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE2LTExLTI4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVkIGFu
aW1hdGVkIGltYWdlcyBkbyBub3QgYW5pbWF0ZSBpZiB0aGUgcGFnZSBpcyByZWxvYWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MTMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBoYXBw
ZW5zIHdoZW4gdGhlIEJpdG1hcEltYWdlIGlzIGNhY2hlZCBhbmQgcmV1c2VkIGZvciB0aGUgbmV3
CisgICAgICAgIHBhZ2UuIFRoZSBJbWFnZUZyYW1lQ2FjaGUgZnJhbWVzIGFyZSBub3QgcmVzZXQg
dG8gYSBwcm9wZXIgaW5pdGlhbCBzdGF0ZS4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGlnbm9y
ZSBjYWNoaW5nIGEgbmV3IE5hdGl2ZUltYWdlIGluIGFuIEltYWdlRnJhbWUgaWYgdGhpcworICAg
ICAgICBJbWFnZUZyYW1lIGlzIG5vdCBtYXJrZWQgQmVpbmdEZWNvZGVkLiBUaGlzIGNhbiBoYXBw
ZW4gaWYgdGhlIGRlY29kaW5nCisgICAgICAgIHRocmVhZCB3YXMgdGVybWluYXRlZCBhZnRlciBj
YWxsaW5nIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoKSBvbgorICAgICAgICB0aGUgbWFp
biB0aHJlYWQuIEFsdGhvdWdoIHRoZSBkZWNvZGluZyB0aHJlYWQgd2FzIHRlcm1pbmF0ZWQgdGhp
cyBjYWxsCisgICAgICAgIG9uIG1haW4gdGhyZWFkIHN0aWxsIGhhcHBlbnMuCisKKyAgICAgICAg
LS0gV2UgbmVlZCB0byBvcGVuIHRoZSBtX2ZyYW1lUmVxdWVzdFF1ZXVlIGJlZm9yZSBzdGFydGlu
ZyBhIG5ldyBkZWNvZGluZworICAgICAgICB0aHJlYWQuIE9wZW5pbmcgbV9mcmFtZVJlcXVlc3RR
dWV1ZSBjbGVhcnMgdGhlIGVucXVldWVkIHJlcXVlc3RzIGZyb20gdGhlIAorICAgICAgICBwcmV2
aW91cyBkZWNvZGluZyB0aHJlYWQgYW5kIGFsbG93cyBlbnF1ZXVlaW5nIHJlcXVlc3RzIGZvciB0
aGUgbmV3IHRocmVhZC4KKyAgICAgICAgCisgICAgICAgIC0tIFdlIG5lZWQgdG8gY2xlYXIgdGhl
IEltYWdlRnJhbWVzIHRoYXQgd2VyZSBiZWluZyBkZWNvZGVkIGF0IHRoZSB0aW1lCisgICAgICAg
IHRoZSBkZWNvZGluZyBxdWV1ZSB3YXMgY2xvc2luZyBhbmQgdGhlaXIgbmV3IE5hdGl2ZUltYWdl
cyB3ZXJlIG5vdCBjYWNoZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZy
YW1lQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpjYWNoZUZy
YW1lTmF0aXZlSW1hZ2VBdEluZGV4KTogRG9uJ3QgY2FjaGUgYSBOYXRpdmVJbWFnZQorICAgICAg
ICBpbiB0aGUgSW1hZ2VGcmFtZSB1bmxlc3MgdGhpcyBJbWFnZUZyYW1lIGlzIG1hcmtlZCBmb3Ig
QmVpbmdEZWNvZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpyZXF1ZXN0
RnJhbWVBc3luY0RlY29kaW5nQXRJbmRleCk6IE9wZW4gdGhlIAorICAgICAgICBtX2ZyYW1lUmVx
dWVzdFF1ZXVlIGJlZm9yZSBzdGFydGluZyB0aGUgZGVjb2RpbmcgdGhyZWFkLiBBbHNvIGRvbid0
IHJlcXVlc3QgYW4KKyAgICAgICAgaW1hZ2UgZnJhbWUgdG8gYmUgYmUgYXN5bmNocm9ub3VzbHkg
ZGVjb2RlZCBpZiBpdCBpcyBhbHJlYWR5IGJlaW5nIGRlY29kZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0RlY29kaW5nUXVldWUpOiBDbGVhciB0aGUgSW1h
Z2VGcmFtZXMgdGhhdAorICAgICAgICB3ZXJlIGJlaW5nIGRlY29kZWQgd2hlbiB0aGUgZGVjb2Rp
bmcgdGhyZWFkIHRlcm1pbmF0ZXMuCisKIDIwMTYtMTEtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBVc2UgVUlLaXQgU1BJIHRvIGZvcmNlIHBvcG92
ZXIgcHJlc2VudGF0aW9uIHN0eWxlIG9uIGlQaG9uZSBmb3IgaHRtbCB2YWxpZGF0aW9uIHBvcG92
ZXJzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2Fj
aGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
Miw2ICsyNDIsMTIgQEAgdm9pZCBJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRpdmVJbQog
ICAgIGlmICghaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFT
U0VSVChpbmRleCA8IG1fZnJhbWVzLnNpemUoKSk7CisgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBt
X2ZyYW1lc1tpbmRleF07CisKKyAgICBpZiAoIWZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIC8vIENsZWFuIHRoZSBvbGQgbmF0aXZlIGltYWdlIGFuZCBzZXQg
YSBuZXcgb25lCiAgICAgcmVwbGFjZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KFdURk1vdmUobmF0
aXZlSW1hZ2UpLCBpbmRleCwgc3Vic2FtcGxpbmdMZXZlbCk7CiAKQEAgLTI4OSwxOCArMjk1LDIz
IEBAIGJvb2wgSW1hZ2VGcmFtZUNhY2hlOjpyZXF1ZXN0RnJhbWVBc3luY0QKICAgICBpZiAoIWlz
RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWhh
c0RlY29kaW5nUXVldWUoKSkKKyAgICBpZiAoIWhhc0RlY29kaW5nUXVldWUoKSkgeworICAgICAg
ICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLm9wZW4oKTsKICAgICAgICAgc3RhcnRBc3luY0RlY29kaW5n
UXVldWUoKTsKKyAgICB9CiAKICAgICBBU1NFUlQoaW5kZXggPCBtX2ZyYW1lcy5zaXplKCkpOwog
ICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZXNbaW5kZXhdOwotICAgIAorCisgICAgaWYg
KGZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYg
KHN1YnNhbXBsaW5nTGV2ZWwgPT0gU3Vic2FtcGxpbmdMZXZlbDo6VW5kZWZpbmRlZCkKICAgICAg
ICAgc3Vic2FtcGxpbmdMZXZlbCA9IGZyYW1lLnN1YnNhbXBsaW5nTGV2ZWwoKTsKLSAgICAKKwog
ICAgIGlmIChmcmFtZS5oYXNWYWxpZE5hdGl2ZUltYWdlKHN1YnNhbXBsaW5nTGV2ZWwpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBmcmFtZS5zZXREZWNvZGluZyhJbWFnZUZy
YW1lOjpEZWNvZGluZzo6QmVpbmdEZWNvZGVkKTsKICAgICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLmVu
cXVldWUoeyBpbmRleCwgc3Vic2FtcGxpbmdMZXZlbCB9KTsKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTMxMyw2ICszMjQsMTEgQEAgdm9pZCBJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0RlY29kaW5n
UQogICAgIAogICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUuY2xvc2UoKTsKICAgICBtX2RlY29kaW5n
UXVldWUgPSBudWxscHRyOworCisgICAgZm9yIChJbWFnZUZyYW1lJiBmcmFtZSA6IG1fZnJhbWVz
KSB7CisgICAgICAgIGlmIChmcmFtZS5pc0JlaW5nRGVjb2RlZCgpKQorICAgICAgICAgICAgZnJh
bWUuY2xlYXIoKTsKKyAgICB9CiB9CiAKIGNvbnN0IEltYWdlRnJhbWUmIEltYWdlRnJhbWVDYWNo
ZTo6ZnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGlu
Z0xldmVsLCBJbWFnZUZyYW1lOjpDYWNoaW5nIGNhY2hpbmcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>295572</attachid>
            <date>2016-11-28 19:54:41 -0800</date>
            <delta_ts>2016-11-29 16:09:10 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews123 for ios-simulator-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>0</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295607</attachid>
            <date>2016-11-29 11:10:14 -0800</date>
            <delta_ts>2016-11-29 15:28:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161129110949.patch</filename>
            <type>text/plain</type>
            <size>9585</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVkIGFu
aW1hdGVkIGltYWdlcyBkbyBub3QgYW5pbWF0ZSBpZiB0aGUgcGFnZSBpcyByZWxvYWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MTMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwKKworICAgICAgICBUaGUgYnVnIGhhcHBl
bnMgd2hlbiB0aGUgQml0bWFwSW1hZ2UgaXMgY2FjaGVkIGFuZCByZXVzZWQgZm9yIHRoZSBuZXcK
KyAgICAgICAgcGFnZS4gVGhlIEltYWdlRnJhbWVDYWNoZSBmcmFtZXMgYXJlIG5vdCByZXNldCB0
byBhIHByb3BlciBpbml0aWFsIHN0YXRlLgorCisgICAgICAgIC0tIFdlIG5lZWQgdG8gaWdub3Jl
IGNhY2hpbmcgYSBuZXcgTmF0aXZlSW1hZ2UgaW4gYW4gSW1hZ2VGcmFtZSBpZiB0aGlzCisgICAg
ICAgIEltYWdlRnJhbWUgaXMgbm90IG1hcmtlZCBCZWluZ0RlY29kZWQuIFRoaXMgY2FuIGhhcHBl
biBpZiB0aGUgZGVjb2RpbmcKKyAgICAgICAgdGhyZWFkIHdhcyB0ZXJtaW5hdGVkIGFmdGVyIGNh
bGxpbmcgY2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleCgpIG9uCisgICAgICAgIHRoZSBtYWlu
IHRocmVhZC4gQWx0aG91Z2ggdGhlIGRlY29kaW5nIHRocmVhZCB3YXMgdGVybWluYXRlZCB0aGlz
IGNhbGwKKyAgICAgICAgb24gbWFpbiB0aHJlYWQgc3RpbGwgaGFwcGVucy4KKworICAgICAgICAt
LSBXZSBuZWVkIHRvIG9wZW4gdGhlIG1fZnJhbWVSZXF1ZXN0UXVldWUgYmVmb3JlIHN0YXJ0aW5n
IGEgbmV3IGRlY29kaW5nCisgICAgICAgIHRocmVhZC4gT3BlbmluZyBtX2ZyYW1lUmVxdWVzdFF1
ZXVlIGNsZWFycyB0aGUgZW5xdWV1ZWQgcmVxdWVzdHMgZnJvbSB0aGUgCisgICAgICAgIHByZXZp
b3VzIGRlY29kaW5nIHRocmVhZCBhbmQgYWxsb3dzIGVucXVldWVpbmcgcmVxdWVzdHMgZm9yIHRo
ZSBuZXcgdGhyZWFkLgorICAgICAgICAKKyAgICAgICAgLS0gV2UgbmVlZCB0byBjbGVhciB0aGUg
SW1hZ2VGcmFtZXMgdGhhdCB3ZXJlIGJlaW5nIGRlY29kZWQgYXQgdGhlIHRpbWUKKyAgICAgICAg
dGhlIGRlY29kaW5nIHF1ZXVlIHdhcyBjbG9zaW5nIGFuZCB0aGVpciBuZXcgTmF0aXZlSW1hZ2Vz
IHdlcmUgbm90IGNhY2hlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJh
bWVOYXRpdmVJbWFnZUF0SW5kZXgpOiBEb24ndCBjYWNoZSBhIE5hdGl2ZUltYWdlCisgICAgICAg
IGluIHRoZSBJbWFnZUZyYW1lIHVubGVzcyB0aGlzIEltYWdlRnJhbWUgaXMgbWFya2VkIGZvciBC
ZWluZ0RlY29kZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnJlcXVlc3RG
cmFtZUFzeW5jRGVjb2RpbmdBdEluZGV4KTogT3BlbiB0aGUgCisgICAgICAgIG1fZnJhbWVSZXF1
ZXN0UXVldWUgYmVmb3JlIHN0YXJ0aW5nIHRoZSBkZWNvZGluZyB0aHJlYWQuIEFsc28gZG9uJ3Qg
cmVxdWVzdCBhbgorICAgICAgICBpbWFnZSBmcmFtZSB0byBiZSBiZSBhc3luY2hyb25vdXNseSBk
ZWNvZGVkIGlmIGl0IGlzIGFscmVhZHkgYmVpbmcgZGVjb2RlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlRnJhbWVDYWNoZTo6c3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSk6IENsZWFyIHRoZSBJbWFn
ZUZyYW1lcyB0aGF0CisgICAgICAgIHdlcmUgYmVpbmcgZGVjb2RlZCB3aGVuIHRoZSBkZWNvZGlu
ZyB0aHJlYWQgdGVybWluYXRlcy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0SW1hZ2VBbmltYXRpb24pOiBNaW1pYyB3
aGF0IGhhcHBlbnMgd2hlbiByZXVzaW5nIGNhY2hlZAorICAgICAgICBhbmltYXRlZCBpbWFnZXMg
YnkgY2FsbGluZyBCaXRtYXBJbWFnZTo6cmVzZXRBbmltYXRpb24oKS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
Ni0xMS0yOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQXZv
aWQgcmVmLWNvdW50IGNodXJuIGluIENTU1BhcnNlcjo6VmFsdWVXaXRoQ2FsY3VsYXRpb246OnNl
dENhbGN1bGF0aW9uKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkocmV2aXNpb24gMjA5MDAxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQyLDYgKzI0MiwxMiBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFt
ZU5hdGl2ZUltCiAgICAgaWYgKCFpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgQVNTRVJUKGluZGV4IDwgbV9mcmFtZXMuc2l6ZSgpKTsKKyAgICBJbWFnZUZyYW1l
JiBmcmFtZSA9IG1fZnJhbWVzW2luZGV4XTsKKworICAgIGlmICghZnJhbWUuaXNCZWluZ0RlY29k
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gQ2xlYW4gdGhlIG9sZCBuYXRpdmUgaW1h
Z2UgYW5kIHNldCBhIG5ldyBvbmUKICAgICByZXBsYWNlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgo
V1RGTW92ZShuYXRpdmVJbWFnZSksIGluZGV4LCBzdWJzYW1wbGluZ0xldmVsKTsKIApAQCAtMjg5
LDE4ICsyOTUsMjMgQEAgYm9vbCBJbWFnZUZyYW1lQ2FjaGU6OnJlcXVlc3RGcmFtZUFzeW5jRAog
ICAgIGlmICghaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmICghaGFzRGVjb2RpbmdRdWV1ZSgpKQorICAgIGlmICghaGFzRGVjb2RpbmdRdWV1ZSgp
KSB7CisgICAgICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUub3BlbigpOwogICAgICAgICBzdGFydEFz
eW5jRGVjb2RpbmdRdWV1ZSgpOworICAgIH0KIAogICAgIEFTU0VSVChpbmRleCA8IG1fZnJhbWVz
LnNpemUoKSk7CiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lc1tpbmRleF07Ci0gICAg
CisKKyAgICBpZiAoZnJhbWUuaXNCZWluZ0RlY29kZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKICAgICBpZiAoc3Vic2FtcGxpbmdMZXZlbCA9PSBTdWJzYW1wbGluZ0xldmVsOjpVbmRlZmlu
ZGVkKQogICAgICAgICBzdWJzYW1wbGluZ0xldmVsID0gZnJhbWUuc3Vic2FtcGxpbmdMZXZlbCgp
OwotICAgIAorCiAgICAgaWYgKGZyYW1lLmhhc1ZhbGlkTmF0aXZlSW1hZ2Uoc3Vic2FtcGxpbmdM
ZXZlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIGZyYW1lLnNldERlY29k
aW5nKEltYWdlRnJhbWU6OkRlY29kaW5nOjpCZWluZ0RlY29kZWQpOwogICAgIG1fZnJhbWVSZXF1
ZXN0UXVldWUuZW5xdWV1ZSh7IGluZGV4LCBzdWJzYW1wbGluZ0xldmVsIH0pOwogICAgIHJldHVy
biB0cnVlOwpAQCAtMzEzLDYgKzMyNCwxMSBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6c3RvcEFz
eW5jRGVjb2RpbmdRCiAgICAgCiAgICAgbV9mcmFtZVJlcXVlc3RRdWV1ZS5jbG9zZSgpOwogICAg
IG1fZGVjb2RpbmdRdWV1ZSA9IG51bGxwdHI7CisKKyAgICBmb3IgKEltYWdlRnJhbWUmIGZyYW1l
IDogbV9mcmFtZXMpIHsKKyAgICAgICAgaWYgKGZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCisgICAg
ICAgICAgICBmcmFtZS5jbGVhcigpOworICAgIH0KIH0KIAogY29uc3QgSW1hZ2VGcmFtZSYgSW1h
Z2VGcmFtZUNhY2hlOjpmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVs
IHN1YnNhbXBsaW5nTGV2ZWwsIEltYWdlRnJhbWU6OkNhY2hpbmcgY2FjaGluZykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYyLDYg
KzY2MiwxOSBAQCB2b2lkIEludGVybmFsczo6c2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyCiAgICAg
ZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkuc2V0RnJhbWVEZWNvZGluZ0R1cmF0aW9uRm9y
VGVzdGluZyhkdXJhdGlvbik7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpyZXNldEltYWdlQW5pbWF0
aW9uKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYXV0byogY2FjaGVkSW1hZ2Ug
PSBlbGVtZW50LmNhY2hlZEltYWdlKCk7CisgICAgaWYgKCFjYWNoZWRJbWFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKKyAgICBp
ZiAoIWlzPEJpdG1hcEltYWdlPihpbWFnZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGltYWdl
LT5yZXNldEFuaW1hdGlvbigpOworfQorCiB2b2lkIEludGVybmFsczo6Y2xlYXJQYWdlQ2FjaGUo
KQogewogICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmlu
Z1JlYXNvbjo6Tm9uZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlz
aW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBpbWFn
ZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVudCYpOwogICAgIHZvaWQgc2V0SW1hZ2VGcmFtZURl
Y29kaW5nRHVyYXRpb24oSFRNTEltYWdlRWxlbWVudCYsIGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2
b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCYpOwogCiAgICAgdm9pZCBj
bGVhclBhZ2VDYWNoZSgpOwogICAgIHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUoKSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDIwOTAwMSkKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjI3LDYgKzIyNyw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogCiAgICAgdW5z
aWduZWQgbG9uZyBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKICAg
ICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKEhUTUxJbWFnZUVsZW1lbnQgZWxl
bWVudCwgdW5yZXN0cmljdGVkIGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VB
bmltYXRpb24oSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKIAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIHdvcmtlclRocmVhZENvdW50OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5MDAx
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTYtMTEtMjkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZWQgYW5pbWF0ZWQgaW1hZ2VzIGRvIG5vdCBhbmltYXRlIGlmIHRo
ZSBwYWdlIGlzIHJlbG9hZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjUxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIEVuc3VyZSB0aGUgaW1hZ2UgYW5pbWF0aW9uIGlzIHBsYXllZCBp
biBvcmRlciBhZnRlciB0aGUgYW5pbWF0aW9uIGlzIHJlc2V0LgorCisgICAgICAgICogZmFzdC9p
bWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE2
LTExLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgRklSU1RfTElORV9JTkhFUklURUQgZmFrZSBwc2V1ZG8gc3R5bGUKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNl
dC1pbWFnZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTEgQEAKK0Vuc3VyZSB0aGUgaW1hZ2UgYW5pbWF0aW9uIGlzIHBsYXllZCBpbiBvcmRlciBhZnRl
ciB0aGUgYW5pbWF0aW9uIGlzIHJlc2V0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSBpcyAyCitQQVNTIGludGVy
bmFscy5pbWFnZUZyYW1lSW5kZXgoaW1hZ2UpIGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhlIGltYWdlIGFuaW1h
dGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyByZXNldC4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgaW50ZXJuYWxzLmNsZWFy
TWVtb3J5Q2FjaGUoKTsKKworICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAg
IGltYWdlLm9ubG9hZCA9IGltYWdlTG9hZGVkOworICAgICAgICBpbWFnZS5zcmMgPSAicmVzb3Vy
Y2VzL2FuaW1hdGVkLXJlZC1ncmVlbi1ibHVlLmdpZiI7CisgICAgICAgIAorICAgICAgICBmdW5j
dGlvbiBpbWFnZUxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyYXRpb24oaW1hZ2UsIDAuMDQwKTsKKyAgICAgICAgICAg
IGRyYXdJbWFnZSgpOworICAgICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGRyYXdJbWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkcmF3
SW1hZ2UuY291bnQgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIGRyYXdJbWFnZS5jb3Vu
dCA9IDA7CisgICAgICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNhbnZhcyIpOworICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiArK2RyYXdJbWFnZS5jb3VudDsKKyAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBkcmF3TG9vcCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgc3dpdGNoIChkcmF3SW1hZ2UoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5pbWFnZUZyYW1lSW5kZXgoaW1h
Z2UpIiwgIjIiKTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnJlc2V0SW1hZ2VBbmlt
YXRpb24oaW1hZ2UpOworICAgICAgICAgICAgICAgICAgICBkcmF3TG9vcCgpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5pbWFnZUZyYW1lSW5kZXgoaW1hZ2UpIiwgIjIi
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBkcmF3TG9vcCgpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0sIDUwKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295653</attachid>
            <date>2016-11-29 15:28:28 -0800</date>
            <delta_ts>2016-11-29 16:09:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161129152803.patch</filename>
            <type>text/plain</type>
            <size>9823</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVkIGFu
aW1hdGVkIGltYWdlcyBkbyBub3QgYW5pbWF0ZSBpZiB0aGUgcGFnZSBpcyByZWxvYWRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MTMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwKKworICAgICAgICBUaGUgYnVnIGhhcHBl
bnMgd2hlbiB0aGUgQml0bWFwSW1hZ2UgaXMgY2FjaGVkIGFuZCByZXVzZWQgZm9yIHRoZSBuZXcK
KyAgICAgICAgcGFnZS4gVGhlIEltYWdlRnJhbWVDYWNoZSBmcmFtZXMgYXJlIG5vdCByZXNldCB0
byBhIHByb3BlciBpbml0aWFsIHN0YXRlLgorCisgICAgICAgIC0tIFdlIG5lZWQgdG8gaWdub3Jl
IGNhY2hpbmcgYSBuZXcgTmF0aXZlSW1hZ2UgaW4gYW4gSW1hZ2VGcmFtZSBpZiB0aGlzCisgICAg
ICAgIEltYWdlRnJhbWUgaXMgbm90IG1hcmtlZCBCZWluZ0RlY29kZWQuIFRoaXMgY2FuIGhhcHBl
biBpZiB0aGUgZGVjb2RpbmcKKyAgICAgICAgdGhyZWFkIHdhcyB0ZXJtaW5hdGVkIGFmdGVyIGNh
bGxpbmcgY2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleCgpIG9uCisgICAgICAgIHRoZSBtYWlu
IHRocmVhZC4gQWx0aG91Z2ggdGhlIGRlY29kaW5nIHRocmVhZCB3YXMgdGVybWluYXRlZCB0aGlz
IGNhbGwKKyAgICAgICAgb24gbWFpbiB0aHJlYWQgc3RpbGwgaGFwcGVucy4KKworICAgICAgICAt
LSBXZSBuZWVkIHRvIG9wZW4gdGhlIG1fZnJhbWVSZXF1ZXN0UXVldWUgYmVmb3JlIHN0YXJ0aW5n
IGEgbmV3IGRlY29kaW5nCisgICAgICAgIHRocmVhZC4gT3BlbmluZyBtX2ZyYW1lUmVxdWVzdFF1
ZXVlIGNsZWFycyB0aGUgZW5xdWV1ZWQgcmVxdWVzdHMgZnJvbSB0aGUgCisgICAgICAgIHByZXZp
b3VzIGRlY29kaW5nIHRocmVhZCBhbmQgYWxsb3dzIGVucXVldWVpbmcgcmVxdWVzdHMgZm9yIHRo
ZSBuZXcgdGhyZWFkLgorICAgICAgICAKKyAgICAgICAgLS0gV2UgbmVlZCB0byBjbGVhciB0aGUg
SW1hZ2VGcmFtZXMgdGhhdCB3ZXJlIGJlaW5nIGRlY29kZWQgYXQgdGhlIHRpbWUKKyAgICAgICAg
dGhlIGRlY29kaW5nIHF1ZXVlIHdhcyBjbG9zaW5nIGFuZCB0aGVpciBuZXcgTmF0aXZlSW1hZ2Vz
IHdlcmUgbm90IGNhY2hlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJh
bWVOYXRpdmVJbWFnZUF0SW5kZXgpOiBEb24ndCBjYWNoZSBhIE5hdGl2ZUltYWdlCisgICAgICAg
IGluIHRoZSBJbWFnZUZyYW1lIHVubGVzcyB0aGlzIEltYWdlRnJhbWUgaXMgbWFya2VkIGZvciBC
ZWluZ0RlY29kZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnJlcXVlc3RG
cmFtZUFzeW5jRGVjb2RpbmdBdEluZGV4KTogT3BlbiB0aGUgCisgICAgICAgIG1fZnJhbWVSZXF1
ZXN0UXVldWUgYmVmb3JlIHN0YXJ0aW5nIHRoZSBkZWNvZGluZyB0aHJlYWQuIEFsc28gZG9uJ3Qg
cmVxdWVzdCBhbgorICAgICAgICBpbWFnZSBmcmFtZSB0byBiZSBiZSBhc3luY2hyb25vdXNseSBk
ZWNvZGVkIGlmIGl0IGlzIGFscmVhZHkgYmVpbmcgZGVjb2RlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlRnJhbWVDYWNoZTo6c3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSk6IENsZWFyIHRoZSBJbWFn
ZUZyYW1lcyB0aGF0CisgICAgICAgIHdlcmUgYmVpbmcgZGVjb2RlZCB3aGVuIHRoZSBkZWNvZGlu
ZyB0aHJlYWQgdGVybWluYXRlcy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0SW1hZ2VBbmltYXRpb24pOiBNaW1pYyB3
aGF0IGhhcHBlbnMgd2hlbiByZXVzaW5nIGNhY2hlZAorICAgICAgICBhbmltYXRlZCBpbWFnZXMg
YnkgY2FsbGluZyBCaXRtYXBJbWFnZTo6cmVzZXRBbmltYXRpb24oKS4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
Ni0xMS0yOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQXZv
aWQgcmVmLWNvdW50IGNodXJuIGluIENTU1BhcnNlcjo6VmFsdWVXaXRoQ2FsY3VsYXRpb246OnNl
dENhbGN1bGF0aW9uKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkocmV2aXNpb24gMjA5MDAxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQyLDYgKzI0MiwxMiBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFt
ZU5hdGl2ZUltCiAgICAgaWYgKCFpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgQVNTRVJUKGluZGV4IDwgbV9mcmFtZXMuc2l6ZSgpKTsKKyAgICBJbWFnZUZyYW1l
JiBmcmFtZSA9IG1fZnJhbWVzW2luZGV4XTsKKworICAgIGlmICghZnJhbWUuaXNCZWluZ0RlY29k
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gQ2xlYW4gdGhlIG9sZCBuYXRpdmUgaW1h
Z2UgYW5kIHNldCBhIG5ldyBvbmUKICAgICByZXBsYWNlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgo
V1RGTW92ZShuYXRpdmVJbWFnZSksIGluZGV4LCBzdWJzYW1wbGluZ0xldmVsKTsKIApAQCAtMjYz
LDYgKzI2OSw4IEBAIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpzdGFydEFzeW5jRGVjb2RpbmcKICAg
ICBpZiAoaGFzRGVjb2RpbmdRdWV1ZSgpIHx8ICFpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgbV9mcmFtZVJlcXVlc3RRdWV1ZS5vcGVuKCk7CisKICAgICBSZWY8
SW1hZ2VGcmFtZUNhY2hlPiBwcm90ZWN0ZWRUaGlzID0gUmVmPEltYWdlRnJhbWVDYWNoZT4oKnRo
aXMpOwogICAgIFJlZjxXb3JrUXVldWU+IHByb3RlY3RlZFF1ZXVlID0gZGVjb2RpbmdRdWV1ZSgp
OwogCkBAIC0yOTQsMTMgKzMwMiwxNiBAQCBib29sIEltYWdlRnJhbWVDYWNoZTo6cmVxdWVzdEZy
YW1lQXN5bmNECiAKICAgICBBU1NFUlQoaW5kZXggPCBtX2ZyYW1lcy5zaXplKCkpOwogICAgIElt
YWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZXNbaW5kZXhdOwotICAgIAorCisgICAgaWYgKGZyYW1l
LmlzQmVpbmdEZWNvZGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKHN1YnNh
bXBsaW5nTGV2ZWwgPT0gU3Vic2FtcGxpbmdMZXZlbDo6VW5kZWZpbmRlZCkKICAgICAgICAgc3Vi
c2FtcGxpbmdMZXZlbCA9IGZyYW1lLnN1YnNhbXBsaW5nTGV2ZWwoKTsKLSAgICAKKwogICAgIGlm
IChmcmFtZS5oYXNWYWxpZE5hdGl2ZUltYWdlKHN1YnNhbXBsaW5nTGV2ZWwpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgCisKICAgICBmcmFtZS5zZXREZWNvZGluZyhJbWFnZUZyYW1lOjpE
ZWNvZGluZzo6QmVpbmdEZWNvZGVkKTsKICAgICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLmVucXVldWUo
eyBpbmRleCwgc3Vic2FtcGxpbmdMZXZlbCB9KTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTMxMyw2
ICszMjQsMTEgQEAgdm9pZCBJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0RlY29kaW5nUQogICAg
IAogICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUuY2xvc2UoKTsKICAgICBtX2RlY29kaW5nUXVldWUg
PSBudWxscHRyOworCisgICAgZm9yIChJbWFnZUZyYW1lJiBmcmFtZSA6IG1fZnJhbWVzKSB7Cisg
ICAgICAgIGlmIChmcmFtZS5pc0JlaW5nRGVjb2RlZCgpKQorICAgICAgICAgICAgZnJhbWUuY2xl
YXIoKTsKKyAgICB9CiB9CiAKIGNvbnN0IEltYWdlRnJhbWUmIEltYWdlRnJhbWVDYWNoZTo6ZnJh
bWVBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVs
LCBJbWFnZUZyYW1lOjpDYWNoaW5nIGNhY2hpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2Miw2ICs2NjIsMTkgQEAgdm9pZCBJ
bnRlcm5hbHM6OnNldEltYWdlRnJhbWVEZWNvZGluZ0R1cgogICAgIGRvd25jYXN0PEJpdG1hcElt
YWdlPigqaW1hZ2UpLnNldEZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcoZHVyYXRpb24p
OwogfQogCit2b2lkIEludGVybmFsczo6cmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVt
ZW50JiBlbGVtZW50KQoreworICAgIGF1dG8qIGNhY2hlZEltYWdlID0gZWxlbWVudC5jYWNoZWRJ
bWFnZSgpOworICAgIGlmICghY2FjaGVkSW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8qIGltYWdlID0gY2FjaGVkSW1hZ2UtPmltYWdlKCk7CisgICAgaWYgKCFpczxCaXRtYXBJbWFn
ZT4oaW1hZ2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbWFnZS0+cmVzZXRBbmltYXRpb24o
KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OmNsZWFyUGFnZUNhY2hlKCkKIHsKICAgICBQYWdlQ2Fj
aGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyMDkwMDEpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQs
NiArMTA0LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgaW1hZ2VGcmFtZUluZGV4KEhUTUxJ
bWFnZUVsZW1lbnQmKTsKICAgICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKEhU
TUxJbWFnZUVsZW1lbnQmLCBmbG9hdCBkdXJhdGlvbik7CisgICAgdm9pZCByZXNldEltYWdlQW5p
bWF0aW9uKEhUTUxJbWFnZUVsZW1lbnQmKTsKIAogICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsK
ICAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsNyBAQCBl
bnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAogICAgIHVuc2lnbmVkIGxvbmcgaW1hZ2VG
cmFtZUluZGV4KEhUTUxJbWFnZUVsZW1lbnQgZWxlbWVudCk7CiAgICAgdm9pZCBzZXRJbWFnZUZy
YW1lRGVjb2RpbmdEdXJhdGlvbihIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQsIHVucmVzdHJpY3Rl
ZCBmbG9hdCBkdXJhdGlvbik7CisgICAgdm9pZCByZXNldEltYWdlQW5pbWF0aW9uKEhUTUxJbWFn
ZUVsZW1lbnQgZWxlbWVudCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0
aW5ncyBzZXR0aW5nczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3b3Jr
ZXJUaHJlYWRDb3VudDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTAwMSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTExLTI5ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2Fj
aGVkIGFuaW1hdGVkIGltYWdlcyBkbyBub3QgYW5pbWF0ZSBpZiB0aGUgcGFnZSBpcyByZWxvYWRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MTMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBFbnN1cmUgdGhlIGltYWdlIGFuaW1hdGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhl
IGFuaW1hdGlvbiBpcyByZXNldC4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc2V0LWltYWdl
LWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jl
c2V0LWltYWdlLWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxNi0xMS0yOCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEZJUlNUX0xJTkVfSU5I
RVJJVEVEIGZha2UgcHNldWRvIHN0eWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9y
ZXNldC1pbWFnZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9u
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitFbnN1cmUgdGhl
IGltYWdlIGFuaW1hdGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBp
cyByZXNldC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxz
LmltYWdlRnJhbWVJbmRleChpbWFnZSkgaXMgMQorUEFTUyBpbnRlcm5hbHMuaW1hZ2VGcmFtZUlu
ZGV4KGltYWdlKSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5p
bWF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQt
aW1hZ2UtYW5pbWF0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBkZXNjcmlwdGlvbigiRW5zdXJlIHRoZSBpbWFnZSBhbmltYXRpb24gaXMgcGxheWVkIGlu
IG9yZGVyIGFmdGVyIHRoZSBhbmltYXRpb24gaXMgcmVzZXQuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisK
KyAgICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlOworICAgICAgICBpbWFnZS5vbmxvYWQgPSBp
bWFnZUxvYWRlZDsKKyAgICAgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9hbmltYXRlZC1yZWQt
Z3JlZW4tYmx1ZS5naWYiOworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gaW1hZ2VMb2FkZWQo
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldEltYWdlRnJhbWVEZWNv
ZGluZ0R1cmF0aW9uKGltYWdlLCAwLjA0MCk7CisgICAgICAgICAgICBkcmF3SW1hZ2UoKTsKKyAg
ICAgICAgICAgIGRyYXdMb29wKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkcmF3
SW1hZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZHJhd0ltYWdlLmNvdW50ID09IHVu
ZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBkcmF3SW1hZ2UuY291bnQgPSAwOworICAgICAgICAg
ICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAg
ICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgIGN0
eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cisg
ICAgICAgICAgICByZXR1cm4gKytkcmF3SW1hZ2UuY291bnQ7CisgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gZHJhd0xvb3AoKQorICAgICAgICB7CisgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoZHJh
d0ltYWdlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSIsICIxIik7CisgICAg
ICAgICAgICAgICAgICAgIGludGVybmFscy5yZXNldEltYWdlQW5pbWF0aW9uKGltYWdlKTsKKyAg
ICAgICAgICAgICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBh
bmltYXRpb24gd2FzIHJlc2V0IGF0IGRyYXdDb3VudCA9IDIuIFRocmVlIG1vcmUKKyAgICAgICAg
ICAgICAgICAgICAgLy8gZHJhd2luZ3Mgc2hvdWxkIG1ha2UgY3VycmVudF9mcmFtZSA9IDIuCisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGlt
YWdlKSIsICIyIik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9LCA1MCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295665</attachid>
            <date>2016-11-29 16:09:07 -0800</date>
            <delta_ts>2016-11-29 20:05:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161129160841.patch</filename>
            <type>text/plain</type>
            <size>9799</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTA3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBhbmlt
YXRlZCBpbWFnZSBkbyBub3QgYW5pbWF0ZSBhZnRlciByZXNldGluZyB0aGVpciBhbmltYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUxMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBm
YXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAorCisgICAgICAgIFRoZSBidWcg
aGFwcGVucyBiZWNhdXNlIHRoZSBJbWFnZUZyYW1lQ2FjaGUgZG9lcyBub3QgcmVzZXQgaXRzIGNh
Y2hlZAorICAgICAgICBmcmFtZXMgcHJvcGVybHkgd2hlbiB0aGUgQml0bWFwSW1hZ2UgcmVzdHMg
aXRzIGFuaW1hdGlvbi4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGlnbm9yZSBjYWNoaW5nIGEg
bmV3IE5hdGl2ZUltYWdlIGluIGFuIEltYWdlRnJhbWUgaWYgdGhpcworICAgICAgICBJbWFnZUZy
YW1lIGlzIG5vdCBtYXJrZWQgQmVpbmdEZWNvZGVkLiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGRl
Y29kaW5nCisgICAgICAgIHRocmVhZCB3YXMgdGVybWluYXRlZCBhZnRlciBjYWxsaW5nIGNhY2hl
RnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoKSBvbgorICAgICAgICB0aGUgbWFpbiB0aHJlYWQuIEFs
dGhvdWdoIHRoZSBkZWNvZGluZyB0aHJlYWQgd2FzIHRlcm1pbmF0ZWQgdGhpcyBjYWxsCisgICAg
ICAgIG9uIG1haW4gdGhyZWFkIHN0aWxsIGhhcHBlbnMuCisKKyAgICAgICAgLS0gV2UgbmVlZCB0
byBvcGVuIHRoZSBtX2ZyYW1lUmVxdWVzdFF1ZXVlIGJlZm9yZSBzdGFydGluZyBhIG5ldyBkZWNv
ZGluZworICAgICAgICB0aHJlYWQuIE9wZW5pbmcgbV9mcmFtZVJlcXVlc3RRdWV1ZSBjbGVhcnMg
dGhlIGVucXVldWVkIHJlcXVlc3RzIGZyb20gdGhlIAorICAgICAgICBwcmV2aW91cyBkZWNvZGlu
ZyB0aHJlYWQgYW5kIGFsbG93cyBlbnF1ZXVlaW5nIHJlcXVlc3RzIGZvciB0aGUgbmV3IHRocmVh
ZC4KKyAgICAgICAgCisgICAgICAgIC0tIFdlIG5lZWQgdG8gY2xlYXIgdGhlIEltYWdlRnJhbWVz
IHdoaWNoIHdlcmUgYmVpbmcgZGVjb2RlZCBhdCB0aGUgdGltZQorICAgICAgICB0aGUgZGVjb2Rp
bmcgcXVldWUgd2FzIGNsb3NpbmcgYW5kIHRoZWlyIG5ldyBOYXRpdmVJbWFnZXMgd2VyZSBub3Qg
Y2FjaGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5hdGl2ZUlt
YWdlQXRJbmRleCk6IERvbid0IGNhY2hlIGEgTmF0aXZlSW1hZ2UKKyAgICAgICAgaW4gdGhlIElt
YWdlRnJhbWUgdW5sZXNzIHRoaXMgSW1hZ2VGcmFtZSBpcyBtYXJrZWQgZm9yIEJlaW5nRGVjb2Rl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6cmVxdWVzdEZyYW1lQXN5bmNE
ZWNvZGluZ0F0SW5kZXgpOiBPcGVuIHRoZSAKKyAgICAgICAgbV9mcmFtZVJlcXVlc3RRdWV1ZSBi
ZWZvcmUgc3RhcnRpbmcgdGhlIGRlY29kaW5nIHRocmVhZC4gQWxzbyBkb24ndCByZXF1ZXN0IGFu
CisgICAgICAgIGltYWdlIGZyYW1lIHRvIGJlIGJlIGFzeW5jaHJvbm91c2x5IGRlY29kZWQgaWYg
aXQgaXMgYWxyZWFkeSBiZWluZyBkZWNvZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFt
ZUNhY2hlOjpzdG9wQXN5bmNEZWNvZGluZ1F1ZXVlKTogQ2xlYXIgdGhlIEltYWdlRnJhbWVzIHRo
YXQKKyAgICAgICAgd2VyZSBiZWluZyBkZWNvZGVkIHdoZW4gdGhlIGRlY29kaW5nIHRocmVhZCB0
ZXJtaW5hdGVzLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6cmVzZXRJbWFnZUFuaW1hdGlvbik6IEV4cG9zZSBCaXRtYXBJbWFn
ZTo6cmVzZXRBbmltYXRpb24oKQorICAgICAgICB0aHJvdWdoIEludGVybmFscyBzbyB0ZXN0cyBj
YW4gZm9yY2UgaXQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTYtMTEtMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlZi1jb3VudCBjaHVybiBpbiBDU1NQYXJz
ZXI6OlZhbHVlV2l0aENhbGN1bGF0aW9uOjpzZXRDYWxjdWxhdGlvbigpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAJ
KHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsyNDIsMTIgQEAgdm9p
ZCBJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRpdmVJbQogICAgIGlmICghaXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChpbmRleCA8IG1fZnJh
bWVzLnNpemUoKSk7CisgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1lc1tpbmRleF07CisK
KyAgICBpZiAoIWZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IC8vIENsZWFuIHRoZSBvbGQgbmF0aXZlIGltYWdlIGFuZCBzZXQgYSBuZXcgb25lCiAgICAgcmVw
bGFjZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KFdURk1vdmUobmF0aXZlSW1hZ2UpLCBpbmRleCwg
c3Vic2FtcGxpbmdMZXZlbCk7CiAKQEAgLTI2Myw2ICsyNjksOCBAQCB2b2lkIEltYWdlRnJhbWVD
YWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgaWYgKGhhc0RlY29kaW5nUXVldWUoKSB8fCAh
aXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fZnJhbWVSZXF1
ZXN0UXVldWUub3BlbigpOworCiAgICAgUmVmPEltYWdlRnJhbWVDYWNoZT4gcHJvdGVjdGVkVGhp
cyA9IFJlZjxJbWFnZUZyYW1lQ2FjaGU+KCp0aGlzKTsKICAgICBSZWY8V29ya1F1ZXVlPiBwcm90
ZWN0ZWRRdWV1ZSA9IGRlY29kaW5nUXVldWUoKTsKIApAQCAtMjk0LDEzICszMDIsMTYgQEAgYm9v
bCBJbWFnZUZyYW1lQ2FjaGU6OnJlcXVlc3RGcmFtZUFzeW5jRAogCiAgICAgQVNTRVJUKGluZGV4
IDwgbV9mcmFtZXMuc2l6ZSgpKTsKICAgICBJbWFnZUZyYW1lJiBmcmFtZSA9IG1fZnJhbWVzW2lu
ZGV4XTsKLSAgICAKKworICAgIGlmIChmcmFtZS5pc0JlaW5nRGVjb2RlZCgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChzdWJzYW1wbGluZ0xldmVsID09IFN1YnNhbXBsaW5nTGV2
ZWw6OlVuZGVmaW5kZWQpCiAgICAgICAgIHN1YnNhbXBsaW5nTGV2ZWwgPSBmcmFtZS5zdWJzYW1w
bGluZ0xldmVsKCk7Ci0gICAgCisKICAgICBpZiAoZnJhbWUuaGFzVmFsaWROYXRpdmVJbWFnZShz
dWJzYW1wbGluZ0xldmVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgZnJh
bWUuc2V0RGVjb2RpbmcoSW1hZ2VGcmFtZTo6RGVjb2Rpbmc6OkJlaW5nRGVjb2RlZCk7CiAgICAg
bV9mcmFtZVJlcXVlc3RRdWV1ZS5lbnF1ZXVlKHsgaW5kZXgsIHN1YnNhbXBsaW5nTGV2ZWwgfSk7
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0zMTMsNiArMzI0LDExIEBAIHZvaWQgSW1hZ2VGcmFtZUNh
Y2hlOjpzdG9wQXN5bmNEZWNvZGluZ1EKICAgICAKICAgICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLmNs
b3NlKCk7CiAgICAgbV9kZWNvZGluZ1F1ZXVlID0gbnVsbHB0cjsKKworICAgIGZvciAoSW1hZ2VG
cmFtZSYgZnJhbWUgOiBtX2ZyYW1lcykgeworICAgICAgICBpZiAoZnJhbWUuaXNCZWluZ0RlY29k
ZWQoKSkKKyAgICAgICAgICAgIGZyYW1lLmNsZWFyKCk7CisgICAgfQogfQogCiBjb25zdCBJbWFn
ZUZyYW1lJiBJbWFnZUZyYW1lQ2FjaGU6OmZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCwgSW1hZ2VGcmFtZTo6Q2FjaGluZyBjYWNoaW5n
KQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMjA5MDAx
KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NjIsNiArNjYyLDE5IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRJbWFnZUZyYW1lRGVjb2Rp
bmdEdXIKICAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS5zZXRGcmFtZURlY29kaW5n
RHVyYXRpb25Gb3JUZXN0aW5nKGR1cmF0aW9uKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnJlc2V0
SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBj
YWNoZWRJbWFnZSA9IGVsZW1lbnQuY2FjaGVkSW1hZ2UoKTsKKyAgICBpZiAoIWNhY2hlZEltYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBpbWFnZSA9IGNhY2hlZEltYWdlLT5pbWFn
ZSgpOworICAgIGlmICghaXM8Qml0bWFwSW1hZ2U+KGltYWdlKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaW1hZ2UtPnJlc2V0QW5pbWF0aW9uKCk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpjbGVh
clBhZ2VDYWNoZSgpCiB7CiAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5v
dygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAkocmV2aXNpb24gMjA5MDAxKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDYgKzEwNCw3IEBAIHB1YmxpYzoKIAogICAgIHVu
c2lnbmVkIGltYWdlRnJhbWVJbmRleChIVE1MSW1hZ2VFbGVtZW50Jik7CiAgICAgdm9pZCBzZXRJ
bWFnZUZyYW1lRGVjb2RpbmdEdXJhdGlvbihIVE1MSW1hZ2VFbGVtZW50JiwgZmxvYXQgZHVyYXRp
b24pOworICAgIHZvaWQgcmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVtZW50Jik7CiAK
ICAgICB2b2lkIGNsZWFyUGFnZUNhY2hlKCk7CiAgICAgdW5zaWduZWQgcGFnZUNhY2hlU2l6ZSgp
IGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24g
MjA5MDAxKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMjcsNiArMjI3LDcgQEAgZW51bSBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7
CiAKICAgICB1bnNpZ25lZCBsb25nIGltYWdlRnJhbWVJbmRleChIVE1MSW1hZ2VFbGVtZW50IGVs
ZW1lbnQpOwogICAgIHZvaWQgc2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyYXRpb24oSFRNTEltYWdl
RWxlbWVudCBlbGVtZW50LCB1bnJlc3RyaWN0ZWQgZmxvYXQgZHVyYXRpb24pOworICAgIHZvaWQg
cmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQpOwogCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd29ya2VyVGhyZWFkQ291bnQ7CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMDkwMDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxNi0xMS0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxh
d2FAYXBwbGUuY29tPgorCisgICAgICAgIFNvbWUgYW5pbWF0ZWQgaW1hZ2UgZG8gbm90IGFuaW1h
dGUgYWZ0ZXIgcmVzZXRpbmcgdGhlaXIgYW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBFbnN1cmUgdGhlIGltYWdlIGFuaW1h
dGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyByZXNldC4KKwor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi5odG1s
OiBBZGRlZC4KKwogMjAxNi0xMS0yOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIEZJUlNUX0xJTkVfSU5IRVJJVEVEIGZha2UgcHNldWRvIHN0eWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24tZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWlt
YWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACitFbnN1cmUgdGhlIGltYWdlIGFuaW1hdGlvbiBpcyBwbGF5
ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyByZXNldC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChpbWFnZSkg
aXMgMQorUEFTUyBpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSBpcyAyCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0
aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGNhbnZhcyBpZD0iY2Fu
dmFzIj48L2NhbnZhcz4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiRW5zdXJl
IHRoZSBpbWFnZSBhbmltYXRpb24gaXMgcGxheWVkIGluIG9yZGVyIGFmdGVyIHRoZSBhbmltYXRp
b24gaXMgcmVzZXQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAg
IGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisKKyAgICAgICAgdmFyIGltYWdlID0gbmV3
IEltYWdlOworICAgICAgICBpbWFnZS5vbmxvYWQgPSBpbWFnZUxvYWRlZDsKKyAgICAgICAgaW1h
Z2Uuc3JjID0gInJlc291cmNlcy9hbmltYXRlZC1yZWQtZ3JlZW4tYmx1ZS5naWYiOworICAgICAg
ICAKKyAgICAgICAgZnVuY3Rpb24gaW1hZ2VMb2FkZWQoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgaW50ZXJuYWxzLnNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKGltYWdlLCAwLjA0
MCk7CisgICAgICAgICAgICBkcmF3SW1hZ2UoKTsKKyAgICAgICAgICAgIGRyYXdMb29wKCk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkcmF3SW1hZ2UoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoZHJhd0ltYWdlLmNvdW50ID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAg
ICBkcmF3SW1hZ2UuY291bnQgPSAwOworICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgICAgIHZhciBjdHggPSBjYW52YXMu
Z2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAs
IGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gKytkcmF3
SW1hZ2UuY291bnQ7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZnVuY3Rp
b24gZHJhd0xvb3AoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoZHJhd0ltYWdlKCkpIHsKKyAgICAgICAgICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaW1h
Z2VGcmFtZUluZGV4KGltYWdlKSIsICIxIik7CisgICAgICAgICAgICAgICAgICAgIGludGVybmFs
cy5yZXNldEltYWdlQW5pbWF0aW9uKGltYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xv
b3AoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNl
IDU6CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBhbmltYXRpb24gd2FzIHJlc2V0IGF0IGRy
YXdDb3VudCA9IDIuIFRocmVlIG1vcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gZHJhd2luZ3Mg
c2hvdWxkIG1ha2UgY3VycmVudF9mcmFtZSA9IDIuCisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSIsICIyIik7CisgICAgICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCA1
MCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295697</attachid>
            <date>2016-11-29 20:05:25 -0800</date>
            <delta_ts>2016-11-29 20:31:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161129200459.patch</filename>
            <type>text/plain</type>
            <size>10943</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBhbmlt
YXRlZCBpbWFnZSBkbyBub3QgYW5pbWF0ZSBhZnRlciByZXNldGluZyB0aGVpciBhbmltYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUxMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBm
YXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAorCisgICAgICAgIFRoZSBidWcg
aGFwcGVucyBiZWNhdXNlIHRoZSBJbWFnZUZyYW1lQ2FjaGUgZG9lcyBub3QgcmVzZXQgaXRzIGNh
Y2hlZAorICAgICAgICBmcmFtZXMgcHJvcGVybHkgd2hlbiB0aGUgQml0bWFwSW1hZ2UgcmVzdHMg
aXRzIGFuaW1hdGlvbi4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGlnbm9yZSBjYWNoaW5nIHRo
ZSBuZXcgTmF0aXZlSW1hZ2Ugb2YgYW4gSW1hZ2VGcmFtZSBpZiB0aGUKKyAgICAgICAgZGVjb2Rp
bmcgdGhyZWFkIGlzIHRlcm1pbmF0ZWQgYWZ0ZXIgYXN5bmNocm9ub3VzbHkgY2FsbGluZyAgCisg
ICAgICAgIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoKSBvbiB0aGUgbWFpbiB0aHJlYWQg
dGhyb3VnaCBjYWxsT25NYWluVGhyZWFkKCkuCisgICAgICAgIEFsdGhvdWdoIHRoZSBkZWNvZGlu
ZyB0aHJlYWQgd2FzIHRlcm1pbmF0ZWQgdGhpcyBjYWxsIGlzIHN0aWxsIHNjaGVkdWxlZAorICAg
ICAgICB0byBiZSBleGVjdXRlZCBsYXRlciBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAg
LS0gV2UgbmVlZCB0byBvcGVuIHRoZSBtX2ZyYW1lUmVxdWVzdFF1ZXVlIGJlZm9yZSBzdGFydGlu
ZyBhIG5ldyBkZWNvZGluZworICAgICAgICB0aHJlYWQuIE9wZW5pbmcgbV9mcmFtZVJlcXVlc3RR
dWV1ZSBjbGVhcnMgdGhlIGVucXVldWVkIHJlcXVlc3RzIGZyb20gdGhlIAorICAgICAgICBwcmV2
aW91cyBkZWNvZGluZyB0aHJlYWQgYW5kIGFsbG93cyBlbnF1ZXVlaW5nIHJlcXVlc3RzIGZvciB0
aGUgbmV3IHRocmVhZC4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGNsZWFyIHRoZSBJbWFnZUZy
YW1lcyB3aGljaCB3ZXJlIGJlaW5nIGRlY29kZWQgYXQgdGhlIHRpbWUKKyAgICAgICAgdGhlIGRl
Y29kaW5nIHF1ZXVlIHdhcyBjbG9zaW5nIGFuZCB0aGVpciBuZXcgTmF0aXZlSW1hZ2VzIHdlcmUg
bm90IGNhY2hlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNo
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRp
dmVJbWFnZUF0SW5kZXgpOiBBc3NlcnQgdGhlIE5hdGl2ZUltYWdlCisgICAgICAgIGlzIGNhY2hl
ZCBmb3IgYW4gSW1hZ2VGcmFtZSB3aGljaCBpcyBzdGlsbCBiZWluZyBkZWNvZGVkLgorCisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnN0YXJ0QXN5bmNEZWNvZGluZ1F1ZXVlKTog
T3BlbiB0aGUgbV9mcmFtZVJlcXVlc3RRdWV1ZQorICAgICAgICBiZWZvcmUgc3RhcnRpbmcgdGhl
IGRlY29kaW5nIHRocmVhZC4gRG9uJ3QgY2FjaGUgdGhlIE5hdGl2ZUltYWdlIG9mIGFuIEltYWdl
RnJhbWUKKyAgICAgICAgdW5sZXNzIHRoZSBkZWNvZGluZyB0aHJlYWQgaXMgc3RpbGwgYWxpdmUg
YW5kIGl0IHRoZSBzYW1lIGFzIHRoZSBvbmUgdGhhdCBtYWtlcworICAgICAgICB0aGUgYXN5bmNo
cm9ub3VzIGNhbGwgdG8gY2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleCgpLgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6cmVxdWVzdEZyYW1lQXN5bmNEZWNv
ZGluZ0F0SW5kZXgpOiBEb24ndCByZXF1ZXN0IGFuCisgICAgICAgIGltYWdlIGZyYW1lIHRvIGJl
IGJlIGFzeW5jaHJvbm91c2x5IGRlY29kZWQgaWYgaXQgaXMgYWxyZWFkeSBiZWluZyBkZWNvZGVk
LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6c3RvcEFzeW5j
RGVjb2RpbmdRdWV1ZSk6IENsZWFyIHRoZSBJbWFnZUZyYW1lcyB0aGF0CisgICAgICAgIHdlcmUg
YmVpbmcgZGVjb2RlZCB3aGVuIHRoZSBkZWNvZGluZyB0aHJlYWQgdGVybWluYXRlcy4KKyAgICAg
ICAgCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpyZXNldEltYWdlQW5pbWF0aW9uKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgRXhwb3Nl
IEJpdG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbigpIHRocm91Z2ggSW50ZXJuYWxzIHNvIHRlc3Rz
IGNhbiBmb3JjZSBpdC4KKwogMjAxNi0xMS0yOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFNob3cgYW4gaW52YWxp
ZCBwbGFjYXJkIHdoZW4gd2UgZmFpbCB0byBsb2FkIGEgbWVkaWEgZmlsZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3Bw
CShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUZyYW1lQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNiArMjQyLDkgQEAgdm9p
ZCBJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRpdmVJbQogICAgIGlmICghaXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChpbmRleCA8IG1fZnJh
bWVzLnNpemUoKSk7CisgICAgQVNTRVJUKG1fZnJhbWVzW2luZGV4XS5pc0JlaW5nRGVjb2RlZCgp
KTsKKwogICAgIC8vIENsZWFuIHRoZSBvbGQgbmF0aXZlIGltYWdlIGFuZCBzZXQgYSBuZXcgb25l
CiAgICAgcmVwbGFjZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KFdURk1vdmUobmF0aXZlSW1hZ2Up
LCBpbmRleCwgc3Vic2FtcGxpbmdMZXZlbCk7CiAKQEAgLTI2Myw2ICsyNjYsOCBAQCB2b2lkIElt
YWdlRnJhbWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgaWYgKGhhc0RlY29kaW5nUXVl
dWUoKSB8fCAhaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1f
ZnJhbWVSZXF1ZXN0UXVldWUub3BlbigpOworCiAgICAgUmVmPEltYWdlRnJhbWVDYWNoZT4gcHJv
dGVjdGVkVGhpcyA9IFJlZjxJbWFnZUZyYW1lQ2FjaGU+KCp0aGlzKTsKICAgICBSZWY8V29ya1F1
ZXVlPiBwcm90ZWN0ZWRRdWV1ZSA9IGRlY29kaW5nUXVldWUoKTsKIApAQCAtMjc1LDkgKzI4MCw5
IEBAIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpzdGFydEFzeW5jRGVjb2RpbmcKICAgICAgICAgICAg
IE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlID0gbV9kZWNvZGVyLT5jcmVhdGVGcmFtZUltYWdl
QXRJbmRleChmcmFtZVJlcXVlc3QuaW5kZXgsIGZyYW1lUmVxdWVzdC5zdWJzYW1wbGluZ0xldmVs
LCBEZWNvZGluZ01vZGU6OkltbWVkaWF0ZSk7CiAKICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
Y2FjaGVkIGZyYW1lcyBvbiB0aGUgbWFpbiB0aHJlYWQgdG8gYXZvaWQgdXBkYXRpbmcgdGhlIE1l
bW9yeUNhY2hlIGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkLgotICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgbmF0aXZlSW1hZ2UsIGZyYW1lUmVxdWVzdF0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRRdWV1ZSA9IHByb3Rl
Y3RlZFF1ZXVlLmNvcHlSZWYoKSwgbmF0aXZlSW1hZ2UsIGZyYW1lUmVxdWVzdF0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIHF1ZXVlIG1heSBiZSBjbG9zZWQgaWYgYWZ0ZXIg
d2UgZ290IHRoZSBmcmFtZSBOYXRpdmVJbWFnZSwgc3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSgpIHdh
cyBjYWxsZWQKLSAgICAgICAgICAgICAgICBpZiAoaGFzRGVjb2RpbmdRdWV1ZSgpKQorICAgICAg
ICAgICAgICAgIGlmIChwcm90ZWN0ZWRRdWV1ZS5wdHIoKSA9PSBtX2RlY29kaW5nUXVldWUpCiAg
ICAgICAgICAgICAgICAgICAgIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoV1RGTW92ZShu
YXRpdmVJbWFnZSksIGZyYW1lUmVxdWVzdC5pbmRleCwgZnJhbWVSZXF1ZXN0LnN1YnNhbXBsaW5n
TGV2ZWwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KQEAgLTI5NCwxMyArMjk5LDE2IEBA
IGJvb2wgSW1hZ2VGcmFtZUNhY2hlOjpyZXF1ZXN0RnJhbWVBc3luY0QKIAogICAgIEFTU0VSVChp
bmRleCA8IG1fZnJhbWVzLnNpemUoKSk7CiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1l
c1tpbmRleF07Ci0gICAgCisKKyAgICBpZiAoZnJhbWUuaXNCZWluZ0RlY29kZWQoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoc3Vic2FtcGxpbmdMZXZlbCA9PSBTdWJzYW1wbGlu
Z0xldmVsOjpVbmRlZmluZGVkKQogICAgICAgICBzdWJzYW1wbGluZ0xldmVsID0gZnJhbWUuc3Vi
c2FtcGxpbmdMZXZlbCgpOwotICAgIAorCiAgICAgaWYgKGZyYW1lLmhhc1ZhbGlkTmF0aXZlSW1h
Z2Uoc3Vic2FtcGxpbmdMZXZlbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAg
IGZyYW1lLnNldERlY29kaW5nKEltYWdlRnJhbWU6OkRlY29kaW5nOjpCZWluZ0RlY29kZWQpOwog
ICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUuZW5xdWV1ZSh7IGluZGV4LCBzdWJzYW1wbGluZ0xldmVs
IH0pOwogICAgIHJldHVybiB0cnVlOwpAQCAtMzEzLDYgKzMyMSwxMSBAQCB2b2lkIEltYWdlRnJh
bWVDYWNoZTo6c3RvcEFzeW5jRGVjb2RpbmdRCiAgICAgCiAgICAgbV9mcmFtZVJlcXVlc3RRdWV1
ZS5jbG9zZSgpOwogICAgIG1fZGVjb2RpbmdRdWV1ZSA9IG51bGxwdHI7CisKKyAgICBmb3IgKElt
YWdlRnJhbWUmIGZyYW1lIDogbV9mcmFtZXMpIHsKKyAgICAgICAgaWYgKGZyYW1lLmlzQmVpbmdE
ZWNvZGVkKCkpCisgICAgICAgICAgICBmcmFtZS5jbGVhcigpOworICAgIH0KIH0KIAogY29uc3Qg
SW1hZ2VGcmFtZSYgSW1hZ2VGcmFtZUNhY2hlOjpmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBT
dWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwsIEltYWdlRnJhbWU6OkNhY2hpbmcgY2Fj
aGluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDIw
OTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjYyLDYgKzY2MiwxOSBAQCB2b2lkIEludGVybmFsczo6c2V0SW1hZ2VGcmFtZURl
Y29kaW5nRHVyCiAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkuc2V0RnJhbWVEZWNv
ZGluZ0R1cmF0aW9uRm9yVGVzdGluZyhkdXJhdGlvbik7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpy
ZXNldEltYWdlQW5pbWF0aW9uKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYXV0
byogY2FjaGVkSW1hZ2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCk7CisgICAgaWYgKCFjYWNoZWRJ
bWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZS0+
aW1hZ2UoKTsKKyAgICBpZiAoIWlzPEJpdG1hcEltYWdlPihpbWFnZSkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGltYWdlLT5yZXNldEFuaW1hdGlvbigpOworfQorCiB2b2lkIEludGVybmFsczo6
Y2xlYXJQYWdlQ2FjaGUoKQogewogICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1Np
emVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAKICAg
ICB1bnNpZ25lZCBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVudCYpOwogICAgIHZvaWQg
c2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyYXRpb24oSFRNTEltYWdlRWxlbWVudCYsIGZsb2F0IGR1
cmF0aW9uKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCYp
OwogCiAgICAgdm9pZCBjbGVhclBhZ2VDYWNoZSgpOwogICAgIHVuc2lnbmVkIHBhZ2VDYWNoZVNp
emUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlz
aW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogCiAgICAgdW5zaWduZWQgbG9uZyBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVu
dCBlbGVtZW50KTsKICAgICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKEhUTUxJ
bWFnZUVsZW1lbnQgZWxlbWVudCwgdW5yZXN0cmljdGVkIGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2
b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKIAogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdvcmtlclRocmVhZENvdW50OwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjA5MDAxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMTEtMjkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBTb21lIGFuaW1hdGVkIGltYWdlIGRvIG5vdCBh
bmltYXRlIGFmdGVyIHJlc2V0aW5nIHRoZWlyIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRW5zdXJlIHRoZSBpbWFnZSBh
bmltYXRpb24gaXMgcGxheWVkIGluIG9yZGVyIGFmdGVyIHRoZSBhbmltYXRpb24gaXMgcmVzZXQu
CisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24u
aHRtbDogQWRkZWQuCisKIDIwMTYtMTEtMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBGSVJTVF9MSU5FX0lOSEVSSVRFRCBmYWtlIHBzZXVkbyBz
dHlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9u
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNl
dC1pbWFnZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorRW5zdXJlIHRoZSBpbWFnZSBhbmltYXRpb24gaXMg
cGxheWVkIGluIG9yZGVyIGFmdGVyIHRoZSBhbmltYXRpb24gaXMgcmVzZXQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy5pbWFnZUZyYW1lSW5kZXgoaW1h
Z2UpIGlzIDEKK1BBU1MgaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChpbWFnZSkgaXMgMgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFu
aW1hdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9
ImNhbnZhcyI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIkVu
c3VyZSB0aGUgaW1hZ2UgYW5pbWF0aW9uIGlzIHBsYXllZCBpbiBvcmRlciBhZnRlciB0aGUgYW5p
bWF0aW9uIGlzIHJlc2V0LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBpbnRlcm5hbHMuY2xlYXJNZW1vcnlDYWNoZSgpOworCisgICAgICAgIHZhciBpbWFnZSA9
IG5ldyBJbWFnZTsKKyAgICAgICAgaW1hZ2Uub25sb2FkID0gaW1hZ2VMb2FkZWQ7CisgICAgICAg
IGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvYW5pbWF0ZWQtcmVkLWdyZWVuLWJsdWUuZ2lmIjsKKyAg
ICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGltYWdlTG9hZGVkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIGludGVybmFscy5zZXRJbWFnZUZyYW1lRGVjb2RpbmdEdXJhdGlvbihpbWFnZSwg
MC4wNDApOworICAgICAgICAgICAgZHJhd0ltYWdlKCk7CisgICAgICAgICAgICBkcmF3TG9vcCgp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZHJhd0ltYWdlKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKGRyYXdJbWFnZS5jb3VudCA9PSB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgZHJhd0ltYWdlLmNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgICAgICB2YXIgY3R4ID0gY2Fu
dmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICBjdHguZHJhd0ltYWdlKGltYWdlLCAw
LCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuICsr
ZHJhd0ltYWdlLmNvdW50OworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIGZ1
bmN0aW9uIGRyYXdMb29wKCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGRyYXdJbWFnZSgpKSB7CisgICAgICAg
ICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxz
LmltYWdlRnJhbWVJbmRleChpbWFnZSkiLCAiMSIpOworICAgICAgICAgICAgICAgICAgICBpbnRl
cm5hbHMucmVzZXRJbWFnZUFuaW1hdGlvbihpbWFnZSk7CisgICAgICAgICAgICAgICAgICAgIGRy
YXdMb29wKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAg
Y2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYW5pbWF0aW9uIHdhcyByZXNldCBh
dCBkcmF3Q291bnQgPSAyLiBUaHJlZSBtb3JlCisgICAgICAgICAgICAgICAgICAgIC8vIGRyYXdp
bmdzIHNob3VsZCBtYWtlIGN1cnJlbnRfZnJhbWUgPSAyLgorICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChpbWFnZSkiLCAiMiIpOworICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIGRyYXdMb29wKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSwgNTApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295699</attachid>
            <date>2016-11-29 20:31:43 -0800</date>
            <delta_ts>2016-11-30 08:31:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161129203117.patch</filename>
            <type>text/plain</type>
            <size>11186</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBhbmlt
YXRlZCBpbWFnZSBkbyBub3QgYW5pbWF0ZSBhZnRlciByZXNldGluZyB0aGVpciBhbmltYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUxMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBm
YXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24uaHRtbAorCisgICAgICAgIFRoZSBidWcg
aGFwcGVucyBiZWNhdXNlIHRoZSBJbWFnZUZyYW1lQ2FjaGUgZG9lcyBub3QgcmVzZXQgaXRzIGNh
Y2hlZAorICAgICAgICBmcmFtZXMgcHJvcGVybHkgd2hlbiB0aGUgQml0bWFwSW1hZ2UgcmVzdHMg
aXRzIGFuaW1hdGlvbi4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGlnbm9yZSBjYWNoaW5nIHRo
ZSBuZXcgTmF0aXZlSW1hZ2Ugb2YgYW4gSW1hZ2VGcmFtZSBpZiB0aGUKKyAgICAgICAgZGVjb2Rp
bmcgdGhyZWFkIGlzIHRlcm1pbmF0ZWQgYWZ0ZXIgYXN5bmNocm9ub3VzbHkgY2FsbGluZyAgCisg
ICAgICAgIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoKSBvbiB0aGUgbWFpbiB0aHJlYWQg
dGhyb3VnaCBjYWxsT25NYWluVGhyZWFkKCkuCisgICAgICAgIEFsdGhvdWdoIHRoZSBkZWNvZGlu
ZyB0aHJlYWQgd2FzIHRlcm1pbmF0ZWQgdGhpcyBjYWxsIGlzIHN0aWxsIHNjaGVkdWxlZAorICAg
ICAgICB0byBiZSBleGVjdXRlZCBsYXRlciBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAg
LS0gV2UgbmVlZCB0byBvcGVuIHRoZSBtX2ZyYW1lUmVxdWVzdFF1ZXVlIGJlZm9yZSBzdGFydGlu
ZyBhIG5ldyBkZWNvZGluZworICAgICAgICB0aHJlYWQuIE9wZW5pbmcgbV9mcmFtZVJlcXVlc3RR
dWV1ZSBjbGVhcnMgdGhlIGVucXVldWVkIHJlcXVlc3RzIGZyb20gdGhlIAorICAgICAgICBwcmV2
aW91cyBkZWNvZGluZyB0aHJlYWQgYW5kIGFsbG93cyBlbnF1ZXVlaW5nIHJlcXVlc3RzIGZvciB0
aGUgbmV3IHRocmVhZC4KKworICAgICAgICAtLSBXZSBuZWVkIHRvIGNsZWFyIHRoZSBJbWFnZUZy
YW1lcyB3aGljaCB3ZXJlIGJlaW5nIGRlY29kZWQgYXQgdGhlIHRpbWUKKyAgICAgICAgdGhlIGRl
Y29kaW5nIHF1ZXVlIHdhcyBjbG9zaW5nIGFuZCB0aGVpciBuZXcgTmF0aXZlSW1hZ2VzIHdlcmUg
bm90IGNhY2hlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNo
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRp
dmVJbWFnZUF0SW5kZXgpOiBBc3NlcnQgdGhlIE5hdGl2ZUltYWdlCisgICAgICAgIGlzIGNhY2hl
ZCBmb3IgYW4gSW1hZ2VGcmFtZSB3aGljaCBpcyBzdGlsbCBiZWluZyBkZWNvZGVkLgorCisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnN0YXJ0QXN5bmNEZWNvZGluZ1F1ZXVlKTog
T3BlbiB0aGUgbV9mcmFtZVJlcXVlc3RRdWV1ZQorICAgICAgICBiZWZvcmUgc3RhcnRpbmcgdGhl
IGRlY29kaW5nIHRocmVhZC4gRG9uJ3QgY2FjaGUgdGhlIE5hdGl2ZUltYWdlIG9mIGFuIEltYWdl
RnJhbWUKKyAgICAgICAgdW5sZXNzIHRoZSBkZWNvZGluZyB0aHJlYWQgaXMgc3RpbGwgYWxpdmUg
YW5kIGl0IHRoZSBzYW1lIGFzIHRoZSBvbmUgdGhhdCBtYWtlcworICAgICAgICB0aGUgYXN5bmNo
cm9ub3VzIGNhbGwgdG8gY2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleCgpLgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6cmVxdWVzdEZyYW1lQXN5bmNEZWNv
ZGluZ0F0SW5kZXgpOiBEb24ndCByZXF1ZXN0IGFuCisgICAgICAgIGltYWdlIGZyYW1lIHRvIGJl
IGJlIGFzeW5jaHJvbm91c2x5IGRlY29kZWQgaWYgaXQgaXMgYWxyZWFkeSBiZWluZyBkZWNvZGVk
LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6c3RvcEFzeW5j
RGVjb2RpbmdRdWV1ZSk6IENsZWFyIHRoZSBJbWFnZUZyYW1lcyB0aGF0CisgICAgICAgIHdlcmUg
YmVpbmcgZGVjb2RlZCB3aGVuIHRoZSBkZWNvZGluZyB0aHJlYWQgdGVybWluYXRlcy4KKyAgICAg
ICAgCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpyZXNldEltYWdlQW5pbWF0aW9uKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgRXhwb3Nl
IEJpdG1hcEltYWdlOjpyZXNldEFuaW1hdGlvbigpIHRocm91Z2ggSW50ZXJuYWxzIHNvIHRlc3Rz
IGNhbiBmb3JjZSBpdC4KKwogMjAxNi0xMS0yOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFNob3cgYW4gaW52YWxp
ZCBwbGFjYXJkIHdoZW4gd2UgZmFpbCB0byBsb2FkIGEgbWVkaWEgZmlsZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3Bw
CShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUZyYW1lQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNiArMjQyLDkgQEAgdm9p
ZCBJbWFnZUZyYW1lQ2FjaGU6OmNhY2hlRnJhbWVOYXRpdmVJbQogICAgIGlmICghaXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChpbmRleCA8IG1fZnJh
bWVzLnNpemUoKSk7CisgICAgQVNTRVJUKG1fZnJhbWVzW2luZGV4XS5pc0JlaW5nRGVjb2RlZCgp
KTsKKwogICAgIC8vIENsZWFuIHRoZSBvbGQgbmF0aXZlIGltYWdlIGFuZCBzZXQgYSBuZXcgb25l
CiAgICAgcmVwbGFjZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KFdURk1vdmUobmF0aXZlSW1hZ2Up
LCBpbmRleCwgc3Vic2FtcGxpbmdMZXZlbCk7CiAKQEAgLTI2Myw2ICsyNjYsOCBAQCB2b2lkIElt
YWdlRnJhbWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgaWYgKGhhc0RlY29kaW5nUXVl
dWUoKSB8fCAhaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1f
ZnJhbWVSZXF1ZXN0UXVldWUub3BlbigpOworCiAgICAgUmVmPEltYWdlRnJhbWVDYWNoZT4gcHJv
dGVjdGVkVGhpcyA9IFJlZjxJbWFnZUZyYW1lQ2FjaGU+KCp0aGlzKTsKICAgICBSZWY8V29ya1F1
ZXVlPiBwcm90ZWN0ZWRRdWV1ZSA9IGRlY29kaW5nUXVldWUoKTsKIApAQCAtMjc1LDkgKzI4MCw5
IEBAIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpzdGFydEFzeW5jRGVjb2RpbmcKICAgICAgICAgICAg
IE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlID0gbV9kZWNvZGVyLT5jcmVhdGVGcmFtZUltYWdl
QXRJbmRleChmcmFtZVJlcXVlc3QuaW5kZXgsIGZyYW1lUmVxdWVzdC5zdWJzYW1wbGluZ0xldmVs
LCBEZWNvZGluZ01vZGU6OkltbWVkaWF0ZSk7CiAKICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUg
Y2FjaGVkIGZyYW1lcyBvbiB0aGUgbWFpbiB0aHJlYWQgdG8gYXZvaWQgdXBkYXRpbmcgdGhlIE1l
bW9yeUNhY2hlIGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkLgotICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgbmF0aXZlSW1hZ2UsIGZyYW1lUmVxdWVzdF0gKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRRdWV1ZSA9IHByb3Rl
Y3RlZFF1ZXVlLmNvcHlSZWYoKSwgbmF0aXZlSW1hZ2UsIGZyYW1lUmVxdWVzdF0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIHF1ZXVlIG1heSBiZSBjbG9zZWQgaWYgYWZ0ZXIg
d2UgZ290IHRoZSBmcmFtZSBOYXRpdmVJbWFnZSwgc3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSgpIHdh
cyBjYWxsZWQKLSAgICAgICAgICAgICAgICBpZiAoaGFzRGVjb2RpbmdRdWV1ZSgpKQorICAgICAg
ICAgICAgICAgIGlmIChwcm90ZWN0ZWRRdWV1ZS5wdHIoKSA9PSBtX2RlY29kaW5nUXVldWUpCiAg
ICAgICAgICAgICAgICAgICAgIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoV1RGTW92ZShu
YXRpdmVJbWFnZSksIGZyYW1lUmVxdWVzdC5pbmRleCwgZnJhbWVSZXF1ZXN0LnN1YnNhbXBsaW5n
TGV2ZWwpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KQEAgLTI5NCwxMyArMjk5LDE5IEBA
IGJvb2wgSW1hZ2VGcmFtZUNhY2hlOjpyZXF1ZXN0RnJhbWVBc3luY0QKIAogICAgIEFTU0VSVChp
bmRleCA8IG1fZnJhbWVzLnNpemUoKSk7CiAgICAgSW1hZ2VGcmFtZSYgZnJhbWUgPSBtX2ZyYW1l
c1tpbmRleF07Ci0gICAgCisKKyAgICAvLyBXZSBuZWVkIHRvIGNvYWxlc2NlIG11bHRpcGxlIHJl
cXVlc3RzIGZvciBkZWNvZGluZyB0aGUgc2FtZSBJbWFnZUZyYW1lIHdoaWxlIGl0CisgICAgLy8g
aXMgc3RpbGwgYmVpbmcgZGVjb2RlZC4gVGhpcyBtYXkgaGFwcGVuIGlmIHRoZSBpbWFnZSByZWN0
YW5nbGUgaXMgcmVwYWludGVkCisgICAgLy8gbXVsdGlwbGUgdGltZXMgd2hpbGUgdGhlIEltYWdl
RnJhbWUgaGFzIG5vdCBmaW5pc2hlZCBkZWNvZGluZy4KKyAgICBpZiAoZnJhbWUuaXNCZWluZ0Rl
Y29kZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoc3Vic2FtcGxpbmdMZXZl
bCA9PSBTdWJzYW1wbGluZ0xldmVsOjpVbmRlZmluZGVkKQogICAgICAgICBzdWJzYW1wbGluZ0xl
dmVsID0gZnJhbWUuc3Vic2FtcGxpbmdMZXZlbCgpOwotICAgIAorCiAgICAgaWYgKGZyYW1lLmhh
c1ZhbGlkTmF0aXZlSW1hZ2Uoc3Vic2FtcGxpbmdMZXZlbCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKKwogICAgIGZyYW1lLnNldERlY29kaW5nKEltYWdlRnJhbWU6OkRlY29kaW5nOjpC
ZWluZ0RlY29kZWQpOwogICAgIG1fZnJhbWVSZXF1ZXN0UXVldWUuZW5xdWV1ZSh7IGluZGV4LCBz
dWJzYW1wbGluZ0xldmVsIH0pOwogICAgIHJldHVybiB0cnVlOwpAQCAtMzEzLDYgKzMyNCwxMSBA
QCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6c3RvcEFzeW5jRGVjb2RpbmdRCiAgICAgCiAgICAgbV9m
cmFtZVJlcXVlc3RRdWV1ZS5jbG9zZSgpOwogICAgIG1fZGVjb2RpbmdRdWV1ZSA9IG51bGxwdHI7
CisKKyAgICBmb3IgKEltYWdlRnJhbWUmIGZyYW1lIDogbV9mcmFtZXMpIHsKKyAgICAgICAgaWYg
KGZyYW1lLmlzQmVpbmdEZWNvZGVkKCkpCisgICAgICAgICAgICBmcmFtZS5jbGVhcigpOworICAg
IH0KIH0KIAogY29uc3QgSW1hZ2VGcmFtZSYgSW1hZ2VGcmFtZUNhY2hlOjpmcmFtZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwsIEltYWdlRnJh
bWU6OkNhY2hpbmcgY2FjaGluZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYyLDYgKzY2MiwxOSBAQCB2b2lkIEludGVybmFsczo6
c2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyCiAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFn
ZSkuc2V0RnJhbWVEZWNvZGluZ0R1cmF0aW9uRm9yVGVzdGluZyhkdXJhdGlvbik7CiB9CiAKK3Zv
aWQgSW50ZXJuYWxzOjpyZXNldEltYWdlQW5pbWF0aW9uKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1l
bnQpCit7CisgICAgYXV0byogY2FjaGVkSW1hZ2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCk7Cisg
ICAgaWYgKCFjYWNoZWRJbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogaW1hZ2Ug
PSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKKyAgICBpZiAoIWlzPEJpdG1hcEltYWdlPihpbWFnZSkp
CisgICAgICAgIHJldHVybjsKKworICAgIGltYWdlLT5yZXNldEFuaW1hdGlvbigpOworfQorCiB2
b2lkIEludGVybmFsczo6Y2xlYXJQYWdlQ2FjaGUoKQogewogICAgIFBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBA
QCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVu
dCYpOwogICAgIHZvaWQgc2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyYXRpb24oSFRNTEltYWdlRWxl
bWVudCYsIGZsb2F0IGR1cmF0aW9uKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRN
TEltYWdlRWxlbWVudCYpOwogCiAgICAgdm9pZCBjbGVhclBhZ2VDYWNoZSgpOwogICAgIHVuc2ln
bmVkIHBhZ2VDYWNoZVNpemUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHJldmlzaW9uIDIwOTAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw3IEBAIGVudW0gRXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3IgewogCiAgICAgdW5zaWduZWQgbG9uZyBpbWFnZUZyYW1lSW5kZXgo
SFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKICAgICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGlu
Z0R1cmF0aW9uKEhUTUxJbWFnZUVsZW1lbnQgZWxlbWVudCwgdW5yZXN0cmljdGVkIGZsb2F0IGR1
cmF0aW9uKTsKKyAgICB2b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCBl
bGVtZW50KTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRp
bmdzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdvcmtlclRocmVhZENv
dW50OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5MDAxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMTEtMjkgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBTb21lIGFuaW1hdGVk
IGltYWdlIGRvIG5vdCBhbmltYXRlIGFmdGVyIHJlc2V0aW5nIHRoZWlyIGFuaW1hdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTEzMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRW5z
dXJlIHRoZSBpbWFnZSBhbmltYXRpb24gaXMgcGxheWVkIGluIG9yZGVyIGFmdGVyIHRoZSBhbmlt
YXRpb24gaXMgcmVzZXQuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmlt
YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNldC1p
bWFnZS1hbmltYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTYtMTEtMjggIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBGSVJTVF9MSU5FX0lOSEVSSVRF
RCBmYWtlIHBzZXVkbyBzdHlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQt
aW1hZ2UtYW5pbWF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9yZXNldC1pbWFnZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorRW5zdXJlIHRoZSBpbWFn
ZSBhbmltYXRpb24gaXMgcGxheWVkIGluIG9yZGVyIGFmdGVyIHRoZSBhbmltYXRpb24gaXMgcmVz
ZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy5pbWFn
ZUZyYW1lSW5kZXgoaW1hZ2UpIGlzIDEKK1BBU1MgaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChp
bWFnZSkgaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc2V0LWltYWdl
LWFuaW1hdGlvbi5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L3Jlc2V0LWltYWdlLWFuaW1hdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIkVuc3VyZSB0aGUgaW1hZ2UgYW5pbWF0aW9uIGlzIHBsYXllZCBpbiBvcmRl
ciBhZnRlciB0aGUgYW5pbWF0aW9uIGlzIHJlc2V0LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgICAgICBpbnRlcm5hbHMuY2xlYXJNZW1vcnlDYWNoZSgpOworCisgICAg
ICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKyAgICAgICAgaW1hZ2Uub25sb2FkID0gaW1hZ2VM
b2FkZWQ7CisgICAgICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvYW5pbWF0ZWQtcmVkLWdyZWVu
LWJsdWUuZ2lmIjsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGltYWdlTG9hZGVkKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIGludGVybmFscy5zZXRJbWFnZUZyYW1lRGVjb2RpbmdE
dXJhdGlvbihpbWFnZSwgMC4wNDApOworICAgICAgICAgICAgZHJhd0ltYWdlKCk7CisgICAgICAg
ICAgICBkcmF3TG9vcCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZHJhd0ltYWdl
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGRyYXdJbWFnZS5jb3VudCA9PSB1bmRlZmlu
ZWQpCisgICAgICAgICAgICAgICAgZHJhd0ltYWdlLmNvdW50ID0gMDsKKyAgICAgICAgICAgIHZh
ciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgICAg
ICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICBjdHguZHJh
d0ltYWdlKGltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAg
ICAgICAgcmV0dXJuICsrZHJhd0ltYWdlLmNvdW50OworICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgIGZ1bmN0aW9uIGRyYXdMb29wKCkKKyAgICAgICAgeworICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGRyYXdJbWFn
ZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBzaG91
bGRCZSgiaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChpbWFnZSkiLCAiMSIpOworICAgICAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMucmVzZXRJbWFnZUFuaW1hdGlvbihpbWFnZSk7CisgICAgICAg
ICAgICAgICAgICAgIGRyYXdMb29wKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYW5pbWF0
aW9uIHdhcyByZXNldCBhdCBkcmF3Q291bnQgPSAyLiBUaHJlZSBtb3JlCisgICAgICAgICAgICAg
ICAgICAgIC8vIGRyYXdpbmdzIHNob3VsZCBtYWtlIGN1cnJlbnRfZnJhbWUgPSAyLgorICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmltYWdlRnJhbWVJbmRleChpbWFnZSki
LCAiMiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGRyYXdMb29wKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfSwgNTApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295717</attachid>
            <date>2016-11-30 08:31:57 -0800</date>
            <delta_ts>2016-11-30 09:10:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165131-20161130083130.patch</filename>
            <type>text/plain</type>
            <size>11182</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTExLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBhbmlt
YXRlZCBpbWFnZSBkbyBub3QgYW5pbWF0ZSBhZnRlciByZXNldGluZyB0aGVpciBhbmltYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUxMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGVzdDogZmFz
dC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwKKworICAgICAgICBUaGUgYnVnIGhh
cHBlbnMgYmVjYXVzZSB0aGUgSW1hZ2VGcmFtZUNhY2hlIGRvZXMgbm90IHJlc2V0IGl0cyBjYWNo
ZWQKKyAgICAgICAgZnJhbWVzIHByb3Blcmx5IHdoZW4gdGhlIEJpdG1hcEltYWdlIHJlc3RzIGl0
cyBhbmltYXRpb24uCisKKyAgICAgICAgLS0gV2UgbmVlZCB0byBpZ25vcmUgY2FjaGluZyB0aGUg
bmV3IE5hdGl2ZUltYWdlIG9mIGFuIEltYWdlRnJhbWUgaWYgdGhlCisgICAgICAgIGRlY29kaW5n
IHRocmVhZCBpcyB0ZXJtaW5hdGVkIGFmdGVyIGFzeW5jaHJvbm91c2x5IGNhbGxpbmcgIAorICAg
ICAgICBjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KCkgb24gdGhlIG1haW4gdGhyZWFkIHRo
cm91Z2ggY2FsbE9uTWFpblRocmVhZCgpLgorICAgICAgICBBbHRob3VnaCB0aGUgZGVjb2Rpbmcg
dGhyZWFkIHdhcyB0ZXJtaW5hdGVkIHRoaXMgY2FsbCBpcyBzdGlsbCBzY2hlZHVsZWQKKyAgICAg
ICAgdG8gYmUgZXhlY3V0ZWQgbGF0ZXIgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgIC0t
IFdlIG5lZWQgdG8gb3BlbiB0aGUgbV9mcmFtZVJlcXVlc3RRdWV1ZSBiZWZvcmUgc3RhcnRpbmcg
YSBuZXcgZGVjb2RpbmcKKyAgICAgICAgdGhyZWFkLiBPcGVuaW5nIG1fZnJhbWVSZXF1ZXN0UXVl
dWUgY2xlYXJzIHRoZSBlbnF1ZXVlZCByZXF1ZXN0cyBmcm9tIHRoZSAKKyAgICAgICAgcHJldmlv
dXMgZGVjb2RpbmcgdGhyZWFkIGFuZCBhbGxvd3MgZW5xdWV1ZWluZyByZXF1ZXN0cyBmb3IgdGhl
IG5ldyB0aHJlYWQuCisKKyAgICAgICAgLS0gV2UgbmVlZCB0byBjbGVhciB0aGUgSW1hZ2VGcmFt
ZXMgd2hpY2ggd2VyZSBiZWluZyBkZWNvZGVkIGF0IHRoZSB0aW1lCisgICAgICAgIHRoZSBkZWNv
ZGluZyBxdWV1ZSB3YXMgY2xvc2luZyBhbmQgdGhlaXIgbmV3IE5hdGl2ZUltYWdlcyB3ZXJlIG5v
dCBjYWNoZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpjYWNoZUZyYW1lTmF0aXZl
SW1hZ2VBdEluZGV4KTogQXNzZXJ0IHRoZSBOYXRpdmVJbWFnZQorICAgICAgICBpcyBjYWNoZWQg
Zm9yIGFuIEltYWdlRnJhbWUgd2hpY2ggaXMgc3RpbGwgYmVpbmcgZGVjb2RlZC4KKworICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpzdGFydEFzeW5jRGVjb2RpbmdRdWV1ZSk6IE9w
ZW4gdGhlIG1fZnJhbWVSZXF1ZXN0UXVldWUKKyAgICAgICAgYmVmb3JlIHN0YXJ0aW5nIHRoZSBk
ZWNvZGluZyB0aHJlYWQuIERvbid0IGNhY2hlIHRoZSBOYXRpdmVJbWFnZSBvZiBhbiBJbWFnZUZy
YW1lCisgICAgICAgIHVubGVzcyB0aGUgZGVjb2RpbmcgdGhyZWFkIGlzIHN0aWxsIGFsaXZlIGFu
ZCBpdCB0aGUgc2FtZSBhcyB0aGUgb25lIHRoYXQgbWFrZXMKKyAgICAgICAgdGhlIGFzeW5jaHJv
bm91cyBjYWxsIHRvIGNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoKS4KKyAgICAgICAgCisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnJlcXVlc3RGcmFtZUFzeW5jRGVjb2Rp
bmdBdEluZGV4KTogRG9uJ3QgcmVxdWVzdCBhbgorICAgICAgICBpbWFnZSBmcmFtZSB0byBiZSBi
ZSBhc3luY2hyb25vdXNseSBkZWNvZGVkIGlmIGl0IGlzIGFscmVhZHkgYmVpbmcgZGVjb2RlZC4K
KyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0Rl
Y29kaW5nUXVldWUpOiBDbGVhciB0aGUgSW1hZ2VGcmFtZXMgdGhhdAorICAgICAgICB3ZXJlIGJl
aW5nIGRlY29kZWQgd2hlbiB0aGUgZGVjb2RpbmcgdGhyZWFkIHRlcm1pbmF0ZXMuCisgICAgICAg
IAorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6cmVzZXRJbWFnZUFuaW1hdGlvbik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgIEV4cG9zZSBC
aXRtYXBJbWFnZTo6cmVzZXRBbmltYXRpb24oKSB0aHJvdWdoIEludGVybmFscyBzbyB0ZXN0cyBj
YW4gZm9yY2UgaXQuCisKIDIwMTYtMTEtMjkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBTaG93IGFuIGludmFsaWQg
cGxhY2FyZCB3aGVuIHdlIGZhaWwgdG8gbG9hZCBhIG1lZGlhIGZpbGUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAko
cmV2aXNpb24gMjA5MDAxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VGcmFtZUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDYgKzI0Miw5IEBAIHZvaWQg
SW1hZ2VGcmFtZUNhY2hlOjpjYWNoZUZyYW1lTmF0aXZlSW0KICAgICBpZiAoIWlzRGVjb2RlckF2
YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoaW5kZXggPCBtX2ZyYW1l
cy5zaXplKCkpOworICAgIEFTU0VSVChtX2ZyYW1lc1tpbmRleF0uaXNCZWluZ0RlY29kZWQoKSk7
CisKICAgICAvLyBDbGVhbiB0aGUgb2xkIG5hdGl2ZSBpbWFnZSBhbmQgc2V0IGEgbmV3IG9uZQog
ICAgIHJlcGxhY2VGcmFtZU5hdGl2ZUltYWdlQXRJbmRleChXVEZNb3ZlKG5hdGl2ZUltYWdlKSwg
aW5kZXgsIHN1YnNhbXBsaW5nTGV2ZWwpOwogCkBAIC0yNjMsNiArMjY2LDggQEAgdm9pZCBJbWFn
ZUZyYW1lQ2FjaGU6OnN0YXJ0QXN5bmNEZWNvZGluZwogICAgIGlmIChoYXNEZWNvZGluZ1F1ZXVl
KCkgfHwgIWlzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2Zy
YW1lUmVxdWVzdFF1ZXVlLm9wZW4oKTsKKwogICAgIFJlZjxJbWFnZUZyYW1lQ2FjaGU+IHByb3Rl
Y3RlZFRoaXMgPSBSZWY8SW1hZ2VGcmFtZUNhY2hlPigqdGhpcyk7CiAgICAgUmVmPFdvcmtRdWV1
ZT4gcHJvdGVjdGVkUXVldWUgPSBkZWNvZGluZ1F1ZXVlKCk7CiAKQEAgLTI3NSw5ICsyODAsOSBA
QCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgICAgICAgICBO
YXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSA9IG1fZGVjb2Rlci0+Y3JlYXRlRnJhbWVJbWFnZUF0
SW5kZXgoZnJhbWVSZXF1ZXN0LmluZGV4LCBmcmFtZVJlcXVlc3Quc3Vic2FtcGxpbmdMZXZlbCwg
RGVjb2RpbmdNb2RlOjpJbW1lZGlhdGUpOwogCiAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNh
Y2hlZCBmcmFtZXMgb24gdGhlIG1haW4gdGhyZWFkIHRvIGF2b2lkIHVwZGF0aW5nIHRoZSBNZW1v
cnlDYWNoZSBmcm9tIGEgZGlmZmVyZW50IHRocmVhZC4KLSAgICAgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RoaXMsIG5hdGl2ZUltYWdlLCBmcmFtZVJlcXVlc3RdICgpIG11dGFibGUgeworICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkUXVldWUgPSBwcm90ZWN0
ZWRRdWV1ZS5jb3B5UmVmKCksIG5hdGl2ZUltYWdlLCBmcmFtZVJlcXVlc3RdICgpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIC8vIFRoZSBxdWV1ZSBtYXkgYmUgY2xvc2VkIGlmIGFmdGVyIHdl
IGdvdCB0aGUgZnJhbWUgTmF0aXZlSW1hZ2UsIHN0b3BBc3luY0RlY29kaW5nUXVldWUoKSB3YXMg
Y2FsbGVkCi0gICAgICAgICAgICAgICAgaWYgKGhhc0RlY29kaW5nUXVldWUoKSkKKyAgICAgICAg
ICAgICAgICBpZiAocHJvdGVjdGVkUXVldWUucHRyKCkgPT0gbV9kZWNvZGluZ1F1ZXVlKQogICAg
ICAgICAgICAgICAgICAgICBjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KFdURk1vdmUobmF0
aXZlSW1hZ2UpLCBmcmFtZVJlcXVlc3QuaW5kZXgsIGZyYW1lUmVxdWVzdC5zdWJzYW1wbGluZ0xl
dmVsKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CkBAIC0yOTQsMTMgKzI5OSwxOSBAQCBi
b29sIEltYWdlRnJhbWVDYWNoZTo6cmVxdWVzdEZyYW1lQXN5bmNECiAKICAgICBBU1NFUlQoaW5k
ZXggPCBtX2ZyYW1lcy5zaXplKCkpOwogICAgIEltYWdlRnJhbWUmIGZyYW1lID0gbV9mcmFtZXNb
aW5kZXhdOwotICAgIAorCisgICAgLy8gV2UgbmVlZCB0byBjb2FsZXNjZSBtdWx0aXBsZSByZXF1
ZXN0cyBmb3IgZGVjb2RpbmcgdGhlIHNhbWUgSW1hZ2VGcmFtZSB3aGlsZSBpdAorICAgIC8vIGlz
IHN0aWxsIGJlaW5nIGRlY29kZWQuIFRoaXMgbWF5IGhhcHBlbiBpZiB0aGUgaW1hZ2UgcmVjdGFu
Z2xlIGlzIHJlcGFpbnRlZAorICAgIC8vIG11bHRpcGxlIHRpbWVzIHdoaWxlIHRoZSBJbWFnZUZy
YW1lIGhhcyBub3QgZmluaXNoZWQgZGVjb2RpbmcuCisgICAgaWYgKGZyYW1lLmlzQmVpbmdEZWNv
ZGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKHN1YnNhbXBsaW5nTGV2ZWwg
PT0gU3Vic2FtcGxpbmdMZXZlbDo6VW5kZWZpbmRlZCkKICAgICAgICAgc3Vic2FtcGxpbmdMZXZl
bCA9IGZyYW1lLnN1YnNhbXBsaW5nTGV2ZWwoKTsKLSAgICAKKwogICAgIGlmIChmcmFtZS5oYXNW
YWxpZE5hdGl2ZUltYWdlKHN1YnNhbXBsaW5nTGV2ZWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCisKICAgICBmcmFtZS5zZXREZWNvZGluZyhJbWFnZUZyYW1lOjpEZWNvZGluZzo6QmVp
bmdEZWNvZGVkKTsKICAgICBtX2ZyYW1lUmVxdWVzdFF1ZXVlLmVucXVldWUoeyBpbmRleCwgc3Vi
c2FtcGxpbmdMZXZlbCB9KTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTMxMyw2ICszMjQsMTEgQEAg
dm9pZCBJbWFnZUZyYW1lQ2FjaGU6OnN0b3BBc3luY0RlY29kaW5nUQogICAgIAogICAgIG1fZnJh
bWVSZXF1ZXN0UXVldWUuY2xvc2UoKTsKICAgICBtX2RlY29kaW5nUXVldWUgPSBudWxscHRyOwor
CisgICAgZm9yIChJbWFnZUZyYW1lJiBmcmFtZSA6IG1fZnJhbWVzKSB7CisgICAgICAgIGlmIChm
cmFtZS5pc0JlaW5nRGVjb2RlZCgpKQorICAgICAgICAgICAgZnJhbWUuY2xlYXIoKTsKKyAgICB9
CiB9CiAKIGNvbnN0IEltYWdlRnJhbWUmIEltYWdlRnJhbWVDYWNoZTo6ZnJhbWVBdEluZGV4KHNp
emVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVsLCBJbWFnZUZyYW1l
OjpDYWNoaW5nIGNhY2hpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY2Miw2ICs2NjIsMTkgQEAgdm9pZCBJbnRlcm5hbHM6OnNl
dEltYWdlRnJhbWVEZWNvZGluZ0R1cgogICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2Up
LnNldEZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcoZHVyYXRpb24pOwogfQogCit2b2lk
IEludGVybmFsczo6cmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50
KQoreworICAgIGF1dG8qIGNhY2hlZEltYWdlID0gZWxlbWVudC5jYWNoZWRJbWFnZSgpOworICAg
IGlmICghY2FjaGVkSW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGltYWdlID0g
Y2FjaGVkSW1hZ2UtPmltYWdlKCk7CisgICAgaWYgKCFpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpbWFnZS0+cmVzZXRBbmltYXRpb24oKTsKK30KKwogdm9p
ZCBJbnRlcm5hbHM6OmNsZWFyUGFnZUNhY2hlKCkKIHsKICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRv
bigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDcgQEAg
cHVibGljOgogCiAgICAgdW5zaWduZWQgaW1hZ2VGcmFtZUluZGV4KEhUTUxJbWFnZUVsZW1lbnQm
KTsKICAgICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKEhUTUxJbWFnZUVsZW1l
bnQmLCBmbG9hdCBkdXJhdGlvbik7CisgICAgdm9pZCByZXNldEltYWdlQW5pbWF0aW9uKEhUTUxJ
bWFnZUVsZW1lbnQmKTsKIAogICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKICAgICB1bnNpZ25l
ZCBwYWdlQ2FjaGVTaXplKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCShyZXZpc2lvbiAyMDkwMDEpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw2ICsyMjcsNyBAQCBlbnVtIEV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yIHsKIAogICAgIHVuc2lnbmVkIGxvbmcgaW1hZ2VGcmFtZUluZGV4KEhU
TUxJbWFnZUVsZW1lbnQgZWxlbWVudCk7CiAgICAgdm9pZCBzZXRJbWFnZUZyYW1lRGVjb2RpbmdE
dXJhdGlvbihIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQsIHVucmVzdHJpY3RlZCBmbG9hdCBkdXJh
dGlvbik7CisgICAgdm9pZCByZXNldEltYWdlQW5pbWF0aW9uKEhUTUxJbWFnZUVsZW1lbnQgZWxl
bWVudCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5n
czsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3b3JrZXJUaHJlYWRDb3Vu
dDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTAwMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTExLTI5ICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBhbmltYXRlZCBp
bWFnZSBkbyBub3QgYW5pbWF0ZSBhZnRlciByZXNldGluZyB0aGVpciBhbmltYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjUxMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisgICAgICAgIAorICAgICAgICBFbnN1cmUg
dGhlIGltYWdlIGFuaW1hdGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlv
biBpcyByZXNldC4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc2V0LWltYWdl
LWFuaW1hdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxNi0xMS0yOCAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEZJUlNUX0xJTkVfSU5IRVJJVEVEIGZh
a2UgcHNldWRvIHN0eWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNldC1pbWFn
ZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3Jlc2V0LWltYWdlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitFbnN1cmUgdGhlIGltYWdlIGFu
aW1hdGlvbiBpcyBwbGF5ZWQgaW4gb3JkZXIgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyByZXNldC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLmltYWdlRnJh
bWVJbmRleChpbWFnZSkgaXMgMQorUEFTUyBpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdl
KSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5pbWF0aW9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzZXQtaW1hZ2UtYW5p
bWF0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVz
ZXQtaW1hZ2UtYW5pbWF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNj
cmlwdGlvbigiRW5zdXJlIHRoZSBpbWFnZSBhbmltYXRpb24gaXMgcGxheWVkIGluIG9yZGVyIGFm
dGVyIHRoZSBhbmltYXRpb24gaXMgcmVzZXQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisKKyAgICAgICAg
dmFyIGltYWdlID0gbmV3IEltYWdlOworICAgICAgICBpbWFnZS5vbmxvYWQgPSBpbWFnZUxvYWRl
ZDsKKyAgICAgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9hbmltYXRlZC1yZWQtZ3JlZW4tYmx1
ZS5naWYiOworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gaW1hZ2VMb2FkZWQoKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0
aW9uKGltYWdlLCAwLjA0MCk7CisgICAgICAgICAgICBkcmF3SW1hZ2UoKTsKKyAgICAgICAgICAg
IGRyYXdMb29wKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkcmF3SW1hZ2UoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoZHJhd0ltYWdlLmNvdW50ID09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgICAgICBkcmF3SW1hZ2UuY291bnQgPSAwOworICAgICAgICAgICAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgICAgIHZh
ciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgIGN0eC5kcmF3SW1h
Z2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAg
ICByZXR1cm4gKytkcmF3SW1hZ2UuY291bnQ7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgZnVuY3Rpb24gZHJhd0xvb3AoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoZHJhd0ltYWdlKCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSIsICIxIik7CisgICAgICAgICAgICAg
ICAgICAgIGludGVybmFscy5yZXNldEltYWdlQW5pbWF0aW9uKGltYWdlKTsKKyAgICAgICAgICAg
ICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBhbmltYXRpb24g
d2FzIHJlc2V0IGF0IGRyYXdDb3VudCA9IDIuIFRocmVlIG1vcmUKKyAgICAgICAgICAgICAgICAg
ICAgLy8gZHJhd2luZ3Mgc2hvdWxkIG1ha2UgY3VycmVudF9mcmFtZSA9IDIuCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaW1hZ2VGcmFtZUluZGV4KGltYWdlKSIsICIy
Iik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgZHJhd0xvb3AoKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9LCA1MCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>