<?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>189871</bug_id>
          
          <creation_ts>2018-09-21 18:37:11 -0700</creation_ts>
          <short_desc>[MSE][GStreamer] Pull demuxed samples in batches</short_desc>
          <delta_ts>2018-10-02 02:20:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alicia Boya García">aboya</reporter>
          <assigned_to name="Alicia Boya García">aboya</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eocanha</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1462216</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-21 18:37:11 -0700</bug_when>
    <thetext>This avoids tons of innecessary context switches, is simpler than the
previous approach and much faster.

This fixes stutter while loading YouTube videos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462219</commentid>
    <comment_count>1</comment_count>
      <attachid>350470</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-21 18:40:01 -0700</bug_when>
    <thetext>Created attachment 350470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462220</commentid>
    <comment_count>2</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-21 18:43:46 -0700</bug_when>
    <thetext>This patch may have a trivial merge conflict in absence of this one: https://bugs.webkit.org/show_bug.cgi?id=189868</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462221</commentid>
    <comment_count>3</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-21 18:45:49 -0700</bug_when>
    <thetext>I&apos;ll insert one whitespace line to avoid the conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462222</commentid>
    <comment_count>4</comment_count>
      <attachid>350471</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-21 18:46:22 -0700</bug_when>
    <thetext>Created attachment 350471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462372</commentid>
    <comment_count>5</comment_count>
      <attachid>350518</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-22 06:47:11 -0700</bug_when>
    <thetext>Created attachment 350518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462373</commentid>
    <comment_count>6</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-22 06:48:20 -0700</bug_when>
    <thetext>(Changed one instance of GST_DEBUG to GST_TRACE to avoid spam in the logs)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462627</commentid>
    <comment_count>7</comment_count>
      <attachid>350518</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-23 23:46:53 -0700</bug_when>
    <thetext>Comment on attachment 350518
Patch

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

I&apos;d require some cosmetic changes and I&apos;d appreciate Enrique&apos;s input in such a delicate matter.

&gt; Source/WebCore/ChangeLog:9
&gt; +        This avoids tons of innecessary context switches, is simpler than the
&gt; +        previous approach and much faster.

This could be a bit more verbose.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:641
&gt; +        // All in all, return OK, even if it&apos;s not the proper thing to do. We don&apos;t want to break the demuxer.

This comment line does not seem to be needed since we don&apos;t manage flow anymore.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:645
&gt; +    if (!gst_sample_get_buffer(sample.get())) {

UNLIKELY

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:670
&gt; +    if (mediaSample-&gt;decodeTime() == MediaTime::zeroTime()
&gt; +        &amp;&amp; mediaSample-&gt;presentationTime() &gt; MediaTime::zeroTime()
&gt; +        &amp;&amp; mediaSample-&gt;presentationTime() &lt;= MediaTime(1, 10)) {

You can put these in a single line.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:756
&gt; +    if (batchedSampleCount &gt; 0)
&gt; +        checkEndOfAppend();

Isn&apos;t this check a bit useless since it looks like we are getting always at least one sample?

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:100
&gt; +    void consumeAppSinkAvailableSamples();

GStreamer element is appsink, so we capitalize only the first letter, meaning that this method should be named consumeAppsinkAvailableSamples. It can be a controversial, but the decission was made (by me) some time ago already :)

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:121
&gt; +    // The main thread must set it to false before actually pulling samples.

The syntax of this sentence does not make sense in my head. Do you mean &quot;written&quot; in both cases?

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:124
&gt; +    std::atomic_flag m_busAlreadyNotifiedOfAvailableSamples;

m_didBusAlreadyNotifyOfAvailableSamples</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462676</commentid>
    <comment_count>8</comment_count>
      <attachid>350633</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-24 05:37:28 -0700</bug_when>
    <thetext>Created attachment 350633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462677</commentid>
    <comment_count>9</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-24 05:40:03 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #8)
&gt; Created attachment 350633 [details]
&gt; Patch

This was wrongly uploaded by webkit-patch, it&apos;s meant for a different bug (which is indeed correctly specified in the patch...) It seems it does not handle `-g` very well for commits other than HEAD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462681</commentid>
    <comment_count>10</comment_count>
      <attachid>350518</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-24 06:13:08 -0700</bug_when>
    <thetext>Comment on attachment 350518
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:641
&gt;&gt; +        // All in all, return OK, even if it&apos;s not the proper thing to do. We don&apos;t want to break the demuxer.
&gt; 
&gt; This comment line does not seem to be needed since we don&apos;t manage flow anymore.

Indeed.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:756
&gt;&gt; +        checkEndOfAppend();
&gt; 
&gt; Isn&apos;t this check a bit useless since it looks like we are getting always at least one sample?

Usually, but not always, if the moons conspire against you, the threads could end up excuting like this:

ST: receives frame, test_and_set() -&gt; (not previously set) push notification
ST: receives frame, test_and_set() -&gt; (already set) do nothing
MT: checks GstBus message, sees the notification
MT: clear()
ST: receives frame, test_and_set() -&gt; (not previously set) push notification
MT: pull all 3 frames
MT: checks GstBus message, sees the notification
MT: clear()
MT: nothing to pull, everything had already been pulled.

This locking strategy allows one useless pull in the worst case, but no more than that (in order to cause another pull, they would need to push a new frame, hence making the first pull not useless anymore). In exchange for that, it has minimal latency (frames arrive as quickly as they are demuxed and the MT can react) and with minimal locking (the streaming thread and the main thread don&apos;t need to wait on each other).

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:121
&gt;&gt; +    // The main thread must set it to false before actually pulling samples.
&gt; 
&gt; The syntax of this sentence does not make sense in my head. Do you mean &quot;written&quot; in both cases?

Yes, it&apos;s a typo.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:124
&gt;&gt; +    std::atomic_flag m_busAlreadyNotifiedOfAvailableSamples;
&gt; 
&gt; m_didBusAlreadyNotifyOfAvailableSamples

No, the bus is asynchronous (at least in this case). This flag is set when the notification has been sent (from the streaming thread); it&apos;s cleared when it has arrived (to the main thread).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462691</commentid>
    <comment_count>11</comment_count>
      <attachid>350518</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2018-09-24 07:07:26 -0700</bug_when>
    <thetext>Comment on attachment 350518
Patch

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

After having reviewed it, I find the patch is technically right in general (and indeed a clever way to optimize appends). Thank you for submitting it.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        previous approach and much faster.
&gt; 
&gt; This could be a bit more verbose.

The truth is that having something like the text below in the description would have helped me to understand better the patch:

Now, only the notifications of &quot;new samples available&quot; (appsink-new-sample bus messages) travel from the streaming thread to the main thread through the bus and the main thread is the responsible of pulling the samples from appsink. Before, the samples were pulled from appsink in the non-main thread and traveled to the main thread through the bus one by one.

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:756
&gt;&gt; +        checkEndOfAppend();
&gt; 
&gt; Isn&apos;t this check a bit useless since it looks like we are getting always at least one sample?

I agree with having checkEndOfAppend() here. Appart from not carrying samples through the bus anymore, most of the efficiency of this new batched way of doing things comes from the latency between the detection of new samples in the streaming thread (and bus notification posting) and the reception of the bus notification in the main thread. During that latency, some new samples have accumulated in appsink.

Therefore, this case could be possible:

1. The streaming thread detects a new sample and posts the notification in the bus.
2. The main thread clears the m_busAlreadyNotifiedOfAvailableSamples flag (allows the streaming thread to begin processing again, see line 312) but still hasn&apos;t called consumeAppSinkAvailableSamples().
3. The streaming thread continues, detects another new sample and posts the notification again in the bus.
4. The main thread starts now to process the call to consumeAppSinkAvailableSamples() from the first notification. This processing pulls 2 samples (the one from the first notification and the one from the second).
5. After some time, the second notification is received in the main thread, consumeAppSinkAvailableSamples() is called again but this time it finds no available samples. The first call had pulled them and no new samples have been detected from the streaming thread since it posted second notification.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:-862
&gt; -    // avoid deadlocks when changing to GST_STATE_NULL having a non empty appsink.

I&apos;m not sure if the warning about the importance of pulling the sample out keeps being true. I think we can ignore it by now and get rid of this block of code as you suggest, but in case we detect stalls in the future during AppendPipeline destruction we would have to revisit this warning again and add code to the destructor to try to consume the pending samples (in the main thread) before setting the pipeline to GST_STATE_NULL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462727</commentid>
    <comment_count>12</comment_count>
      <attachid>350647</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-24 09:40:58 -0700</bug_when>
    <thetext>Created attachment 350647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462731</commentid>
    <comment_count>13</comment_count>
      <attachid>350647</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-24 09:55:02 -0700</bug_when>
    <thetext>Comment on attachment 350647
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:644
&gt; +    if (G_UNLIKELY(!gst_sample_get_buffer(sample.get()))) {

Just UNLIKELY should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462738</commentid>
    <comment_count>14</comment_count>
      <attachid>350649</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-09-24 09:59:18 -0700</bug_when>
    <thetext>Created attachment 350649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462749</commentid>
    <comment_count>15</comment_count>
      <attachid>350649</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-24 10:26:13 -0700</bug_when>
    <thetext>Comment on attachment 350649
Patch

Clearing flags on attachment: 350649

Committed r236409: &lt;https://trac.webkit.org/changeset/236409&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462750</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-24 10:26:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465168</commentid>
    <comment_count>17</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-10-01 12:29:12 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465169</commentid>
    <comment_count>18</comment_count>
      <attachid>351285</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-10-01 12:29:15 -0700</bug_when>
    <thetext>Created attachment 351285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465456</commentid>
    <comment_count>19</comment_count>
      <attachid>351285</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-10-02 02:19:48 -0700</bug_when>
    <thetext>Comment on attachment 351285
Patch

This would belong to https://bugs.webkit.org/show_bug.cgi?id=190036, and Philippe has just landed a similar patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350470</attachid>
            <date>2018-09-21 18:40:01 -0700</date>
            <delta_ts>2018-09-21 18:46:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180922034000.patch</filename>
            <type>text/plain</type>
            <size>14681</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM1ODE0MDdmMjAwZDYw
MDk2ZmEzMWU0MzNkZDEzYjkzOTUzNDU0My4uNjNlNDBlMzFlM2Y4ODZmYTA3NmUzMWQ5MzA2NjE1
OGY1ZTBiNTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFB1bGwgZGVtdXhlZCBzYW1wbGVzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYXZvaWRzIHRvbnMgb2YgaW5uZWNl
c3NhcnkgY29udGV4dCBzd2l0Y2hlcywgaXMgc2ltcGxlciB0aGFuIHRoZQorICAgICAgICBwcmV2
aW91cyBhcHByb2FjaCBhbmQgbXVjaCBmYXN0ZXIuCisKKyAgICAgICAgVGhpcyBmaXhlcyBzdHV0
dGVyIHdoaWxlIGxvYWRpbmcgWW91VHViZSB2aWRlb3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTYW1wbGVHU3RyZWFtZXI6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6fkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpjbGVhclBsYXllclByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29uc3VtZUFwcFNpbmtBdmFpbGFibGVTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpyZXNldFBpcGVsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpoYW5kbGVOZXdBcHBzaW5rU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
Lmg6CisKIDIwMTgtMDktMjEgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIERvbid0IHVwZGF0ZSBkdXJhdGlv
biB3aGVuIGl0IHdhcyBub3QgcHJldmlvdXNseSBOYU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuY3BwCmluZGV4IGI4MTBlNzhkYTgyZDFjNmRiZTllYTRiM2ZhZjBhZDgxZWEwOTYz
ZjcuLjMwMzM0YTFmN2Y0MThlZjdjNzdlYWM0NmU1Yjg4MTE1ZjU1NjFiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtMzYsOCArMzYsNyBAQCBNZWRpYVNhbXBs
ZUdTdHJlYW1lcjo6TWVkaWFTYW1wbGVHU3RyZWFtZXIoR1JlZlB0cjxHc3RTYW1wbGU+JiYgc2Ft
cGxlLCBjb25zdCBGbAogewogICAgIEFTU0VSVChzYW1wbGUpOwogICAgIEdzdEJ1ZmZlciogYnVm
ZmVyID0gZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7Ci0gICAgaWYgKCFidWZm
ZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBSRUxFQVNFX0FTU0VSVChidWZmZXIpOwogCiAgICAg
YXV0byBjcmVhdGVNZWRpYVRpbWUgPQogICAgICAgICBbXShHc3RDbG9ja1RpbWUgdGltZSkgLT4g
TWVkaWFUaW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggOGVlOTVj
M2VkNzk2ZjM5Y2ZiYmQ2NDg1ZWQxOGQ4YzlhMWFmYzQ3Yy4uZDc1YjgzYjQ4Y2RiZWRiYTE3MDRl
NzAxZGQ3ZTAwOTU0MDczYzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
QEAgLTEwOSw2ICsxMDksNyBAQCBBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlwZWxpbmUoUmVmPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtZWRpYVNvdXJjZUNsaQogICAgICwgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUuZ2V0KCkpCiAgICAgLCBtX3BsYXll
clByaXZhdGUoJnBsYXllclByaXZhdGUpCiAgICAgLCBtX2lkKDApCisgICAgLCBtX2J1c0FscmVh
ZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlcyhmYWxzZSkKICAgICAsIG1fYXBwc3JjQXRMZWFz
dEFCdWZmZXJMZWZ0KGZhbHNlKQogICAgICwgbV9hcHBzcmNOZWVkRGF0YVJlY2VpdmVkKGZhbHNl
KQogICAgICwgbV9hcHBzcmNEYXRhTGVhdmluZ1Byb2JlSWQoMCkKQEAgLTE5MCwxMSArMTkxLDcg
QEAgQXBwZW5kUGlwZWxpbmU6On5BcHBlbmRQaXBlbGluZSgpCiB7CiAgICAgQVNTRVJUKFdURjo6
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25l
d1NhbXBsZUxvY2spOwotICAgICAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxp
ZCk7Ci0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0KKyAg
ICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxpZCk7CiAKICAgICB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcGFkQWRkUmVtb3ZlTG9jayk7CkBAIC0yNTUsMTUgKzI1Miw5
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNsZWFyUGxheWVyUHJpdmF0ZSgpCiAgICAgQVNTRVJU
KFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIEdTVF9ERUJVRygiY2xlYW5pbmcgcHJpdmF0ZSBw
bGF5ZXIiKTsKIAotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVM
b2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgQXBwZW5kUGlwZWxpbmUgd29uJ3QgcHJv
Y2VzcyBtb3JlIGRhdGEgZnJvbSBub3cgb24gYW5kCi0gICAgICAgIC8vIGluc3RydWN0IGhhbmRs
ZU5ld1NhbXBsZSB0byBhYm9ydCBpdHNlbGYgZnJvbSBub3cgb24gYXMgd2VsbC4KLSAgICAgICAg
c2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OkludmFsaWQpOwotCi0gICAgICAgIC8vIEF3YWtl
IGFueSBwZW5kaW5nIGhhbmRsZU5ld1NhbXBsZSBvcGVyYXRpb24gaW4gdGhlIHN0cmVhbWluZyB0
aHJlYWQuCi0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0K
KyAgICAvLyBNYWtlIHN1cmUgdGhhdCBBcHBlbmRQaXBlbGluZSB3b24ndCBwcm9jZXNzIG1vcmUg
ZGF0YSBmcm9tIG5vdyBvbiBhbmQKKyAgICAvLyBpbnN0cnVjdCBoYW5kbGVOZXdTYW1wbGUgdG8g
YWJvcnQgaXRzZWxmIGZyb20gbm93IG9uIGFzIHdlbGwuCisgICAgc2V0QXBwZW5kU3RhdGUoQXBw
ZW5kU3RhdGU6OkludmFsaWQpOwogCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BhZEFkZFJlbW92ZUxvY2spOwpAQCAtMzE4LDEwICszMDksOCBAQCB2b2lkIEFwcGVuZFBpcGVs
aW5lOjpoYW5kbGVBcHBsaWNhdGlvbk1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICB9
CiAKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBzaW5rLW5l
dy1zYW1wbGUiKSkgewotICAgICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbmV3U2FtcGxlOwotICAg
ICAgICBnc3Rfc3RydWN0dXJlX2dldChzdHJ1Y3R1cmUsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVf
U0FNUExFLCAmbmV3U2FtcGxlLm91dFB0cigpLCBudWxscHRyKTsKLQotICAgICAgICBhcHBzaW5r
TmV3U2FtcGxlKG5ld1NhbXBsZS5nZXQoKSk7CisgICAgICAgIG1fYnVzQWxyZWFkeU5vdGlmaWVk
T2ZBdmFpbGFibGVTYW1wbGVzLmNsZWFyKCk7CisgICAgICAgIGNvbnN1bWVBcHBTaW5rQXZhaWxh
YmxlU2FtcGxlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDAsNTggKzYyOSw1
MSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjaGVja0VuZE9mQXBwZW5kKCkKICAgICB9CiB9CiAK
LXZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUp
Cit2b2lkIEFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxl
PiYmIHNhbXBsZSkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKLSAgICB7
Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KLSAgICAgICAg
Ly8gSWdub3JlIHNhbXBsZXMgaWYgd2UncmUgbm90IGV4cGVjdGluZyB0aGVtLiBSZWZ1c2UgcHJv
Y2Vzc2luZyBpZiB3ZSdyZSBpbiBJbnZhbGlkIHN0YXRlLgotICAgICAgICBpZiAobV9hcHBlbmRT
dGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFwcGVuZFN0
YXRlOjpTYW1wbGluZykgewotICAgICAgICAgICAgR1NUX1dBUk5JTkcoIlVuZXhwZWN0ZWQgc2Ft
cGxlLCBhcHBlbmRTdGF0ZT0lcyIsIGR1bXBBcHBlbmRTdGF0ZShtX2FwcGVuZFN0YXRlKSk7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogUmV0dXJuIEVSUk9SIGFuZCBmaW5kIGEgbW9yZSByb2J1c3Qg
d2F5IHRvIGRldGVjdCB0aGF0IGFsbCB0aGUKLSAgICAgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4g
cHJvY2Vzc2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KLSAg
ICAgICAgICAgIC8vIEFsbCBpbiBhbGwsIHJldHVybiBPSywgZXZlbiBpZiBpdCdzIG5vdCB0aGUg
cHJvcGVyIHRoaW5nIHRvIGRvLiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBkZW11eGVyLgot
ICAgICAgICAgICAgbV9mbG93UmV0dXJuID0gR1NUX0ZMT1dfT0s7Ci0gICAgICAgICAgICBtX25l
d1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIC8vIElnbm9yZSBzYW1wbGVzIGlmIHdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlbS4g
UmVmdXNlIHByb2Nlc3NpbmcgaWYgd2UncmUgaW4gSW52YWxpZCBzdGF0ZS4KKyAgICBpZiAobV9h
cHBlbmRTdGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFw
cGVuZFN0YXRlOjpTYW1wbGluZykgeworICAgICAgICBHU1RfV0FSTklORygiVW5leHBlY3RlZCBz
YW1wbGUsIGFwcGVuZFN0YXRlPSVzIiwgZHVtcEFwcGVuZFN0YXRlKG1fYXBwZW5kU3RhdGUpKTsK
KyAgICAgICAgLy8gRklYTUU6IFJldHVybiBFUlJPUiBhbmQgZmluZCBhIG1vcmUgcm9idXN0IHdh
eSB0byBkZXRlY3QgdGhhdCBhbGwgdGhlCisgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4gcHJvY2Vz
c2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KKyAgICAgICAg
Ly8gQWxsIGluIGFsbCwgcmV0dXJuIE9LLCBldmVuIGlmIGl0J3Mgbm90IHRoZSBwcm9wZXIgdGhp
bmcgdG8gZG8uIFdlIGRvbid0IHdhbnQgdG8gYnJlYWsgdGhlIGRlbXV4ZXIuCisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBtZWRp
YVNhbXBsZSA9IFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGUoc2FtcGxlLCBt
X3ByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQoKSk7Ci0KLSAgICAgICAgR1NUX1RSQUNFKCJhcHBl
bmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9uU2l6ZT0lLjBm
eCUuMGYiLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnRyYWNrSUQoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKS50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2Rl
VGltZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxl
LT5kdXJhdGlvbigpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlh
U2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCkud2lkdGgoKSwgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblNpemUoKS5oZWlnaHQoKSk7Ci0KLSAgICAgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBk
dXJhdGlvbiwgaWdub3JlIHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCi0gICAg
ICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IG1fbWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCk7
Ci0gICAgICAgIGlmIChkdXJhdGlvbi5pc1ZhbGlkKCkgJiYgIWR1cmF0aW9uLmluZGVmaW5pdGVU
aW1lKCkgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IGR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBHU1RfREVCVUcoIkRldGVjdGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVy
YXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RTYW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0
aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRpb24udG9GbG9hdCgpKTsKLSAgICAgICAgICAgIHNl
dEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpMYXN0U2FtcGxlKTsKLSAgICAgICAgICAgIG1fZmxv
d1JldHVybiA9IEdTVF9GTE9XX09LOwotICAgICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24u
bm90aWZ5T25lKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIWdz
dF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpKSB7CisgICAgICAgIEdTVF9XQVJOSU5H
KCJSZWNlaXZlZCBzYW1wbGUgd2l0aG91dCBidWZmZXIgZnJvbSBhcHBzaW5rLiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCi0gICAgICAgIC8vIEFkZCBhIGdhcCBzYW1wbGUgaWYgYSBnYXAg
aXMgZGV0ZWN0ZWQgYmVmb3JlIHRoZSBmaXJzdCBzYW1wbGUuCi0gICAgICAgIGlmIChtZWRpYVNh
bXBsZS0+ZGVjb2RlVGltZSgpID09IE1lZGlhVGltZTo6emVyb1RpbWUoKQotICAgICAgICAgICAg
JiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IE1lZGlhVGltZTo6emVyb1RpbWUo
KQotICAgICAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA8PSBNZWRp
YVRpbWUoMSwgMTApKSB7Ci0gICAgICAgICAgICBHU1RfREVCVUcoIkFkZGluZyBnYXAgb2Zmc2V0
Iik7Ci0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKLSAgICAgICAgfQorICAgIFJlZlB0cjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4g
bWVkaWFTYW1wbGUgPSBXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlKFdURk1v
dmUoc2FtcGxlKSwgbV9wcmVzZW50YXRpb25TaXplLCB0cmFja0lkKCkpOworCisgICAgR1NUX1RS
QUNFKCJhcHBlbmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9u
U2l6ZT0lLjBmeCUuMGYiLAorICAgICAgICBtZWRpYVNhbXBsZS0+dHJhY2tJRCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCku
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2RlVGlt
ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUtPmR1cmF0
aW9uKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+cHJl
c2VudGF0aW9uU2l6ZSgpLndpZHRoKCksIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCku
aGVpZ2h0KCkpOworCisgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBkdXJhdGlvbiwgaWdub3Jl
IHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCisgICAgTWVkaWFUaW1lIGR1cmF0
aW9uID0gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKTsKKyAgICBpZiAoZHVyYXRpb24u
aXNWYWxpZCgpICYmICFkdXJhdGlvbi5pbmRlZmluaXRlVGltZSgpICYmIG1lZGlhU2FtcGxlLT5w
cmVzZW50YXRpb25UaW1lKCkgPiBkdXJhdGlvbikgeworICAgICAgICBHU1RfREVCVUcoIkRldGVj
dGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVyYXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RT
YW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRp
b24udG9GbG9hdCgpKTsKKyAgICAgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6Okxhc3RT
YW1wbGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVy
UHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwotICAgICAgICBzZXRBcHBl
bmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwotICAgICAgICBtX2Zsb3dSZXR1cm4gPSBH
U1RfRkxPV19PSzsKLSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Cisg
ICAgLy8gQWRkIGEgZ2FwIHNhbXBsZSBpZiBhIGdhcCBpcyBkZXRlY3RlZCBiZWZvcmUgdGhlIGZp
cnN0IHNhbXBsZS4KKyAgICBpZiAobWVkaWFTYW1wbGUtPmRlY29kZVRpbWUoKSA9PSBNZWRpYVRp
bWU6Onplcm9UaW1lKCkKKyAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUo
KSA+IE1lZGlhVGltZTo6emVyb1RpbWUoKQorICAgICAgICAmJiBtZWRpYVNhbXBsZS0+cHJlc2Vu
dGF0aW9uVGltZSgpIDw9IE1lZGlhVGltZSgxLCAxMCkpIHsKKyAgICAgICAgR1NUX0RFQlVHKCJB
ZGRpbmcgZ2FwIG9mZnNldCIpOworICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQo
TWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICB9CiAKLSAgICBjaGVja0VuZE9mQXBwZW5kKCk7
CisgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBs
ZSk7CisgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKIH0KIAogdm9p
ZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua0VPUygpCkBAIC03NTcsNiArNzM5LDIzIEBAIEF0b21p
Y1N0cmluZyBBcHBlbmRQaXBlbGluZTo6dHJhY2tJZCgpCiAgICAgcmV0dXJuIG1fdHJhY2stPmlk
KCk7CiB9CiAKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbnN1bWVBcHBTaW5rQXZhaWxhYmxlU2Ft
cGxlcygpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOworCisgICAgR1JlZlB0
cjxHc3RTYW1wbGU+IHNhbXBsZTsKKyAgICBpbnQgYmF0Y2hlZFNhbXBsZUNvdW50ID0gMDsKKyAg
ICB3aGlsZSAoKHNhbXBsZSA9IGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfdHJ5X3B1bGxfc2FtcGxl
KEdTVF9BUFBfU0lOSyhtX2FwcHNpbmsuZ2V0KCkpLCAwKSkpKSB7CisgICAgICAgIGFwcHNpbmtO
ZXdTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKKyAgICAgICAgYmF0Y2hlZFNhbXBsZUNvdW50Kys7
CisgICAgfQorCisgICAgR1NUX0RFQlVHKCJiYXRjaGVkU2FtcGxlQ291bnQgPSAlZCIsIGJhdGNo
ZWRTYW1wbGVDb3VudCk7CisKKyAgICBpZiAoYmF0Y2hlZFNhbXBsZUNvdW50ID4gMCkKKyAgICAg
ICAgY2hlY2tFbmRPZkFwcGVuZCgpOworfQorCiB2b2lkIEFwcGVuZFBpcGVsaW5lOjpyZXNldFBp
cGVsaW5lKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CkBAIC03NjQsMTIg
Kzc2Myw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlwZWxpbmUoKQogICAgIG1fYXBw
c3JjQXRMZWFzdEFCdWZmZXJMZWZ0ID0gZmFsc2U7CiAgICAgc2V0QXBwc3JjRGF0YUxlYXZpbmdQ
cm9iZSgpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1NhbXBsZUxv
Y2spOwotICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICAgICAg
Z3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksIEdTVF9TVEFURV9SRUFEWSk7
Ci0gICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBudWxscHRy
LCBudWxscHRyLCAwKTsKLSAgICB9CisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxp
bmUuZ2V0KCksIEdTVF9TVEFURV9SRUFEWSk7CisgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1f
cGlwZWxpbmUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIDApOwogCiAjaWYgKCEoTE9HX0RJU0FC
TEVEIHx8IGRlZmluZWQoR1NUX0RJU0FCTEVfR1NUX0RFQlVHKSkpCiAgICAgewpAQCAtODU4LDI3
ICs4NTMsMTkgQEAgR3N0Rmxvd1JldHVybiBBcHBlbmRQaXBlbGluZTo6aGFuZGxlTmV3QXBwc2lu
a1NhbXBsZShHc3RFbGVtZW50KiBhcHBzaW5rKQogewogICAgIEFTU0VSVCghV1RGOjppc01haW5U
aHJlYWQoKSk7CiAKLSAgICAvLyBFdmVuIGlmIHdlJ3JlIGRpc2FibGVkLCBpdCdzIGltcG9ydGFu
dCB0byBwdWxsIHRoZSBzYW1wbGUgb3V0IGFueXdheSB0bwotICAgIC8vIGF2b2lkIGRlYWRsb2Nr
cyB3aGVuIGNoYW5naW5nIHRvIEdTVF9TVEFURV9OVUxMIGhhdmluZyBhIG5vbiBlbXB0eSBhcHBz
aW5rLgotICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUgPSBhZG9wdEdSZWYoZ3N0X2FwcF9z
aW5rX3B1bGxfc2FtcGxlKEdTVF9BUFBfU0lOSyhhcHBzaW5rKSkpOwotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KICAgICBpZiAoIW1fcGxheWVyUHJpdmF0ZSB8fCBt
X2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpJbnZhbGlkKSB7CiAgICAgICAgIEdTVF9XQVJO
SU5HKCJBcHBlbmRQaXBlbGluZSBoYXMgYmVlbiBkaXNhYmxlZCwgaWdub3JpbmcgdGhpcyBzYW1w
bGUiKTsKICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOwogICAgIH0KIAotICAgIEdzdFN0
cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoImFwcHNpbmstbmV3LXNhbXBs
ZSIsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVfU0FNUExFLCBzYW1wbGUuZ2V0KCksIG51bGxwdHIp
OwotICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24o
R1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsKLSAgICBnc3RfYnVzX3Bvc3QobV9idXMu
Z2V0KCksIG1lc3NhZ2UpOwotICAgIEdTVF9UUkFDRSgiYXBwc2luay1uZXctc2FtcGxlIG1lc3Nh
Z2UgcG9zdGVkIHRvIGJ1cyIpOwotCi0gICAgbV9uZXdTYW1wbGVDb25kaXRpb24ud2FpdChtX25l
d1NhbXBsZUxvY2spOwotICAgIC8vIFdlJ3ZlIGJlZW4gYXdha2VuIGJlY2F1c2UgdGhlIHNhbXBs
ZSB3YXMgcHJvY2Vzc2VkIG9yIGJlY2F1c2Ugb2YKLSAgICAvLyBhbiBleGNlcHRpb25hbCBjb25k
aXRpb24gKGVudGVyZWQgaW4gSW52YWxpZCBzdGF0ZSwgZGVzdHJ1Y3RvciwgZXRjLikuCi0gICAg
Ly8gV2UgY2FuJ3QgcmVsaWFibHkgZGVsZXRlIGluZm8gaGVyZSwgYXBwZW5kUGlwZWxpbmVBcHBz
aW5rTmV3U2FtcGxlTWFpblRocmVhZCB3aWxsIGRvIGl0LgorICAgIGlmICghbV9idXNBbHJlYWR5
Tm90aWZpZWRPZkF2YWlsYWJsZVNhbXBsZXMudGVzdF9hbmRfc2V0KCkpIHsKKyAgICAgICAgR3N0
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgiYXBwc2luay1u
ZXctc2FtcGxlIik7CisgICAgICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9u
ZXdfYXBwbGljYXRpb24oR1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsKKyAgICAgICAg
Z3N0X2J1c19wb3N0KG1fYnVzLmdldCgpLCBtZXNzYWdlKTsKKyAgICAgICAgR1NUX1RSQUNFKCJh
cHBzaW5rLW5ldy1zYW1wbGUgbWVzc2FnZSBwb3N0ZWQgdG8gYnVzIik7CisgICAgfQogCi0gICAg
cmV0dXJuIG1fZmxvd1JldHVybjsKKyAgICByZXR1cm4gR1NUX0ZMT1dfT0s7CiB9CiAKIHN0YXRp
YyBHUmVmUHRyPEdzdEVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKaW5kZXgg
ODc2ODA3YmE5MGQzZDYyZWJjOGZkYzY1MDc1ZDhjODNjYWRiNzczZS4uMzNlNTY0OTMzNWZkYzU3
ZDZlYzc1NGY1YzJmNjk3MGQwOWI5N2ZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
aApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVy
TVNFLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIgogCisjaW5j
bHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIC8vIFRha2VzIG93bmVyc2hp
cCBvZiBjYXBzLgogICAgIHZvaWQgcGFyc2VEZW11eGVyU3JjUGFkQ2FwcyhHc3RDYXBzKik7CiAg
ICAgdm9pZCBhcHBzaW5rQ2Fwc0NoYW5nZWQoKTsKLSAgICB2b2lkIGFwcHNpbmtOZXdTYW1wbGUo
R3N0U2FtcGxlKik7CisgICAgdm9pZCBhcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxl
PiYmKTsKICAgICB2b2lkIGFwcHNpbmtFT1MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoKTsKICAgICBBdG9taWNTdHJpbmcgdHJhY2tJZCgpOwpAQCAtOTUsNiAr
OTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlQXBwc3JjRGF0YUxlYXZpbmdQcm9iZSgp
OwogICAgIHZvaWQgc2V0QXBwc3JjRGF0YUxlYXZpbmdQcm9iZSgpOwogICAgIHZvaWQgZGVtdXhl
ck5vTW9yZVBhZHMoKTsKKyAgICB2b2lkIGNvbnN1bWVBcHBTaW5rQXZhaWxhYmxlU2FtcGxlcygp
OwogCiAgICAgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtX21lZGlhU291cmNl
Q2xpZW50OwogICAgIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBtX3NvdXJjZUJ1
ZmZlclByaXZhdGU7CkBAIC0xMDUsOCArMTA3LDYgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhVGlt
ZSBtX2luaXRpYWxEdXJhdGlvbjsKIAotICAgIEdzdEZsb3dSZXR1cm4gbV9mbG93UmV0dXJuOwot
CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3BpcGVsaW5lOwogICAgIEdSZWZQdHI8R3N0QnVz
PiBtX2J1czsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fYXBwc3JjOwpAQCAtMTE1LDggKzEx
NSwxMyBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBkZW11eGVyIGhhcyBvbmUgc3JjIHN0cmVhbSBv
bmx5LCBzbyBvbmx5IG9uZSBhcHBzaW5rIGlzIG5lZWRlZCBhbmQgbGlua2VkIHRvIGl0LgogICAg
IEdSZWZQdHI8R3N0RWxlbWVudD4gbV9hcHBzaW5rOwogCi0gICAgTG9jayBtX25ld1NhbXBsZUxv
Y2s7Ci0gICAgQ29uZGl0aW9uIG1fbmV3U2FtcGxlQ29uZGl0aW9uOworICAgIC8vIFVzZWQgdG8g
YXZvaWQgdW5uZWNlc3Nhcnkgbm90aWZpY2F0aW9ucyBwZXIgc2FtcGxlLgorICAgIC8vIEl0IGlz
IHJlYWQgYW5kIHdyaXRlIGZyb20gdGhlIHN0cmVhbWluZyB0aHJlYWQgYW5kIHdyb3RlIGZyb20g
dGhlIG1haW4gdGhyZWFkLgorICAgIC8vIFRoZSBtYWluIHRocmVhZCBtdXN0IHNldCBpdCB0byBm
YWxzZSBiZWZvcmUgYWN0dWFsbHkgcHVsbGluZyBzYW1wbGVzLgorICAgIC8vIFRoaXMgc3RyYXRl
Z3kgZW5zdXJlcyB0aGF0IGF0IGFueSB0aW1lLCB0aGVyZSBhcmUgYXQgbW9zdCB0d28gbm90aWZp
Y2F0aW9ucyBpbiB0aGUgYnVzCisgICAgLy8gcXVldWUsIGluc3RlYWQgb2YgaXQgZ3Jvd2luZyB1
bmJvdW5kZWQuCisgICAgc3RkOjphdG9taWNfZmxhZyBtX2J1c0FscmVhZHlOb3RpZmllZE9mQXZh
aWxhYmxlU2FtcGxlczsKKwogICAgIExvY2sgbV9wYWRBZGRSZW1vdmVMb2NrOwogICAgIENvbmRp
dGlvbiBtX3BhZEFkZFJlbW92ZUNvbmRpdGlvbjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350471</attachid>
            <date>2018-09-21 18:46:22 -0700</date>
            <delta_ts>2018-09-22 06:47:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180922034620.patch</filename>
            <type>text/plain</type>
            <size>14695</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM1ODE0MDdmMjAwZDYw
MDk2ZmEzMWU0MzNkZDEzYjkzOTUzNDU0My4uNjNlNDBlMzFlM2Y4ODZmYTA3NmUzMWQ5MzA2NjE1
OGY1ZTBiNTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFB1bGwgZGVtdXhlZCBzYW1wbGVzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYXZvaWRzIHRvbnMgb2YgaW5uZWNl
c3NhcnkgY29udGV4dCBzd2l0Y2hlcywgaXMgc2ltcGxlciB0aGFuIHRoZQorICAgICAgICBwcmV2
aW91cyBhcHByb2FjaCBhbmQgbXVjaCBmYXN0ZXIuCisKKyAgICAgICAgVGhpcyBmaXhlcyBzdHV0
dGVyIHdoaWxlIGxvYWRpbmcgWW91VHViZSB2aWRlb3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTYW1wbGVHU3RyZWFtZXI6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6fkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpjbGVhclBsYXllclByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29uc3VtZUFwcFNpbmtBdmFpbGFibGVTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpyZXNldFBpcGVsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpoYW5kbGVOZXdBcHBzaW5rU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
Lmg6CisKIDIwMTgtMDktMjEgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIERvbid0IHVwZGF0ZSBkdXJhdGlv
biB3aGVuIGl0IHdhcyBub3QgcHJldmlvdXNseSBOYU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuY3BwCmluZGV4IGI4MTBlNzhkYTgyZDFjNmRiZTllYTRiM2ZhZjBhZDgxZWEwOTYz
ZjcuLjMwMzM0YTFmN2Y0MThlZjdjNzdlYWM0NmU1Yjg4MTE1ZjU1NjFiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtMzYsOCArMzYsNyBAQCBNZWRpYVNhbXBs
ZUdTdHJlYW1lcjo6TWVkaWFTYW1wbGVHU3RyZWFtZXIoR1JlZlB0cjxHc3RTYW1wbGU+JiYgc2Ft
cGxlLCBjb25zdCBGbAogewogICAgIEFTU0VSVChzYW1wbGUpOwogICAgIEdzdEJ1ZmZlciogYnVm
ZmVyID0gZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7Ci0gICAgaWYgKCFidWZm
ZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBSRUxFQVNFX0FTU0VSVChidWZmZXIpOwogCiAgICAg
YXV0byBjcmVhdGVNZWRpYVRpbWUgPQogICAgICAgICBbXShHc3RDbG9ja1RpbWUgdGltZSkgLT4g
TWVkaWFUaW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggOGVlOTVj
M2VkNzk2ZjM5Y2ZiYmQ2NDg1ZWQxOGQ4YzlhMWFmYzQ3Yy4uZDc1YjgzYjQ4Y2RiZWRiYTE3MDRl
NzAxZGQ3ZTAwOTU0MDczYzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
QEAgLTEwOSw2ICsxMDksNyBAQCBBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlwZWxpbmUoUmVmPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtZWRpYVNvdXJjZUNsaQogICAgICwgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUuZ2V0KCkpCiAgICAgLCBtX3BsYXll
clByaXZhdGUoJnBsYXllclByaXZhdGUpCiAgICAgLCBtX2lkKDApCisgICAgLCBtX2J1c0FscmVh
ZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlcyhmYWxzZSkKICAgICAsIG1fYXBwc3JjQXRMZWFz
dEFCdWZmZXJMZWZ0KGZhbHNlKQogICAgICwgbV9hcHBzcmNOZWVkRGF0YVJlY2VpdmVkKGZhbHNl
KQogICAgICwgbV9hcHBzcmNEYXRhTGVhdmluZ1Byb2JlSWQoMCkKQEAgLTE5MCwxMSArMTkxLDcg
QEAgQXBwZW5kUGlwZWxpbmU6On5BcHBlbmRQaXBlbGluZSgpCiB7CiAgICAgQVNTRVJUKFdURjo6
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25l
d1NhbXBsZUxvY2spOwotICAgICAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxp
ZCk7Ci0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0KKyAg
ICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxpZCk7CiAKICAgICB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcGFkQWRkUmVtb3ZlTG9jayk7CkBAIC0yNTUsMTUgKzI1Miw5
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNsZWFyUGxheWVyUHJpdmF0ZSgpCiAgICAgQVNTRVJU
KFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIEdTVF9ERUJVRygiY2xlYW5pbmcgcHJpdmF0ZSBw
bGF5ZXIiKTsKIAotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVM
b2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgQXBwZW5kUGlwZWxpbmUgd29uJ3QgcHJv
Y2VzcyBtb3JlIGRhdGEgZnJvbSBub3cgb24gYW5kCi0gICAgICAgIC8vIGluc3RydWN0IGhhbmRs
ZU5ld1NhbXBsZSB0byBhYm9ydCBpdHNlbGYgZnJvbSBub3cgb24gYXMgd2VsbC4KLSAgICAgICAg
c2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OkludmFsaWQpOwotCi0gICAgICAgIC8vIEF3YWtl
IGFueSBwZW5kaW5nIGhhbmRsZU5ld1NhbXBsZSBvcGVyYXRpb24gaW4gdGhlIHN0cmVhbWluZyB0
aHJlYWQuCi0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0K
KyAgICAvLyBNYWtlIHN1cmUgdGhhdCBBcHBlbmRQaXBlbGluZSB3b24ndCBwcm9jZXNzIG1vcmUg
ZGF0YSBmcm9tIG5vdyBvbiBhbmQKKyAgICAvLyBpbnN0cnVjdCBoYW5kbGVOZXdTYW1wbGUgdG8g
YWJvcnQgaXRzZWxmIGZyb20gbm93IG9uIGFzIHdlbGwuCisgICAgc2V0QXBwZW5kU3RhdGUoQXBw
ZW5kU3RhdGU6OkludmFsaWQpOwogCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BhZEFkZFJlbW92ZUxvY2spOwpAQCAtMzE4LDEwICszMDksOCBAQCB2b2lkIEFwcGVuZFBpcGVs
aW5lOjpoYW5kbGVBcHBsaWNhdGlvbk1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICB9
CiAKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBzaW5rLW5l
dy1zYW1wbGUiKSkgewotICAgICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbmV3U2FtcGxlOwotICAg
ICAgICBnc3Rfc3RydWN0dXJlX2dldChzdHJ1Y3R1cmUsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVf
U0FNUExFLCAmbmV3U2FtcGxlLm91dFB0cigpLCBudWxscHRyKTsKLQotICAgICAgICBhcHBzaW5r
TmV3U2FtcGxlKG5ld1NhbXBsZS5nZXQoKSk7CisgICAgICAgIG1fYnVzQWxyZWFkeU5vdGlmaWVk
T2ZBdmFpbGFibGVTYW1wbGVzLmNsZWFyKCk7CisgICAgICAgIGNvbnN1bWVBcHBTaW5rQXZhaWxh
YmxlU2FtcGxlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDAsNTggKzYyOSw1
MSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjaGVja0VuZE9mQXBwZW5kKCkKICAgICB9CiB9CiAK
LXZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUp
Cit2b2lkIEFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxl
PiYmIHNhbXBsZSkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKLSAgICB7
Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KLSAgICAgICAg
Ly8gSWdub3JlIHNhbXBsZXMgaWYgd2UncmUgbm90IGV4cGVjdGluZyB0aGVtLiBSZWZ1c2UgcHJv
Y2Vzc2luZyBpZiB3ZSdyZSBpbiBJbnZhbGlkIHN0YXRlLgotICAgICAgICBpZiAobV9hcHBlbmRT
dGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFwcGVuZFN0
YXRlOjpTYW1wbGluZykgewotICAgICAgICAgICAgR1NUX1dBUk5JTkcoIlVuZXhwZWN0ZWQgc2Ft
cGxlLCBhcHBlbmRTdGF0ZT0lcyIsIGR1bXBBcHBlbmRTdGF0ZShtX2FwcGVuZFN0YXRlKSk7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogUmV0dXJuIEVSUk9SIGFuZCBmaW5kIGEgbW9yZSByb2J1c3Qg
d2F5IHRvIGRldGVjdCB0aGF0IGFsbCB0aGUKLSAgICAgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4g
cHJvY2Vzc2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KLSAg
ICAgICAgICAgIC8vIEFsbCBpbiBhbGwsIHJldHVybiBPSywgZXZlbiBpZiBpdCdzIG5vdCB0aGUg
cHJvcGVyIHRoaW5nIHRvIGRvLiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBkZW11eGVyLgot
ICAgICAgICAgICAgbV9mbG93UmV0dXJuID0gR1NUX0ZMT1dfT0s7Ci0gICAgICAgICAgICBtX25l
d1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIC8vIElnbm9yZSBzYW1wbGVzIGlmIHdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlbS4g
UmVmdXNlIHByb2Nlc3NpbmcgaWYgd2UncmUgaW4gSW52YWxpZCBzdGF0ZS4KKyAgICBpZiAobV9h
cHBlbmRTdGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFw
cGVuZFN0YXRlOjpTYW1wbGluZykgeworICAgICAgICBHU1RfV0FSTklORygiVW5leHBlY3RlZCBz
YW1wbGUsIGFwcGVuZFN0YXRlPSVzIiwgZHVtcEFwcGVuZFN0YXRlKG1fYXBwZW5kU3RhdGUpKTsK
KyAgICAgICAgLy8gRklYTUU6IFJldHVybiBFUlJPUiBhbmQgZmluZCBhIG1vcmUgcm9idXN0IHdh
eSB0byBkZXRlY3QgdGhhdCBhbGwgdGhlCisgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4gcHJvY2Vz
c2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KKyAgICAgICAg
Ly8gQWxsIGluIGFsbCwgcmV0dXJuIE9LLCBldmVuIGlmIGl0J3Mgbm90IHRoZSBwcm9wZXIgdGhp
bmcgdG8gZG8uIFdlIGRvbid0IHdhbnQgdG8gYnJlYWsgdGhlIGRlbXV4ZXIuCisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBtZWRp
YVNhbXBsZSA9IFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGUoc2FtcGxlLCBt
X3ByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQoKSk7Ci0KLSAgICAgICAgR1NUX1RSQUNFKCJhcHBl
bmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9uU2l6ZT0lLjBm
eCUuMGYiLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnRyYWNrSUQoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKS50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2Rl
VGltZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxl
LT5kdXJhdGlvbigpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlh
U2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCkud2lkdGgoKSwgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblNpemUoKS5oZWlnaHQoKSk7Ci0KLSAgICAgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBk
dXJhdGlvbiwgaWdub3JlIHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCi0gICAg
ICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IG1fbWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCk7
Ci0gICAgICAgIGlmIChkdXJhdGlvbi5pc1ZhbGlkKCkgJiYgIWR1cmF0aW9uLmluZGVmaW5pdGVU
aW1lKCkgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IGR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBHU1RfREVCVUcoIkRldGVjdGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVy
YXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RTYW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0
aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRpb24udG9GbG9hdCgpKTsKLSAgICAgICAgICAgIHNl
dEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpMYXN0U2FtcGxlKTsKLSAgICAgICAgICAgIG1fZmxv
d1JldHVybiA9IEdTVF9GTE9XX09LOwotICAgICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24u
bm90aWZ5T25lKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIWdz
dF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpKSB7CisgICAgICAgIEdTVF9XQVJOSU5H
KCJSZWNlaXZlZCBzYW1wbGUgd2l0aG91dCBidWZmZXIgZnJvbSBhcHBzaW5rLiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCi0gICAgICAgIC8vIEFkZCBhIGdhcCBzYW1wbGUgaWYgYSBnYXAg
aXMgZGV0ZWN0ZWQgYmVmb3JlIHRoZSBmaXJzdCBzYW1wbGUuCi0gICAgICAgIGlmIChtZWRpYVNh
bXBsZS0+ZGVjb2RlVGltZSgpID09IE1lZGlhVGltZTo6emVyb1RpbWUoKQotICAgICAgICAgICAg
JiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IE1lZGlhVGltZTo6emVyb1RpbWUo
KQotICAgICAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA8PSBNZWRp
YVRpbWUoMSwgMTApKSB7Ci0gICAgICAgICAgICBHU1RfREVCVUcoIkFkZGluZyBnYXAgb2Zmc2V0
Iik7Ci0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKLSAgICAgICAgfQorICAgIFJlZlB0cjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4g
bWVkaWFTYW1wbGUgPSBXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlKFdURk1v
dmUoc2FtcGxlKSwgbV9wcmVzZW50YXRpb25TaXplLCB0cmFja0lkKCkpOworCisgICAgR1NUX1RS
QUNFKCJhcHBlbmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9u
U2l6ZT0lLjBmeCUuMGYiLAorICAgICAgICBtZWRpYVNhbXBsZS0+dHJhY2tJRCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCku
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2RlVGlt
ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUtPmR1cmF0
aW9uKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+cHJl
c2VudGF0aW9uU2l6ZSgpLndpZHRoKCksIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCku
aGVpZ2h0KCkpOworCisgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBkdXJhdGlvbiwgaWdub3Jl
IHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCisgICAgTWVkaWFUaW1lIGR1cmF0
aW9uID0gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKTsKKyAgICBpZiAoZHVyYXRpb24u
aXNWYWxpZCgpICYmICFkdXJhdGlvbi5pbmRlZmluaXRlVGltZSgpICYmIG1lZGlhU2FtcGxlLT5w
cmVzZW50YXRpb25UaW1lKCkgPiBkdXJhdGlvbikgeworICAgICAgICBHU1RfREVCVUcoIkRldGVj
dGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVyYXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RT
YW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRp
b24udG9GbG9hdCgpKTsKKyAgICAgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6Okxhc3RT
YW1wbGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVy
UHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwotICAgICAgICBzZXRBcHBl
bmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwotICAgICAgICBtX2Zsb3dSZXR1cm4gPSBH
U1RfRkxPV19PSzsKLSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Cisg
ICAgLy8gQWRkIGEgZ2FwIHNhbXBsZSBpZiBhIGdhcCBpcyBkZXRlY3RlZCBiZWZvcmUgdGhlIGZp
cnN0IHNhbXBsZS4KKyAgICBpZiAobWVkaWFTYW1wbGUtPmRlY29kZVRpbWUoKSA9PSBNZWRpYVRp
bWU6Onplcm9UaW1lKCkKKyAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUo
KSA+IE1lZGlhVGltZTo6emVyb1RpbWUoKQorICAgICAgICAmJiBtZWRpYVNhbXBsZS0+cHJlc2Vu
dGF0aW9uVGltZSgpIDw9IE1lZGlhVGltZSgxLCAxMCkpIHsKKyAgICAgICAgR1NUX0RFQlVHKCJB
ZGRpbmcgZ2FwIG9mZnNldCIpOworICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQo
TWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICB9CiAKLSAgICBjaGVja0VuZE9mQXBwZW5kKCk7
CisgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBs
ZSk7CisgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKIH0KIAogdm9p
ZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua0VPUygpCkBAIC03NTcsNiArNzM5LDIzIEBAIEF0b21p
Y1N0cmluZyBBcHBlbmRQaXBlbGluZTo6dHJhY2tJZCgpCiAgICAgcmV0dXJuIG1fdHJhY2stPmlk
KCk7CiB9CiAKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbnN1bWVBcHBTaW5rQXZhaWxhYmxlU2Ft
cGxlcygpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOworCisgICAgR1JlZlB0
cjxHc3RTYW1wbGU+IHNhbXBsZTsKKyAgICBpbnQgYmF0Y2hlZFNhbXBsZUNvdW50ID0gMDsKKyAg
ICB3aGlsZSAoKHNhbXBsZSA9IGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfdHJ5X3B1bGxfc2FtcGxl
KEdTVF9BUFBfU0lOSyhtX2FwcHNpbmsuZ2V0KCkpLCAwKSkpKSB7CisgICAgICAgIGFwcHNpbmtO
ZXdTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKKyAgICAgICAgYmF0Y2hlZFNhbXBsZUNvdW50Kys7
CisgICAgfQorCisgICAgR1NUX0RFQlVHKCJiYXRjaGVkU2FtcGxlQ291bnQgPSAlZCIsIGJhdGNo
ZWRTYW1wbGVDb3VudCk7CisKKyAgICBpZiAoYmF0Y2hlZFNhbXBsZUNvdW50ID4gMCkKKyAgICAg
ICAgY2hlY2tFbmRPZkFwcGVuZCgpOworfQorCiB2b2lkIEFwcGVuZFBpcGVsaW5lOjpyZXNldFBp
cGVsaW5lKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CkBAIC03NjQsMTIg
Kzc2Myw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlwZWxpbmUoKQogICAgIG1fYXBw
c3JjQXRMZWFzdEFCdWZmZXJMZWZ0ID0gZmFsc2U7CiAgICAgc2V0QXBwc3JjRGF0YUxlYXZpbmdQ
cm9iZSgpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1NhbXBsZUxv
Y2spOwotICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICAgICAg
Z3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksIEdTVF9TVEFURV9SRUFEWSk7
Ci0gICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBudWxscHRy
LCBudWxscHRyLCAwKTsKLSAgICB9CisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxp
bmUuZ2V0KCksIEdTVF9TVEFURV9SRUFEWSk7CisgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1f
cGlwZWxpbmUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIDApOwogCiAjaWYgKCEoTE9HX0RJU0FC
TEVEIHx8IGRlZmluZWQoR1NUX0RJU0FCTEVfR1NUX0RFQlVHKSkpCiAgICAgewpAQCAtODU4LDI3
ICs4NTMsMTkgQEAgR3N0Rmxvd1JldHVybiBBcHBlbmRQaXBlbGluZTo6aGFuZGxlTmV3QXBwc2lu
a1NhbXBsZShHc3RFbGVtZW50KiBhcHBzaW5rKQogewogICAgIEFTU0VSVCghV1RGOjppc01haW5U
aHJlYWQoKSk7CiAKLSAgICAvLyBFdmVuIGlmIHdlJ3JlIGRpc2FibGVkLCBpdCdzIGltcG9ydGFu
dCB0byBwdWxsIHRoZSBzYW1wbGUgb3V0IGFueXdheSB0bwotICAgIC8vIGF2b2lkIGRlYWRsb2Nr
cyB3aGVuIGNoYW5naW5nIHRvIEdTVF9TVEFURV9OVUxMIGhhdmluZyBhIG5vbiBlbXB0eSBhcHBz
aW5rLgotICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUgPSBhZG9wdEdSZWYoZ3N0X2FwcF9z
aW5rX3B1bGxfc2FtcGxlKEdTVF9BUFBfU0lOSyhhcHBzaW5rKSkpOwotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KICAgICBpZiAoIW1fcGxheWVyUHJpdmF0ZSB8fCBt
X2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpJbnZhbGlkKSB7CiAgICAgICAgIEdTVF9XQVJO
SU5HKCJBcHBlbmRQaXBlbGluZSBoYXMgYmVlbiBkaXNhYmxlZCwgaWdub3JpbmcgdGhpcyBzYW1w
bGUiKTsKICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOwogICAgIH0KIAotICAgIEdzdFN0
cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoImFwcHNpbmstbmV3LXNhbXBs
ZSIsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVfU0FNUExFLCBzYW1wbGUuZ2V0KCksIG51bGxwdHIp
OwotICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24o
R1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsKLSAgICBnc3RfYnVzX3Bvc3QobV9idXMu
Z2V0KCksIG1lc3NhZ2UpOwotICAgIEdTVF9UUkFDRSgiYXBwc2luay1uZXctc2FtcGxlIG1lc3Nh
Z2UgcG9zdGVkIHRvIGJ1cyIpOwotCi0gICAgbV9uZXdTYW1wbGVDb25kaXRpb24ud2FpdChtX25l
d1NhbXBsZUxvY2spOwotICAgIC8vIFdlJ3ZlIGJlZW4gYXdha2VuIGJlY2F1c2UgdGhlIHNhbXBs
ZSB3YXMgcHJvY2Vzc2VkIG9yIGJlY2F1c2Ugb2YKLSAgICAvLyBhbiBleGNlcHRpb25hbCBjb25k
aXRpb24gKGVudGVyZWQgaW4gSW52YWxpZCBzdGF0ZSwgZGVzdHJ1Y3RvciwgZXRjLikuCi0gICAg
Ly8gV2UgY2FuJ3QgcmVsaWFibHkgZGVsZXRlIGluZm8gaGVyZSwgYXBwZW5kUGlwZWxpbmVBcHBz
aW5rTmV3U2FtcGxlTWFpblRocmVhZCB3aWxsIGRvIGl0LgorICAgIGlmICghbV9idXNBbHJlYWR5
Tm90aWZpZWRPZkF2YWlsYWJsZVNhbXBsZXMudGVzdF9hbmRfc2V0KCkpIHsKKyAgICAgICAgR3N0
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgiYXBwc2luay1u
ZXctc2FtcGxlIik7CisgICAgICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9u
ZXdfYXBwbGljYXRpb24oR1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsKKyAgICAgICAg
Z3N0X2J1c19wb3N0KG1fYnVzLmdldCgpLCBtZXNzYWdlKTsKKyAgICAgICAgR1NUX1RSQUNFKCJh
cHBzaW5rLW5ldy1zYW1wbGUgbWVzc2FnZSBwb3N0ZWQgdG8gYnVzIik7CisgICAgfQogCi0gICAg
cmV0dXJuIG1fZmxvd1JldHVybjsKKyAgICByZXR1cm4gR1NUX0ZMT1dfT0s7CiB9CiAKIHN0YXRp
YyBHUmVmUHRyPEdzdEVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKaW5kZXgg
ODc2ODA3YmE5MGQzZDYyZWJjOGZkYzY1MDc1ZDhjODNjYWRiNzczZS4uYWYxMTI4ZTM4N2YxZmM1
ZDY0ZjE1YzA0YmEwNDc0YjQ0YWE4MDUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
aApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVy
TVNFLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIgogCisjaW5j
bHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIC8vIFRha2VzIG93bmVyc2hp
cCBvZiBjYXBzLgogICAgIHZvaWQgcGFyc2VEZW11eGVyU3JjUGFkQ2FwcyhHc3RDYXBzKik7CiAg
ICAgdm9pZCBhcHBzaW5rQ2Fwc0NoYW5nZWQoKTsKLSAgICB2b2lkIGFwcHNpbmtOZXdTYW1wbGUo
R3N0U2FtcGxlKik7CisgICAgdm9pZCBhcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxl
PiYmKTsKICAgICB2b2lkIGFwcHNpbmtFT1MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoKTsKICAgICBBdG9taWNTdHJpbmcgdHJhY2tJZCgpOwpAQCAtOTYsNiAr
OTcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QXBwc3JjRGF0YUxlYXZpbmdQcm9iZSgpOwog
ICAgIHZvaWQgZGVtdXhlck5vTW9yZVBhZHMoKTsKIAorICAgIHZvaWQgY29uc3VtZUFwcFNpbmtB
dmFpbGFibGVTYW1wbGVzKCk7CisKICAgICBSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U+IG1fbWVkaWFTb3VyY2VDbGllbnQ7CiAgICAgUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI+IG1fc291cmNlQnVmZmVyUHJpdmF0ZTsKICAgICBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJNU0UqIG1fcGxheWVyUHJpdmF0ZTsKQEAgLTEwNSw4ICsxMDgsNiBAQCBwcml2YXRlOgog
CiAgICAgTWVkaWFUaW1lIG1faW5pdGlhbER1cmF0aW9uOwogCi0gICAgR3N0Rmxvd1JldHVybiBt
X2Zsb3dSZXR1cm47Ci0KICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fcGlwZWxpbmU7CiAgICAg
R1JlZlB0cjxHc3RCdXM+IG1fYnVzOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9hcHBzcmM7
CkBAIC0xMTUsOCArMTE2LDEzIEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGRlbXV4ZXIgaGFzIG9u
ZSBzcmMgc3RyZWFtIG9ubHksIHNvIG9ubHkgb25lIGFwcHNpbmsgaXMgbmVlZGVkIGFuZCBsaW5r
ZWQgdG8gaXQuCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2FwcHNpbms7CiAKLSAgICBMb2Nr
IG1fbmV3U2FtcGxlTG9jazsKLSAgICBDb25kaXRpb24gbV9uZXdTYW1wbGVDb25kaXRpb247Cisg
ICAgLy8gVXNlZCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBub3RpZmljYXRpb25zIHBlciBzYW1wbGUu
CisgICAgLy8gSXQgaXMgcmVhZCBhbmQgd3JpdGUgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBh
bmQgd3JvdGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisgICAgLy8gVGhlIG1haW4gdGhyZWFkIG11
c3Qgc2V0IGl0IHRvIGZhbHNlIGJlZm9yZSBhY3R1YWxseSBwdWxsaW5nIHNhbXBsZXMuCisgICAg
Ly8gVGhpcyBzdHJhdGVneSBlbnN1cmVzIHRoYXQgYXQgYW55IHRpbWUsIHRoZXJlIGFyZSBhdCBt
b3N0IHR3byBub3RpZmljYXRpb25zIGluIHRoZSBidXMKKyAgICAvLyBxdWV1ZSwgaW5zdGVhZCBv
ZiBpdCBncm93aW5nIHVuYm91bmRlZC4KKyAgICBzdGQ6OmF0b21pY19mbGFnIG1fYnVzQWxyZWFk
eU5vdGlmaWVkT2ZBdmFpbGFibGVTYW1wbGVzOworCiAgICAgTG9jayBtX3BhZEFkZFJlbW92ZUxv
Y2s7CiAgICAgQ29uZGl0aW9uIG1fcGFkQWRkUmVtb3ZlQ29uZGl0aW9uOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350518</attachid>
            <date>2018-09-22 06:47:11 -0700</date>
            <delta_ts>2018-09-24 09:40:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180922154709.patch</filename>
            <type>text/plain</type>
            <size>14708</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRkM2JmZjY1MWUzZmVh
OGFjYjhlYjc2ZmZjZDIwNDU2NzMxNzc3NS4uYzhhNjQwNDM1MTg1NGJkNDQ3MWMyYzVhNTRkN2Iy
YTcyMDc5ZWYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFB1bGwgZGVtdXhlZCBzYW1wbGVzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYXZvaWRzIHRvbnMgb2YgaW5uZWNl
c3NhcnkgY29udGV4dCBzd2l0Y2hlcywgaXMgc2ltcGxlciB0aGFuIHRoZQorICAgICAgICBwcmV2
aW91cyBhcHByb2FjaCBhbmQgbXVjaCBmYXN0ZXIuCisKKyAgICAgICAgVGhpcyBmaXhlcyBzdHV0
dGVyIHdoaWxlIGxvYWRpbmcgWW91VHViZSB2aWRlb3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTYW1wbGVHU3RyZWFtZXI6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6fkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpjbGVhclBsYXllclByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29uc3VtZUFwcFNpbmtBdmFpbGFibGVTYW1wbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpyZXNldFBpcGVsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpoYW5kbGVOZXdBcHBzaW5rU2FtcGxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
Lmg6CisKIDIwMTgtMDktMjEgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIERvbid0IHVwZGF0ZSBkdXJhdGlv
biB3aGVuIGl0IHdhcyBub3QgcHJldmlvdXNseSBOYU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuY3BwCmluZGV4IGI4MTBlNzhkYTgyZDFjNmRiZTllYTRiM2ZhZjBhZDgxZWEwOTYz
ZjcuLjMwMzM0YTFmN2Y0MThlZjdjNzdlYWM0NmU1Yjg4MTE1ZjU1NjFiYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtMzYsOCArMzYsNyBAQCBNZWRpYVNhbXBs
ZUdTdHJlYW1lcjo6TWVkaWFTYW1wbGVHU3RyZWFtZXIoR1JlZlB0cjxHc3RTYW1wbGU+JiYgc2Ft
cGxlLCBjb25zdCBGbAogewogICAgIEFTU0VSVChzYW1wbGUpOwogICAgIEdzdEJ1ZmZlciogYnVm
ZmVyID0gZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7Ci0gICAgaWYgKCFidWZm
ZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBSRUxFQVNFX0FTU0VSVChidWZmZXIpOwogCiAgICAg
YXV0byBjcmVhdGVNZWRpYVRpbWUgPQogICAgICAgICBbXShHc3RDbG9ja1RpbWUgdGltZSkgLT4g
TWVkaWFUaW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggOGVlOTVj
M2VkNzk2ZjM5Y2ZiYmQ2NDg1ZWQxOGQ4YzlhMWFmYzQ3Yy4uNGRhMDQ3YjMxMzY4Y2Q2YmJjZjBk
ZmFjNTJjNDI4ZDBhMzQyMzYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
QEAgLTEwOSw2ICsxMDksNyBAQCBBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlwZWxpbmUoUmVmPE1l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtZWRpYVNvdXJjZUNsaQogICAgICwgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUuZ2V0KCkpCiAgICAgLCBtX3BsYXll
clByaXZhdGUoJnBsYXllclByaXZhdGUpCiAgICAgLCBtX2lkKDApCisgICAgLCBtX2J1c0FscmVh
ZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlcyhmYWxzZSkKICAgICAsIG1fYXBwc3JjQXRMZWFz
dEFCdWZmZXJMZWZ0KGZhbHNlKQogICAgICwgbV9hcHBzcmNOZWVkRGF0YVJlY2VpdmVkKGZhbHNl
KQogICAgICwgbV9hcHBzcmNEYXRhTGVhdmluZ1Byb2JlSWQoMCkKQEAgLTE5MCwxMSArMTkxLDcg
QEAgQXBwZW5kUGlwZWxpbmU6On5BcHBlbmRQaXBlbGluZSgpCiB7CiAgICAgQVNTRVJUKFdURjo6
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25l
d1NhbXBsZUxvY2spOwotICAgICAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxp
ZCk7Ci0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0KKyAg
ICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxpZCk7CiAKICAgICB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcGFkQWRkUmVtb3ZlTG9jayk7CkBAIC0yNTUsMTUgKzI1Miw5
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNsZWFyUGxheWVyUHJpdmF0ZSgpCiAgICAgQVNTRVJU
KFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIEdTVF9ERUJVRygiY2xlYW5pbmcgcHJpdmF0ZSBw
bGF5ZXIiKTsKIAotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVM
b2NrKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgQXBwZW5kUGlwZWxpbmUgd29uJ3QgcHJv
Y2VzcyBtb3JlIGRhdGEgZnJvbSBub3cgb24gYW5kCi0gICAgICAgIC8vIGluc3RydWN0IGhhbmRs
ZU5ld1NhbXBsZSB0byBhYm9ydCBpdHNlbGYgZnJvbSBub3cgb24gYXMgd2VsbC4KLSAgICAgICAg
c2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OkludmFsaWQpOwotCi0gICAgICAgIC8vIEF3YWtl
IGFueSBwZW5kaW5nIGhhbmRsZU5ld1NhbXBsZSBvcGVyYXRpb24gaW4gdGhlIHN0cmVhbWluZyB0
aHJlYWQuCi0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgIH0K
KyAgICAvLyBNYWtlIHN1cmUgdGhhdCBBcHBlbmRQaXBlbGluZSB3b24ndCBwcm9jZXNzIG1vcmUg
ZGF0YSBmcm9tIG5vdyBvbiBhbmQKKyAgICAvLyBpbnN0cnVjdCBoYW5kbGVOZXdTYW1wbGUgdG8g
YWJvcnQgaXRzZWxmIGZyb20gbm93IG9uIGFzIHdlbGwuCisgICAgc2V0QXBwZW5kU3RhdGUoQXBw
ZW5kU3RhdGU6OkludmFsaWQpOwogCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3BhZEFkZFJlbW92ZUxvY2spOwpAQCAtMzE4LDEwICszMDksOCBAQCB2b2lkIEFwcGVuZFBpcGVs
aW5lOjpoYW5kbGVBcHBsaWNhdGlvbk1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICB9
CiAKICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJhcHBzaW5rLW5l
dy1zYW1wbGUiKSkgewotICAgICAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbmV3U2FtcGxlOwotICAg
ICAgICBnc3Rfc3RydWN0dXJlX2dldChzdHJ1Y3R1cmUsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVf
U0FNUExFLCAmbmV3U2FtcGxlLm91dFB0cigpLCBudWxscHRyKTsKLQotICAgICAgICBhcHBzaW5r
TmV3U2FtcGxlKG5ld1NhbXBsZS5nZXQoKSk7CisgICAgICAgIG1fYnVzQWxyZWFkeU5vdGlmaWVk
T2ZBdmFpbGFibGVTYW1wbGVzLmNsZWFyKCk7CisgICAgICAgIGNvbnN1bWVBcHBTaW5rQXZhaWxh
YmxlU2FtcGxlcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NDAsNTggKzYyOSw1
MSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpjaGVja0VuZE9mQXBwZW5kKCkKICAgICB9CiB9CiAK
LXZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUp
Cit2b2lkIEFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxl
PiYmIHNhbXBsZSkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKLSAgICB7
Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KLSAgICAgICAg
Ly8gSWdub3JlIHNhbXBsZXMgaWYgd2UncmUgbm90IGV4cGVjdGluZyB0aGVtLiBSZWZ1c2UgcHJv
Y2Vzc2luZyBpZiB3ZSdyZSBpbiBJbnZhbGlkIHN0YXRlLgotICAgICAgICBpZiAobV9hcHBlbmRT
dGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFwcGVuZFN0
YXRlOjpTYW1wbGluZykgewotICAgICAgICAgICAgR1NUX1dBUk5JTkcoIlVuZXhwZWN0ZWQgc2Ft
cGxlLCBhcHBlbmRTdGF0ZT0lcyIsIGR1bXBBcHBlbmRTdGF0ZShtX2FwcGVuZFN0YXRlKSk7Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogUmV0dXJuIEVSUk9SIGFuZCBmaW5kIGEgbW9yZSByb2J1c3Qg
d2F5IHRvIGRldGVjdCB0aGF0IGFsbCB0aGUKLSAgICAgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4g
cHJvY2Vzc2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KLSAg
ICAgICAgICAgIC8vIEFsbCBpbiBhbGwsIHJldHVybiBPSywgZXZlbiBpZiBpdCdzIG5vdCB0aGUg
cHJvcGVyIHRoaW5nIHRvIGRvLiBXZSBkb24ndCB3YW50IHRvIGJyZWFrIHRoZSBkZW11eGVyLgot
ICAgICAgICAgICAgbV9mbG93UmV0dXJuID0gR1NUX0ZMT1dfT0s7Ci0gICAgICAgICAgICBtX25l
d1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQorICAgIC8vIElnbm9yZSBzYW1wbGVzIGlmIHdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlbS4g
UmVmdXNlIHByb2Nlc3NpbmcgaWYgd2UncmUgaW4gSW52YWxpZCBzdGF0ZS4KKyAgICBpZiAobV9h
cHBlbmRTdGF0ZSAhPSBBcHBlbmRTdGF0ZTo6T25nb2luZyAmJiBtX2FwcGVuZFN0YXRlICE9IEFw
cGVuZFN0YXRlOjpTYW1wbGluZykgeworICAgICAgICBHU1RfV0FSTklORygiVW5leHBlY3RlZCBz
YW1wbGUsIGFwcGVuZFN0YXRlPSVzIiwgZHVtcEFwcGVuZFN0YXRlKG1fYXBwZW5kU3RhdGUpKTsK
KyAgICAgICAgLy8gRklYTUU6IFJldHVybiBFUlJPUiBhbmQgZmluZCBhIG1vcmUgcm9idXN0IHdh
eSB0byBkZXRlY3QgdGhhdCBhbGwgdGhlCisgICAgICAgIC8vIGRhdGEgaGFzIGJlZW4gcHJvY2Vz
c2VkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlc29ydCB0byB0aGVzZSBoYWNrcy4KKyAgICAgICAg
Ly8gQWxsIGluIGFsbCwgcmV0dXJuIE9LLCBldmVuIGlmIGl0J3Mgbm90IHRoZSBwcm9wZXIgdGhp
bmcgdG8gZG8uIFdlIGRvbid0IHdhbnQgdG8gYnJlYWsgdGhlIGRlbXV4ZXIuCisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBtZWRp
YVNhbXBsZSA9IFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGUoc2FtcGxlLCBt
X3ByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQoKSk7Ci0KLSAgICAgICAgR1NUX1RSQUNFKCJhcHBl
bmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9uU2l6ZT0lLjBm
eCUuMGYiLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnRyYWNrSUQoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKS50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2Rl
VGltZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxl
LT5kdXJhdGlvbigpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlh
U2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCkud2lkdGgoKSwgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblNpemUoKS5oZWlnaHQoKSk7Ci0KLSAgICAgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBk
dXJhdGlvbiwgaWdub3JlIHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCi0gICAg
ICAgIE1lZGlhVGltZSBkdXJhdGlvbiA9IG1fbWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCk7
Ci0gICAgICAgIGlmIChkdXJhdGlvbi5pc1ZhbGlkKCkgJiYgIWR1cmF0aW9uLmluZGVmaW5pdGVU
aW1lKCkgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IGR1cmF0aW9uKSB7Ci0g
ICAgICAgICAgICBHU1RfREVCVUcoIkRldGVjdGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVy
YXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RTYW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0
aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRpb24udG9GbG9hdCgpKTsKLSAgICAgICAgICAgIHNl
dEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpMYXN0U2FtcGxlKTsKLSAgICAgICAgICAgIG1fZmxv
d1JldHVybiA9IEdTVF9GTE9XX09LOwotICAgICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24u
bm90aWZ5T25lKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIWdz
dF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpKSB7CisgICAgICAgIEdTVF9XQVJOSU5H
KCJSZWNlaXZlZCBzYW1wbGUgd2l0aG91dCBidWZmZXIgZnJvbSBhcHBzaW5rLiIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCi0gICAgICAgIC8vIEFkZCBhIGdhcCBzYW1wbGUgaWYgYSBnYXAg
aXMgZGV0ZWN0ZWQgYmVmb3JlIHRoZSBmaXJzdCBzYW1wbGUuCi0gICAgICAgIGlmIChtZWRpYVNh
bXBsZS0+ZGVjb2RlVGltZSgpID09IE1lZGlhVGltZTo6emVyb1RpbWUoKQotICAgICAgICAgICAg
JiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IE1lZGlhVGltZTo6emVyb1RpbWUo
KQotICAgICAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA8PSBNZWRp
YVRpbWUoMSwgMTApKSB7Ci0gICAgICAgICAgICBHU1RfREVCVUcoIkFkZGluZyBnYXAgb2Zmc2V0
Iik7Ci0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKLSAgICAgICAgfQorICAgIFJlZlB0cjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4g
bWVkaWFTYW1wbGUgPSBXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlKFdURk1v
dmUoc2FtcGxlKSwgbV9wcmVzZW50YXRpb25TaXplLCB0cmFja0lkKCkpOworCisgICAgR1NUX1RS
QUNFKCJhcHBlbmQ6IHRyYWNrSWQ9JXMgUFRTPSVzIERUUz0lcyBEVVI9JXMgcHJlc2VudGF0aW9u
U2l6ZT0lLjBmeCUuMGYiLAorICAgICAgICBtZWRpYVNhbXBsZS0+dHJhY2tJRCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCku
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+ZGVjb2RlVGlt
ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUtPmR1cmF0
aW9uKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+cHJl
c2VudGF0aW9uU2l6ZSgpLndpZHRoKCksIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCku
aGVpZ2h0KCkpOworCisgICAgLy8gSWYgd2UncmUgYmV5b25kIHRoZSBkdXJhdGlvbiwgaWdub3Jl
IHRoaXMgc2FtcGxlIGFuZCB0aGUgcmVtYWluaW5nIG9uZXMuCisgICAgTWVkaWFUaW1lIGR1cmF0
aW9uID0gbV9tZWRpYVNvdXJjZUNsaWVudC0+ZHVyYXRpb24oKTsKKyAgICBpZiAoZHVyYXRpb24u
aXNWYWxpZCgpICYmICFkdXJhdGlvbi5pbmRlZmluaXRlVGltZSgpICYmIG1lZGlhU2FtcGxlLT5w
cmVzZW50YXRpb25UaW1lKCkgPiBkdXJhdGlvbikgeworICAgICAgICBHU1RfREVCVUcoIkRldGVj
dGVkIHNhbXBsZSAoJWYpIGJleW9uZCB0aGUgZHVyYXRpb24gKCVmKSwgZGVjbGFyaW5nIExhc3RT
YW1wbGUiLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLnRvRmxvYXQoKSwgZHVyYXRp
b24udG9GbG9hdCgpKTsKKyAgICAgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6Okxhc3RT
YW1wbGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVy
UHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwotICAgICAgICBzZXRBcHBl
bmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwotICAgICAgICBtX2Zsb3dSZXR1cm4gPSBH
U1RfRkxPV19PSzsKLSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Cisg
ICAgLy8gQWRkIGEgZ2FwIHNhbXBsZSBpZiBhIGdhcCBpcyBkZXRlY3RlZCBiZWZvcmUgdGhlIGZp
cnN0IHNhbXBsZS4KKyAgICBpZiAobWVkaWFTYW1wbGUtPmRlY29kZVRpbWUoKSA9PSBNZWRpYVRp
bWU6Onplcm9UaW1lKCkKKyAgICAgICAgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUo
KSA+IE1lZGlhVGltZTo6emVyb1RpbWUoKQorICAgICAgICAmJiBtZWRpYVNhbXBsZS0+cHJlc2Vu
dGF0aW9uVGltZSgpIDw9IE1lZGlhVGltZSgxLCAxMCkpIHsKKyAgICAgICAgR1NUX0RFQlVHKCJB
ZGRpbmcgZ2FwIG9mZnNldCIpOworICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQo
TWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICB9CiAKLSAgICBjaGVja0VuZE9mQXBwZW5kKCk7
CisgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBs
ZSk7CisgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKIH0KIAogdm9p
ZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua0VPUygpCkBAIC03NTcsNiArNzM5LDIzIEBAIEF0b21p
Y1N0cmluZyBBcHBlbmRQaXBlbGluZTo6dHJhY2tJZCgpCiAgICAgcmV0dXJuIG1fdHJhY2stPmlk
KCk7CiB9CiAKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbnN1bWVBcHBTaW5rQXZhaWxhYmxlU2Ft
cGxlcygpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOworCisgICAgR1JlZlB0
cjxHc3RTYW1wbGU+IHNhbXBsZTsKKyAgICBpbnQgYmF0Y2hlZFNhbXBsZUNvdW50ID0gMDsKKyAg
ICB3aGlsZSAoKHNhbXBsZSA9IGFkb3B0R1JlZihnc3RfYXBwX3NpbmtfdHJ5X3B1bGxfc2FtcGxl
KEdTVF9BUFBfU0lOSyhtX2FwcHNpbmsuZ2V0KCkpLCAwKSkpKSB7CisgICAgICAgIGFwcHNpbmtO
ZXdTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKKyAgICAgICAgYmF0Y2hlZFNhbXBsZUNvdW50Kys7
CisgICAgfQorCisgICAgR1NUX1RSQUNFX09CSkVDVCh0aGlzLCAiYmF0Y2hlZFNhbXBsZUNvdW50
ID0gJWQiLCBiYXRjaGVkU2FtcGxlQ291bnQpOworCisgICAgaWYgKGJhdGNoZWRTYW1wbGVDb3Vu
dCA+IDApCisgICAgICAgIGNoZWNrRW5kT2ZBcHBlbmQoKTsKK30KKwogdm9pZCBBcHBlbmRQaXBl
bGluZTo6cmVzZXRQaXBlbGluZSgpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkp
OwpAQCAtNzY0LDEyICs3NjMsOCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpyZXNldFBpcGVsaW5l
KCkKICAgICBtX2FwcHNyY0F0TGVhc3RBQnVmZmVyTGVmdCA9IGZhbHNlOwogICAgIHNldEFwcHNy
Y0RhdGFMZWF2aW5nUHJvYmUoKTsKIAotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9uZXdTYW1wbGVMb2NrKTsKLSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25l
KCk7Ci0gICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBHU1Rf
U1RBVEVfUkVBRFkpOwotICAgICAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGUobV9waXBlbGluZS5n
ZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgMCk7Ci0gICAgfQorICAgIGdzdF9lbGVtZW50X3NldF9z
dGF0ZShtX3BpcGVsaW5lLmdldCgpLCBHU1RfU1RBVEVfUkVBRFkpOworICAgIGdzdF9lbGVtZW50
X2dldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBudWxscHRyLCBudWxscHRyLCAwKTsKIAogI2lm
ICghKExPR19ESVNBQkxFRCB8fCBkZWZpbmVkKEdTVF9ESVNBQkxFX0dTVF9ERUJVRykpKQogICAg
IHsKQEAgLTg1OCwyNyArODUzLDE5IEBAIEdzdEZsb3dSZXR1cm4gQXBwZW5kUGlwZWxpbmU6Omhh
bmRsZU5ld0FwcHNpbmtTYW1wbGUoR3N0RWxlbWVudCogYXBwc2luaykKIHsKICAgICBBU1NFUlQo
IVdURjo6aXNNYWluVGhyZWFkKCkpOwogCi0gICAgLy8gRXZlbiBpZiB3ZSdyZSBkaXNhYmxlZCwg
aXQncyBpbXBvcnRhbnQgdG8gcHVsbCB0aGUgc2FtcGxlIG91dCBhbnl3YXkgdG8KLSAgICAvLyBh
dm9pZCBkZWFkbG9ja3Mgd2hlbiBjaGFuZ2luZyB0byBHU1RfU1RBVEVfTlVMTCBoYXZpbmcgYSBu
b24gZW1wdHkgYXBwc2luay4KLSAgICBHUmVmUHRyPEdzdFNhbXBsZT4gc2FtcGxlID0gYWRvcHRH
UmVmKGdzdF9hcHBfc2lua19wdWxsX3NhbXBsZShHU1RfQVBQX1NJTksoYXBwc2luaykpKTsKLSAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1NhbXBsZUxvY2spOwotCiAgICAgaWYgKCFtX3BsYXll
clByaXZhdGUgfHwgbV9hcHBlbmRTdGF0ZSA9PSBBcHBlbmRTdGF0ZTo6SW52YWxpZCkgewogICAg
ICAgICBHU1RfV0FSTklORygiQXBwZW5kUGlwZWxpbmUgaGFzIGJlZW4gZGlzYWJsZWQsIGlnbm9y
aW5nIHRoaXMgc2FtcGxlIik7CiAgICAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKICAgICB9
CiAKLSAgICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJhcHBz
aW5rLW5ldy1zYW1wbGUiLCAibmV3LXNhbXBsZSIsIEdTVF9UWVBFX1NBTVBMRSwgc2FtcGxlLmdl
dCgpLCBudWxscHRyKTsKLSAgICBHc3RNZXNzYWdlKiBtZXNzYWdlID0gZ3N0X21lc3NhZ2VfbmV3
X2FwcGxpY2F0aW9uKEdTVF9PQkpFQ1QoYXBwc2luayksIHN0cnVjdHVyZSk7Ci0gICAgZ3N0X2J1
c19wb3N0KG1fYnVzLmdldCgpLCBtZXNzYWdlKTsKLSAgICBHU1RfVFJBQ0UoImFwcHNpbmstbmV3
LXNhbXBsZSBtZXNzYWdlIHBvc3RlZCB0byBidXMiKTsKLQotICAgIG1fbmV3U2FtcGxlQ29uZGl0
aW9uLndhaXQobV9uZXdTYW1wbGVMb2NrKTsKLSAgICAvLyBXZSd2ZSBiZWVuIGF3YWtlbiBiZWNh
dXNlIHRoZSBzYW1wbGUgd2FzIHByb2Nlc3NlZCBvciBiZWNhdXNlIG9mCi0gICAgLy8gYW4gZXhj
ZXB0aW9uYWwgY29uZGl0aW9uIChlbnRlcmVkIGluIEludmFsaWQgc3RhdGUsIGRlc3RydWN0b3Is
IGV0Yy4pLgotICAgIC8vIFdlIGNhbid0IHJlbGlhYmx5IGRlbGV0ZSBpbmZvIGhlcmUsIGFwcGVu
ZFBpcGVsaW5lQXBwc2lua05ld1NhbXBsZU1haW5UaHJlYWQgd2lsbCBkbyBpdC4KKyAgICBpZiAo
IW1fYnVzQWxyZWFkeU5vdGlmaWVkT2ZBdmFpbGFibGVTYW1wbGVzLnRlc3RfYW5kX3NldCgpKSB7
CisgICAgICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXdfZW1w
dHkoImFwcHNpbmstbmV3LXNhbXBsZSIpOworICAgICAgICBHc3RNZXNzYWdlKiBtZXNzYWdlID0g
Z3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKEdTVF9PQkpFQ1QoYXBwc2luayksIHN0cnVjdHVy
ZSk7CisgICAgICAgIGdzdF9idXNfcG9zdChtX2J1cy5nZXQoKSwgbWVzc2FnZSk7CisgICAgICAg
IEdTVF9UUkFDRSgiYXBwc2luay1uZXctc2FtcGxlIG1lc3NhZ2UgcG9zdGVkIHRvIGJ1cyIpOwor
ICAgIH0KIAotICAgIHJldHVybiBtX2Zsb3dSZXR1cm47CisgICAgcmV0dXJuIEdTVF9GTE9XX09L
OwogfQogCiBzdGF0aWMgR1JlZlB0cjxHc3RFbGVtZW50PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBl
bGluZS5oCmluZGV4IDg3NjgwN2JhOTBkM2Q2MmViYzhmZGM2NTA3NWQ4YzgzY2FkYjc3M2UuLmFm
MTEyOGUzODdmMWZjNWQ2NGYxNWMwNGJhMDQ3NGI0NGFhODA1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0Fw
cGVuZFBpcGVsaW5lLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJNZWRpYVNvdXJjZUNs
aWVudEdTdHJlYW1lck1TRS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuaCIKIAorI2luY2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0NvbmRpdGlvbi5oPgogCkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAvLyBU
YWtlcyBvd25lcnNoaXAgb2YgY2Fwcy4KICAgICB2b2lkIHBhcnNlRGVtdXhlclNyY1BhZENhcHMo
R3N0Q2FwcyopOwogICAgIHZvaWQgYXBwc2lua0NhcHNDaGFuZ2VkKCk7Ci0gICAgdm9pZCBhcHBz
aW5rTmV3U2FtcGxlKEdzdFNhbXBsZSopOworICAgIHZvaWQgYXBwc2lua05ld1NhbXBsZShHUmVm
UHRyPEdzdFNhbXBsZT4mJik7CiAgICAgdm9pZCBhcHBzaW5rRU9TKCk7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCk7CiAgICAgQXRvbWljU3RyaW5nIHRyYWNrSWQo
KTsKQEAgLTk2LDYgKzk3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEFwcHNyY0RhdGFMZWF2
aW5nUHJvYmUoKTsKICAgICB2b2lkIGRlbXV4ZXJOb01vcmVQYWRzKCk7CiAKKyAgICB2b2lkIGNv
bnN1bWVBcHBTaW5rQXZhaWxhYmxlU2FtcGxlcygpOworCiAgICAgUmVmPE1lZGlhU291cmNlQ2xp
ZW50R1N0cmVhbWVyTVNFPiBtX21lZGlhU291cmNlQ2xpZW50OwogICAgIFJlZjxTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyPiBtX3NvdXJjZUJ1ZmZlclByaXZhdGU7CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFKiBtX3BsYXllclByaXZhdGU7CkBAIC0xMDUsOCArMTA4LDYg
QEAgcHJpdmF0ZToKIAogICAgIE1lZGlhVGltZSBtX2luaXRpYWxEdXJhdGlvbjsKIAotICAgIEdz
dEZsb3dSZXR1cm4gbV9mbG93UmV0dXJuOwotCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3Bp
cGVsaW5lOwogICAgIEdSZWZQdHI8R3N0QnVzPiBtX2J1czsKICAgICBHUmVmUHRyPEdzdEVsZW1l
bnQ+IG1fYXBwc3JjOwpAQCAtMTE1LDggKzExNiwxMyBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBk
ZW11eGVyIGhhcyBvbmUgc3JjIHN0cmVhbSBvbmx5LCBzbyBvbmx5IG9uZSBhcHBzaW5rIGlzIG5l
ZWRlZCBhbmQgbGlua2VkIHRvIGl0LgogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9hcHBzaW5r
OwogCi0gICAgTG9jayBtX25ld1NhbXBsZUxvY2s7Ci0gICAgQ29uZGl0aW9uIG1fbmV3U2FtcGxl
Q29uZGl0aW9uOworICAgIC8vIFVzZWQgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgbm90aWZpY2F0aW9u
cyBwZXIgc2FtcGxlLgorICAgIC8vIEl0IGlzIHJlYWQgYW5kIHdyaXRlIGZyb20gdGhlIHN0cmVh
bWluZyB0aHJlYWQgYW5kIHdyb3RlIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgIC8vIFRoZSBt
YWluIHRocmVhZCBtdXN0IHNldCBpdCB0byBmYWxzZSBiZWZvcmUgYWN0dWFsbHkgcHVsbGluZyBz
YW1wbGVzLgorICAgIC8vIFRoaXMgc3RyYXRlZ3kgZW5zdXJlcyB0aGF0IGF0IGFueSB0aW1lLCB0
aGVyZSBhcmUgYXQgbW9zdCB0d28gbm90aWZpY2F0aW9ucyBpbiB0aGUgYnVzCisgICAgLy8gcXVl
dWUsIGluc3RlYWQgb2YgaXQgZ3Jvd2luZyB1bmJvdW5kZWQuCisgICAgc3RkOjphdG9taWNfZmxh
ZyBtX2J1c0FscmVhZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlczsKKwogICAgIExvY2sgbV9w
YWRBZGRSZW1vdmVMb2NrOwogICAgIENvbmRpdGlvbiBtX3BhZEFkZFJlbW92ZUNvbmRpdGlvbjsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350633</attachid>
            <date>2018-09-24 05:37:28 -0700</date>
            <delta_ts>2018-09-24 05:58:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180924143727.patch</filename>
            <type>text/plain</type>
            <size>11431</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcyMzA0OWU3OTlhNWEy
Njc4NjEyNmYzZTYxMGRhZjBlYWM0MzBlNi4uZmUzZjFkMDQ2YWRmYTc2OTJmNDI0NjUzYmUxOWIy
YmFhMDZkZWJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFVzZSBuby1tb3JlLXBhZHMgZXZlbnQgZm9yIG5vdGljaW5nIGluaXRpYWxpemF0aW9u
IHNlZ21lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODk4NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXhlcyB0aGUgZm9sbG93aW5nIFlUVFYgMjAxOCB0ZXN0czoKKyAgICAgICAgNjIuVmlkZW9E
aW1lbnNpb25WUDkKKyAgICAgICAgNjMuUGxheWJhY2tTdGF0ZVZQOQorCisgICAgICAgIFRoaXMg
cmVtb3ZlcyB0aGUgaGFjayB0aGF0IHdhcyBtYWtpbmcgc3VwcG9ydGluZyBtdWx0aXBsZSB0cmFj
a3MgaW4KKyAgICAgICAgdGhlIHNhbWUgZmlsZSBpbiBNU0UgaW1wb3NzaWJsZS4KKworICAgICAg
ICBGb3IgV2ViTSwgdGhpcyBHU3RyZWFtZXIgcGF0Y2ggaXMgcmVxdWlyZWQ6CisgICAgICAgIGh0
dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcxODcKKyAgICAgICAg
Im1hdHJvc2thZGVtdXg6IEVtaXQgbm8tbW9yZS1wYWRzIGFmdGVyIHBhcnNpbmcgVHJhY2tzIgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlwZWxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcGxpY2F0aW9uTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6ZGVtdXhlck5vTW9yZVBh
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtDYXBzQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQ
YWRUb0FwcHNpbmspOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcGVuZFBp
cGVsaW5lRGVtdXhlck5vTW9yZVBhZHNGcm9tQW55VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OmFwcGVuZFBpcGVsaW5lRGVtdXhlck5vTW9yZVBhZHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaDoKKwogMjAxOC0wOS0yNCAgVGhp
YmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RL
XVtXZWJSVENdIEZpeCBsZWFrcyBpbiB0aGUgbGlid2VicnRjIERlY29kZXIgYW5kIEVuY29kZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKaW5kZXggMzI3MGU0MGQxMDUxZjIzMmQx
MjI4ZGRkNTAwZjBlNjAzZTkxYjM2Yy4uOGVlOTVjM2VkNzk2ZjM5Y2ZiYmQ2NDg1ZWQxOGQ4Yzlh
MWFmYzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAKQEAgLTg0LDYgKzg0
LDcgQEAgc3RhdGljIEdzdFBhZFByb2JlUmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBwc2lua1BhZEV2
ZW50UHJvYmUoR3N0UGFkKiwgR3N0UGFkUHJvYmUKIHN0YXRpYyBHc3RQYWRQcm9iZVJldHVybiBh
cHBlbmRQaXBlbGluZURlbXV4ZXJCbGFja0hvbGVQYWRQcm9iZShHc3RQYWQqLCBHc3RQYWRQcm9i
ZUluZm8qLCBncG9pbnRlcik7CiBzdGF0aWMgR3N0Rmxvd1JldHVybiBhcHBlbmRQaXBlbGluZUFw
cHNpbmtOZXdTYW1wbGUoR3N0RWxlbWVudCosIEFwcGVuZFBpcGVsaW5lKik7CiBzdGF0aWMgdm9p
ZCBhcHBlbmRQaXBlbGluZUFwcHNpbmtFT1MoR3N0RWxlbWVudCosIEFwcGVuZFBpcGVsaW5lKik7
CitzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZURlbXV4ZXJOb01vcmVQYWRzKEdzdEVsZW1lbnQq
LCBBcHBlbmRQaXBlbGluZSopOwogCiBzdGF0aWMgR3N0UGFkUHJvYmVSZXR1cm4gbWF0cm9za2Fk
ZW11eEZvcmNlU2VnbWVudFN0YXJ0VG9FcXVhbFplcm8oR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZv
Kiwgdm9pZCopOwogCkBAIC0xNzQsNiArMTc1LDcgQEAgQXBwZW5kUGlwZWxpbmU6OkFwcGVuZFBp
cGVsaW5lKFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRT4gbWVkaWFTb3VyY2VDbGkK
ICAgICBnX3NpZ25hbF9jb25uZWN0KG1fYXBwc3JjLmdldCgpLCAibmVlZC1kYXRhIiwgR19DQUxM
QkFDSyhhcHBlbmRQaXBlbGluZUFwcHNyY05lZWREYXRhKSwgdGhpcyk7CiAgICAgZ19zaWduYWxf
Y29ubmVjdChtX2RlbXV4LmdldCgpLCAicGFkLWFkZGVkIiwgR19DQUxMQkFDSyhhcHBlbmRQaXBl
bGluZURlbXV4ZXJQYWRBZGRlZCksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9kZW11
eC5nZXQoKSwgInBhZC1yZW1vdmVkIiwgR19DQUxMQkFDSyhhcHBlbmRQaXBlbGluZURlbXV4ZXJQ
YWRSZW1vdmVkKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX2RlbXV4LmdldCgpLCAi
bm8tbW9yZS1wYWRzIiwgR19DQUxMQkFDSyhhcHBlbmRQaXBlbGluZURlbXV4ZXJOb01vcmVQYWRz
KSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX2FwcHNpbmsuZ2V0KCksICJuZXctc2Ft
cGxlIiwgR19DQUxMQkFDSyhhcHBlbmRQaXBlbGluZUFwcHNpbmtOZXdTYW1wbGUpLCB0aGlzKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KG1fYXBwc2luay5nZXQoKSwgImVvcyIsIEdfQ0FMTEJBQ0so
YXBwZW5kUGlwZWxpbmVBcHBzaW5rRU9TKSwgdGhpcyk7CiAKQEAgLTMyOCw5ICszMzAsMjIgQEAg
dm9pZCBBcHBlbmRQaXBlbGluZTo6aGFuZGxlQXBwbGljYXRpb25NZXNzYWdlKEdzdE1lc3NhZ2Uq
IG1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoZ3N0X3N0cnVjdHVy
ZV9oYXNfbmFtZShzdHJ1Y3R1cmUsICJkZW11eGVyLW5vLW1vcmUtcGFkcyIpKSB7CisgICAgICAg
IGRlbXV4ZXJOb01vcmVQYWRzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordm9pZCBBcHBlbmRQaXBlbGluZTo6ZGVtdXhlck5vTW9y
ZVBhZHMoKQoreworICAgIEdTVF9UUkFDRSgiY2FsbGluZyBkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50Iik7CisgICAgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpOworICAg
IEdTVF9UUkFDRSgic2V0IHBpcGVsaW5lIHRvIHBsYXlpbmciKTsKKyAgICBnc3RfZWxlbWVudF9z
ZXRfc3RhdGUobV9waXBlbGluZS5nZXQoKSwgR1NUX1NUQVRFX1BMQVlJTkcpOworfQorCiB2b2lk
IEFwcGVuZFBpcGVsaW5lOjpoYW5kbGVTdGF0ZUNoYW5nZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CkBAIC01OTUsNyArNjEw
LDYgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua0NhcHNDaGFuZ2VkKCkKICAgICAgICAg
bV9hcHBzaW5rQ2FwcyA9IFdURk1vdmUoY2Fwcyk7CiAgICAgICAgIGlmIChtX3BsYXllclByaXZh
dGUpCiAgICAgICAgICAgICBtX3BsYXllclByaXZhdGUtPnRyYWNrRGV0ZWN0ZWQodGhpcywgbV90
cmFjaywgcHJldmlvdXNDYXBzV2VyZU51bGwpOwotICAgICAgICBkaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KCk7CiAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5l
LmdldCgpLCBHU1RfU1RBVEVfUExBWUlORyk7CiAgICAgfQogfQpAQCAtMTA0MSw2ICsxMDU1LDEw
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rKEdz
dFBhZCogZGVtdXhlclNyY1BhZCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgbV9hcHBz
aW5rQ2FwcyA9IFdURk1vdmUoY2Fwcyk7CisgICAgaWYgKG1fcGxheWVyUHJpdmF0ZSkKKyAgICAg
ICAgbV9wbGF5ZXJQcml2YXRlLT50cmFja0RldGVjdGVkKHRoaXMsIG1fdHJhY2ssIHRydWUpOwor
CiAgICAgbV9wYWRBZGRSZW1vdmVDb25kaXRpb24ubm90aWZ5T25lKCk7CiB9CiAKQEAgLTEwNTks
NiArMTA3NywxNSBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpkaXNjb25uZWN0RGVtdXhlclNyY1Bh
ZEZyb21BcHBzaW5rRnJvbUFueVRocmVhZChHc3RQYWQqKQogICAgIEdTVF9ERUJVR19CSU5fVE9f
RE9UX0ZJTEVfV0lUSF9UUyhHU1RfQklOKG1fcGlwZWxpbmUuZ2V0KCkpLCBHU1RfREVCVUdfR1JB
UEhfU0hPV19BTEwsICJwYWQtcmVtb3ZlZC1hZnRlciIpOwogfQogCit2b2lkIEFwcGVuZFBpcGVs
aW5lOjphcHBlbmRQaXBlbGluZURlbXV4ZXJOb01vcmVQYWRzRnJvbUFueVRocmVhZCgpCit7Cisg
ICAgR1NUX1RSQUNFKCJhcHBlbmRQaXBlbGluZURlbXV4ZXJOb01vcmVQYWRzRnJvbUFueVRocmVh
ZCIpOworICAgIEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXdfZW1w
dHkoImRlbXV4ZXItbm8tbW9yZS1wYWRzIik7CisgICAgR3N0TWVzc2FnZSogbWVzc2FnZSA9IGdz
dF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbihHU1RfT0JKRUNUKG1fYXBwc3JjLmdldCgpKSwgc3Ry
dWN0dXJlKTsKKyAgICBnc3RfYnVzX3Bvc3QobV9idXMuZ2V0KCksIG1lc3NhZ2UpOworICAgIEdT
VF9UUkFDRSgiYXBwZW5kUGlwZWxpbmVEZW11eGVyTm9Nb3JlUGFkc0Zyb21BbnlUaHJlYWQgLSBw
b3N0ZWQgdG8gYnVzIik7Cit9CisKIHN0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lQXBwc2lua0Nh
cHNDaGFuZ2VkKEdPYmplY3QqIGFwcHNpbmtQYWQsIEdQYXJhbVNwZWMqLCBBcHBlbmRQaXBlbGlu
ZSogYXBwZW5kUGlwZWxpbmUpCiB7CiAgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rf
c3RydWN0dXJlX25ld19lbXB0eSgiYXBwc2luay1jYXBzLWNoYW5nZWQiKTsKQEAgLTExMzUsNiAr
MTE2MiwxMSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZURlbXV4ZXJQYWRSZW1vdmVkKEdz
dEVsZW1lbnQqLCBHc3RQYWQqIGRlbXV4ZXJTcmNQYWQsCiAgICAgYXBwZW5kUGlwZWxpbmUtPmRp
c2Nvbm5lY3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKGRlbXV4ZXJTcmNQ
YWQpOwogfQogCitzdGF0aWMgdm9pZCBhcHBlbmRQaXBlbGluZURlbXV4ZXJOb01vcmVQYWRzKEdz
dEVsZW1lbnQqLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCit7CisgICAgYXBwZW5k
UGlwZWxpbmUtPmFwcGVuZFBpcGVsaW5lRGVtdXhlck5vTW9yZVBhZHNGcm9tQW55VGhyZWFkKCk7
Cit9CisKIHN0YXRpYyBHc3RGbG93UmV0dXJuIGFwcGVuZFBpcGVsaW5lQXBwc2lua05ld1NhbXBs
ZShHc3RFbGVtZW50KiBhcHBzaW5rLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCiB7
CiAgICAgcmV0dXJuIGFwcGVuZFBpcGVsaW5lLT5oYW5kbGVOZXdBcHBzaW5rU2FtcGxlKGFwcHNp
bmspOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCmluZGV4IDlmZjhhMTU0ZDk5OGFhOWNj
NDllYzE0MzQxMTVlYjc2ZDk0NTU2NGQuLjg3NjgwN2JhOTBkM2Q2MmViYzhmZGM2NTA3NWQ4Yzgz
Y2FkYjc3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTgwLDYgKzgwLDcg
QEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok1lZGlhU291cmNlU3RyZWFtVHlwZUdTdHJlYW1lciBz
dHJlYW1UeXBlKCkgeyByZXR1cm4gbV9zdHJlYW1UeXBlOyB9CiAKICAgICB2b2lkIGRpc2Nvbm5l
Y3REZW11eGVyU3JjUGFkRnJvbUFwcHNpbmtGcm9tQW55VGhyZWFkKEdzdFBhZCopOworICAgIHZv
aWQgYXBwZW5kUGlwZWxpbmVEZW11eGVyTm9Nb3JlUGFkc0Zyb21BbnlUaHJlYWQoKTsKICAgICB2
b2lkIGNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rRnJvbUFueVRocmVhZChHc3RQYWQqKTsK
ICAgICB2b2lkIGNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rKEdzdFBhZCopOwogCkBAIC05
Myw2ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVBcHBzcmNOZWVkRGF0YVJlY2Vp
dmVkKCk7CiAgICAgdm9pZCByZW1vdmVBcHBzcmNEYXRhTGVhdmluZ1Byb2JlKCk7CiAgICAgdm9p
ZCBzZXRBcHBzcmNEYXRhTGVhdmluZ1Byb2JlKCk7CisgICAgdm9pZCBkZW11eGVyTm9Nb3JlUGFk
cygpOwogCiAgICAgUmVmPE1lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFPiBtX21lZGlhU291
cmNlQ2xpZW50OwogICAgIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZTQxOTM4NjJkN2QwOGVmNDMwNmNkZTY5MTJiZjdkODMzZGQyNDZjYi4uYzVl
Y2M2NzMxMjAxNzYyMTJkZDU2OTBlNjc3ZDg4ODJmYWY5OGE3YiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA5
LTI0ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBb
TVNFXVtHU3RyZWFtZXJdIFVzZSBuby1tb3JlLXBhZHMgZXZlbnQgZm9yIG5vdGljaW5nIGluaXRp
YWxpemF0aW9uIHNlZ21lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODk4NjgKKworICAgICAgICBBZGRlZCBwYXRjaCBmcm9tIGh0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcxODcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGdzdHJlYW1lci9qaGJ1aWxkLm1vZHVs
ZXM6CisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDEwLW1h
dHJvc2thZGVtdXgtRW1pdC1uby1tb3JlLXBhZHMtYWZ0ZXItcGFyc2luZy1UcmFja3MucGF0Y2g6
IEFkZGVkLgorCiAyMDE4LTA5LTI0ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlh
LmNvbT4KICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBBZGQgcGF0Y2ggdG8gamhidWlsZDogbWF0
cm9za2FkZW11eDogQWxsb3cgTWF0cm9za2EgaGVhZGVycyB0byBiZSByZWFkIG1vcmUgdGhhbiBv
bmNlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU3
MzEKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9n
c3RyZWFtZXIvamhidWlsZC5tb2R1bGVzCmluZGV4IDc0Yzc1YWE4MjUwYmEyZjk1OTY0OTllMzE0
N2E3YzAyZTUxY2ZiMGMuLjQ3YjFlODY4ZTk5MThkMGZlNDlhZGMzMjdkNGE3MDZhNGU2NjY4N2Ug
MTAwNjQ0Ci0tLSBhL1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMv
Z3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcwpAQCAtODgsNiArODgsNyBAQAogICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwNy1tYXRyb3NrYWRlbXV4LUFsbG93LU1hdHJvc2th
LWhlYWRlcnMtdG8tYmUtcmVhZC1tb3JlLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQg
YXMgOWRjNzg1OTE4NGQ0YjdhZDFkZDdlMmI1NDcwNGU5OTRkYmFjZTMyOSAodG8gYmUgc2hpcHBl
ZCBpbiAxLjE0LjQpIC0tPgogICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAw
OC1tYXRyb3NrYWRlbXV4LVJlZmFjdG9yLXRyYWNrLXBhcnNpbmctb3V0LWZyb20tYWRkaW5nLnBh
dGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgZjI3OWJjNTMzNmRkYTE5NzQxYTU5OTZh
MTA4ZGE0MmRkMzIwMTM2NiAodG8gYmUgc2hpcHBlZCBpbiAxLjE0LjQpIC0tPgogICAgICAgPHBh
dGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwOS1tYXRyb3NrYWRlbXV4LVBhcnNlLXN1Y2Nl
c3NpdmUtVHJhY2tzLWVsZW1lbnRzLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMg
MGU2MDA3NmEzOTBmZDNlZjUzZDM1MDk0MGIyYzY5NWZmN2JiZTAwOCAodG8gYmUgc2hpcHBlZCBp
biAxLjE0LjQpIC0tPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAxMC1t
YXRyb3NrYWRlbXV4LUVtaXQtbm8tbW9yZS1wYWRzLWFmdGVyLXBhcnNpbmctVHJhY2tzLnBhdGNo
IiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgN2NlZWZlYzcxNDEwNjliNGFkZjQ0NTFhODc0
NzY2Zjg3NjBjNjZkNiAodG8gYmUgc2hpcHBlZCBpbiAxLjE1LjEpIC0tPgogICAgIDwvYnJhbmNo
PgogICA8L2F1dG90b29scz4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtZ29vZC0wMDEwLW1hdHJvc2thZGVtdXgtRW1pdC1uby1tb3JlLXBhZHMtYWZ0
ZXItcGFyc2luZy1UcmFja3MucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMTAtbWF0cm9za2FkZW11eC1FbWl0LW5vLW1vcmUtcGFkcy1hZnRlci1wYXJz
aW5nLVRyYWNrcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTVmNzA2YWM5MTEwYTc5OWU4MGVlOTgwMDYy
YTBmYTdkMWFkNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtZ29vZC0wMDEwLW1hdHJvc2thZGVtdXgtRW1pdC1uby1tb3JlLXBhZHMtYWZ0
ZXItcGFyc2luZy1UcmFja3MucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbSA3Y2VlZmVjNzE0
MTA2OWI0YWRmNDQ1MWE4NzQ3NjZmODc2MGM2NmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor
RnJvbTogPT9VVEYtOD9xP0FsaWNpYT0yMEJveWE9MjBHYXJjPUMzPUFEYT89IDxhYm95YUBpZ2Fs
aWEuY29tPgorRGF0ZTogRnJpLCAyMSBTZXAgMjAxOCAyMjoyNDowMiArMDIwMAorU3ViamVjdDog
W1BBVENIXSBtYXRyb3NrYWRlbXV4OiBFbWl0IG5vLW1vcmUtcGFkcyBhZnRlciBwYXJzaW5nIFRy
YWNrcworCitDdXJyZW50bHkgbWF0cm9za2FkZW11eCBkb2VzIG5vdCBlbWl0IG5vLW1vcmUtcGFk
cyB1bnRpbCB0aGUgZmlyc3QKK0NsdXN0ZXIgaXMgcGFyc2VkLCBldmVuIHRob3VnaCB0aGUgVHJh
Y2tzIGhhdmUgYWxyZWFkeSBiZWVuIHBhcnNlZCBhbmQKK2Zyb20gdGhhdCBwb2ludCBvbiB0aGVy
ZSBjYW4gYmUgbm8gbW9yZSB0cmFja3MuCisKK1RoaXMgaXMgaW1wb3J0YW50IGluIE1TRSBiZWNh
dXNlIHRoZSBicm93c2VyIG5lZWRzIHRvIGtub3cgd2hlbiB0aGUgTVNFCitpbml0aWFsaXphdGlv
biBzZWdtZW50IGhhcyBiZWVuIGNvbXBsZXRlbHkgcGFyc2VkIHNvIHRoYXQgaXQgY2FuIGV4cG9z
ZQordGhlIHRyYWNrcyB0byB0aGUgdXNlci4gU29tZSBhcHBsaWNhdGlvbnMgZGVwZW5kIG9uIHRo
aXMgYmVlbiBkb25lCitiZWZvcmUgdGhleSBmZWVkIGZyYW1lcyB0byB0aGUgZGVtdXhlci4KKwor
QXMgYSBjb25zZXF1ZW5jZSwgaGlzdG9yaWNhbGx5IFdlYktpdCBoYXMgcmVsaWVkIG9uIGhhY2tz
IHN1Y2ggYXMKK2xpc3RlbmluZyB0byB0aGUgYHBhZC1hZGRlZGAgZXZlbnQsIHdoaWNoIG1hZGUg
aW1wb3NzaWJsZSB0byBzdXBwb3J0CittdWx0aXBsZSB0cmFja3MgaW4gdGhlIHNhbWUgZmlsZS4g
TGV0J3MgZml4IHRoYXQuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcxODcKKy0tLQorIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jIHwgNCArKy0t
CisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlm
ZiAtLWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jIGIvZ3N0L21hdHJvc2thL21h
dHJvc2thLWRlbXV4LmMKK2luZGV4IDc3MTc2ZmI2Mi4uNjgzMzgwYmJmIDEwMDY0NAorLS0tIGEv
Z3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKKysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3Nr
YS1kZW11eC5jCitAQCAtMzEyOCw2ICszMTI4LDggQEAgZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNl
X3RyYWNrcyAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBHc3RFYm1sUmVhZCAqIGVibWwpCisg
ICBERUJVR19FTEVNRU5UX1NUT1AgKGRlbXV4LCBlYm1sLCAiVHJhY2tzIiwgcmV0KTsKKyAKKyAg
IGRlbXV4LT50cmFja3NfcGFyc2VkID0gVFJVRTsKKysgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4
LCAic2lnbmFsaW5nIG5vIG1vcmUgcGFkcyIpOworKyAgZ3N0X2VsZW1lbnRfbm9fbW9yZV9wYWRz
IChHU1RfRUxFTUVOVCAoZGVtdXgpKTsKKyAKKyAgIHJldHVybiByZXQ7CisgfQorQEAgLTUxOTYs
OCArNTE5OCw2IEBAIGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pZCAoR3N0TWF0cm9za2FEZW11
eCAqIGRlbXV4LCBndWludDMyIGlkLAorICAgICAgICAgICAgICAgZGVtdXgtPmNvbW1vbi5vZmZz
ZXQgPSBkZW11eC0+Zmlyc3RfY2x1c3Rlcl9vZmZzZXQ7CisgICAgICAgICAgICAgfQorIAorLSAg
ICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAic2lnbmFsaW5nIG5vIG1vcmUgcGFk
cyIpOworLSAgICAgICAgICAgIGdzdF9lbGVtZW50X25vX21vcmVfcGFkcyAoR1NUX0VMRU1FTlQg
KGRlbXV4KSk7CisgICAgICAgICAgICAgLyogc2VuZCBpbml0aWFsIHNlZ21lbnQgLSB3ZSB3YWl0
IHRpbGwgd2Uga25vdyB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICBpbmNvbWluZyB0aW1lc3Rh
bXAsIHNvIHdlIGNhbiBwcm9wZXJseSBzZXQgdGhlIHN0YXJ0IG9mCisgICAgICAgICAgICAgICAg
dGhlIHNlZ21lbnQuICovCistLSAKKzIuMTcuMQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350647</attachid>
            <date>2018-09-24 09:40:58 -0700</date>
            <delta_ts>2018-09-24 09:59:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180924184056.patch</filename>
            <type>text/plain</type>
            <size>15103</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIwMmJiMTdlZDVmYjAx
NmMzZjg0NmI2MDg2ZGFmZjllODFlZjZmNi4uYTg1MzIwMDI2YjEzMzk5ZWMyYTcwNTcxNzZkYmM5
YjI0OTNiN2ZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFB1bGwgZGVtdXhlZCBzYW1wbGVzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gsIG9ubHkgdGhl
IG5vdGlmaWNhdGlvbnMgb2YgIm5ldyBzYW1wbGVzIGF2YWlsYWJsZSIKKyAgICAgICAgKGFwcHNp
bmstbmV3LXNhbXBsZSBidXMgbWVzc2FnZXMpIHRyYXZlbCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhy
ZWFkIHRvCisgICAgICAgIHRoZSBtYWluIHRocmVhZCB0aHJvdWdoIHRoZSBidXMgYW5kIHRoZSBt
YWluIHRocmVhZCBpcyB0aGUgcmVzcG9uc2libGUKKyAgICAgICAgb2YgcHVsbGluZyBhcyBtYW55
IHNhbXBsZXMgYXMgaXQgY2FuIGZyb20gYXBwc2luay4gQmVmb3JlLCB0aGUgc2FtcGxlcworICAg
ICAgICB3ZXJlIHB1bGxlZCBmcm9tIGFwcHNpbmsgaW4gdGhlIG5vbi1tYWluIHRocmVhZCBhbmQg
dHJhdmVsZWQgdG8gdGhlCisgICAgICAgIG1haW4gdGhyZWFkIHRocm91Z2ggdGhlIGJ1cyBvbmUg
Ynkgb25lLgorCisgICAgICAgIFRoaXMgcmVkdWNlcyBkcmFzdGljYWxseSB0aGUgYW1vdW50IG9m
IGNvbnRleHQgc3dpdGNoZXMgYW5kIHdhaXRpbmcKKyAgICAgICAgdGltZSBpbiB0aGUgc3RyZWFt
aW5nIHRocmVhZCwgcmVzdWx0aW5nIGluIGEgbm90aWNlYWJsZSBwZXJmb3JtYW5jZQorICAgICAg
ICBpbXByb3ZlbWVudC4KKworICAgICAgICBUaGlzIGZpeGVzIHN0dXR0ZXIgd2hpbGUgbG9hZGlu
ZyBZb3VUdWJlIHZpZGVvcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBs
ZUdTdHJlYW1lcjo6TWVkaWFTYW1wbGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwZW5kUGlwZWxpbmU6OkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGVuZFBpcGVsaW5lOjp+QXBwZW5kUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5k
UGlwZWxpbmU6OmNsZWFyUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQ
aXBlbGluZTo6aGFuZGxlQXBwbGljYXRpb25NZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVu
ZFBpcGVsaW5lOjpjb25zdW1lQXBwU2lua0F2YWlsYWJsZVNhbXBsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kUGlwZWxpbmU6OmhhbmRsZU5ld0FwcHNpbmtTYW1wbGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaDoKKwogMjAxOC0wOS0y
NCAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01T
RV1bR1N0cmVhbWVyXSBVc2Ugbm8tbW9yZS1wYWRzIGV2ZW50IGZvciBub3RpY2luZyBpbml0aWFs
aXphdGlvbiBzZWdtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHAKaW5k
ZXggYjgxMGU3OGRhODJkMWM2ZGJlOWVhNGIzZmFmMGFkODFlYTA5NjNmNy4uMzAzMzRhMWY3ZjQx
OGVmN2M3N2VhYzQ2ZTViODgxMTVmNTU2MWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuY3BwCkBAIC0zNiw4ICszNiw3IEBAIE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpNZWRp
YVNhbXBsZUdTdHJlYW1lcihHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEZsCiB7
CiAgICAgQVNTRVJUKHNhbXBsZSk7CiAgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxl
X2dldF9idWZmZXIoc2FtcGxlLmdldCgpKTsKLSAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0
dXJuOworICAgIFJFTEVBU0VfQVNTRVJUKGJ1ZmZlcik7CiAKICAgICBhdXRvIGNyZWF0ZU1lZGlh
VGltZSA9CiAgICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBNZWRpYVRpbWUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9B
cHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA4ZWU5NWMzZWQ3OTZmMzljZmJiZDY0
ODVlZDE4ZDhjOWExYWZjNDdjLi5lNmQ3YzdiYWY0MTllMGJlYWI4N2YzNmM1M2Y0MDRkYWZhYzg0
M2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtMTA5LDYgKzEwOSw3
IEBAIEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8TWVkaWFTb3VyY2VDbGllbnRH
U3RyZWFtZXJNU0U+IG1lZGlhU291cmNlQ2xpCiAgICAgLCBtX3NvdXJjZUJ1ZmZlclByaXZhdGUo
c291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSkKICAgICAsIG1fcGxheWVyUHJpdmF0ZSgmcGxheWVy
UHJpdmF0ZSkKICAgICAsIG1faWQoMCkKKyAgICAsIG1fd2FzQnVzQWxyZWFkeU5vdGlmaWVkT2ZB
dmFpbGFibGVTYW1wbGVzKGZhbHNlKQogICAgICwgbV9hcHBzcmNBdExlYXN0QUJ1ZmZlckxlZnQo
ZmFsc2UpCiAgICAgLCBtX2FwcHNyY05lZWREYXRhUmVjZWl2ZWQoZmFsc2UpCiAgICAgLCBtX2Fw
cHNyY0RhdGFMZWF2aW5nUHJvYmVJZCgwKQpAQCAtMTkwLDExICsxOTEsNyBAQCBBcHBlbmRQaXBl
bGluZTo6fkFwcGVuZFBpcGVsaW5lKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQo
KSk7CiAKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7
Ci0gICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpJbnZhbGlkKTsKLSAgICAgICAg
bV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgfQorICAgIHNldEFwcGVuZFN0
YXRlKEFwcGVuZFN0YXRlOjpJbnZhbGlkKTsKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9wYWRBZGRSZW1vdmVMb2NrKTsKQEAgLTI1NSwxNSArMjUyLDkgQEAgdm9pZCBBcHBl
bmRQaXBlbGluZTo6Y2xlYXJQbGF5ZXJQcml2YXRlKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5U
aHJlYWQoKSk7CiAgICAgR1NUX0RFQlVHKCJjbGVhbmluZyBwcml2YXRlIHBsYXllciIpOwogCi0g
ICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1NhbXBsZUxvY2spOwotICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCBBcHBlbmRQaXBlbGluZSB3b24ndCBwcm9jZXNzIG1vcmUgZGF0
YSBmcm9tIG5vdyBvbiBhbmQKLSAgICAgICAgLy8gaW5zdHJ1Y3QgaGFuZGxlTmV3U2FtcGxlIHRv
IGFib3J0IGl0c2VsZiBmcm9tIG5vdyBvbiBhcyB3ZWxsLgotICAgICAgICBzZXRBcHBlbmRTdGF0
ZShBcHBlbmRTdGF0ZTo6SW52YWxpZCk7Ci0KLSAgICAgICAgLy8gQXdha2UgYW55IHBlbmRpbmcg
aGFuZGxlTmV3U2FtcGxlIG9wZXJhdGlvbiBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KLSAgICAg
ICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgfQorICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IEFwcGVuZFBpcGVsaW5lIHdvbid0IHByb2Nlc3MgbW9yZSBkYXRhIGZyb20gbm93
IG9uIGFuZAorICAgIC8vIGluc3RydWN0IGhhbmRsZU5ld1NhbXBsZSB0byBhYm9ydCBpdHNlbGYg
ZnJvbSBub3cgb24gYXMgd2VsbC4KKyAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52
YWxpZCk7CiAKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGFkQWRkUmVtb3Zl
TG9jayk7CkBAIC0zMTgsMTAgKzMwOSw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFw
cGxpY2F0aW9uTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIH0KIAogICAgIGlmIChn
c3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFwcHNpbmstbmV3LXNhbXBsZSIpKSB7
Ci0gICAgICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBuZXdTYW1wbGU7Ci0gICAgICAgIGdzdF9zdHJ1
Y3R1cmVfZ2V0KHN0cnVjdHVyZSwgIm5ldy1zYW1wbGUiLCBHU1RfVFlQRV9TQU1QTEUsICZuZXdT
YW1wbGUub3V0UHRyKCksIG51bGxwdHIpOwotCi0gICAgICAgIGFwcHNpbmtOZXdTYW1wbGUobmV3
U2FtcGxlLmdldCgpKTsKKyAgICAgICAgbV93YXNCdXNBbHJlYWR5Tm90aWZpZWRPZkF2YWlsYWJs
ZVNhbXBsZXMuY2xlYXIoKTsKKyAgICAgICAgY29uc3VtZUFwcHNpbmtBdmFpbGFibGVTYW1wbGVz
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY0MCw1OCArNjI5LDQ4IEBAIHZvaWQg
QXBwZW5kUGlwZWxpbmU6OmNoZWNrRW5kT2ZBcHBlbmQoKQogICAgIH0KIH0KIAotdm9pZCBBcHBl
bmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSkKK3ZvaWQgQXBw
ZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+JiYgc2FtcGxl
KQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIHsKLSAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVMb2NrKTsKLQotICAgICAgICAvLyBJZ25vcmUg
c2FtcGxlcyBpZiB3ZSdyZSBub3QgZXhwZWN0aW5nIHRoZW0uIFJlZnVzZSBwcm9jZXNzaW5nIGlm
IHdlJ3JlIGluIEludmFsaWQgc3RhdGUuCi0gICAgICAgIGlmIChtX2FwcGVuZFN0YXRlICE9IEFw
cGVuZFN0YXRlOjpPbmdvaW5nICYmIG1fYXBwZW5kU3RhdGUgIT0gQXBwZW5kU3RhdGU6OlNhbXBs
aW5nKSB7Ci0gICAgICAgICAgICBHU1RfV0FSTklORygiVW5leHBlY3RlZCBzYW1wbGUsIGFwcGVu
ZFN0YXRlPSVzIiwgZHVtcEFwcGVuZFN0YXRlKG1fYXBwZW5kU3RhdGUpKTsKLSAgICAgICAgICAg
IC8vIEZJWE1FOiBSZXR1cm4gRVJST1IgYW5kIGZpbmQgYSBtb3JlIHJvYnVzdCB3YXkgdG8gZGV0
ZWN0IHRoYXQgYWxsIHRoZQotICAgICAgICAgICAgLy8gZGF0YSBoYXMgYmVlbiBwcm9jZXNzZWQs
IHNvIHdlIGRvbid0IG5lZWQgdG8gcmVzb3J0IHRvIHRoZXNlIGhhY2tzLgotICAgICAgICAgICAg
Ly8gQWxsIGluIGFsbCwgcmV0dXJuIE9LLCBldmVuIGlmIGl0J3Mgbm90IHRoZSBwcm9wZXIgdGhp
bmcgdG8gZG8uIFdlIGRvbid0IHdhbnQgdG8gYnJlYWsgdGhlIGRlbXV4ZXIuCi0gICAgICAgICAg
ICBtX2Zsb3dSZXR1cm4gPSBHU1RfRkxPV19PSzsKLSAgICAgICAgICAgIG1fbmV3U2FtcGxlQ29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAg
Ly8gSWdub3JlIHNhbXBsZXMgaWYgd2UncmUgbm90IGV4cGVjdGluZyB0aGVtLiBSZWZ1c2UgcHJv
Y2Vzc2luZyBpZiB3ZSdyZSBpbiBJbnZhbGlkIHN0YXRlLgorICAgIGlmIChtX2FwcGVuZFN0YXRl
ICE9IEFwcGVuZFN0YXRlOjpPbmdvaW5nICYmIG1fYXBwZW5kU3RhdGUgIT0gQXBwZW5kU3RhdGU6
OlNhbXBsaW5nKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJVbmV4cGVjdGVkIHNhbXBsZSwgYXBw
ZW5kU3RhdGU9JXMiLCBkdW1wQXBwZW5kU3RhdGUobV9hcHBlbmRTdGF0ZSkpOworICAgICAgICAv
LyBGSVhNRTogUmV0dXJuIEVSUk9SIGFuZCBmaW5kIGEgbW9yZSByb2J1c3Qgd2F5IHRvIGRldGVj
dCB0aGF0IGFsbCB0aGUKKyAgICAgICAgLy8gZGF0YSBoYXMgYmVlbiBwcm9jZXNzZWQsIHNvIHdl
IGRvbid0IG5lZWQgdG8gcmVzb3J0IHRvIHRoZXNlIGhhY2tzLgorICAgICAgICByZXR1cm47Cisg
ICAgfQogCi0gICAgICAgIFJlZlB0cjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4gbWVkaWFTYW1wbGUg
PSBXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlKHNhbXBsZSwgbV9wcmVzZW50
YXRpb25TaXplLCB0cmFja0lkKCkpOwotCi0gICAgICAgIEdTVF9UUkFDRSgiYXBwZW5kOiB0cmFj
a0lkPSVzIFBUUz0lcyBEVFM9JXMgRFVSPSVzIHByZXNlbnRhdGlvblNpemU9JS4wZnglLjBmIiwK
LSAgICAgICAgICAgIG1lZGlhU2FtcGxlLT50cmFja0lEKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPmRlY29kZVRpbWUoKS50
b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+ZHVyYXRp
b24oKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBsZS0+
cHJlc2VudGF0aW9uU2l6ZSgpLndpZHRoKCksIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25TaXpl
KCkuaGVpZ2h0KCkpOwotCi0gICAgICAgIC8vIElmIHdlJ3JlIGJleW9uZCB0aGUgZHVyYXRpb24s
IGlnbm9yZSB0aGlzIHNhbXBsZSBhbmQgdGhlIHJlbWFpbmluZyBvbmVzLgotICAgICAgICBNZWRp
YVRpbWUgZHVyYXRpb24gPSBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpOwotICAgICAg
ICBpZiAoZHVyYXRpb24uaXNWYWxpZCgpICYmICFkdXJhdGlvbi5pbmRlZmluaXRlVGltZSgpICYm
IG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkgPiBkdXJhdGlvbikgewotICAgICAgICAg
ICAgR1NUX0RFQlVHKCJEZXRlY3RlZCBzYW1wbGUgKCVmKSBiZXlvbmQgdGhlIGR1cmF0aW9uICgl
ZiksIGRlY2xhcmluZyBMYXN0U2FtcGxlIiwgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUo
KS50b0Zsb2F0KCksIGR1cmF0aW9uLnRvRmxvYXQoKSk7Ci0gICAgICAgICAgICBzZXRBcHBlbmRT
dGF0ZShBcHBlbmRTdGF0ZTo6TGFzdFNhbXBsZSk7Ci0gICAgICAgICAgICBtX2Zsb3dSZXR1cm4g
PSBHU1RfRkxPV19PSzsKLSAgICAgICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9u
ZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgaWYgKEdfVU5MSUtFTFko
IWdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpKSkgeworICAgICAgICBHU1RfV0FS
TklORygiUmVjZWl2ZWQgc2FtcGxlIHdpdGhvdXQgYnVmZmVyIGZyb20gYXBwc2luay4iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgICAgICAvLyBBZGQgYSBnYXAgc2FtcGxlIGlmIGEg
Z2FwIGlzIGRldGVjdGVkIGJlZm9yZSB0aGUgZmlyc3Qgc2FtcGxlLgotICAgICAgICBpZiAobWVk
aWFTYW1wbGUtPmRlY29kZVRpbWUoKSA9PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkKLSAgICAgICAg
ICAgICYmIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkgPiBNZWRpYVRpbWU6Onplcm9U
aW1lKCkKLSAgICAgICAgICAgICYmIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkgPD0g
TWVkaWFUaW1lKDEsIDEwKSkgewotICAgICAgICAgICAgR1NUX0RFQlVHKCJBZGRpbmcgZ2FwIG9m
ZnNldCIpOwotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPmFwcGx5UHRzT2Zmc2V0KE1lZGlhVGlt
ZTo6emVyb1RpbWUoKSk7Ci0gICAgICAgIH0KKyAgICBSZWZQdHI8TWVkaWFTYW1wbGVHU3RyZWFt
ZXI+IG1lZGlhU2FtcGxlID0gV2ViQ29yZTo6TWVkaWFTYW1wbGVHU3RyZWFtZXI6OmNyZWF0ZShX
VEZNb3ZlKHNhbXBsZSksIG1fcHJlc2VudGF0aW9uU2l6ZSwgdHJhY2tJZCgpKTsKKworICAgIEdT
VF9UUkFDRSgiYXBwZW5kOiB0cmFja0lkPSVzIFBUUz0lcyBEVFM9JXMgRFVSPSVzIHByZXNlbnRh
dGlvblNpemU9JS4wZnglLjBmIiwKKyAgICAgICAgbWVkaWFTYW1wbGUtPnRyYWNrSUQoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGlt
ZSgpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUtPmRlY29k
ZVRpbWUoKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlhU2FtcGxlLT5k
dXJhdGlvbigpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUt
PnByZXNlbnRhdGlvblNpemUoKS53aWR0aCgpLCBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uU2l6
ZSgpLmhlaWdodCgpKTsKKworICAgIC8vIElmIHdlJ3JlIGJleW9uZCB0aGUgZHVyYXRpb24sIGln
bm9yZSB0aGlzIHNhbXBsZSBhbmQgdGhlIHJlbWFpbmluZyBvbmVzLgorICAgIE1lZGlhVGltZSBk
dXJhdGlvbiA9IG1fbWVkaWFTb3VyY2VDbGllbnQtPmR1cmF0aW9uKCk7CisgICAgaWYgKGR1cmF0
aW9uLmlzVmFsaWQoKSAmJiAhZHVyYXRpb24uaW5kZWZpbml0ZVRpbWUoKSAmJiBtZWRpYVNhbXBs
ZS0+cHJlc2VudGF0aW9uVGltZSgpID4gZHVyYXRpb24pIHsKKyAgICAgICAgR1NUX0RFQlVHKCJE
ZXRlY3RlZCBzYW1wbGUgKCVmKSBiZXlvbmQgdGhlIGR1cmF0aW9uICglZiksIGRlY2xhcmluZyBM
YXN0U2FtcGxlIiwgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKS50b0Zsb2F0KCksIGR1
cmF0aW9uLnRvRmxvYXQoKSk7CisgICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpM
YXN0U2FtcGxlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgICAgICBtX3NvdXJjZUJ1
ZmZlclByaXZhdGUtPmRpZFJlY2VpdmVTYW1wbGUoKm1lZGlhU2FtcGxlKTsKLSAgICAgICAgc2V0
QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKLSAgICAgICAgbV9mbG93UmV0dXJu
ID0gR1NUX0ZMT1dfT0s7Ci0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgp
OworICAgIC8vIEFkZCBhIGdhcCBzYW1wbGUgaWYgYSBnYXAgaXMgZGV0ZWN0ZWQgYmVmb3JlIHRo
ZSBmaXJzdCBzYW1wbGUuCisgICAgaWYgKG1lZGlhU2FtcGxlLT5kZWNvZGVUaW1lKCkgPT0gTWVk
aWFUaW1lOjp6ZXJvVGltZSgpICYmIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkgPiBN
ZWRpYVRpbWU6Onplcm9UaW1lKCkgJiYgbWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA8
PSBNZWRpYVRpbWUoMSwgMTApKSB7CisgICAgICAgIEdTVF9ERUJVRygiQWRkaW5nIGdhcCBvZmZz
ZXQiKTsKKyAgICAgICAgbWVkaWFTYW1wbGUtPmFwcGx5UHRzT2Zmc2V0KE1lZGlhVGltZTo6emVy
b1RpbWUoKSk7CiAgICAgfQogCi0gICAgY2hlY2tFbmRPZkFwcGVuZCgpOworICAgIG1fc291cmNl
QnVmZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOworICAgIHNldEFw
cGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpTYW1wbGluZyk7CiB9CiAKIHZvaWQgQXBwZW5kUGlwZWxp
bmU6OmFwcHNpbmtFT1MoKQpAQCAtNzU3LDYgKzczNiwyMyBAQCBBdG9taWNTdHJpbmcgQXBwZW5k
UGlwZWxpbmU6OnRyYWNrSWQoKQogICAgIHJldHVybiBtX3RyYWNrLT5pZCgpOwogfQogCit2b2lk
IEFwcGVuZFBpcGVsaW5lOjpjb25zdW1lQXBwc2lua0F2YWlsYWJsZVNhbXBsZXMoKQoreworICAg
IEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBz
YW1wbGU7CisgICAgaW50IGJhdGNoZWRTYW1wbGVDb3VudCA9IDA7CisgICAgd2hpbGUgKChzYW1w
bGUgPSBhZG9wdEdSZWYoZ3N0X2FwcF9zaW5rX3RyeV9wdWxsX3NhbXBsZShHU1RfQVBQX1NJTkso
bV9hcHBzaW5rLmdldCgpKSwgMCkpKSkgeworICAgICAgICBhcHBzaW5rTmV3U2FtcGxlKFdURk1v
dmUoc2FtcGxlKSk7CisgICAgICAgIGJhdGNoZWRTYW1wbGVDb3VudCsrOworICAgIH0KKworICAg
IEdTVF9UUkFDRV9PQkpFQ1QodGhpcywgImJhdGNoZWRTYW1wbGVDb3VudCA9ICVkIiwgYmF0Y2hl
ZFNhbXBsZUNvdW50KTsKKworICAgIGlmIChiYXRjaGVkU2FtcGxlQ291bnQgPiAwKQorICAgICAg
ICBjaGVja0VuZE9mQXBwZW5kKCk7Cit9CisKIHZvaWQgQXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlw
ZWxpbmUoKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKQEAgLTc2NCwxMiAr
NzYwLDggQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6cmVzZXRQaXBlbGluZSgpCiAgICAgbV9hcHBz
cmNBdExlYXN0QUJ1ZmZlckxlZnQgPSBmYWxzZTsKICAgICBzZXRBcHBzcmNEYXRhTGVhdmluZ1By
b2JlKCk7CiAKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9j
ayk7Ci0gICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgICAgICBn
c3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGluZS5nZXQoKSwgR1NUX1NUQVRFX1JFQURZKTsK
LSAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksIG51bGxwdHIs
IG51bGxwdHIsIDApOwotICAgIH0KKyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGlu
ZS5nZXQoKSwgR1NUX1NUQVRFX1JFQURZKTsKKyAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGUobV9w
aXBlbGluZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgMCk7CiAKICNpZiAoIShMT0dfRElTQUJM
RUQgfHwgZGVmaW5lZChHU1RfRElTQUJMRV9HU1RfREVCVUcpKSkKICAgICB7CkBAIC04NTgsMjcg
Kzg1MCwxOSBAQCBHc3RGbG93UmV0dXJuIEFwcGVuZFBpcGVsaW5lOjpoYW5kbGVOZXdBcHBzaW5r
U2FtcGxlKEdzdEVsZW1lbnQqIGFwcHNpbmspCiB7CiAgICAgQVNTRVJUKCFXVEY6OmlzTWFpblRo
cmVhZCgpKTsKIAotICAgIC8vIEV2ZW4gaWYgd2UncmUgZGlzYWJsZWQsIGl0J3MgaW1wb3J0YW50
IHRvIHB1bGwgdGhlIHNhbXBsZSBvdXQgYW55d2F5IHRvCi0gICAgLy8gYXZvaWQgZGVhZGxvY2tz
IHdoZW4gY2hhbmdpbmcgdG8gR1NUX1NUQVRFX05VTEwgaGF2aW5nIGEgbm9uIGVtcHR5IGFwcHNp
bmsuCi0gICAgR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZSA9IGFkb3B0R1JlZihnc3RfYXBwX3Np
bmtfcHVsbF9zYW1wbGUoR1NUX0FQUF9TSU5LKGFwcHNpbmspKSk7Ci0gICAgTG9ja0hvbGRlciBs
b2NrZXIobV9uZXdTYW1wbGVMb2NrKTsKLQogICAgIGlmICghbV9wbGF5ZXJQcml2YXRlIHx8IG1f
YXBwZW5kU3RhdGUgPT0gQXBwZW5kU3RhdGU6OkludmFsaWQpIHsKICAgICAgICAgR1NUX1dBUk5J
TkcoIkFwcGVuZFBpcGVsaW5lIGhhcyBiZWVuIGRpc2FibGVkLCBpZ25vcmluZyB0aGlzIHNhbXBs
ZSIpOwogICAgICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7CiAgICAgfQogCi0gICAgR3N0U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ldygiYXBwc2luay1uZXctc2FtcGxl
IiwgIm5ldy1zYW1wbGUiLCBHU1RfVFlQRV9TQU1QTEUsIHNhbXBsZS5nZXQoKSwgbnVsbHB0cik7
Ci0gICAgR3N0TWVzc2FnZSogbWVzc2FnZSA9IGdzdF9tZXNzYWdlX25ld19hcHBsaWNhdGlvbihH
U1RfT0JKRUNUKGFwcHNpbmspLCBzdHJ1Y3R1cmUpOwotICAgIGdzdF9idXNfcG9zdChtX2J1cy5n
ZXQoKSwgbWVzc2FnZSk7Ci0gICAgR1NUX1RSQUNFKCJhcHBzaW5rLW5ldy1zYW1wbGUgbWVzc2Fn
ZSBwb3N0ZWQgdG8gYnVzIik7Ci0KLSAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi53YWl0KG1fbmV3
U2FtcGxlTG9jayk7Ci0gICAgLy8gV2UndmUgYmVlbiBhd2FrZW4gYmVjYXVzZSB0aGUgc2FtcGxl
IHdhcyBwcm9jZXNzZWQgb3IgYmVjYXVzZSBvZgotICAgIC8vIGFuIGV4Y2VwdGlvbmFsIGNvbmRp
dGlvbiAoZW50ZXJlZCBpbiBJbnZhbGlkIHN0YXRlLCBkZXN0cnVjdG9yLCBldGMuKS4KLSAgICAv
LyBXZSBjYW4ndCByZWxpYWJseSBkZWxldGUgaW5mbyBoZXJlLCBhcHBlbmRQaXBlbGluZUFwcHNp
bmtOZXdTYW1wbGVNYWluVGhyZWFkIHdpbGwgZG8gaXQuCisgICAgaWYgKCFtX3dhc0J1c0FscmVh
ZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlcy50ZXN0X2FuZF9zZXQoKSkgeworICAgICAgICBH
c3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCJhcHBzaW5r
LW5ldy1zYW1wbGUiKTsKKyAgICAgICAgR3N0TWVzc2FnZSogbWVzc2FnZSA9IGdzdF9tZXNzYWdl
X25ld19hcHBsaWNhdGlvbihHU1RfT0JKRUNUKGFwcHNpbmspLCBzdHJ1Y3R1cmUpOworICAgICAg
ICBnc3RfYnVzX3Bvc3QobV9idXMuZ2V0KCksIG1lc3NhZ2UpOworICAgICAgICBHU1RfVFJBQ0Uo
ImFwcHNpbmstbmV3LXNhbXBsZSBtZXNzYWdlIHBvc3RlZCB0byBidXMiKTsKKyAgICB9CiAKLSAg
ICByZXR1cm4gbV9mbG93UmV0dXJuOworICAgIHJldHVybiBHU1RfRkxPV19PSzsKIH0KIAogc3Rh
dGljIEdSZWZQdHI8R3N0RWxlbWVudD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaAppbmRl
eCA4NzY4MDdiYTkwZDNkNjJlYmM4ZmRjNjUwNzVkOGM4M2NhZGI3NzNlLi4zNjYwY2I2YzE1YWI3
NTc5ZWFhMTI4MzdkY2JkZmE1ZDk2ODc3MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGlu
ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFt
ZXJNU0UuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgiCiAKKyNp
bmNsdWRlIDxhdG9taWM+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KIApAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGFrZXMgb3duZXJz
aGlwIG9mIGNhcHMuCiAgICAgdm9pZCBwYXJzZURlbXV4ZXJTcmNQYWRDYXBzKEdzdENhcHMqKTsK
ICAgICB2b2lkIGFwcHNpbmtDYXBzQ2hhbmdlZCgpOwotICAgIHZvaWQgYXBwc2lua05ld1NhbXBs
ZShHc3RTYW1wbGUqKTsKKyAgICB2b2lkIGFwcHNpbmtOZXdTYW1wbGUoR1JlZlB0cjxHc3RTYW1w
bGU+JiYpOwogICAgIHZvaWQgYXBwc2lua0VPUygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudCgpOwogICAgIEF0b21pY1N0cmluZyB0cmFja0lkKCk7CkBAIC05Niw2
ICs5Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBcHBzcmNEYXRhTGVhdmluZ1Byb2JlKCk7
CiAgICAgdm9pZCBkZW11eGVyTm9Nb3JlUGFkcygpOwogCisgICAgdm9pZCBjb25zdW1lQXBwc2lu
a0F2YWlsYWJsZVNhbXBsZXMoKTsKKwogICAgIFJlZjxNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1l
ck1TRT4gbV9tZWRpYVNvdXJjZUNsaWVudDsKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcj4gbV9zb3VyY2VCdWZmZXJQcml2YXRlOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lck1TRSogbV9wbGF5ZXJQcml2YXRlOwpAQCAtMTA1LDggKzEwOCw2IEBAIHByaXZhdGU6
CiAKICAgICBNZWRpYVRpbWUgbV9pbml0aWFsRHVyYXRpb247CiAKLSAgICBHc3RGbG93UmV0dXJu
IG1fZmxvd1JldHVybjsKLQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gbV9waXBlbGluZTsKICAg
ICBHUmVmUHRyPEdzdEJ1cz4gbV9idXM7CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2FwcHNy
YzsKQEAgLTExNSw4ICsxMTYsMTMgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZGVtdXhlciBoYXMg
b25lIHNyYyBzdHJlYW0gb25seSwgc28gb25seSBvbmUgYXBwc2luayBpcyBuZWVkZWQgYW5kIGxp
bmtlZCB0byBpdC4KICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fYXBwc2luazsKIAotICAgIExv
Y2sgbV9uZXdTYW1wbGVMb2NrOwotICAgIENvbmRpdGlvbiBtX25ld1NhbXBsZUNvbmRpdGlvbjsK
KyAgICAvLyBVc2VkIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG5vdGlmaWNhdGlvbnMgcGVyIHNhbXBs
ZS4KKyAgICAvLyBJdCBpcyByZWFkIGFuZCB3cml0dGVuIGZyb20gdGhlIHN0cmVhbWluZyB0aHJl
YWQgYW5kIHdyaXR0ZW4gZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisgICAgLy8gVGhlIG1haW4gdGhy
ZWFkIG11c3Qgc2V0IGl0IHRvIGZhbHNlIGJlZm9yZSBhY3R1YWxseSBwdWxsaW5nIHNhbXBsZXMu
CisgICAgLy8gVGhpcyBzdHJhdGVneSBlbnN1cmVzIHRoYXQgYXQgYW55IHRpbWUsIHRoZXJlIGFy
ZSBhdCBtb3N0IHR3byBub3RpZmljYXRpb25zIGluIHRoZSBidXMKKyAgICAvLyBxdWV1ZSwgaW5z
dGVhZCBvZiBpdCBncm93aW5nIHVuYm91bmRlZC4KKyAgICBzdGQ6OmF0b21pY19mbGFnIG1fd2Fz
QnVzQWxyZWFkeU5vdGlmaWVkT2ZBdmFpbGFibGVTYW1wbGVzOworCiAgICAgTG9jayBtX3BhZEFk
ZFJlbW92ZUxvY2s7CiAgICAgQ29uZGl0aW9uIG1fcGFkQWRkUmVtb3ZlQ29uZGl0aW9uOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350649</attachid>
            <date>2018-09-24 09:59:18 -0700</date>
            <delta_ts>2018-10-01 12:29:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20180924185917.patch</filename>
            <type>text/plain</type>
            <size>15110</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIwMmJiMTdlZDVmYjAx
NmMzZjg0NmI2MDg2ZGFmZjllODFlZjZmNi4uOTQyYzcyNzdlMmQxNDkwNGEwZDYzZmU1ZjYyM2Ux
ZDI4NmVmMjY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTA5LTIxICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFB1bGwgZGVtdXhlZCBzYW1wbGVzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFhhYmllciBSb2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAgIEFmdGVyIHRoaXMgcGF0Y2gs
IG9ubHkgdGhlIG5vdGlmaWNhdGlvbnMgb2YgIm5ldyBzYW1wbGVzIGF2YWlsYWJsZSIKKyAgICAg
ICAgKGFwcHNpbmstbmV3LXNhbXBsZSBidXMgbWVzc2FnZXMpIHRyYXZlbCBmcm9tIHRoZSBzdHJl
YW1pbmcgdGhyZWFkIHRvCisgICAgICAgIHRoZSBtYWluIHRocmVhZCB0aHJvdWdoIHRoZSBidXMg
YW5kIHRoZSBtYWluIHRocmVhZCBpcyB0aGUgcmVzcG9uc2libGUKKyAgICAgICAgb2YgcHVsbGlu
ZyBhcyBtYW55IHNhbXBsZXMgYXMgaXQgY2FuIGZyb20gYXBwc2luay4gQmVmb3JlLCB0aGUgc2Ft
cGxlcworICAgICAgICB3ZXJlIHB1bGxlZCBmcm9tIGFwcHNpbmsgaW4gdGhlIG5vbi1tYWluIHRo
cmVhZCBhbmQgdHJhdmVsZWQgdG8gdGhlCisgICAgICAgIG1haW4gdGhyZWFkIHRocm91Z2ggdGhl
IGJ1cyBvbmUgYnkgb25lLgorCisgICAgICAgIFRoaXMgcmVkdWNlcyBkcmFzdGljYWxseSB0aGUg
YW1vdW50IG9mIGNvbnRleHQgc3dpdGNoZXMgYW5kIHdhaXRpbmcKKyAgICAgICAgdGltZSBpbiB0
aGUgc3RyZWFtaW5nIHRocmVhZCwgcmVzdWx0aW5nIGluIGEgbm90aWNlYWJsZSBwZXJmb3JtYW5j
ZQorICAgICAgICBpbXByb3ZlbWVudC4KKworICAgICAgICBUaGlzIGZpeGVzIHN0dXR0ZXIgd2hp
bGUgbG9hZGluZyBZb3VUdWJlIHZpZGVvcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNhbXBsZUdTdHJlYW1lcjo6TWVkaWFTYW1wbGVHU3RyZWFtZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGVuZFBpcGVsaW5lOjp+QXBwZW5kUGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwZW5kUGlwZWxpbmU6OmNsZWFyUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmRQaXBlbGluZTo6aGFuZGxlQXBwbGljYXRpb25NZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZFBpcGVsaW5lOjpjb25zdW1lQXBwU2lua0F2YWlsYWJsZVNhbXBsZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlwZWxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZU5ld0FwcHNpbmtTYW1wbGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaDoKKwog
MjAxOC0wOS0yNCAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW01TRV1bR1N0cmVhbWVyXSBVc2Ugbm8tbW9yZS1wYWRzIGV2ZW50IGZvciBub3RpY2lu
ZyBpbml0aWFsaXphdGlvbiBzZWdtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1l
ci5jcHAKaW5kZXggYjgxMGU3OGRhODJkMWM2ZGJlOWVhNGIzZmFmMGFkODFlYTA5NjNmNy4uMzAz
MzRhMWY3ZjQxOGVmN2M3N2VhYzQ2ZTViODgxMTVmNTU2MWJhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTYW1wbGVHU3RyZWFtZXIuY3BwCkBAIC0zNiw4ICszNiw3IEBAIE1lZGlhU2FtcGxlR1N0cmVh
bWVyOjpNZWRpYVNhbXBsZUdTdHJlYW1lcihHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUsIGNv
bnN0IEZsCiB7CiAgICAgQVNTRVJUKHNhbXBsZSk7CiAgICAgR3N0QnVmZmVyKiBidWZmZXIgPSBn
c3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlLmdldCgpKTsKLSAgICBpZiAoIWJ1ZmZlcikKLSAg
ICAgICAgcmV0dXJuOworICAgIFJFTEVBU0VfQVNTRVJUKGJ1ZmZlcik7CiAKICAgICBhdXRvIGNy
ZWF0ZU1lZGlhVGltZSA9CiAgICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBNZWRpYVRp
bWUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCA4ZWU5NWMzZWQ3OTZm
MzljZmJiZDY0ODVlZDE4ZDhjOWExYWZjNDdjLi44ODdlM2Q1YjIxZDE3NjMwMzEyMzliNDU1YzVk
ZDQ1MzZhODdjODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtMTA5
LDYgKzEwOSw3IEBAIEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8TWVkaWFTb3Vy
Y2VDbGllbnRHU3RyZWFtZXJNU0U+IG1lZGlhU291cmNlQ2xpCiAgICAgLCBtX3NvdXJjZUJ1ZmZl
clByaXZhdGUoc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSkKICAgICAsIG1fcGxheWVyUHJpdmF0
ZSgmcGxheWVyUHJpdmF0ZSkKICAgICAsIG1faWQoMCkKKyAgICAsIG1fd2FzQnVzQWxyZWFkeU5v
dGlmaWVkT2ZBdmFpbGFibGVTYW1wbGVzKGZhbHNlKQogICAgICwgbV9hcHBzcmNBdExlYXN0QUJ1
ZmZlckxlZnQoZmFsc2UpCiAgICAgLCBtX2FwcHNyY05lZWREYXRhUmVjZWl2ZWQoZmFsc2UpCiAg
ICAgLCBtX2FwcHNyY0RhdGFMZWF2aW5nUHJvYmVJZCgwKQpAQCAtMTkwLDExICsxOTEsNyBAQCBB
cHBlbmRQaXBlbGluZTo6fkFwcGVuZFBpcGVsaW5lKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01h
aW5UaHJlYWQoKSk7CiAKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbmV3U2Ft
cGxlTG9jayk7Ci0gICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpJbnZhbGlkKTsK
LSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgfQorICAgIHNl
dEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpJbnZhbGlkKTsKIAogICAgIHsKICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9wYWRBZGRSZW1vdmVMb2NrKTsKQEAgLTI1NSwxNSArMjUyLDkgQEAg
dm9pZCBBcHBlbmRQaXBlbGluZTo6Y2xlYXJQbGF5ZXJQcml2YXRlKCkKICAgICBBU1NFUlQoV1RG
Ojppc01haW5UaHJlYWQoKSk7CiAgICAgR1NUX0RFQlVHKCJjbGVhbmluZyBwcml2YXRlIHBsYXll
ciIpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1NhbXBsZUxvY2sp
OwotICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBBcHBlbmRQaXBlbGluZSB3b24ndCBwcm9jZXNz
IG1vcmUgZGF0YSBmcm9tIG5vdyBvbiBhbmQKLSAgICAgICAgLy8gaW5zdHJ1Y3QgaGFuZGxlTmV3
U2FtcGxlIHRvIGFib3J0IGl0c2VsZiBmcm9tIG5vdyBvbiBhcyB3ZWxsLgotICAgICAgICBzZXRB
cHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6SW52YWxpZCk7Ci0KLSAgICAgICAgLy8gQXdha2UgYW55
IHBlbmRpbmcgaGFuZGxlTmV3U2FtcGxlIG9wZXJhdGlvbiBpbiB0aGUgc3RyZWFtaW5nIHRocmVh
ZC4KLSAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7Ci0gICAgfQorICAg
IC8vIE1ha2Ugc3VyZSB0aGF0IEFwcGVuZFBpcGVsaW5lIHdvbid0IHByb2Nlc3MgbW9yZSBkYXRh
IGZyb20gbm93IG9uIGFuZAorICAgIC8vIGluc3RydWN0IGhhbmRsZU5ld1NhbXBsZSB0byBhYm9y
dCBpdHNlbGYgZnJvbSBub3cgb24gYXMgd2VsbC4KKyAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRT
dGF0ZTo6SW52YWxpZCk7CiAKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcGFk
QWRkUmVtb3ZlTG9jayk7CkBAIC0zMTgsMTAgKzMwOSw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6
OmhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIH0KIAog
ICAgIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImFwcHNpbmstbmV3LXNh
bXBsZSIpKSB7Ci0gICAgICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBuZXdTYW1wbGU7Ci0gICAgICAg
IGdzdF9zdHJ1Y3R1cmVfZ2V0KHN0cnVjdHVyZSwgIm5ldy1zYW1wbGUiLCBHU1RfVFlQRV9TQU1Q
TEUsICZuZXdTYW1wbGUub3V0UHRyKCksIG51bGxwdHIpOwotCi0gICAgICAgIGFwcHNpbmtOZXdT
YW1wbGUobmV3U2FtcGxlLmdldCgpKTsKKyAgICAgICAgbV93YXNCdXNBbHJlYWR5Tm90aWZpZWRP
ZkF2YWlsYWJsZVNhbXBsZXMuY2xlYXIoKTsKKyAgICAgICAgY29uc3VtZUFwcHNpbmtBdmFpbGFi
bGVTYW1wbGVzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY0MCw1OCArNjI5LDQ4
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNoZWNrRW5kT2ZBcHBlbmQoKQogICAgIH0KIH0KIAot
dm9pZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSkK
K3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+
JiYgc2FtcGxlKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIHsK
LSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVMb2NrKTsKLQotICAgICAgICAv
LyBJZ25vcmUgc2FtcGxlcyBpZiB3ZSdyZSBub3QgZXhwZWN0aW5nIHRoZW0uIFJlZnVzZSBwcm9j
ZXNzaW5nIGlmIHdlJ3JlIGluIEludmFsaWQgc3RhdGUuCi0gICAgICAgIGlmIChtX2FwcGVuZFN0
YXRlICE9IEFwcGVuZFN0YXRlOjpPbmdvaW5nICYmIG1fYXBwZW5kU3RhdGUgIT0gQXBwZW5kU3Rh
dGU6OlNhbXBsaW5nKSB7Ci0gICAgICAgICAgICBHU1RfV0FSTklORygiVW5leHBlY3RlZCBzYW1w
bGUsIGFwcGVuZFN0YXRlPSVzIiwgZHVtcEFwcGVuZFN0YXRlKG1fYXBwZW5kU3RhdGUpKTsKLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBSZXR1cm4gRVJST1IgYW5kIGZpbmQgYSBtb3JlIHJvYnVzdCB3
YXkgdG8gZGV0ZWN0IHRoYXQgYWxsIHRoZQotICAgICAgICAgICAgLy8gZGF0YSBoYXMgYmVlbiBw
cm9jZXNzZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gcmVzb3J0IHRvIHRoZXNlIGhhY2tzLgotICAg
ICAgICAgICAgLy8gQWxsIGluIGFsbCwgcmV0dXJuIE9LLCBldmVuIGlmIGl0J3Mgbm90IHRoZSBw
cm9wZXIgdGhpbmcgdG8gZG8uIFdlIGRvbid0IHdhbnQgdG8gYnJlYWsgdGhlIGRlbXV4ZXIuCi0g
ICAgICAgICAgICBtX2Zsb3dSZXR1cm4gPSBHU1RfRkxPV19PSzsKLSAgICAgICAgICAgIG1fbmV3
U2FtcGxlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CisgICAgLy8gSWdub3JlIHNhbXBsZXMgaWYgd2UncmUgbm90IGV4cGVjdGluZyB0aGVtLiBS
ZWZ1c2UgcHJvY2Vzc2luZyBpZiB3ZSdyZSBpbiBJbnZhbGlkIHN0YXRlLgorICAgIGlmIChtX2Fw
cGVuZFN0YXRlICE9IEFwcGVuZFN0YXRlOjpPbmdvaW5nICYmIG1fYXBwZW5kU3RhdGUgIT0gQXBw
ZW5kU3RhdGU6OlNhbXBsaW5nKSB7CisgICAgICAgIEdTVF9XQVJOSU5HKCJVbmV4cGVjdGVkIHNh
bXBsZSwgYXBwZW5kU3RhdGU9JXMiLCBkdW1wQXBwZW5kU3RhdGUobV9hcHBlbmRTdGF0ZSkpOwor
ICAgICAgICAvLyBGSVhNRTogUmV0dXJuIEVSUk9SIGFuZCBmaW5kIGEgbW9yZSByb2J1c3Qgd2F5
IHRvIGRldGVjdCB0aGF0IGFsbCB0aGUKKyAgICAgICAgLy8gZGF0YSBoYXMgYmVlbiBwcm9jZXNz
ZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gcmVzb3J0IHRvIHRoZXNlIGhhY2tzLgorICAgICAgICBy
ZXR1cm47CisgICAgfQogCi0gICAgICAgIFJlZlB0cjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4gbWVk
aWFTYW1wbGUgPSBXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlKHNhbXBsZSwg
bV9wcmVzZW50YXRpb25TaXplLCB0cmFja0lkKCkpOwotCi0gICAgICAgIEdTVF9UUkFDRSgiYXBw
ZW5kOiB0cmFja0lkPSVzIFBUUz0lcyBEVFM9JXMgRFVSPSVzIHByZXNlbnRhdGlvblNpemU9JS4w
ZnglLjBmIiwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxlLT50cmFja0lEKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwKLSAgICAgICAgICAgIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCku
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgbWVkaWFTYW1wbGUtPmRlY29k
ZVRpbWUoKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRpYVNhbXBs
ZS0+ZHVyYXRpb24oKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICBtZWRp
YVNhbXBsZS0+cHJlc2VudGF0aW9uU2l6ZSgpLndpZHRoKCksIG1lZGlhU2FtcGxlLT5wcmVzZW50
YXRpb25TaXplKCkuaGVpZ2h0KCkpOwotCi0gICAgICAgIC8vIElmIHdlJ3JlIGJleW9uZCB0aGUg
ZHVyYXRpb24sIGlnbm9yZSB0aGlzIHNhbXBsZSBhbmQgdGhlIHJlbWFpbmluZyBvbmVzLgotICAg
ICAgICBNZWRpYVRpbWUgZHVyYXRpb24gPSBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigp
OwotICAgICAgICBpZiAoZHVyYXRpb24uaXNWYWxpZCgpICYmICFkdXJhdGlvbi5pbmRlZmluaXRl
VGltZSgpICYmIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkgPiBkdXJhdGlvbikgewot
ICAgICAgICAgICAgR1NUX0RFQlVHKCJEZXRlY3RlZCBzYW1wbGUgKCVmKSBiZXlvbmQgdGhlIGR1
cmF0aW9uICglZiksIGRlY2xhcmluZyBMYXN0U2FtcGxlIiwgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKS50b0Zsb2F0KCksIGR1cmF0aW9uLnRvRmxvYXQoKSk7Ci0gICAgICAgICAgICBz
ZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6TGFzdFNhbXBsZSk7Ci0gICAgICAgICAgICBtX2Zs
b3dSZXR1cm4gPSBHU1RfRkxPV19PSzsKLSAgICAgICAgICAgIG1fbmV3U2FtcGxlQ29uZGl0aW9u
Lm5vdGlmeU9uZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgaWYgKFVO
TElLRUxZKCFnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlLmdldCgpKSkpIHsKKyAgICAgICAg
R1NUX1dBUk5JTkcoIlJlY2VpdmVkIHNhbXBsZSB3aXRob3V0IGJ1ZmZlciBmcm9tIGFwcHNpbmsu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICAgICAgLy8gQWRkIGEgZ2FwIHNhbXBs
ZSBpZiBhIGdhcCBpcyBkZXRlY3RlZCBiZWZvcmUgdGhlIGZpcnN0IHNhbXBsZS4KLSAgICAgICAg
aWYgKG1lZGlhU2FtcGxlLT5kZWNvZGVUaW1lKCkgPT0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpCi0g
ICAgICAgICAgICAmJiBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpID4gTWVkaWFUaW1l
Ojp6ZXJvVGltZSgpCi0gICAgICAgICAgICAmJiBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGlt
ZSgpIDw9IE1lZGlhVGltZSgxLCAxMCkpIHsKLSAgICAgICAgICAgIEdTVF9ERUJVRygiQWRkaW5n
IGdhcCBvZmZzZXQiKTsKLSAgICAgICAgICAgIG1lZGlhU2FtcGxlLT5hcHBseVB0c09mZnNldChN
ZWRpYVRpbWU6Onplcm9UaW1lKCkpOwotICAgICAgICB9CisgICAgUmVmUHRyPE1lZGlhU2FtcGxl
R1N0cmVhbWVyPiBtZWRpYVNhbXBsZSA9IFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpj
cmVhdGUoV1RGTW92ZShzYW1wbGUpLCBtX3ByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQoKSk7CisK
KyAgICBHU1RfVFJBQ0UoImFwcGVuZDogdHJhY2tJZD0lcyBQVFM9JXMgRFRTPSVzIERVUj0lcyBw
cmVzZW50YXRpb25TaXplPSUuMGZ4JS4wZiIsCisgICAgICAgIG1lZGlhU2FtcGxlLT50cmFja0lE
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlhU2FtcGxl
LT5kZWNvZGVUaW1lKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBtZWRpYVNh
bXBsZS0+ZHVyYXRpb24oKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgIG1lZGlh
U2FtcGxlLT5wcmVzZW50YXRpb25TaXplKCkud2lkdGgoKSwgbWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblNpemUoKS5oZWlnaHQoKSk7CisKKyAgICAvLyBJZiB3ZSdyZSBiZXlvbmQgdGhlIGR1cmF0
aW9uLCBpZ25vcmUgdGhpcyBzYW1wbGUgYW5kIHRoZSByZW1haW5pbmcgb25lcy4KKyAgICBNZWRp
YVRpbWUgZHVyYXRpb24gPSBtX21lZGlhU291cmNlQ2xpZW50LT5kdXJhdGlvbigpOworICAgIGlm
IChkdXJhdGlvbi5pc1ZhbGlkKCkgJiYgIWR1cmF0aW9uLmluZGVmaW5pdGVUaW1lKCkgJiYgbWVk
aWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSA+IGR1cmF0aW9uKSB7CisgICAgICAgIEdTVF9E
RUJVRygiRGV0ZWN0ZWQgc2FtcGxlICglZikgYmV5b25kIHRoZSBkdXJhdGlvbiAoJWYpLCBkZWNs
YXJpbmcgTGFzdFNhbXBsZSIsIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkudG9GbG9h
dCgpLCBkdXJhdGlvbi50b0Zsb2F0KCkpOworICAgICAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRT
dGF0ZTo6TGFzdFNhbXBsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICAgICAgbV9z
b3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBsZSk7Ci0gICAg
ICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpTYW1wbGluZyk7Ci0gICAgICAgIG1fZmxv
d1JldHVybiA9IEdTVF9GTE9XX09LOwotICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5ub3Rp
ZnlPbmUoKTsKKyAgICAvLyBBZGQgYSBnYXAgc2FtcGxlIGlmIGEgZ2FwIGlzIGRldGVjdGVkIGJl
Zm9yZSB0aGUgZmlyc3Qgc2FtcGxlLgorICAgIGlmIChtZWRpYVNhbXBsZS0+ZGVjb2RlVGltZSgp
ID09IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiBtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGlt
ZSgpID4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpICYmIG1lZGlhU2FtcGxlLT5wcmVzZW50YXRpb25U
aW1lKCkgPD0gTWVkaWFUaW1lKDEsIDEwKSkgeworICAgICAgICBHU1RfREVCVUcoIkFkZGluZyBn
YXAgb2Zmc2V0Iik7CisgICAgICAgIG1lZGlhU2FtcGxlLT5hcHBseVB0c09mZnNldChNZWRpYVRp
bWU6Onplcm9UaW1lKCkpOwogICAgIH0KIAotICAgIGNoZWNrRW5kT2ZBcHBlbmQoKTsKKyAgICBt
X3NvdXJjZUJ1ZmZlclByaXZhdGUtPmRpZFJlY2VpdmVTYW1wbGUoKm1lZGlhU2FtcGxlKTsKKyAg
ICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogfQogCiB2b2lkIEFwcGVu
ZFBpcGVsaW5lOjphcHBzaW5rRU9TKCkKQEAgLTc1Nyw2ICs3MzYsMjMgQEAgQXRvbWljU3RyaW5n
IEFwcGVuZFBpcGVsaW5lOjp0cmFja0lkKCkKICAgICByZXR1cm4gbV90cmFjay0+aWQoKTsKIH0K
IAordm9pZCBBcHBlbmRQaXBlbGluZTo6Y29uc3VtZUFwcHNpbmtBdmFpbGFibGVTYW1wbGVzKCkK
K3sKKyAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CisKKyAgICBHUmVmUHRyPEdzdFNh
bXBsZT4gc2FtcGxlOworICAgIGludCBiYXRjaGVkU2FtcGxlQ291bnQgPSAwOworICAgIHdoaWxl
ICgoc2FtcGxlID0gYWRvcHRHUmVmKGdzdF9hcHBfc2lua190cnlfcHVsbF9zYW1wbGUoR1NUX0FQ
UF9TSU5LKG1fYXBwc2luay5nZXQoKSksIDApKSkpIHsKKyAgICAgICAgYXBwc2lua05ld1NhbXBs
ZShXVEZNb3ZlKHNhbXBsZSkpOworICAgICAgICBiYXRjaGVkU2FtcGxlQ291bnQrKzsKKyAgICB9
CisKKyAgICBHU1RfVFJBQ0VfT0JKRUNUKHRoaXMsICJiYXRjaGVkU2FtcGxlQ291bnQgPSAlZCIs
IGJhdGNoZWRTYW1wbGVDb3VudCk7CisKKyAgICBpZiAoYmF0Y2hlZFNhbXBsZUNvdW50ID4gMCkK
KyAgICAgICAgY2hlY2tFbmRPZkFwcGVuZCgpOworfQorCiB2b2lkIEFwcGVuZFBpcGVsaW5lOjpy
ZXNldFBpcGVsaW5lKCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CkBAIC03
NjQsMTIgKzc2MCw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OnJlc2V0UGlwZWxpbmUoKQogICAg
IG1fYXBwc3JjQXRMZWFzdEFCdWZmZXJMZWZ0ID0gZmFsc2U7CiAgICAgc2V0QXBwc3JjRGF0YUxl
YXZpbmdQcm9iZSgpOwogCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX25ld1Nh
bXBsZUxvY2spOwotICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKLSAg
ICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUuZ2V0KCksIEdTVF9TVEFURV9S
RUFEWSk7Ci0gICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBu
dWxscHRyLCBudWxscHRyLCAwKTsKLSAgICB9CisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1f
cGlwZWxpbmUuZ2V0KCksIEdTVF9TVEFURV9SRUFEWSk7CisgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRlKG1fcGlwZWxpbmUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIDApOwogCiAjaWYgKCEoTE9H
X0RJU0FCTEVEIHx8IGRlZmluZWQoR1NUX0RJU0FCTEVfR1NUX0RFQlVHKSkpCiAgICAgewpAQCAt
ODU4LDI3ICs4NTAsMTkgQEAgR3N0Rmxvd1JldHVybiBBcHBlbmRQaXBlbGluZTo6aGFuZGxlTmV3
QXBwc2lua1NhbXBsZShHc3RFbGVtZW50KiBhcHBzaW5rKQogewogICAgIEFTU0VSVCghV1RGOjpp
c01haW5UaHJlYWQoKSk7CiAKLSAgICAvLyBFdmVuIGlmIHdlJ3JlIGRpc2FibGVkLCBpdCdzIGlt
cG9ydGFudCB0byBwdWxsIHRoZSBzYW1wbGUgb3V0IGFueXdheSB0bwotICAgIC8vIGF2b2lkIGRl
YWRsb2NrcyB3aGVuIGNoYW5naW5nIHRvIEdTVF9TVEFURV9OVUxMIGhhdmluZyBhIG5vbiBlbXB0
eSBhcHBzaW5rLgotICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUgPSBhZG9wdEdSZWYoZ3N0
X2FwcF9zaW5rX3B1bGxfc2FtcGxlKEdTVF9BUFBfU0lOSyhhcHBzaW5rKSkpOwotICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbmV3U2FtcGxlTG9jayk7Ci0KICAgICBpZiAoIW1fcGxheWVyUHJpdmF0
ZSB8fCBtX2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpJbnZhbGlkKSB7CiAgICAgICAgIEdT
VF9XQVJOSU5HKCJBcHBlbmRQaXBlbGluZSBoYXMgYmVlbiBkaXNhYmxlZCwgaWdub3JpbmcgdGhp
cyBzYW1wbGUiKTsKICAgICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOwogICAgIH0KIAotICAg
IEdzdFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ3N0X3N0cnVjdHVyZV9uZXcoImFwcHNpbmstbmV3
LXNhbXBsZSIsICJuZXctc2FtcGxlIiwgR1NUX1RZUEVfU0FNUExFLCBzYW1wbGUuZ2V0KCksIG51
bGxwdHIpOwotICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3RfbWVzc2FnZV9uZXdfYXBwbGlj
YXRpb24oR1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsKLSAgICBnc3RfYnVzX3Bvc3Qo
bV9idXMuZ2V0KCksIG1lc3NhZ2UpOwotICAgIEdTVF9UUkFDRSgiYXBwc2luay1uZXctc2FtcGxl
IG1lc3NhZ2UgcG9zdGVkIHRvIGJ1cyIpOwotCi0gICAgbV9uZXdTYW1wbGVDb25kaXRpb24ud2Fp
dChtX25ld1NhbXBsZUxvY2spOwotICAgIC8vIFdlJ3ZlIGJlZW4gYXdha2VuIGJlY2F1c2UgdGhl
IHNhbXBsZSB3YXMgcHJvY2Vzc2VkIG9yIGJlY2F1c2Ugb2YKLSAgICAvLyBhbiBleGNlcHRpb25h
bCBjb25kaXRpb24gKGVudGVyZWQgaW4gSW52YWxpZCBzdGF0ZSwgZGVzdHJ1Y3RvciwgZXRjLiku
Ci0gICAgLy8gV2UgY2FuJ3QgcmVsaWFibHkgZGVsZXRlIGluZm8gaGVyZSwgYXBwZW5kUGlwZWxp
bmVBcHBzaW5rTmV3U2FtcGxlTWFpblRocmVhZCB3aWxsIGRvIGl0LgorICAgIGlmICghbV93YXNC
dXNBbHJlYWR5Tm90aWZpZWRPZkF2YWlsYWJsZVNhbXBsZXMudGVzdF9hbmRfc2V0KCkpIHsKKyAg
ICAgICAgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgi
YXBwc2luay1uZXctc2FtcGxlIik7CisgICAgICAgIEdzdE1lc3NhZ2UqIG1lc3NhZ2UgPSBnc3Rf
bWVzc2FnZV9uZXdfYXBwbGljYXRpb24oR1NUX09CSkVDVChhcHBzaW5rKSwgc3RydWN0dXJlKTsK
KyAgICAgICAgZ3N0X2J1c19wb3N0KG1fYnVzLmdldCgpLCBtZXNzYWdlKTsKKyAgICAgICAgR1NU
X1RSQUNFKCJhcHBzaW5rLW5ldy1zYW1wbGUgbWVzc2FnZSBwb3N0ZWQgdG8gYnVzIik7CisgICAg
fQogCi0gICAgcmV0dXJuIG1fZmxvd1JldHVybjsKKyAgICByZXR1cm4gR1NUX0ZMT1dfT0s7CiB9
CiAKIHN0YXRpYyBHUmVmUHRyPEdzdEVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
LmgKaW5kZXggODc2ODA3YmE5MGQzZDYyZWJjOGZkYzY1MDc1ZDhjODNjYWRiNzczZS4uMzY2MGNi
NmMxNWFiNzU3OWVhYTEyODM3ZGNiZGZhNWQ5Njg3NzMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5k
UGlwZWxpbmUuaApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhU291cmNlQ2xpZW50
R1N0cmVhbWVyTVNFLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5o
IgogCisjaW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGdzdC9nc3QuaD4KICNpbmNsdWRlIDx3
dGYvQ29uZGl0aW9uLmg+CiAKQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogICAgIC8vIFRha2Vz
IG93bmVyc2hpcCBvZiBjYXBzLgogICAgIHZvaWQgcGFyc2VEZW11eGVyU3JjUGFkQ2FwcyhHc3RD
YXBzKik7CiAgICAgdm9pZCBhcHBzaW5rQ2Fwc0NoYW5nZWQoKTsKLSAgICB2b2lkIGFwcHNpbmtO
ZXdTYW1wbGUoR3N0U2FtcGxlKik7CisgICAgdm9pZCBhcHBzaW5rTmV3U2FtcGxlKEdSZWZQdHI8
R3N0U2FtcGxlPiYmKTsKICAgICB2b2lkIGFwcHNpbmtFT1MoKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoKTsKICAgICBBdG9taWNTdHJpbmcgdHJhY2tJZCgpOwpA
QCAtOTYsNiArOTcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QXBwc3JjRGF0YUxlYXZpbmdQ
cm9iZSgpOwogICAgIHZvaWQgZGVtdXhlck5vTW9yZVBhZHMoKTsKIAorICAgIHZvaWQgY29uc3Vt
ZUFwcHNpbmtBdmFpbGFibGVTYW1wbGVzKCk7CisKICAgICBSZWY8TWVkaWFTb3VyY2VDbGllbnRH
U3RyZWFtZXJNU0U+IG1fbWVkaWFTb3VyY2VDbGllbnQ7CiAgICAgUmVmPFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI+IG1fc291cmNlQnVmZmVyUHJpdmF0ZTsKICAgICBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0UqIG1fcGxheWVyUHJpdmF0ZTsKQEAgLTEwNSw4ICsxMDgsNiBAQCBw
cml2YXRlOgogCiAgICAgTWVkaWFUaW1lIG1faW5pdGlhbER1cmF0aW9uOwogCi0gICAgR3N0Rmxv
d1JldHVybiBtX2Zsb3dSZXR1cm47Ci0KICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fcGlwZWxp
bmU7CiAgICAgR1JlZlB0cjxHc3RCdXM+IG1fYnVzOwogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4g
bV9hcHBzcmM7CkBAIC0xMTUsOCArMTE2LDEzIEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGRlbXV4
ZXIgaGFzIG9uZSBzcmMgc3RyZWFtIG9ubHksIHNvIG9ubHkgb25lIGFwcHNpbmsgaXMgbmVlZGVk
IGFuZCBsaW5rZWQgdG8gaXQuCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2FwcHNpbms7CiAK
LSAgICBMb2NrIG1fbmV3U2FtcGxlTG9jazsKLSAgICBDb25kaXRpb24gbV9uZXdTYW1wbGVDb25k
aXRpb247CisgICAgLy8gVXNlZCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBub3RpZmljYXRpb25zIHBl
ciBzYW1wbGUuCisgICAgLy8gSXQgaXMgcmVhZCBhbmQgd3JpdHRlbiBmcm9tIHRoZSBzdHJlYW1p
bmcgdGhyZWFkIGFuZCB3cml0dGVuIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgIC8vIFRoZSBt
YWluIHRocmVhZCBtdXN0IHNldCBpdCB0byBmYWxzZSBiZWZvcmUgYWN0dWFsbHkgcHVsbGluZyBz
YW1wbGVzLgorICAgIC8vIFRoaXMgc3RyYXRlZ3kgZW5zdXJlcyB0aGF0IGF0IGFueSB0aW1lLCB0
aGVyZSBhcmUgYXQgbW9zdCB0d28gbm90aWZpY2F0aW9ucyBpbiB0aGUgYnVzCisgICAgLy8gcXVl
dWUsIGluc3RlYWQgb2YgaXQgZ3Jvd2luZyB1bmJvdW5kZWQuCisgICAgc3RkOjphdG9taWNfZmxh
ZyBtX3dhc0J1c0FscmVhZHlOb3RpZmllZE9mQXZhaWxhYmxlU2FtcGxlczsKKwogICAgIExvY2sg
bV9wYWRBZGRSZW1vdmVMb2NrOwogICAgIENvbmRpdGlvbiBtX3BhZEFkZFJlbW92ZUNvbmRpdGlv
bjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351285</attachid>
            <date>2018-10-01 12:29:15 -0700</date>
            <delta_ts>2018-10-02 02:19:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189871-20181001212913.patch</filename>
            <type>text/plain</type>
            <size>1398</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvR1N0
cmVhbWVyQ2hlY2tzLmNtYWtlIGIvU291cmNlL2NtYWtlL0dTdHJlYW1lckNoZWNrcy5jbWFrZQpp
bmRleCA2OTE2NGJiMTQyNDc5NzRjNTFlYzk2YWFmZmFhOTU1OTZlZTY5ZTBiLi5mMWFhYTYyYTMw
NzQ1MzlmMTM3MjBiMjBkMTVmMzZkY2UzY2U3MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
R1N0cmVhbWVyQ2hlY2tzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9HU3RyZWFtZXJDaGVja3Mu
Y21ha2UKQEAgLTMyLDYgKzMyLDEyIEBAIGlmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9B
VURJTykKICAgICAgICAgZW5kaWYgKCkKICAgICBlbmRpZiAoKQogCisgICAgaWYgKEVOQUJMRV9N
RURJQV9TT1VSQ0UpCisgICAgICAgIGlmIChQQ19HU1RSRUFNRVJfVkVSU0lPTiBWRVJTSU9OX0xF
U1MgIjEuMTAiKQorICAgICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiR1N0cmVhbWVyIDEu
MTAgaXMgbmVlZGVkIGZvciBidWlsZGluZyB3aXRoIEVOQUJMRV9NRURJQV9TT1VSQ0UuIikKKyAg
ICAgICAgZW5kaWYgKCkKKyAgICBlbmRpZiAoKQorCiAgICAgaWYgKFVTRV9HU1RSRUFNRVJfR0wp
CiAgICAgICAgIGlmIChQQ19HU1RSRUFNRVJfVkVSU0lPTiBWRVJTSU9OX0xFU1MgIjEuMTAiKQog
ICAgICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiR1N0cmVhbWVyIDEuMTAgaXMgbmVlZGVk
IGZvciBVU0VfR1NUUkVBTUVSX0dMLiIpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VM
b2cKaW5kZXggOGU4NjkzYmI2NTdmYTliMWY5NjgwMzMzNzA0Y2QwNTJhYWY1ZmMwOS4uYTQyMzc4
MGY0YjZiMjU3ZTEyZTczYzQyNjE1OWRkNTlhZWM5ZjAyYSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEwLTAxICBBbGljaWEgQm95
YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3RyZWFtZXJd
IFJlcXVpcmUgR1N0cmVhbWVyID49MS4xMCBmb3IgYnVpbGRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTg3MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0dTdHJlYW1lckNo
ZWNrcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKwog
MjAxOC0wOS0yMSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIFtKU0NdIEVuYWJsZSBMTEludCBBU00gaW50ZXJwcmV0ZXIgb24gWDY0IGFuZCBB
Uk02NCBpbiBub24gSklUIGNvbmZpZ3VyYXRpb24K
</data>
<flag name="review"
          id="368631"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="368708"
          type_id="3"
          status="-"
          setter="aboya"
    />
          </attachment>
      

    </bug>

</bugzilla>