<?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>144040</bug_id>
          
          <creation_ts>2015-04-22 03:34:37 -0700</creation_ts>
          <short_desc>[GStreamer] Adaptive streaming issues</short_desc>
          <delta_ts>2019-03-13 05:07:19 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=152043</see_also>
    
    <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=766053</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=158070</see_also>
    
    <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=767879</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=167003</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158740</dependson>
          <blocked>152043</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agomez</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cturner</cc>
    
    <cc>fosero</cc>
    
    <cc>ht990332</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>slomo</cc>
    
    <cc>uahello</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1087349</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-04-22 03:34:37 -0700</bug_when>
    <thetext>In the case of HLS playback the source element used for fragments downloading does a (sometimes too) quick state transition: PAUSED-&gt;READY-&gt;PAUSED. However our httpsrc element starts a GMainLoop in its PAUSED-&gt;READY transition without waiting its completion. So sometimes webKitWebSrcStop() will be called too late, during the READY-&gt;PAUSED transition and playback will stall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087357</commentid>
    <comment_count>1</comment_count>
      <attachid>251310</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-04-22 06:37:47 -0700</bug_when>
    <thetext>Created attachment 251310
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087804</commentid>
    <comment_count>2</comment_count>
      <attachid>251429</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-04-23 06:33:52 -0700</bug_when>
    <thetext>Created attachment 251429
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087806</commentid>
    <comment_count>3</comment_count>
      <attachid>251430</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-04-23 06:34:25 -0700</bug_when>
    <thetext>Created attachment 251430
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091720</commentid>
    <comment_count>4</comment_count>
      <attachid>251430</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-05 01:28:47 -0700</bug_when>
    <thetext>Comment on attachment 251430
patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Block in state transition to prevent element to enter in an
&gt; +        inconsistent state in the next READY-&gt;PAUSED transition.

to prevent element from entering? I&apos;m not english expert at all, though. Could you elaborate a bit more? the bug title says &quot;Adaptive streaming issues&quot;, what issues? what&apos;s exactly the problem we are solving and how?

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:-419
&gt; -    ASSERT(isMainThread());

So this could be used by any thread? or should use just invert the assert? we should make more obvious what is expected to run in each thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102903</commentid>
    <comment_count>5</comment_count>
      <attachid>251430</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-06-18 07:10:54 -0700</bug_when>
    <thetext>Comment on attachment 251430
patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        inconsistent state in the next READY-&gt;PAUSED transition.
&gt; 
&gt; to prevent element from entering? I&apos;m not english expert at all, though. Could you elaborate a bit more? the bug title says &quot;Adaptive streaming issues&quot;, what issues? what&apos;s exactly the problem we are solving and how?

I described the issue in the bug description but yeah, sure, I can do it here as well :)

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:-419
&gt;&gt; -    ASSERT(isMainThread());
&gt; 
&gt; So this could be used by any thread? or should use just invert the assert? we should make more obvious what is expected to run in each thread.

Any thread.
The adaptive streaming scenario is a bit special because the demuxer will ask the uridownloader to perform its task in a thread, AFAIK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102906</commentid>
    <comment_count>6</comment_count>
      <attachid>255113</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-06-18 07:15:18 -0700</bug_when>
    <thetext>Created attachment 255113
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152085</commentid>
    <comment_count>7</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2016-01-03 00:43:32 -0800</bug_when>
    <thetext>Alternatively you could block in READY-&gt;PAUSED, e.g. by adding an idle source to the main loop and triggering a condition variable from there. That&apos;s what is done elsewhere in GStreamer in such situations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152291</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-01-04 04:43:24 -0800</bug_when>
    <thetext>I don&apos;t think I&apos;ll land this patch just yet, bug 152043 is also related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180746</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-05 00:23:20 -0700</bug_when>
    <thetext>*** Bug 156186 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180748</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-05 00:23:28 -0700</bug_when>
    <thetext>*** Bug 154579 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180750</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-05 00:24:43 -0700</bug_when>
    <thetext>*** Bug 151634 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180752</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-05 00:24:55 -0700</bug_when>
    <thetext>*** Bug 149672 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180754</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-05 00:25:23 -0700</bug_when>
    <thetext>*** Bug 138606 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180840</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-04-05 09:36:52 -0700</bug_when>
    <thetext>It looks like we need to prioritize this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181656</commentid>
    <comment_count>15</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-07 05:53:33 -0700</bug_when>
    <thetext>*** Bug 156323 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181678</commentid>
    <comment_count>16</comment_count>
      <attachid>255113</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-04-07 08:35:52 -0700</bug_when>
    <thetext>Comment on attachment 255113
patch

This patch is bitrotten.

The long-term fix will be to use the HTTP context sharing which should (I hope) be merged into gst 1.9 soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190349</commentid>
    <comment_count>17</comment_count>
      <attachid>278162</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-05 05:07:01 -0700</bug_when>
    <thetext>Created attachment 278162
Patch

This fixes the crashes, but not the layout tests, those still time out for different reasons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190352</commentid>
    <comment_count>18</comment_count>
      <attachid>278162</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-05-05 05:49:06 -0700</bug_when>
    <thetext>Comment on attachment 278162
Patch

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

Thanks for the explanation!

&gt; Source/WebCore/ChangeLog:15
&gt; +        owner is not expecting and causing rumntoime critical warnings and very often web process crashes.

typoe: rumntoime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190353</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-05 06:03:18 -0700</bug_when>
    <thetext>Committed r200455: &lt;http://trac.webkit.org/changeset/200455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190388</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-05-05 10:35:07 -0700</bug_when>
    <thetext>I think we need to file a GStreamer bug for this, or link to one here if one already exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190625</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-05 22:56:44 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I think we need to file a GStreamer bug for this, or link to one here if one
&gt; already exists.

That&apos;s the plan, but I didn&apos;t find the time yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195762</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-05-24 00:06:37 -0700</bug_when>
    <thetext>*** Bug 153587 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202216</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-14 09:51:06 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 158740</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202221</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-06-14 09:53:41 -0700</bug_when>
    <thetext>FWIW as long as the GStreamer bug is fixed, I don&apos;t think it&apos;s necessarily desirable to have workarounds in WebKit... distros should just update GStreamer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202497</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 22:09:20 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Re-opened since this is blocked by bug 158740

What happens now in fb/twitter? does the web process crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202540</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-06-15 04:56:46 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; What happens now in fb/twitter? does the web process crash?

Andres, can you answer this? Did it crash often, sometimes, or never in 2.12.2?

I rolled out the patch because my understanding is these sites were usable in 2.12.2 but not in 2.12.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202542</commentid>
    <comment_count>27</comment_count>
    <who name="Andres Gomez Garcia">agomez</who>
    <bug_when>2016-06-15 05:29:51 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; Re-opened since this is blocked by bug 158740
&gt; 
&gt; What happens now in fb/twitter? does the web process crash?

With pre 2.12.2, the process crashed every now and then. For me, mostly in FB since I don&apos;t use Twitter that much.

With 2.12.2, it crashed in Twitter very, very often. Basically, every time a HLS video was embedded in the page. Similar in FB. Only, if you control when to play the videos, you would avoid it to crash.

With 2.12.3, my experience is that FB gets stalled all the time. It is specially bad because it gets stalled when the front page is loading. Basically, you cannot do anything. I suppose it happens when in your front page appears some video but you don&apos;t need to scroll to it and try to play it, which would trigger the crash in former versions, it just gets stalled on loading.

In any case, this is just my experience. Others may have a different one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203739</commentid>
    <comment_count>28</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-20 05:42:55 -0700</bug_when>
    <thetext>Ok, I think I&apos;ve managed to fix this, but I&apos;m not 100% sure because it&apos;s not always easy to reproduce all the deadlocks and threading issues are hard. Anyway, I&apos;ve found two different deadlocks that are blocking the web process:

 - The first one is actually a set of deadlocks that can happen in many places. It happens because gst is using several threads to download manifest, fragments, monitor the downloads, etc. To download the fragments and manifest it always creates the source element in a separate thread, something that is not actually expected to happen in WebKit source element (see bug #152043). Our source element is always scheduling tasks (start, stop, need-data, enough-data and seek) to the main thread, and those downloads that use the ResourceHandleStreamingClient (there&apos;s no player associated) also happen in the main thread, libsoup calls all its async callbacks in the main thread. So, the result is that it can happen that we end up blocking the main thread in a lock until the download finishes, but the download never finishes because tasks are scheduled in the main thread that is blocked in a lock. I managed to fix this by always using a secondary thread for downloads made by ResourceHandleStreamingClient. My first idea was to do the download in the same secondary thread that calls changeState, or in the first NeedData (note that changeState and NeedData are called form different threads), but those secondary threads don&apos;t have a run loop running, and we need a different GMainContext in the running thread for libsoup to send callbacks to the right thread. So, in the end, I moved the download to a thread using its own run loop. I also had to refactor the tasks a bit, leaving the thread safe parts to be run in the calling thread allays, and only scheduling to the main thread in case of not using ResourceHandleStreamingClient and only for the non thread safe parts.

 - The second deadlock happens when the media player is destroyed by the garbacge collector and pipeline is set to NULL state. This always happens in the main thread, since the garbage colector frees the objects in the main thread. The situation is the following one:

Main Thread:
  - blocked on GST_PAD_STREAM_LOCK (post_activate() gstpad.c)

Secondary Thread:
  - blocked on GST_MANIFEST_LOCK (gst_adaptive_demux_src_event() reconfigure gstadaptivedemux.c)
  - has EXPOSE_LOCK of gstdecodebin2 taken from source_pad_blocked_cb()

Secondary Thread:
  - blocked on EXPOSE_LOCK (no_more_pads_cb() gstdecodebin2.c)
  - it seems to have GST_PAD_STREAM_LOCK of gstpad taken from gst_pad_send_event_unchecked()
  - has GST_MANIFEST_LOCK of gstadaptivedemux taken from _src_event, got fragment EOS

Secondary Thread:
  - infinite loop waiting for fragment download to finish (gst_adaptive_demux_stream_download_uri()

I haven&apos;t been able to fix or workaround this from WebKit code, the only chnage the seemed to work was releasing the manifest lock in gst_adaptive_demux_expose_streams before calling gst_element_no_more_pads) can taking it again. But I have no idea if the change is correct or just a workaround, the gst code is full of locks and conditions that is very difficult to follow.

So, I&apos;ll submit the WebKit patch here as WIP for now, and if Sebastian confirms the gst changes makes sense, I&apos;ll submit the patch to gst too. A possible workaround for WebKit, to avoid depending on changes in gst would also be appreciated. Please, try both patches and let me know if it fixes the problem for you. In the mean time I&apos;ll run the layout tests to make sure I haven&apos;t introduced any regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203741</commentid>
    <comment_count>29</comment_count>
      <attachid>281646</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-20 05:44:21 -0700</bug_when>
    <thetext>Created attachment 281646
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203742</commentid>
    <comment_count>30</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-20 05:47:59 -0700</bug_when>
    <thetext>You first need to revert the revert of r200455 since it was a perfectly valid fix (or use a newer version of gst-plugins-bad, since r200455 was indeed a workaround for a gst bug that was fixed already).
I forgot to say that this patch should also fix bug #152043, since we no longer use the main thread notifier for sources not created in the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205476</commentid>
    <comment_count>31</comment_count>
      <attachid>282104</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-27 00:07:20 -0700</bug_when>
    <thetext>Created attachment 282104
Updated patch to include ChangeLog

Just added the changelog after confirming that the remaining deadlocks need to be fixed in gst. I&apos;ll try to find a workaround in WebKit, but it doesn&apos;t seem easy. Also remember that we need to unrollout r200455, so the patch won&apos;t apply to current trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205556</commentid>
    <comment_count>32</comment_count>
      <attachid>282104</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-06-27 08:07:33 -0700</bug_when>
    <thetext>Comment on attachment 282104
Updated patch to include ChangeLog

Looks good to me but perhaps Zan or Martin would also like to step in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205914</commentid>
    <comment_count>33</comment_count>
      <attachid>282217</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-27 23:59:51 -0700</bug_when>
    <thetext>Created attachment 282217
Updated patch

It just includes r200455 as well, as requested by phil, so that it applies to current trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205915</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-28 00:01:59 -0700</bug_when>
    <thetext>Attachment 282217 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1081:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206320</commentid>
    <comment_count>35</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-28 23:34:30 -0700</bug_when>
    <thetext>Committed r202615: &lt;http://trac.webkit.org/changeset/202615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271079</commentid>
    <comment_count>36</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-28 17:18:45 -0800</bug_when>
    <thetext>I think this caused bug #167003.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325076</commentid>
    <comment_count>37</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2017-07-03 03:05:40 -0700</bug_when>
    <thetext>It&apos;s hard to say whether this bug is &quot;resolved&quot; due to the general nature of it, but there&apos;s another adaptive streaming issue which seem a bit gnarly. I&apos;ve documented it over here: https://bugs.webkit.org/show_bug.cgi?id=172240 -- it could use some discussion IMO, and it collects together the various bits of investigation done in HLS so far.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251310</attachid>
            <date>2015-04-22 06:37:47 -0700</date>
            <delta_ts>2015-04-23 06:33:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>4007</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3Yjg1NDFjNmM5MTZjMDU2N2FkNTA0YmVmYTIyMmM0MWFlNDNkOTJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDIyIEFwciAyMDE1IDE1OjMxOjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyMCArKysrKysrKysrKysrKysrKwogLi4uL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwICAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKy0tLS0tCiAyIGZp
bGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGM5NmZiNDMuLmExMzI5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0w
NC0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gQWRhcHRpdmUgc3RyZWFtaW5nIGlzc3VlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDQwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmxvY2sgaW4gc3RhdGUgdHJhbnNpdGlvbiB0
byBsZXQgdGhlIG1haW5sb29wIGVub3VnaCB0aW1lIHRvIGRpc3BhdGNoCisgICAgICAgIHRoZSBz
dG9wIEdNYWluTG9vcCBzb3VyY2UgYW5kIHByZXZlbnQgaXQgdG8gZmlyZSBkdXJpbmcgdGhlIG5l
eHQKKyAgICAgICAgUkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIHdoaWNoIHdvdWxkIGxlYXZlIHRo
ZSBlbGVtZW50IGluIGFuCisgICAgICAgIGluY29uc2lzdGVudCBzdGF0ZS4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIGV4aXN0aW5nIGh0dHAvdGVzdHMvbWVkaWEvaGxzIHRlc3RzIGNvdmVyIHRo
aXMKKyAgICAgICAgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3Ny
Y19pbml0KToKKyAgICAgICAgKHdlYktpdFdlYlNyY0ZpbmFsaXplKToKKyAgICAgICAgKHdlYktp
dFdlYlNyY0NoYW5nZVN0YXRlKToKKwogMjAxNS0wNC0yMiAgTWFudWVsIFJlZ28gQ2FzYXNub3Zh
cyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgaGFzT3ZlcnJpZGV7SGVpZ2h0
LFdpZHRofSgpIHRvIGhhc092ZXJyaWRlTG9naWNhbENvbnRlbnR7SGVpZ2h0LFdpZHRofSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDMyZTNjMTQ1
Li44OGExY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtMTM1LDYgKzEzNSw5IEBAIHN0cnVjdCBfV2ViS2l0V2ViU3JjUHJpdmF0ZSB7CiAgICAg
R1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBlbm91Z2hEYXRhU291cmNlOwogICAgIEdUaHJlYWRT
YWZlTWFpbkxvb3BTb3VyY2Ugc2Vla1NvdXJjZTsKIAorICAgIEdDb25kIHN0b3BDb25kaXRpb247
CisgICAgR011dGV4IHN0b3BNdXRleDsKKwogICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBidWZmZXI7
CiAKICAgICAvLyBpY2VjYXN0IHN0dWZmCkBAIC0yNzQsNiArMjc3LDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9zcmNfaW5pdChXZWJLaXRXZWJTcmMqIHNyYykKICAgICBzcmMtPnByaXYgPSBw
cml2OwogICAgIG5ldyAocHJpdikgV2ViS2l0V2ViU3JjUHJpdmF0ZSgpOwogCisgICAgZ19jb25k
X2luaXQoJnByaXYtPnN0b3BDb25kaXRpb24pOworICAgIGdfbXV0ZXhfaW5pdCgmcHJpdi0+c3Rv
cE11dGV4KTsKKwogICAgIHByaXYtPmFwcHNyYyA9IEdTVF9BUFBfU1JDKGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgiYXBwc3JjIiwgMCkpOwogICAgIGlmICghcHJpdi0+YXBwc3JjKSB7CiAgICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBhcHBzcmMiKTsKQEAg
LTMzMyw2ICszMzksOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNGaW5hbGl6ZShHT2JqZWN0
KiBvYmplY3QpCiAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyhvYmplY3Qp
OwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKKyAgICBnX2Nv
bmRfY2xlYXIoJnByaXYtPnN0b3BDb25kaXRpb24pOworICAgIGdfbXV0ZXhfY2xlYXIoJnByaXYt
PnN0b3BNdXRleCk7CiAgICAgZ19mcmVlKHByaXYtPnVyaSk7CiAgICAgcHJpdi0+fldlYktpdFdl
YlNyY1ByaXZhdGUoKTsKIApAQCAtNjUxLDE1ICs2NTksMjIgQEAgc3RhdGljIEdzdFN0YXRlQ2hh
bmdlUmV0dXJuIHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdz
dFN0YXQKICAgICAgICAgcHJpdi0+c3RhcnRTb3VyY2Uuc2NoZWR1bGUoIltXZWJLaXRdIHdlYktp
dFdlYlNyY1N0YXJ0Iiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KHN0ZDo6YmluZCh3ZWJLaXRXZWJT
cmNTdGFydCwgc3JjKSksIEdfUFJJT1JJVFlfREVGQVVMVCwKICAgICAgICAgICAgIFtzcmNdIHsg
Z3N0X29iamVjdF91bnJlZihzcmMpOyB9KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHU1Rf
U1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0Vf
UEFVU0VEX1RPX1JFQURZOiB7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUEFVU0VE
LT5SRUFEWSIpOwogICAgICAgICBwcml2LT5wZW5kaW5nU3RhcnQgPSBGQUxTRTsKLSAgICAgICAg
Ly8gY2FuY2VsIHBlbmRpbmcgc291cmNlcwotICAgICAgICByZW1vdmVUaW1lb3V0U291cmNlcyhz
cmMpOworICAgICAgICBsb2NrZXIudW5sb2NrKCk7CisgICAgICAgIFdURjo6R011dGV4TG9ja2Vy
PEdNdXRleD4gbG9jayhwcml2LT5zdG9wTXV0ZXgpOwogICAgICAgICBnc3Rfb2JqZWN0X3JlZihz
cmMpOwotICAgICAgICBwcml2LT5zdG9wU291cmNlLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRX
ZWJTcmNTdG9wIiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KHN0ZDo6YmluZCh3ZWJLaXRXZWJTcmNT
dG9wLCBzcmMpKSwgR19QUklPUklUWV9ERUZBVUxULAotICAgICAgICAgICAgW3NyY10geyBnc3Rf
b2JqZWN0X3VucmVmKHNyYyk7IH0pOworICAgICAgICBwcml2LT5zdG9wU291cmNlLnNjaGVkdWxl
KCJbV2ViS2l0XSB3ZWJLaXRXZWJTcmNTdG9wIiwgW3NyY10geworICAgICAgICAgICAgV1RGOjpH
TXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrKHNyYy0+cHJpdi0+c3RvcE11dGV4KTsKKyAgICAgICAg
ICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKKyAgICAgICAgICAgIGdfY29uZF9zaWduYWwoJnNy
Yy0+cHJpdi0+c3RvcENvbmRpdGlvbik7CisgICAgICAgIH0sIEdfUFJJT1JJVFlfREVGQVVMVCwg
W3NyY10geworICAgICAgICAgICAgZ3N0X29iamVjdF91bnJlZihzcmMpOworICAgICAgICB9KTsK
KyAgICAgICAgZ19jb25kX3dhaXQoJnByaXYtPnN0b3BDb25kaXRpb24sICZwcml2LT5zdG9wTXV0
ZXgpOwogICAgICAgICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
CiAgICAgfQotLSAKMi4xLjQ=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251429</attachid>
            <date>2015-04-23 06:33:52 -0700</date>
            <delta_ts>2015-04-23 06:34:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>2511</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhZDA2OTBjOGNkMjVlZWU4YTkzZGQ5NTg0MTRjNjIwYzY0ZjUxMmI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIzIEFwciAyMDE1IDE1OjMyOjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgICAgICAgfCAgOCArKy0tLS0tLQogMiBmaWxl
cyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjOTZmYjQzLi4yYTJjMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDQt
MjMgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
U3RyZWFtZXJdIEFkYXB0aXZlIHN0cmVhbWluZyBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJsb2NrIGluIHN0YXRlIHRyYW5zaXRpb24gdG8g
cHJldmVudCBlbGVtZW50IHRvIGVudGVyIGluIGFuCisgICAgICAgIGluY29uc2lzdGVudCBzdGF0
ZSBpbiB0aGUgbmV4dCBSRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24uCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBleGlzdGluZyBodHRwL3Rlc3RzL2hscyB0ZXN0cyBjb3ZlciB0aGlzIGNoYW5nZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUpOgorCiAyMDE1
LTA0LTIyICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJlbmFtZSBoYXNPdmVycmlkZXtIZWlnaHQsV2lkdGh9KCkgdG8gaGFzT3ZlcnJpZGVMb2dp
Y2FsQ29udGVudHtIZWlnaHQsV2lkdGh9KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKaW5kZXggMzJlM2MxNDUuLmI4NjQ3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xMzAsNyArMTMwLDYgQEAgc3RydWN0
IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKIAogICAgIGdib29sZWFuIHBlbmRpbmdTdGFydDsKICAg
ICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIHN0YXJ0U291cmNlOwotICAgIEdUaHJlYWRTYWZl
TWFpbkxvb3BTb3VyY2Ugc3RvcFNvdXJjZTsKICAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNl
IG5lZWREYXRhU291cmNlOwogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2UgZW5vdWdoRGF0
YVNvdXJjZTsKICAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIHNlZWtTb3VyY2U7CkBAIC02
NTQsMTEgKzY1Myw4IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmND
aGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdGF0CiAgICAgY2FzZSBHU1RfU1RB
VEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMs
ICJQQVVTRUQtPlJFQURZIik7CiAgICAgICAgIHByaXYtPnBlbmRpbmdTdGFydCA9IEZBTFNFOwot
ICAgICAgICAvLyBjYW5jZWwgcGVuZGluZyBzb3VyY2VzCi0gICAgICAgIHJlbW92ZVRpbWVvdXRT
b3VyY2VzKHNyYyk7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKHNyYyk7Ci0gICAgICAgIHByaXYt
PnN0b3BTb3VyY2Uuc2NoZWR1bGUoIltXZWJLaXRdIHdlYktpdFdlYlNyY1N0b3AiLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4oc3RkOjpiaW5kKHdlYktpdFdlYlNyY1N0b3AsIHNyYykpLCBHX1BSSU9S
SVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsg
fSk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKKyAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChz
cmMpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKLS0gCjIu
MS40
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251430</attachid>
            <date>2015-04-23 06:34:25 -0700</date>
            <delta_ts>2015-06-18 07:15:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>2778</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA0OWExYzY0ZmIwNGJmZWI3NWNjYmM2ZjQwZGU2ODYyZjA2MWU2NmYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIzIEFwciAyMDE1IDE1OjMyOjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiAuLi4vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgICAgICAgfCAxMCArKy0tLS0tLS0tCiAyIGZp
bGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGM5NmZiNDMuLjJhMmMwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0w
NC0yMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dTdHJlYW1lcl0gQWRhcHRpdmUgc3RyZWFtaW5nIGlzc3VlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDQwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmxvY2sgaW4gc3RhdGUgdHJhbnNpdGlvbiB0
byBwcmV2ZW50IGVsZW1lbnQgdG8gZW50ZXIgaW4gYW4KKyAgICAgICAgaW5jb25zaXN0ZW50IHN0
YXRlIGluIHRoZSBuZXh0IFJFQURZLT5QQVVTRUQgdHJhbnNpdGlvbi4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGV4aXN0aW5nIGh0dHAvdGVzdHMvaGxzIHRlc3RzIGNvdmVyIHRoaXMgY2hhbmdl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZSk6CisKIDIw
MTUtMDQtMjIgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmVuYW1lIGhhc092ZXJyaWRle0hlaWdodCxXaWR0aH0oKSB0byBoYXNPdmVycmlkZUxv
Z2ljYWxDb250ZW50e0hlaWdodCxXaWR0aH0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCAzMmUzYzE0NS4uZGQwZWFkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTEzMCw3ICsxMzAsNiBAQCBzdHJ1
Y3QgX1dlYktpdFdlYlNyY1ByaXZhdGUgewogCiAgICAgZ2Jvb2xlYW4gcGVuZGluZ1N0YXJ0Owog
ICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2Ugc3RhcnRTb3VyY2U7Ci0gICAgR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZSBzdG9wU291cmNlOwogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3Vy
Y2UgbmVlZERhdGFTb3VyY2U7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBlbm91Z2hE
YXRhU291cmNlOwogICAgIEdUaHJlYWRTYWZlTWFpbkxvb3BTb3VyY2Ugc2Vla1NvdXJjZTsKQEAg
LTQxNiw4ICs0MTUsNiBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNy
Yyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCiAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011
dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKICAgICBib29sIHNlZWtp
bmcgPSBwcml2LT5zZWVrU291cmNlLmlzQWN0aXZlKCk7CkBAIC02NTQsMTEgKzY1MSw4IEBAIHN0
YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVt
ZW50KiBlbGVtZW50LCBHc3RTdGF0CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9U
T19SRUFEWToKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJQQVVTRUQtPlJFQURZIik7
CiAgICAgICAgIHByaXYtPnBlbmRpbmdTdGFydCA9IEZBTFNFOwotICAgICAgICAvLyBjYW5jZWwg
cGVuZGluZyBzb3VyY2VzCi0gICAgICAgIHJlbW92ZVRpbWVvdXRTb3VyY2VzKHNyYyk7Ci0gICAg
ICAgIGdzdF9vYmplY3RfcmVmKHNyYyk7Ci0gICAgICAgIHByaXYtPnN0b3BTb3VyY2Uuc2NoZWR1
bGUoIltXZWJLaXRdIHdlYktpdFdlYlNyY1N0b3AiLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4oc3Rk
OjpiaW5kKHdlYktpdFdlYlNyY1N0b3AsIHNyYykpLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAg
ICAgICAgICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsgfSk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKKyAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKLS0gCjIuMS40
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255113</attachid>
            <date>2015-06-18 07:15:18 -0700</date>
            <delta_ts>2016-04-07 08:35:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>3278</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyY2RjYjQ0ZDQ2MmQ2NTdhMDc0YWU1YTE3MzA5ZTQ1ODc3MGJkNzk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIzIEFwciAyMDE1IDE1OjMyOjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAgICAgICAgICB8IDEwICsrLS0tLS0tLS0KIDIgZmlsZXMgY2hh
bmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNi
NjAzNC4uOWRkMmJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA2LTE4ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVh
bWVyXSBBZGFwdGl2ZSBzdHJlYW1pbmcgaXNzdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGUgY2FzZSBvZiBITFMgcGxheWJhY2sgdGhlIHNv
dXJjZSBlbGVtZW50IHVzZWQgZm9yIGZyYWdtZW50cworICAgICAgICBkb3dubG9hZGluZyBkb2Vz
IGEgKHNvbWV0aW1lcyB0b28pIHF1aWNrIHN0YXRlIHRyYW5zaXRpb246CisgICAgICAgIFBBVVNF
RC0+UkVBRFktPlBBVVNFRC4gSG93ZXZlciBvdXIgaHR0cHNyYyBlbGVtZW50IHN0YXJ0cyBhCisg
ICAgICAgIEdNYWluTG9vcCBpbiBpdHMgUEFVU0VELT5SRUFEWSB0cmFuc2l0aW9uIHdpdGhvdXQg
d2FpdGluZyBpdHMKKyAgICAgICAgY29tcGxldGlvbi4gU28gc29tZXRpbWVzIHdlYktpdFdlYlNy
Y1N0b3AoKSB3aWxsIGJlIGNhbGxlZCB0b28KKyAgICAgICAgbGF0ZSwgZHVyaW5nIHRoZSBSRUFE
WS0+UEFVU0VEIHRyYW5zaXRpb24gYW5kIHBsYXliYWNrIHdpbGwgc3RhbGwuCisKKyAgICAgICAg
VGhlIHByb3Bvc2VkIHNvbHV0aW9uIGlzIHRvIGJsb2NrIGluIHN0YXRlIHRyYW5zaXRpb24gdG8g
cHJldmVudAorICAgICAgICBlbGVtZW50IGZyb20gZW50ZXJpbmcgaW4gYW4gaW5jb25zaXN0ZW50
IHN0YXRlIGR1cmluZyB0aGUgbmV4dAorICAgICAgICBSRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24u
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleGlzdGluZyBodHRwL3Rlc3RzL2hscyB0ZXN0cyBj
b3ZlciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjQ2hh
bmdlU3RhdGUpOgorCiAyMDE1LTA2LTE4ICBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNy
Zi5jYW5vbi5mcj4gYW5kIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbVJl
YWRlci5yZWxlYXNlTG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAppbmRleCA5MzRkYWY4Li4zZWU3NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcApAQCAtMTMwLDcgKzEzMCw2IEBAIHN0cnVjdCBfV2ViS2l0V2Vi
U3JjUHJpdmF0ZSB7CiAKICAgICBnYm9vbGVhbiBwZW5kaW5nU3RhcnQ7CiAgICAgR1RocmVhZFNh
ZmVNYWluTG9vcFNvdXJjZSBzdGFydFNvdXJjZTsKLSAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291
cmNlIHN0b3BTb3VyY2U7CiAgICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBuZWVkRGF0YVNv
dXJjZTsKICAgICBHVGhyZWFkU2FmZU1haW5Mb29wU291cmNlIGVub3VnaERhdGFTb3VyY2U7CiAg
ICAgR1RocmVhZFNhZmVNYWluTG9vcFNvdXJjZSBzZWVrU291cmNlOwpAQCAtNDE2LDggKzQxNSw2
IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0b3AoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAg
ICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigq
R1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKIAogICAgIGJvb2wgc2Vla2luZyA9IHByaXYtPnNl
ZWtTb3VyY2UuaXNBY3RpdmUoKTsKQEAgLTY1NCwxMSArNjUxLDggQEAgc3RhdGljIEdzdFN0YXRl
Q2hhbmdlUmV0dXJuIHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQs
IEdzdFN0YXQKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZOgogICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKICAgICAgICAgcHJp
di0+cGVuZGluZ1N0YXJ0ID0gRkFMU0U7Ci0gICAgICAgIC8vIGNhbmNlbCBwZW5kaW5nIHNvdXJj
ZXMKLSAgICAgICAgcmVtb3ZlVGltZW91dFNvdXJjZXMoc3JjKTsKLSAgICAgICAgZ3N0X29iamVj
dF9yZWYoc3JjKTsKLSAgICAgICAgcHJpdi0+c3RvcFNvdXJjZS5zY2hlZHVsZSgiW1dlYktpdF0g
d2ViS2l0V2ViU3JjU3RvcCIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPihzdGQ6OmJpbmQod2ViS2l0
V2ViU3JjU3RvcCwgc3JjKSksIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgIFtzcmNd
IHsgZ3N0X29iamVjdF91bnJlZihzcmMpOyB9KTsKKyAgICAgICAgbG9ja2VyLnVubG9jaygpOwor
ICAgICAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwotLSAKMi4xLjQ=
</data>
<flag name="review"
          id="280149"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278162</attachid>
            <date>2016-05-05 05:07:01 -0700</date>
            <delta_ts>2016-06-20 05:44:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-gst-hls-crash.diff</filename>
            <type>text/plain</type>
            <size>6909</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZDQ4NjhiLi4yODVlZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTYtMDUtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIEFkYXB0aXZlIHN0cmVhbWluZyBpc3N1ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA0MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoZSBjYXNlIG9m
IGFkYXB0aXZlIHN0cmVhbWluZywgdGhlIEdTVCBVUkkgZG93bmxvYWRlciBvYmplY3QgaXMgY3Jl
YXRpbmcgdGhlIHNvdXJjZSBvYmplY3QsIGluIG91ciBjYXNlCisgICAgICAgIFdlYktpdFdlYlNy
Yywgd2l0aG91dCB0YWtpbmcgaXRzIG93bmVyc2hpcC4gVGhpcyBpcyBicmVha2luZyB0aGUgbGlm
ZXRpbWUgb2YgdGhlIFdlYktpdFdlYlNyYyBlbGVtZW50LiBXZSBhcmUKKyAgICAgICAgdXNpbmcg
R1JlZlB0ciBpbiBXZWJLaXRXZWJTcmMgdG8gcmVmL3VucmVmIHRoZSBvYmplY3Qgd2hlbiBzZW5k
aW5nIG5vdGlmaWNhdGlvbnMgdG8gdGhlIG1haW4gdGhyZWFkLCBlbnN1cmluZworICAgICAgICB0
aGF0IHRoZSBvYmplY3QgaXMgbm90IGRlc3Ryb3llZCBiZWZvcmUgdGhlIG1haW4gdGhyZWFkIGRp
c3BhdGNoZXMgdGhlIG1lc3NhZ2UuIEJ1dCBvdXIgc21hcnQgcG9pbnRlcnMgYXJlIHNvCisgICAg
ICAgIHNtYXJ0IHRoYXQgaW4gY2FzZSBvZiByZWNlaXZpbmcgYSBmbG9hdGluZyByZWZlcmVuY2Us
IGl0J3MgY29udmVydGVkIHRvIGEgZnVsbCByZWZlcmVuY2UsIHNvIHRoYXQgdGhlIGZpcnN0IHRp
bWUKKyAgICAgICAgd2UgdHJ5IHRvIHRha2UgYSByZWYgb2YgYSBXZWJLaXRXZWJTcmMgaGF2aW5n
IGEgZmxvYXRpbmcgcmVmZXJlbmNlIHdlIGFyZSBhY3R1YWxseSB0YWtpbmcgdGhlIG93bmVyc2hp
cAorICAgICAgICBpbnN0ZWFkLiBXaGVuIHdlIHRyeSB0byByZWxlYXNlIHRoZSByZWZlcmVuY2Us
IHdlIGFyZSBhY3R1YWxsdHkgZGVzdHJveWluZyB0aGUgb2JqZWN0LCBzb21ldGhpbmcgdGhhdCB0
aGUgYWN0dWFsCisgICAgICAgIG93bmVyIGlzIG5vdCBleHBlY3RpbmcgYW5kIGNhdXNpbmcgcnVt
bnRvaW1lIGNyaXRpY2FsIHdhcm5pbmdzIGFuZCB2ZXJ5IG9mdGVuIHdlYiBwcm9jZXNzIGNyYXNo
ZXMuCisKKyAgICAgICAgICAgIChXZWJLaXRXZWJQcm9jZXNzOjY4NjMpOiBHU3RyZWFtZXItQ1JJ
VElDQUwgKio6CisgICAgICAgICAgICBUcnlpbmcgdG8gZGlzcG9zZSBlbGVtZW50IGFwcHNyYzEs
IGJ1dCBpdCBpcyBpbiBSRUFEWSBpbnN0ZWFkIG9mIHRoZSBOVUxMIHN0YXRlLgorICAgICAgICAg
ICAgWW91IG5lZWQgdG8gZXhwbGljaXRseSBzZXQgZWxlbWVudHMgdG8gdGhlIE5VTEwgc3RhdGUg
YmVmb3JlCisgICAgICAgICAgICBkcm9wcGluZyB0aGUgZmluYWwgcmVmZXJlbmNlLCB0byBhbGxv
dyB0aGVtIHRvIGNsZWFuIHVwLgorICAgICAgICAgICAgVGhpcyBwcm9ibGVtIG1heSBhbHNvIGJl
IGNhdXNlZCBieSBhIHJlZmNvdW50aW5nIGJ1ZyBpbiB0aGUKKyAgICAgICAgICAgIGFwcGxpY2F0
aW9uIG9yIHNvbWUgZWxlbWVudC4KKworICAgICAgICAgICAgKFdlYktpdFdlYlByb2Nlc3M6Njg2
Myk6IEdTdHJlYW1lci1DUklUSUNBTCAqKjogZ3N0X3VyaV9oYW5kbGVyX2dldF91cmk6IGFzc2Vy
dGlvbiAnR1NUX0lTX1VSSV9IQU5ETEVSKGhhbmRsZXIpJyBmYWlsZWQKKworICAgICAgICAgICAg
KFdlYktpdFdlYlByb2Nlc3M6Njg2Myk6IEdTdHJlYW1lci1DUklUSUNBTCAqKjogZ3N0X3VyaV9n
ZXRfcHJvdG9jb2w6IGFzc2VydGlvbiAndXJpICE9IE5VTEwnIGZhaWxlZAorCisgICAgICAgIFRo
aXMgc2hvdWxkIGJlIGZpeGVkIGluIEdTVCwgYnV0IHdlIGNhbiB3b3JrYXJvdW5kIGl0IGluIFdl
YktpdCB3aGlsZSBpdCdzIGZpeGVkIGluIEdTVCBvciB0byBwcmV2ZW50IHRoaXMgZnJvbQorICAg
ICAgICBoYXBwZW5pbmcgaWYgb3RoZXIgdXNlcnMgbWFrZSB0aGUgc2FtZSBtaXN0YWtlLiBUaGUg
aWRlYSBpcyB0byBhZGQgYSBlbnN1cmVHUmVmKCkgb25seSBhdmFpbGFibGUgZm9yIEdSZWZQdHIK
KyAgICAgICAgd2hlbiB1c2luZyBXZWJLaXRXZWJTcmMgb2JqZWN0cyB0aGF0IGNvbnN1bWVzIHRo
ZSBmbG9hdGluZyByZWZlcmVuY2UgaWYgbmVlZGVkIGJlZm9yZSB0YWtpbmcgdGhlIGFjdHVhbCBy
ZWZlcmVuY2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0
ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXVEY6OmVuc3VyZUdSZWYpOiBDb25zdW1lIHRoZSBm
bG9hdGluZyByZWYgaWYgbmVlZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9HUmVmUHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJT
cmNDaGFuZ2VTdGF0ZSk6IFVzZSBlbnN1cmVHUmVmKCkuCisKIDIwMTYtMDUtMDMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0YXJ0IG9uIGRpY3Rpb25hcnkgc3Vw
cG9ydCBmb3IgSURMLCBnZXR0aW5nIGVub3VnaCB0byB3b3JrIGZvciBvbmUgZGljdGlvbmFyeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dS
ZWZQdHJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwCmluZGV4IDQ3MTEzZjYuLjIzNzIyNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKQEAgLTM0Miw2ICszNDIsMTYgQEAgdGVtcGxhdGUg
PD4gR1JlZlB0cjxXZWJLaXRXZWJTcmM+IGFkb3B0R1JlZihXZWJLaXRXZWJTcmMqIHB0cikKICAg
ICByZXR1cm4gR1JlZlB0cjxXZWJLaXRXZWJTcmM+KHB0ciwgR1JlZlB0ckFkb3B0KTsKIH0KIAor
Ly8gVGhpcyBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIFdlYktpdFdlYlNyYyBhbmQgc2hv
dWxkIG5vdCBiZSB1c2VkIGZvciBhbnkgb3RoZXIgdHlwZS4KKy8vIFRoaXMgaXMgb25seSB0byB3
b3JrIGFyb3VuZCBhIGJ1ZyBpbiBHU1Qgd2hlcmUgdGhlIFVSSSBkb3dubG9hZGVyIGlzIG5vdCB0
YWtpbmcgdGhlIG93bmVyc2hpcCBvZiBXZWJLaXRXZWJTcmMuCisvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA0MC4KK0dSZWZQdHI8V2ViS2l0V2ViU3Jj
PiBlbnN1cmVHUmVmKFdlYktpdFdlYlNyYyogcHRyKQoreworICAgIGlmIChwdHIgJiYgZ19vYmpl
Y3RfaXNfZmxvYXRpbmcocHRyKSkKKyAgICAgICAgZ3N0X29iamVjdF9yZWZfc2luayhHU1RfT0JK
RUNUKHB0cikpOworICAgIHJldHVybiBHUmVmUHRyPFdlYktpdFdlYlNyYz4ocHRyKTsKK30KKwog
dGVtcGxhdGUgPD4gV2ViS2l0V2ViU3JjKiByZWZHUHRyPFdlYktpdFdlYlNyYz4oV2ViS2l0V2Vi
U3JjKiBwdHIpCiB7CiAgICAgaWYgKHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5oCmluZGV4
IDgxZTFlMGQuLjFhMzM2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaApAQCAtMTA4LDYg
KzEwOCw3IEBAIHRlbXBsYXRlPD4gV2ViS2l0VmlkZW9TaW5rKiByZWZHUHRyPFdlYktpdFZpZGVv
U2luaz4oV2ViS2l0VmlkZW9TaW5rKiBwdHIpOwogdGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxX
ZWJLaXRWaWRlb1Npbms+KFdlYktpdFZpZGVvU2luayogcHRyKTsKIAogdGVtcGxhdGU8PiBHUmVm
UHRyPFdlYktpdFdlYlNyYz4gYWRvcHRHUmVmKFdlYktpdFdlYlNyYyogcHRyKTsKK0dSZWZQdHI8
V2ViS2l0V2ViU3JjPiBlbnN1cmVHUmVmKFdlYktpdFdlYlNyYyogcHRyKTsKIHRlbXBsYXRlPD4g
V2ViS2l0V2ViU3JjKiByZWZHUHRyPFdlYktpdFdlYlNyYz4oV2ViS2l0V2ViU3JjKiBwdHIpOwog
dGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxXZWJLaXRXZWJTcmM+KFdlYktpdFdlYlNyYyogcHRy
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA0
N2EzZjI1Li5mZmRiMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyBHc3RBcHBTcmNDYWxsYmFja3MgYXBw
c3JjQ2FsbGJhY2tzID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3Ioc3JjKTsKKyAgICAgICAgR1Jl
ZlB0cjxXZWJLaXRXZWJTcmM+IHByb3RlY3RvciA9IFdURjo6ZW5zdXJlR1JlZihzcmMpOwogICAg
ICAgICBwcml2LT5ub3RpZmllci5ub3RpZnkoTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6
TmVlZERhdGEsIFtwcm90ZWN0b3JdIHsgd2ViS2l0V2ViU3JjTmVlZERhdGEocHJvdGVjdG9yLmdl
dCgpKTsgfSk7CiAgICAgfSwKICAgICAvLyBlbm91Z2hfZGF0YQpAQCAtMjAyLDcgKzIwMiw3IEBA
IHN0YXRpYyBHc3RBcHBTcmNDYWxsYmFja3MgYXBwc3JjQ2FsbGJhY2tzID0gewogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3Jj
PiBwcm90ZWN0b3Ioc3JjKTsKKyAgICAgICAgR1JlZlB0cjxXZWJLaXRXZWJTcmM+IHByb3RlY3Rv
ciA9IFdURjo6ZW5zdXJlR1JlZihzcmMpOwogICAgICAgICBwcml2LT5ub3RpZmllci5ub3RpZnko
TWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6RW5vdWdoRGF0YSwgW3Byb3RlY3Rvcl0geyB3
ZWJLaXRXZWJTcmNFbm91Z2hEYXRhKHByb3RlY3Rvci5nZXQoKSk7IH0pOwogICAgIH0sCiAgICAg
Ly8gc2Vla19kYXRhCkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIEdzdEFwcFNyY0NhbGxiYWNr
cyBhcHBzcmNDYWxsYmFja3MgPSB7CiAgICAgICAgICAgICBwcml2LT5yZXF1ZXN0ZWRPZmZzZXQg
PSBvZmZzZXQ7CiAgICAgICAgIH0KIAotICAgICAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJv
dGVjdG9yKHNyYyk7CisgICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBX
VEY6OmVuc3VyZUdSZWYoc3JjKTsKICAgICAgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5U
aHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlNlZWssIFtwcm90ZWN0b3JdIHsgd2ViS2l0V2ViU3Jj
U2Vlayhwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgfSwK
QEAgLTY0MCw3ICs2NDAsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2Vi
U3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdAogICAgIGNhc2UgR1NU
X1NUQVRFX0NIQU5HRV9SRUFEWV9UT19QQVVTRUQ6CiAgICAgewogICAgICAgICBHU1RfREVCVUdf
T0JKRUNUKHNyYywgIlJFQURZLT5QQVVTRUQiKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRXZWJT
cmM+IHByb3RlY3RvcihzcmMpOworICAgICAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVj
dG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7CiAgICAgICAgIHByaXYtPm5vdGlmaWVyLm5vdGlm
eShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdGFydCwgW3Byb3RlY3Rvcl0geyB3ZWJL
aXRXZWJTcmNTdGFydChwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQpAQCAtNjQ4LDcgKzY0OCw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRX
ZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdGF0CiAgICAgewogICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKICAgICAgICAgcHJp
di0+bm90aWZpZXIuY2FuY2VsUGVuZGluZ05vdGlmaWNhdGlvbnMoKTsKLSAgICAgICAgR1JlZlB0
cjxXZWJLaXRXZWJTcmM+IHByb3RlY3RvcihzcmMpOworICAgICAgICBHUmVmUHRyPFdlYktpdFdl
YlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7CiAgICAgICAgIHByaXYtPm5v
dGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9wLCBbcHJvdGVj
dG9yXSB7IHdlYktpdFdlYlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsgfSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0K
</data>
<flag name="review"
          id="302277"
          type_id="1"
          status="+"
          setter="pnormand"
    />
    <flag name="commit-queue"
          id="302278"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281646</attachid>
            <date>2016-06-20 05:44:21 -0700</date>
            <delta_ts>2016-06-27 00:07:20 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wk-gst-wip.diff</filename>
            <type>text/plain</type>
            <size>15946</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGNmNGRj
Yi4uMGNiNTRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTgzLDcgKzgzLDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQg
ZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50LAogY2xhc3MgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1
YmxpYyBTdHJlYW1pbmdDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNl
SGFuZGxlU3RyZWFtaW5nQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVi
bGljOgotICAgICAgICBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQoV2ViS2l0V2ViU3JjKiwgUmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgICAgICB2aXJ0
dWFsIH5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpOwogCiAgICAgICAgIC8vIFN0cmVh
bWluZ0NsaWVudCB2aXJ0dWFsIG1ldGhvZHMuCkBAIC0xMDQsNiArMTA0LDEyIEBAIGNsYXNzIFJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50
LCBwdWJsaWMgU3RyZWFtCiAgICAgICAgIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSop
IG92ZXJyaWRlOwogICAgICAgICB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBv
dmVycmlkZTsKIAorICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkIHsgMCB9OworICAg
ICAgICBMb2NrIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICAgICAgQ29u
ZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb247CisgICAgICAgIFJ1bkxvb3AqIG1f
cnVuTG9vcCB7IG51bGxwdHIgfTsKKyAgICAgICAgTG9jayBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25k
aXRpb25NdXRleDsKKyAgICAgICAgQ29uZGl0aW9uIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlv
bjsKICAgICAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNlOwogfTsKIApAQCAt
MTI5LDE4ICsxMzUsMTkgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKIAogICAgIFJl
ZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IGxvYWRlcjsKICAgICBSZWZQdHI8UGxh
dGZvcm1NZWRpYVJlc291cmNlPiByZXNvdXJjZTsKLSAgICBSZXNvdXJjZUhhbmRsZVN0cmVhbWlu
Z0NsaWVudCogY2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudD4gY2xpZW50OwogCiAgICAgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
OwogCiAgICAgZ3VpbnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29sZWFu
IHNlZWthYmxlOwotICAgIGdib29sZWFuIHBhdXNlZDsKKyAgICBib29sIHBhdXNlZDsKICAgICBi
b29sIGlzU2Vla2luZzsKIAogICAgIGd1aW50NjQgcmVxdWVzdGVkT2Zmc2V0OwogCisgICAgYm9v
bCBjcmVhdGVkSW5NYWluVGhyZWFkOwogICAgIE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhyZWFk
U291cmNlTm90aWZpY2F0aW9uPiBub3RpZmllcjsKICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gYnVm
ZmVyOwogfTsKQEAgLTE3NCw1NyArMTgxLDIwIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJT
cmNRdWVyeVdpdGhQYXJlbnQoR3N0UGFkKiwgR3N0T2JqZWN0KiwgR3N0UXVlcnkqKTsKIAogc3Rh
dGljIHZvaWQgd2ViS2l0V2ViU3JjTmVlZERhdGEoV2ViS2l0V2ViU3JjKik7CiBzdGF0aWMgdm9p
ZCB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhKFdlYktpdFdlYlNyYyopOwotc3RhdGljIHZvaWQgd2Vi
S2l0V2ViU3JjU2VlayhXZWJLaXRXZWJTcmMqKTsKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJT
cmNTZWVrKFdlYktpdFdlYlNyYyosIGd1aW50NjQpOwogCiBzdGF0aWMgR3N0QXBwU3JjQ2FsbGJh
Y2tzIGFwcHNyY0NhbGxiYWNrcyA9IHsKICAgICAvLyBuZWVkX2RhdGEKICAgICBbXShHc3RBcHBT
cmMqLCBndWludCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKLSAgICAgICAgV2ViS2l0V2ViU3JjKiBz
cmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7Ci0gICAgICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBzcmMtPnByaXY7Ci0KLSAgICAgICAgewotICAgICAgICAgICAgV1RGOjpHTXV0
ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAg
ICAgICAgICBpZiAoIXByaXYtPnBhdXNlZCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjpl
bnN1cmVHUmVmKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFk
U291cmNlTm90aWZpY2F0aW9uOjpOZWVkRGF0YSwgW3Byb3RlY3Rvcl0geyB3ZWJLaXRXZWJTcmNO
ZWVkRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKKyAgICAgICAgd2ViS2l0V2ViU3JjTmVlZERh
dGEoV0VCS0lUX1dFQl9TUkModXNlckRhdGEpKTsKICAgICB9LAogICAgIC8vIGVub3VnaF9kYXRh
CiAgICAgW10oR3N0QXBwU3JjKiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKLSAgICAgICAgV2ViS2l0
V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7Ci0gICAgICAgIFdlYktpdFdl
YlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0KLSAgICAgICAgewotICAgICAgICAgICAg
V1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3Jj
KSk7Ci0gICAgICAgICAgICBpZiAocHJpdi0+cGF1c2VkKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3Ig
PSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKLSAgICAgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1h
aW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OkVub3VnaERhdGEsIFtwcm90ZWN0b3JdIHsgd2Vi
S2l0V2ViU3JjRW5vdWdoRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKKyAgICAgICAgd2ViS2l0
V2ViU3JjRW5vdWdoRGF0YShXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSkpOwogICAgIH0sCiAgICAg
Ly8gc2Vla19kYXRhCiAgICAgW10oR3N0QXBwU3JjKiwgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludGVy
IHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VC
S0lUX1dFQl9TUkModXNlckRhdGEpOwotICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2
ID0gc3JjLT5wcml2OwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdURjo6R011dGV4TG9ja2Vy
PEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwotICAgICAgICAgICAg
aWYgKG9mZnNldCA9PSBwcml2LT5vZmZzZXQgJiYgcHJpdi0+cmVxdWVzdGVkT2Zmc2V0ID09IHBy
aXYtPm9mZnNldCkKLSAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLQotICAgICAgICAgICAg
aWYgKCFwcml2LT5zZWVrYWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAg
ICAgICAgICAgIHByaXYtPmlzU2Vla2luZyA9IHRydWU7Ci0gICAgICAgICAgICBwcml2LT5yZXF1
ZXN0ZWRPZmZzZXQgPSBvZmZzZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBHUmVmUHRyPFdlYktp
dFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7Ci0gICAgICAgIHByaXYt
Pm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTZWVrLCBbcHJv
dGVjdG9yXSB7IHdlYktpdFdlYlNyY1NlZWsocHJvdGVjdG9yLmdldCgpKTsgfSk7Ci0gICAgICAg
IHJldHVybiBUUlVFOworICAgICAgICByZXR1cm4gd2ViS2l0V2ViU3JjU2VlayhXRUJLSVRfV0VC
X1NSQyh1c2VyRGF0YSksIG9mZnNldCk7CiAgICAgfSwKICAgICB7IG51bGxwdHIgfQogfTsKQEAg
LTI4OSw2ICsyNTksOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19pbml0KFdlYktpdFdl
YlNyYyogc3JjKQogICAgIHNyYy0+cHJpdiA9IHByaXY7CiAgICAgbmV3IChwcml2KSBXZWJLaXRX
ZWJTcmNQcml2YXRlKCk7CiAKKyAgICBwcml2LT5jcmVhdGVkSW5NYWluVGhyZWFkID0gaXNNYWlu
VGhyZWFkKCk7CisKICAgICBwcml2LT5hcHBzcmMgPSBHU1RfQVBQX1NSQyhnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImFwcHNyYyIsIDApKTsKICAgICBpZiAoIXByaXYtPmFwcHNyYykgewogICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgYXBwc3JjIik7CkBA
IC00MTQsMjggKzM4NiwzNiBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdl
YlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7
CiAKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmIChwcml2LT5yZXNvdXJjZSB8
fCAocHJpdi0+bG9hZGVyICYmICFwcml2LT5rZWVwQWxpdmUpKSB7CisgICAgICAgIEdSZWZQdHI8
V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKKyAgICAgICAg
cHJpdi0+bm90aWZpZXIuY2FuY2VsUGVuZGluZ05vdGlmaWNhdGlvbnMoTWFpblRocmVhZFNvdXJj
ZU5vdGlmaWNhdGlvbjo6TmVlZERhdGEgfCBNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpF
bm91Z2hEYXRhIHwgTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6U2Vlayk7CisgICAgICAg
IHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9w
LCBbcHJvdGVjdG9yLCBrZWVwQWxpdmUgPSBwcml2LT5rZWVwQWxpdmVdIHsKKyAgICAgICAgICAg
IFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBwcm90ZWN0b3ItPnByaXY7CisKKyAgICAgICAg
ICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NL
KHByb3RlY3Rvci5nZXQoKSkpOworICAgICAgICAgICAgaWYgKHByaXYtPnJlc291cmNlKSB7Cisg
ICAgICAgICAgICAgICAgcHJpdi0+cmVzb3VyY2UtPnN0b3AoKTsKKyAgICAgICAgICAgICAgICBw
cml2LT5yZXNvdXJjZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICAgICAgICAgIHByaXYt
PnJlc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFr
ZWVwQWxpdmUpCisgICAgICAgICAgICAgICAgcHJpdi0+bG9hZGVyID0gbnVsbHB0cjsKKyAgICAg
ICAgfSk7CisgICAgfQogCiAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdT
VF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKICAgICBib29sIHdhc1NlZWtpbmcgPSBzdGQ6OmV4
Y2hhbmdlKHByaXYtPmlzU2Vla2luZywgZmFsc2UpOwogCi0gICAgcHJpdi0+bm90aWZpZXIuY2Fu
Y2VsUGVuZGluZ05vdGlmaWNhdGlvbnMoTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6TmVl
ZERhdGEgfCBNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpFbm91Z2hEYXRhIHwgTWFpblRo
cmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6U2Vlayk7Ci0KLSAgICBpZiAocHJpdi0+Y2xpZW50KSB7
Ci0gICAgICAgIGRlbGV0ZSBwcml2LT5jbGllbnQ7Ci0gICAgICAgIHByaXYtPmNsaWVudCA9IDA7
Ci0gICAgfQotCi0gICAgaWYgKCFwcml2LT5rZWVwQWxpdmUpCi0gICAgICAgIHByaXYtPmxvYWRl
ciA9IG51bGxwdHI7CisgICAgcHJpdi0+Y2xpZW50ID0gbnVsbHB0cjsKIAogICAgIGlmIChwcml2
LT5idWZmZXIpIHsKICAgICAgICAgdW5tYXBHc3RCdWZmZXIocHJpdi0+YnVmZmVyLmdldCgpKTsK
ICAgICAgICAgcHJpdi0+YnVmZmVyLmNsZWFyKCk7CiAgICAgfQogCi0gICAgcHJpdi0+cGF1c2Vk
ID0gRkFMU0U7CisgICAgcHJpdi0+cGF1c2VkID0gZmFsc2U7CiAKICAgICBwcml2LT5vZmZzZXQg
PSAwOwogICAgIHByaXYtPnNlZWthYmxlID0gRkFMU0U7CkBAIC01MTIsOCArNDkyLDYgQEAgc3Rh
dGljIHZvaWQgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAgICAgV2Vi
S2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0KICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09C
SkVDVF9HRVRfTE9DSyhzcmMpKTsKIAogICAgIHByaXYtPmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2sgPSBmYWxzZTsKQEAgLTU3OCwzNyArNTU2LDQxIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNy
Y1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIFdlIGFsd2F5cyByZXF1ZXN0IEljZWNh
c3QvU2hvdXRjYXN0IG1ldGFkYXRhLCBqdXN0IGluIGNhc2UgLi4uCiAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkljeU1ldGFkYXRhLCAiMSIpOwogCi0gICAg
Ym9vbCBsb2FkRmFpbGVkID0gdHJ1ZTsKLSAgICBpZiAocHJpdi0+cGxheWVyICYmICFwcml2LT5s
b2FkZXIpCi0gICAgICAgIHByaXYtPmxvYWRlciA9IHByaXYtPnBsYXllci0+Y3JlYXRlUmVzb3Vy
Y2VMb2FkZXIoKTsKKyAgICBpZiAoIXByaXYtPnBsYXllciB8fCAhcHJpdi0+Y3JlYXRlZEluTWFp
blRocmVhZCkgeworICAgICAgICBwcml2LT5jbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlc291
cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50PihzcmMsIFdURk1vdmUocmVxdWVzdCkpOworICAgICAg
ICBpZiAocHJpdi0+Y2xpZW50LT5sb2FkRmFpbGVkKCkpIHsKKyAgICAgICAgICAgIEdTVF9FUlJP
Ul9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIHNldHVwIHN0cmVhbWluZyBjbGllbnQiKTsKKyAgICAg
ICAgICAgIHByaXYtPmNsaWVudCA9IG51bGxwdHI7CisgICAgICAgICAgICBsb2NrZXIudW5sb2Nr
KCk7CisgICAgICAgICAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTdGFydGVkIHJlcXVlc3QiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxvY2tlci51bmxvY2soKTsKKyAgICBHUmVmUHRy
PFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7CisgICAgcHJp
di0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlN0YXJ0LCBb
cHJvdGVjdG9yLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBXZWJLaXRX
ZWJTcmNQcml2YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworCisgICAgICAgIFdURjo6R011
dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHByb3RlY3Rvci5n
ZXQoKSkpOworICAgICAgICBpZiAoIXByaXYtPmxvYWRlcikKKyAgICAgICAgICAgIHByaXYtPmxv
YWRlciA9IHByaXYtPnBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIGlmIChw
cml2LT5sb2FkZXIpIHsKICAgICAgICAgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2Fk
T3B0aW9ucyBsb2FkT3B0aW9ucyA9IDA7CiAgICAgICAgIGlmIChyZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXNCbG9iKCkpCiAgICAgICAgICAgICBsb2FkT3B0aW9ucyB8PSBQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXI6OkxvYWRPcHRpb246OkJ1ZmZlckRhdGE7CiAgICAgICAgIHByaXYtPnJlc291
cmNlID0gcHJpdi0+bG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UocmVxdWVzdCwgbG9hZE9wdGlvbnMp
OwotICAgICAgICBsb2FkRmFpbGVkID0gIXByaXYtPnJlc291cmNlOwotCi0gICAgICAgIGlmIChw
cml2LT5yZXNvdXJjZSkKLSAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRDbGllbnQoc3Rk
OjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudD4oc3JjKSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IFJlc291cmNlSGFuZGxlU3RyZWFt
aW5nQ2xpZW50KHNyYywgcmVxdWVzdCk7Ci0gICAgICAgIGxvYWRGYWlsZWQgPSBwcml2LT5jbGll
bnQtPmxvYWRGYWlsZWQoKTsKLSAgICB9Ci0KLSAgICBpZiAobG9hZEZhaWxlZCkgewotICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBzZXR1cCBzdHJlYW1pbmcgY2xpZW50
Iik7Ci0gICAgICAgIGlmIChwcml2LT5jbGllbnQpIHsKLSAgICAgICAgICAgIGRlbGV0ZSBwcml2
LT5jbGllbnQ7Ci0gICAgICAgICAgICBwcml2LT5jbGllbnQgPSBudWxscHRyOworICAgICAgICBp
ZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRDbGll
bnQoc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudD4ocHJvdGVj
dG9yLmdldCgpKSk7CisgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHByb3RlY3Rvci5nZXQo
KSwgIlN0YXJ0ZWQgcmVxdWVzdCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChwcm90ZWN0b3IuZ2V0KCksICJGYWlsZWQgdG8gc2V0dXAgc3RyZWFtaW5n
IGNsaWVudCIpOworICAgICAgICAgICAgcHJpdi0+bG9hZGVyID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgIGxvY2tlci51bmxvY2soKTsKKyAgICAgICAgICAgIHdlYktpdFdlYlNyY1N0b3AocHJvdGVj
dG9yLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBwcml2LT5sb2FkZXIgPSBudWxscHRyOwot
ICAgICAgICBwcml2LT5yZXNvdXJjZSA9IG51bGxwdHI7Ci0gICAgICAgIGxvY2tlci51bmxvY2so
KTsKLSAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RhcnRlZCByZXF1ZXN0Iik7CisgICAgfSk7
CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0
ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQpAQCAtNjQw
LDE2ICs2MjIsMTMgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktpdFdlYlNyY0No
YW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXQKICAgICBjYXNlIEdTVF9TVEFU
RV9DSEFOR0VfUkVBRFlfVE9fUEFVU0VEOgogICAgIHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVD
VChzcmMsICJSRUFEWS0+UEFVU0VEIik7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBw
cm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKLSAgICAgICAgcHJpdi0+bm90aWZpZXIu
bm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlN0YXJ0LCBbcHJvdGVjdG9yXSB7
IHdlYktpdFdlYlNyY1N0YXJ0KHByb3RlY3Rvci5nZXQoKSk7IH0pOworICAgICAgICB3ZWJLaXRX
ZWJTcmNTdGFydChzcmMpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBHU1RfU1RB
VEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICB7CiAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiUEFVU0VELT5SRUFEWSIpOwotICAgICAgICBwcml2LT5ub3RpZmllci5jYW5jZWxQ
ZW5kaW5nTm90aWZpY2F0aW9ucygpOwotICAgICAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJv
dGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVyLm5v
dGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9wLCBbcHJvdGVjdG9yXSB7IHdl
YktpdFdlYlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsgfSk7CisgICAgICAgIHdlYktpdFdlYlNy
Y1N0b3Aoc3JjKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBAIC03NzQs
NTkgKzc1Myw5MSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5pdChncG9p
bnRlciBnSWZhY2UsIGdwb2ludGVyKQogICAgIGlmYWNlLT5zZXRfdXJpID0gd2ViS2l0V2ViU3Jj
U2V0VXJpOwogfQogCi0vLyBhcHBzcmMgY2FsbGJhY2tzCi0KIHN0YXRpYyB2b2lkIHdlYktpdFdl
YlNyY05lZWREYXRhKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCiAg
ICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJOZWVkIG1vcmUgZGF0YSIpOwogCiAgICAgewogICAg
ICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09CSkVDVF9HRVRfTE9D
SyhzcmMpKTsKLSAgICAgICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7CisgICAgICAgIGlmICghcHJp
di0+cGF1c2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBwcml2LT5wYXVzZWQgPSBm
YWxzZTsKKyAgICAgICAgaWYgKHByaXYtPmNsaWVudCkgeworICAgICAgICAgICAgcHJpdi0+Y2xp
ZW50LT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQogICAgIH0KIAotICAgIGlmIChwcml2LT5jbGllbnQpCi0gICAgICAgIHByaXYtPmNsaWVu
dC0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7Ci0gICAgaWYgKHByaXYtPnJlc291cmNlKQotICAg
ICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CisgICAgR1JlZlB0
cjxXZWJLaXRXZWJTcmM+IHByb3RlY3RvciA9IFdURjo6ZW5zdXJlR1JlZihzcmMpOworICAgIHBy
aXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpOZWVkRGF0
YSwgW3Byb3RlY3Rvcl0geworICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gcHJv
dGVjdG9yLT5wcml2OworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2UpCisgICAgICAgICAgICBw
cml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CisgICAgfSk7CiB9CiAKIHN0
YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGEoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAg
ICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIkhhdmUgZW5vdWdo
IGRhdGEiKTsKIAogICAgIHsKICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2Nr
ZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgIHByaXYtPnBhdXNlZCA9IFRS
VUU7CisgICAgICAgIGlmIChwcml2LT5wYXVzZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIHByaXYtPnBhdXNlZCA9IHRydWU7CisgICAgICAgIGlmIChwcml2LT5jbGllbnQpIHsKKyAg
ICAgICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChwcml2LT5jbGllbnQpCi0g
ICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKLSAgICBpZiAocHJp
di0+cmVzb3VyY2UpCi0gICAgICAgIHByaXYtPnJlc291cmNlLT5zZXREZWZlcnNMb2FkaW5nKHRy
dWUpOworICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdS
ZWYoc3JjKTsKKyAgICBwcml2LT5ub3RpZmllci5ub3RpZnkoTWFpblRocmVhZFNvdXJjZU5vdGlm
aWNhdGlvbjo6RW5vdWdoRGF0YSwgW3Byb3RlY3Rvcl0geworICAgICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworICAgICAgICBpZiAocHJpdi0+cmVzb3Vy
Y2UpCisgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsK
KyAgICB9KTsKIH0KIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2VlayhXZWJLaXRXZWJTcmMq
IHNyYykKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrKFdlYktpdFdlYlNyYyogc3Jj
LCBndWludDY0IG9mZnNldCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFdl
YktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKKyAgICB7CisgICAgICAgIFdU
Rjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykp
OworICAgICAgICBpZiAob2Zmc2V0ID09IHByaXYtPm9mZnNldCAmJiBwcml2LT5yZXF1ZXN0ZWRP
ZmZzZXQgPT0gcHJpdi0+b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICAg
ICAgaWYgKCFwcml2LT5zZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKworICAg
ICAgICBwcml2LT5pc1NlZWtpbmcgPSB0cnVlOworICAgICAgICBwcml2LT5yZXF1ZXN0ZWRPZmZz
ZXQgPSBvZmZzZXQ7CisgICAgfQogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTZWVraW5n
IHRvIG9mZnNldDogJSIgR19HVUlOVDY0X0ZPUk1BVCwgc3JjLT5wcml2LT5yZXF1ZXN0ZWRPZmZz
ZXQpOworICAgIGlmIChwcml2LT5jbGllbnQpIHsKKyAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChz
cmMpOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChzcmMpOworICAgICAgICByZXR1cm4gVFJV
RTsKKyAgICB9CiAKLSAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7Ci0gICAgd2ViS2l0V2ViU3Jj
U3RhcnQoc3JjKTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjpl
bnN1cmVHUmVmKHNyYyk7CisgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3Vy
Y2VOb3RpZmljYXRpb246OlNlZWssIFtwcm90ZWN0b3JdIHsKKyAgICAgICAgd2ViS2l0V2ViU3Jj
U3RvcChwcm90ZWN0b3IuZ2V0KCkpOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChwcm90ZWN0
b3IuZ2V0KCkpOworICAgIH0pOworICAgIHJldHVybiBUUlVFOwogfQogCiB2b2lkIHdlYktpdFdl
YlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3JlOjpNZWRpYVBsYXll
ciogcGxheWVyKQogewogICAgIEFTU0VSVChwbGF5ZXIpOworICAgIEFTU0VSVChzcmMtPnByaXYt
PmNyZWF0ZWRJbk1haW5UaHJlYWQpOwogICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9j
a2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogICAgIHNyYy0+cHJpdi0+cGxheWVyID0g
cGxheWVyOwogfQpAQCAtMTA1MywxNyArMTA2NCw0NyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJikKICAgICBo
YW5kbGVOb3RpZnlGaW5pc2hlZCgpOwogfQogCi1SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK1Jlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7Ci0gICAg
bV9yZXNvdXJjZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoMCAvKmNvbnRleHQqLywgcmVxdWVz
dCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxp
emVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIG1fdGhyZWFkID0gY3JlYXRlVGhyZWFkKCJS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShy
ZXF1ZXN0KV0geworICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2lu
aXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICAgICAgbV9ydW5Mb29wID0g
JlJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2UgPSBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlKG51bGxwdHIgLypjb250ZXh0Ki8sIHJlcXVlc3QsIHRoaXMsIHRydWUsIGZh
bHNlKTsKKyAgICAgICAgICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5T25l
KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXNdIHsgbV9yZXNvdXJjZS0+
c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7IH0pOworICAgICAgICBtX3J1bkxvb3AtPnJ1bigpOwor
ICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1bkxv
b3BDb25kaXRpb25NdXRleCk7CisgICAgICAgICAgICBtX3J1bkxvb3AgPSBudWxscHRyOworICAg
ICAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fcmVzb3Vy
Y2UtPmNhbmNlbCgpOworICAgICAgICAgICAgbV9yZXNvdXJjZSA9IG51bGxwdHI7CisgICAgICAg
ICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgICAgIH0K
KyAgICB9KTsKKyAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIH0KIAogUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdD
bGllbnQ6On5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpCiB7Ci0gICAgaWYgKG1fcmVz
b3VyY2UpIHsKLSAgICAgICAgbV9yZXNvdXJjZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fcmVzb3Vy
Y2UgPSBudWxscHRyOworICAgIGlmIChtX3RocmVhZCkgeworICAgICAgICBkZXRhY2hUaHJlYWQo
bV90aHJlYWQpOworICAgICAgICBtX3RocmVhZCA9IDA7CisgICAgfQorCisgICAgaWYgKG1fcnVu
TG9vcCA9PSAmUnVuTG9vcDo6Y3VycmVudCgpKQorICAgICAgICBtX3J1bkxvb3AtPnN0b3AoKTsK
KyAgICBlbHNlIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5Mb29w
Q29uZGl0aW9uTXV0ZXgpOworICAgICAgICBtX3J1bkxvb3AtPnN0b3AoKTsKKyAgICAgICAgbV90
ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9u
TXV0ZXgpOwogICAgIH0KIH0KIApAQCAtMTA3NCw4ICsxMTE1LDEwIEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQ6OmxvYWRGYWlsZWQoKSBjb25zdAogCiB2b2lkIFJlc291cmNl
SGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogewot
ICAgIGlmIChtX3Jlc291cmNlKQotICAgICAgICBtX3Jlc291cmNlLT5zZXREZWZlcnNMb2FkaW5n
KGRlZmVycyk7CisgICAgbV9ydW5Mb29wLT5kaXNwYXRjaChbdGhpcywgZGVmZXJzXSB7CisgICAg
ICAgIGlmIChtX3Jlc291cmNlKQorICAgICAgICAgICAgbV9yZXNvdXJjZS0+c2V0RGVmZXJzTG9h
ZGluZyhkZWZlcnMpOworICAgIH0pOwogfQogCiAjaWYgVVNFKFNPVVApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282104</attachid>
            <date>2016-06-27 00:07:20 -0700</date>
            <delta_ts>2016-06-27 23:59:51 -0700</delta_ts>
            <desc>Updated patch to include ChangeLog</desc>
            <filename>wcore-gst-hls.diff</filename>
            <type>text/plain</type>
            <size>19153</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OGRhMTQwLi4xZDk4MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTYtMDYtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIEFkYXB0aXZlIHN0cmVhbWluZyBpc3N1ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA0MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFyZSBtdWx0
aXBsZSBkZWFkbG9ja3MgaW4gdGhlIHdlYiBwcm9jZXNzIHdoZW4gSExTIGNvbnRlbnQgaXMgbG9h
ZGVkIGJ5IEdTdHJlYW1lci4gSXQgaGFwcGVucyBiZWNhdXNlIGdzdAorICAgICAgICBpcyB1c2lu
ZyBzZXZlcmFsIHRocmVhZHMgdG8gZG93bmxvYWQgbWFuaWZlc3QsIGZyYWdtZW50cywgbW9uaXRv
ciB0aGUgZG93bmxvYWRzLCBldGMuIFRvIGRvd25sb2FkIHRoZSBmcmFnbWVudHMKKyAgICAgICAg
YW5kIG1hbmlmZXN0IGl0IGFsd2F5cyBjcmVhdGVzIHRoZSBzb3VyY2UgZWxlbWVudCBpbiBhIHNl
cGFyYXRlIHRocmVhZCwgc29tZXRoaW5nIHRoYXQgaXMgbm90IGFjdHVhbGx5IGV4cGVjdGVkCisg
ICAgICAgIHRvIGhhcHBlbiBpbiBXZWJLaXQgc291cmNlIGVsZW1lbnQuIE91ciBzb3VyY2UgZWxl
bWVudCBpcyBhbHdheXMgc2NoZWR1bGluZyB0YXNrcyAoc3RhcnQsIHN0b3AsIG5lZWQtZGF0YSwK
KyAgICAgICAgZW5vdWdoLWRhdGEgYW5kIHNlZWspIHRvIHRoZSBtYWluIHRocmVhZCwgYW5kIHRo
b3NlIGRvd25sb2FkcyB0aGF0IHVzZSB0aGUgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQK
KyAgICAgICAgKHRoZXJlJ3Mgbm8gcGxheWVyIGFzc29jaWF0ZWQpIGFsc28gaGFwcGVuIGluIHRo
ZSBtYWluIHRocmVhZCwgYmVjYXVzZSBsaWJzb3VwIGNhbGxzIGFsbCBpdHMgYXN5bmMgY2FsbGJh
Y2tzIGluCisgICAgICAgIHRoZSBtYWluIHRocmVhZC4gU28sIHRoZSByZXN1bHQgaXMgdGhhdCBp
dCBjYW4gaGFwcGVuIHRoYXQgd2UgZW5kIHVwIGJsb2NraW5nIHRoZSBtYWluIHRocmVhZCBpbiBh
IGxvY2sgdW50aWwKKyAgICAgICAgdGhlIGRvd25sb2FkIGZpbmlzaGVzLCBidXQgdGhlIGRvd25s
b2FkIG5ldmVyIGZpbmlzaGVzIGJlY2F1c2UgdGFza3MgYXJlIHNjaGVkdWxlZCBpbiB0aGUgbWFp
biB0aHJlYWQgdGhhdCBpcworICAgICAgICBibG9ja2VkIGluIGEgbG9jay4gVGhpcyBjYW4gYmUg
cHJldmVudGVkIGJ5IGFsd2F5cyB1c2luZyBhIHNlY29uZGFyeSB0aHJlYWQgZm9yIGRvd25sb2Fk
cyBtYWRlIGJ5CisgICAgICAgIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50LCB1c2luZyBp
dHMgb3duIHJ1biBsb29wIHdpdGggYSBkaWZmZXJlbnQgR01haW5Db250ZXh0IHNvIHRoYXQgbGli
c291cCBzZW5kcworICAgICAgICBjYWxsYmFja3MgdG8gdGhlIHJpZ2h0IHRocmVhZC4gV2UgYWxz
byBoYWQgdG8gcmVmYWN0b3IgdGhlIHRhc2tzIGEgYml0LCBsZWF2aW5nIHRoZSB0aHJlYWQgc2Fm
ZSBwYXJ0cyB0byBiZSBydW4KKyAgICAgICAgaW4gdGhlIGNhbGxpbmcgdGhyZWFkIGFsd2F5cywg
YW5kIG9ubHkgc2NoZWR1bGluZyB0byB0aGUgbWFpbiB0aHJlYWQgaW4gY2FzZSBvZiBub3QgdXNp
bmcKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgYW5kIG9ubHkgZm9yIHRo
ZSBub24gdGhyZWFkIHNhZmUgcGFydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYmtpdF93
ZWJfc3JjX2luaXQpOiBDaGVjayBpZiBvYmplY3QgaXMgYmVpbmcgY3JlYXRlZCBpbiB0aGUgbWFp
biB0aHJlYWQuCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdG9wKTogU3RvcCB0aGUgbWVkaWEgcmVz
b3VyY2UgbG9hZGVyIGluIHRoZSBtYWluIHRocmVhZCBhbmQgdGhlIHJlc291cmNlIGhhbmRsZSBz
dHJlYW1pbmcgaW4gdGhlCisgICAgICAgIGN1cnJlbnQgdGhyZWFkLgorICAgICAgICAod2ViS2l0
V2ViU3JjU3RhcnQpOiBTdGFydCB0aGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGluIHRoZSBtYWlu
IHRocmVhZCBhbmQgdGhlIHJlc291cmNlIGhhbmRsZSBzdHJlYW1pbmcgaW4KKyAgICAgICAgdGhl
IGN1cnJlbnQgdGhyZWFkLgorICAgICAgICAod2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUpOiBDYWxs
IHdlYktpdFdlYlNyY1N0YXJ0IGFuZCB3ZWJLaXRXZWJTcmNTdG9wIGluIHRoZSBjdXJyZW50IHRo
cmVhZC4KKyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRhKTogVXBkYXRlIHN0YXR1cyBpbiB0
aGUgY3VycmVudCB0aHJlYWQgYW5kIG5vdGlmeSB0aGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGlu
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKHdlYktpdFdlYlNyY0Vub3VnaERhdGEpOiBEaXR0
by4KKyAgICAgICAgKHdlYktpdFdlYlNyY1NlZWspOiBEaXR0by4KKyAgICAgICAgKHdlYktpdFdl
YlNyY1NldE1lZGlhUGxheWVyKTogQWRkIGFuIGFzc2VydCB0byBlbnN1cmUgdGhhdCBzb3VyY2Ug
ZWxlbWVudHMgdXNlZCBieSBXZWJLaXQgYXJlIGFsd2F5cyBjcmVhdGVkIGluCisgICAgICAgIHRo
ZSBtYWluIHRocmVhZC4KKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6IFVzZSBhIHNlY29uZGFyeSB0aHJlYWQgdG8g
ZG8gdGhlIGRvd25sb2FkLgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6
On5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6IFN0b3AgdGhlIHNlY29uZGFyeSB0aHJl
YWQuCisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6c2V0RGVmZXJzTG9h
ZGluZyk6IE5vdGlmeSB0aGUgc2Vjb25kYXJ5IHRocmVhZC4KKwogMjAxNi0wNi0yNCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMTk4NzgyLCByMjAxMDQzKTogW2ltYWdlLWRlY29kZXJzXSBGbGlja2VyaW5nIHdpdGggc29t
ZSBhbmltYXRlZCBnaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggMGNmNGRjYi4uMGNiNTRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50
LAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VI
YW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW1pbmdDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dChXZWJLaXRXZWJTcmMqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiwgUmVzb3VyY2VSZXF1ZXN0JiYp
OwogICAgICAgICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpOwogCiAg
ICAgICAgIC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1ldGhvZHMuCkBAIC0xMDQsNiArMTA0
LDEyIEBAIGNsYXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291
cmNlSGFuZGxlQ2xpZW50LCBwdWJsaWMgU3RyZWFtCiAgICAgICAgIHZvaWQgd2FzQmxvY2tlZChS
ZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGNhbm5vdFNob3dVUkwoUmVz
b3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKIAorICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhy
ZWFkIHsgMCB9OworICAgICAgICBMb2NrIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRl
eDsKKyAgICAgICAgQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb247CisgICAg
ICAgIFJ1bkxvb3AqIG1fcnVuTG9vcCB7IG51bGxwdHIgfTsKKyAgICAgICAgTG9jayBtX3Rlcm1p
bmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICAgICAgQ29uZGl0aW9uIG1fdGVybWluYXRl
UnVuTG9vcENvbmRpdGlvbjsKICAgICAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX3Jlc291
cmNlOwogfTsKIApAQCAtMTI5LDE4ICsxMzUsMTkgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2
YXRlIHsKIAogICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IGxvYWRlcjsK
ICAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXNvdXJjZTsKLSAgICBSZXNvdXJj
ZUhhbmRsZVN0cmVhbWluZ0NsaWVudCogY2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNv
dXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudD4gY2xpZW50OwogCiAgICAgYm9vbCBkaWRQYXNzQWNj
ZXNzQ29udHJvbENoZWNrOwogCiAgICAgZ3VpbnQ2NCBvZmZzZXQ7CiAgICAgZ3VpbnQ2NCBzaXpl
OwogICAgIGdib29sZWFuIHNlZWthYmxlOwotICAgIGdib29sZWFuIHBhdXNlZDsKKyAgICBib29s
IHBhdXNlZDsKICAgICBib29sIGlzU2Vla2luZzsKIAogICAgIGd1aW50NjQgcmVxdWVzdGVkT2Zm
c2V0OwogCisgICAgYm9vbCBjcmVhdGVkSW5NYWluVGhyZWFkOwogICAgIE1haW5UaHJlYWROb3Rp
ZmllcjxNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uPiBub3RpZmllcjsKICAgICBHUmVmUHRy
PEdzdEJ1ZmZlcj4gYnVmZmVyOwogfTsKQEAgLTE3NCw1NyArMTgxLDIwIEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQoR3N0UGFkKiwgR3N0T2JqZWN0KiwgR3N0
UXVlcnkqKTsKIAogc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjTmVlZERhdGEoV2ViS2l0V2ViU3Jj
Kik7CiBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhKFdlYktpdFdlYlNyYyopOwot
c3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2VlayhXZWJLaXRXZWJTcmMqKTsKK3N0YXRpYyBnYm9v
bGVhbiB3ZWJLaXRXZWJTcmNTZWVrKFdlYktpdFdlYlNyYyosIGd1aW50NjQpOwogCiBzdGF0aWMg
R3N0QXBwU3JjQ2FsbGJhY2tzIGFwcHNyY0NhbGxiYWNrcyA9IHsKICAgICAvLyBuZWVkX2RhdGEK
ICAgICBbXShHc3RBcHBTcmMqLCBndWludCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKLSAgICAgICAg
V2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7Ci0gICAgICAgIFdl
YktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0KLSAgICAgICAgewotICAgICAg
ICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xP
Q0soc3JjKSk7Ci0gICAgICAgICAgICBpZiAoIXByaXYtPnBhdXNlZCkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJv
dGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVyLm5v
dGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpOZWVkRGF0YSwgW3Byb3RlY3Rvcl0g
eyB3ZWJLaXRXZWJTcmNOZWVkRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKKyAgICAgICAgd2Vi
S2l0V2ViU3JjTmVlZERhdGEoV0VCS0lUX1dFQl9TUkModXNlckRhdGEpKTsKICAgICB9LAogICAg
IC8vIGVub3VnaF9kYXRhCiAgICAgW10oR3N0QXBwU3JjKiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsK
LSAgICAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7Ci0g
ICAgICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0KLSAgICAgICAg
ewotICAgICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpF
Q1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgICAgICBpZiAocHJpdi0+cGF1c2VkKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEdSZWZQdHI8V2ViS2l0V2Vi
U3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKLSAgICAgICAgcHJpdi0+bm90
aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OkVub3VnaERhdGEsIFtw
cm90ZWN0b3JdIHsgd2ViS2l0V2ViU3JjRW5vdWdoRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsK
KyAgICAgICAgd2ViS2l0V2ViU3JjRW5vdWdoRGF0YShXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSkp
OwogICAgIH0sCiAgICAgLy8gc2Vla19kYXRhCiAgICAgW10oR3N0QXBwU3JjKiwgZ3VpbnQ2NCBv
ZmZzZXQsIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgIFdlYktpdFdl
YlNyYyogc3JjID0gV0VCS0lUX1dFQl9TUkModXNlckRhdGEpOwotICAgICAgICBXZWJLaXRXZWJT
cmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdU
Rjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykp
OwotICAgICAgICAgICAgaWYgKG9mZnNldCA9PSBwcml2LT5vZmZzZXQgJiYgcHJpdi0+cmVxdWVz
dGVkT2Zmc2V0ID09IHByaXYtPm9mZnNldCkKLSAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsK
LQotICAgICAgICAgICAgaWYgKCFwcml2LT5zZWVrYWJsZSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gRkFMU0U7Ci0KLSAgICAgICAgICAgIHByaXYtPmlzU2Vla2luZyA9IHRydWU7Ci0gICAgICAg
ICAgICBwcml2LT5yZXF1ZXN0ZWRPZmZzZXQgPSBvZmZzZXQ7Ci0gICAgICAgIH0KLQotICAgICAg
ICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7
Ci0gICAgICAgIHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0
aW9uOjpTZWVrLCBbcHJvdGVjdG9yXSB7IHdlYktpdFdlYlNyY1NlZWsocHJvdGVjdG9yLmdldCgp
KTsgfSk7Ci0gICAgICAgIHJldHVybiBUUlVFOworICAgICAgICByZXR1cm4gd2ViS2l0V2ViU3Jj
U2VlayhXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSksIG9mZnNldCk7CiAgICAgfSwKICAgICB7IG51
bGxwdHIgfQogfTsKQEAgLTI4OSw2ICsyNTksOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Ny
Y19pbml0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHNyYy0+cHJpdiA9IHByaXY7CiAgICAgbmV3
IChwcml2KSBXZWJLaXRXZWJTcmNQcml2YXRlKCk7CiAKKyAgICBwcml2LT5jcmVhdGVkSW5NYWlu
VGhyZWFkID0gaXNNYWluVGhyZWFkKCk7CisKICAgICBwcml2LT5hcHBzcmMgPSBHU1RfQVBQX1NS
Qyhnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNyYyIsIDApKTsKICAgICBpZiAoIXByaXYt
PmFwcHNyYykgewogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVh
dGUgYXBwc3JjIik7CkBAIC00MTQsMjggKzM4NiwzNiBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJT
cmNTdG9wKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHBy
aXYgPSBzcmMtPnByaXY7CiAKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmIChw
cml2LT5yZXNvdXJjZSB8fCAocHJpdi0+bG9hZGVyICYmICFwcml2LT5rZWVwQWxpdmUpKSB7Cisg
ICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYo
c3JjKTsKKyAgICAgICAgcHJpdi0+bm90aWZpZXIuY2FuY2VsUGVuZGluZ05vdGlmaWNhdGlvbnMo
TWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6TmVlZERhdGEgfCBNYWluVGhyZWFkU291cmNl
Tm90aWZpY2F0aW9uOjpFbm91Z2hEYXRhIHwgTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6
U2Vlayk7CisgICAgICAgIHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90
aWZpY2F0aW9uOjpTdG9wLCBbcHJvdGVjdG9yLCBrZWVwQWxpdmUgPSBwcml2LT5rZWVwQWxpdmVd
IHsKKyAgICAgICAgICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBwcm90ZWN0b3ItPnBy
aXY7CisKKyAgICAgICAgICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1Rf
T0JKRUNUX0dFVF9MT0NLKHByb3RlY3Rvci5nZXQoKSkpOworICAgICAgICAgICAgaWYgKHByaXYt
PnJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgcHJpdi0+cmVzb3VyY2UtPnN0b3AoKTsKKyAg
ICAgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAg
ICAgICAgICAgIHByaXYtPnJlc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKCFrZWVwQWxpdmUpCisgICAgICAgICAgICAgICAgcHJpdi0+bG9hZGVyID0g
bnVsbHB0cjsKKyAgICAgICAgfSk7CisgICAgfQogCiAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011
dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAKICAgICBib29sIHdhc1Nl
ZWtpbmcgPSBzdGQ6OmV4Y2hhbmdlKHByaXYtPmlzU2Vla2luZywgZmFsc2UpOwogCi0gICAgcHJp
di0+bm90aWZpZXIuY2FuY2VsUGVuZGluZ05vdGlmaWNhdGlvbnMoTWFpblRocmVhZFNvdXJjZU5v
dGlmaWNhdGlvbjo6TmVlZERhdGEgfCBNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpFbm91
Z2hEYXRhIHwgTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6U2Vlayk7Ci0KLSAgICBpZiAo
cHJpdi0+Y2xpZW50KSB7Ci0gICAgICAgIGRlbGV0ZSBwcml2LT5jbGllbnQ7Ci0gICAgICAgIHBy
aXYtPmNsaWVudCA9IDA7Ci0gICAgfQotCi0gICAgaWYgKCFwcml2LT5rZWVwQWxpdmUpCi0gICAg
ICAgIHByaXYtPmxvYWRlciA9IG51bGxwdHI7CisgICAgcHJpdi0+Y2xpZW50ID0gbnVsbHB0cjsK
IAogICAgIGlmIChwcml2LT5idWZmZXIpIHsKICAgICAgICAgdW5tYXBHc3RCdWZmZXIocHJpdi0+
YnVmZmVyLmdldCgpKTsKICAgICAgICAgcHJpdi0+YnVmZmVyLmNsZWFyKCk7CiAgICAgfQogCi0g
ICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7CisgICAgcHJpdi0+cGF1c2VkID0gZmFsc2U7CiAKICAg
ICBwcml2LT5vZmZzZXQgPSAwOwogICAgIHByaXYtPnNlZWthYmxlID0gRkFMU0U7CkBAIC01MTIs
OCArNDkyLDYgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBz
cmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+
IGxvY2tlcigqR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKIAogICAgIHByaXYtPmRpZFBhc3NB
Y2Nlc3NDb250cm9sQ2hlY2sgPSBmYWxzZTsKQEAgLTU3OCwzNyArNTU2LDQxIEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIFdlIGFsd2F5
cyByZXF1ZXN0IEljZWNhc3QvU2hvdXRjYXN0IG1ldGFkYXRhLCBqdXN0IGluIGNhc2UgLi4uCiAg
ICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkljeU1ldGFkYXRh
LCAiMSIpOwogCi0gICAgYm9vbCBsb2FkRmFpbGVkID0gdHJ1ZTsKLSAgICBpZiAocHJpdi0+cGxh
eWVyICYmICFwcml2LT5sb2FkZXIpCi0gICAgICAgIHByaXYtPmxvYWRlciA9IHByaXYtPnBsYXll
ci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKTsKKyAgICBpZiAoIXByaXYtPnBsYXllciB8fCAhcHJp
di0+Y3JlYXRlZEluTWFpblRocmVhZCkgeworICAgICAgICBwcml2LT5jbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50PihzcmMsIFdURk1vdmUocmVx
dWVzdCkpOworICAgICAgICBpZiAocHJpdi0+Y2xpZW50LT5sb2FkRmFpbGVkKCkpIHsKKyAgICAg
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIHNldHVwIHN0cmVhbWluZyBj
bGllbnQiKTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9IG51bGxwdHI7CisgICAgICAgICAg
ICBsb2NrZXIudW5sb2NrKCk7CisgICAgICAgICAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTdGFydGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxvY2tlci51bmxvY2so
KTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVm
KHNyYyk7CisgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmlj
YXRpb246OlN0YXJ0LCBbcHJvdGVjdG9yLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0gewor
ICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworCisg
ICAgICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9M
T0NLKHByb3RlY3Rvci5nZXQoKSkpOworICAgICAgICBpZiAoIXByaXYtPmxvYWRlcikKKyAgICAg
ICAgICAgIHByaXYtPmxvYWRlciA9IHByaXYtPnBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIo
KTsKIAotICAgIGlmIChwcml2LT5sb2FkZXIpIHsKICAgICAgICAgUGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBsb2FkT3B0aW9ucyA9IDA7CiAgICAgICAgIGlmIChyZXF1
ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpCiAgICAgICAgICAgICBsb2FkT3B0aW9ucyB8PSBQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb246OkJ1ZmZlckRhdGE7CiAgICAg
ICAgIHByaXYtPnJlc291cmNlID0gcHJpdi0+bG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UocmVxdWVz
dCwgbG9hZE9wdGlvbnMpOwotICAgICAgICBsb2FkRmFpbGVkID0gIXByaXYtPnJlc291cmNlOwot
Ci0gICAgICAgIGlmIChwcml2LT5yZXNvdXJjZSkKLSAgICAgICAgICAgIHByaXYtPnJlc291cmNl
LT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dD4oc3JjKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IFJlc291
cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KHNyYywgcmVxdWVzdCk7Ci0gICAgICAgIGxvYWRGYWls
ZWQgPSBwcml2LT5jbGllbnQtPmxvYWRGYWlsZWQoKTsKLSAgICB9Ci0KLSAgICBpZiAobG9hZEZh
aWxlZCkgewotICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBzZXR1cCBz
dHJlYW1pbmcgY2xpZW50Iik7Ci0gICAgICAgIGlmIChwcml2LT5jbGllbnQpIHsKLSAgICAgICAg
ICAgIGRlbGV0ZSBwcml2LT5jbGllbnQ7Ci0gICAgICAgICAgICBwcml2LT5jbGllbnQgPSBudWxs
cHRyOworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHByaXYtPnJl
c291cmNlLT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZVN0cmVhbWlu
Z0NsaWVudD4ocHJvdGVjdG9yLmdldCgpKSk7CisgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNU
KHByb3RlY3Rvci5nZXQoKSwgIlN0YXJ0ZWQgcmVxdWVzdCIpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChwcm90ZWN0b3IuZ2V0KCksICJGYWlsZWQgdG8g
c2V0dXAgc3RyZWFtaW5nIGNsaWVudCIpOworICAgICAgICAgICAgcHJpdi0+bG9hZGVyID0gbnVs
bHB0cjsKKyAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKKyAgICAgICAgICAgIHdlYktpdFdl
YlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICBwcml2LT5sb2Fk
ZXIgPSBudWxscHRyOwotICAgICAgICBwcml2LT5yZXNvdXJjZSA9IG51bGxwdHI7Ci0gICAgICAg
IGxvY2tlci51bmxvY2soKTsKLSAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RhcnRlZCByZXF1
ZXN0Iik7CisgICAgfSk7CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRX
ZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFu
c2l0aW9uKQpAQCAtNjQwLDE2ICs2MjIsMTMgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJu
IHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXQKICAg
ICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUkVBRFlfVE9fUEFVU0VEOgogICAgIHsKICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChzcmMsICJSRUFEWS0+UEFVU0VEIik7Ci0gICAgICAgIEdSZWZQdHI8
V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKLSAgICAgICAg
cHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlN0YXJ0
LCBbcHJvdGVjdG9yXSB7IHdlYktpdFdlYlNyY1N0YXJ0KHByb3RlY3Rvci5nZXQoKSk7IH0pOwor
ICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChzcmMpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICB7CiAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUEFVU0VELT5SRUFEWSIpOwotICAgICAgICBwcml2LT5u
b3RpZmllci5jYW5jZWxQZW5kaW5nTm90aWZpY2F0aW9ucygpOwotICAgICAgICBHUmVmUHRyPFdl
YktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7Ci0gICAgICAgIHBy
aXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9wLCBb
cHJvdGVjdG9yXSB7IHdlYktpdFdlYlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsgfSk7CisgICAg
ICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRl
ZmF1bHQ6CkBAIC03NzQsNTkgKzc1Myw5MSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlI
YW5kbGVySW5pdChncG9pbnRlciBnSWZhY2UsIGdwb2ludGVyKQogICAgIGlmYWNlLT5zZXRfdXJp
ID0gd2ViS2l0V2ViU3JjU2V0VXJpOwogfQogCi0vLyBhcHBzcmMgY2FsbGJhY2tzCi0KIHN0YXRp
YyB2b2lkIHdlYktpdFdlYlNyY05lZWREYXRhKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdl
YktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJOZWVkIG1vcmUgZGF0YSIp
OwogCiAgICAgewogICAgICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NU
X09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKLSAgICAgICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7Cisg
ICAgICAgIGlmICghcHJpdi0+cGF1c2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBw
cml2LT5wYXVzZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHByaXYtPmNsaWVudCkgeworICAgICAg
ICAgICAgcHJpdi0+Y2xpZW50LT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChwcml2LT5jbGllbnQpCi0gICAg
ICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7Ci0gICAgaWYgKHByaXYt
PnJlc291cmNlKQotICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxz
ZSk7CisgICAgR1JlZlB0cjxXZWJLaXRXZWJTcmM+IHByb3RlY3RvciA9IFdURjo6ZW5zdXJlR1Jl
ZihzcmMpOworICAgIHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZp
Y2F0aW9uOjpOZWVkRGF0YSwgW3Byb3RlY3Rvcl0geworICAgICAgICBXZWJLaXRXZWJTcmNQcml2
YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2Up
CisgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7Cisg
ICAgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGEoV2ViS2l0V2Vi
U3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsK
IAotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KICAgICBHU1RfREVCVUdfT0JKRUNUKHNy
YywgIkhhdmUgZW5vdWdoIGRhdGEiKTsKIAogICAgIHsKICAgICAgICAgV1RGOjpHTXV0ZXhMb2Nr
ZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgIHBy
aXYtPnBhdXNlZCA9IFRSVUU7CisgICAgICAgIGlmIChwcml2LT5wYXVzZWQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHByaXYtPnBhdXNlZCA9IHRydWU7CisgICAgICAgIGlmIChwcml2
LT5jbGllbnQpIHsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0
cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChw
cml2LT5jbGllbnQpCi0gICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVl
KTsKLSAgICBpZiAocHJpdi0+cmVzb3VyY2UpCi0gICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRE
ZWZlcnNMb2FkaW5nKHRydWUpOworICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3Ig
PSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKKyAgICBwcml2LT5ub3RpZmllci5ub3RpZnkoTWFpblRo
cmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6RW5vdWdoRGF0YSwgW3Byb3RlY3Rvcl0geworICAgICAg
ICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworICAgICAgICBp
ZiAocHJpdi0+cmVzb3VyY2UpCisgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJz
TG9hZGluZyh0cnVlKTsKKyAgICB9KTsKIH0KIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2Vl
ayhXZWJLaXRXZWJTcmMqIHNyYykKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrKFdl
YktpdFdlYlNyYyogc3JjLCBndWludDY0IG9mZnNldCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKKyAg
ICB7CisgICAgICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNU
X0dFVF9MT0NLKHNyYykpOworICAgICAgICBpZiAob2Zmc2V0ID09IHByaXYtPm9mZnNldCAmJiBw
cml2LT5yZXF1ZXN0ZWRPZmZzZXQgPT0gcHJpdi0+b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJu
IFRSVUU7CisKKyAgICAgICAgaWYgKCFwcml2LT5zZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVy
biBGQUxTRTsKKworICAgICAgICBwcml2LT5pc1NlZWtpbmcgPSB0cnVlOworICAgICAgICBwcml2
LT5yZXF1ZXN0ZWRPZmZzZXQgPSBvZmZzZXQ7CisgICAgfQogCiAgICAgR1NUX0RFQlVHX09CSkVD
VChzcmMsICJTZWVraW5nIHRvIG9mZnNldDogJSIgR19HVUlOVDY0X0ZPUk1BVCwgc3JjLT5wcml2
LT5yZXF1ZXN0ZWRPZmZzZXQpOworICAgIGlmIChwcml2LT5jbGllbnQpIHsKKyAgICAgICAgd2Vi
S2l0V2ViU3JjU3RvcChzcmMpOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChzcmMpOworICAg
ICAgICByZXR1cm4gVFJVRTsKKyAgICB9CiAKLSAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7Ci0g
ICAgd2ViS2l0V2ViU3JjU3RhcnQoc3JjKTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJv
dGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7CisgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5
KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlNlZWssIFtwcm90ZWN0b3JdIHsKKyAgICAg
ICAgd2ViS2l0V2ViU3JjU3RvcChwcm90ZWN0b3IuZ2V0KCkpOworICAgICAgICB3ZWJLaXRXZWJT
cmNTdGFydChwcm90ZWN0b3IuZ2V0KCkpOworICAgIH0pOworICAgIHJldHVybiBUUlVFOwogfQog
CiB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJD
b3JlOjpNZWRpYVBsYXllciogcGxheWVyKQogewogICAgIEFTU0VSVChwbGF5ZXIpOworICAgIEFT
U0VSVChzcmMtPnByaXYtPmNyZWF0ZWRJbk1haW5UaHJlYWQpOwogICAgIFdURjo6R011dGV4TG9j
a2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogICAgIHNyYy0+
cHJpdi0+cGxheWVyID0gcGxheWVyOwogfQpAQCAtMTA1MywxNyArMTA2NCw0NyBAQCB2b2lkIENh
Y2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJl
c291cmNlJikKICAgICBoYW5kbGVOb3RpZnlGaW5pc2hlZCgpOwogfQogCi1SZXNvdXJjZUhhbmRs
ZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2Vi
U3JjKiBzcmMsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK1Jlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJT
cmMqIHNyYywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICA6IFN0cmVhbWluZ0NsaWVu
dChzcmMpCiB7Ci0gICAgbV9yZXNvdXJjZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoMCAvKmNv
bnRleHQqLywgcmVxdWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIG1fdGhyZWFkID0g
Y3JlYXRlVGhyZWFkKCJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0aGlzLCByZXF1
ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICAg
ICAgbV9ydW5Mb29wID0gJlJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICAgICAgICAgIG1fcmVzb3Vy
Y2UgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIgLypjb250ZXh0Ki8sIHJlcXVlc3Qs
IHRoaXMsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25k
aXRpb24ubm90aWZ5T25lKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXNd
IHsgbV9yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7IH0pOworICAgICAgICBtX3J1
bkxvb3AtPnJ1bigpOworICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgICAgICAgICBtX3J1bkxvb3Ag
PSBudWxscHRyOworICAgICAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXJDbGllbnQoKTsKKyAgICAg
ICAgICAgIG1fcmVzb3VyY2UtPmNhbmNlbCgpOworICAgICAgICAgICAgbV9yZXNvdXJjZSA9IG51
bGxwdHI7CisgICAgICAgICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5T25l
KCk7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9u
LndhaXQobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIH0KIAogUmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQ6On5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpCiB7
Ci0gICAgaWYgKG1fcmVzb3VyY2UpIHsKLSAgICAgICAgbV9yZXNvdXJjZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgIG1fcmVzb3VyY2UgPSBudWxscHRyOworICAgIGlmIChtX3RocmVhZCkgeworICAgICAg
ICBkZXRhY2hUaHJlYWQobV90aHJlYWQpOworICAgICAgICBtX3RocmVhZCA9IDA7CisgICAgfQor
CisgICAgaWYgKG1fcnVuTG9vcCA9PSAmUnVuTG9vcDo6Y3VycmVudCgpKQorICAgICAgICBtX3J1
bkxvb3AtPnN0b3AoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90
ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBtX3J1bkxvb3AtPnN0b3Ao
KTsKKyAgICAgICAgbV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV90ZXJtaW5hdGVS
dW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgIH0KIH0KIApAQCAtMTA3NCw4ICsxMTE1LDEwIEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmxvYWRGYWlsZWQoKSBjb25zdAog
CiB2b2lkIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogewotICAgIGlmIChtX3Jlc291cmNlKQotICAgICAgICBtX3Jlc291cmNlLT5z
ZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CisgICAgbV9ydW5Mb29wLT5kaXNwYXRjaChbdGhpcywg
ZGVmZXJzXSB7CisgICAgICAgIGlmIChtX3Jlc291cmNlKQorICAgICAgICAgICAgbV9yZXNvdXJj
ZS0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOworICAgIH0pOwogfQogCiAjaWYgVVNFKFNPVVAp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282217</attachid>
            <date>2016-06-27 23:59:51 -0700</date>
            <delta_ts>2016-06-28 05:32:12 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-gst-hls.diff</filename>
            <type>text/plain</type>
            <size>21079</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMjg1YTJjLi4zYTczYzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTYtMDYtMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIEFkYXB0aXZlIHN0cmVhbWluZyBpc3N1ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA0MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFyZSBtdWx0
aXBsZSBkZWFkbG9ja3MgaW4gdGhlIHdlYiBwcm9jZXNzIHdoZW4gSExTIGNvbnRlbnQgaXMgbG9h
ZGVkIGJ5IEdTdHJlYW1lci4gSXQgaGFwcGVucyBiZWNhdXNlIGdzdAorICAgICAgICBpcyB1c2lu
ZyBzZXZlcmFsIHRocmVhZHMgdG8gZG93bmxvYWQgbWFuaWZlc3QsIGZyYWdtZW50cywgbW9uaXRv
ciB0aGUgZG93bmxvYWRzLCBldGMuIFRvIGRvd25sb2FkIHRoZSBmcmFnbWVudHMKKyAgICAgICAg
YW5kIG1hbmlmZXN0IGl0IGFsd2F5cyBjcmVhdGVzIHRoZSBzb3VyY2UgZWxlbWVudCBpbiBhIHNl
cGFyYXRlIHRocmVhZCwgc29tZXRoaW5nIHRoYXQgaXMgbm90IGFjdHVhbGx5IGV4cGVjdGVkCisg
ICAgICAgIHRvIGhhcHBlbiBpbiBXZWJLaXQgc291cmNlIGVsZW1lbnQuIE91ciBzb3VyY2UgZWxl
bWVudCBpcyBhbHdheXMgc2NoZWR1bGluZyB0YXNrcyAoc3RhcnQsIHN0b3AsIG5lZWQtZGF0YSwK
KyAgICAgICAgZW5vdWdoLWRhdGEgYW5kIHNlZWspIHRvIHRoZSBtYWluIHRocmVhZCwgYW5kIHRo
b3NlIGRvd25sb2FkcyB0aGF0IHVzZSB0aGUgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQK
KyAgICAgICAgKHRoZXJlJ3Mgbm8gcGxheWVyIGFzc29jaWF0ZWQpIGFsc28gaGFwcGVuIGluIHRo
ZSBtYWluIHRocmVhZCwgYmVjYXVzZSBsaWJzb3VwIGNhbGxzIGFsbCBpdHMgYXN5bmMgY2FsbGJh
Y2tzIGluCisgICAgICAgIHRoZSBtYWluIHRocmVhZC4gU28sIHRoZSByZXN1bHQgaXMgdGhhdCBp
dCBjYW4gaGFwcGVuIHRoYXQgd2UgZW5kIHVwIGJsb2NraW5nIHRoZSBtYWluIHRocmVhZCBpbiBh
IGxvY2sgdW50aWwKKyAgICAgICAgdGhlIGRvd25sb2FkIGZpbmlzaGVzLCBidXQgdGhlIGRvd25s
b2FkIG5ldmVyIGZpbmlzaGVzIGJlY2F1c2UgdGFza3MgYXJlIHNjaGVkdWxlZCBpbiB0aGUgbWFp
biB0aHJlYWQgdGhhdCBpcworICAgICAgICBibG9ja2VkIGluIGEgbG9jay4gVGhpcyBjYW4gYmUg
cHJldmVudGVkIGJ5IGFsd2F5cyB1c2luZyBhIHNlY29uZGFyeSB0aHJlYWQgZm9yIGRvd25sb2Fk
cyBtYWRlIGJ5CisgICAgICAgIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50LCB1c2luZyBp
dHMgb3duIHJ1biBsb29wIHdpdGggYSBkaWZmZXJlbnQgR01haW5Db250ZXh0IHNvIHRoYXQgbGli
c291cCBzZW5kcworICAgICAgICBjYWxsYmFja3MgdG8gdGhlIHJpZ2h0IHRocmVhZC4gV2UgYWxz
byBoYWQgdG8gcmVmYWN0b3IgdGhlIHRhc2tzIGEgYml0LCBsZWF2aW5nIHRoZSB0aHJlYWQgc2Fm
ZSBwYXJ0cyB0byBiZSBydW4KKyAgICAgICAgaW4gdGhlIGNhbGxpbmcgdGhyZWFkIGFsd2F5cywg
YW5kIG9ubHkgc2NoZWR1bGluZyB0byB0aGUgbWFpbiB0aHJlYWQgaW4gY2FzZSBvZiBub3QgdXNp
bmcKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgYW5kIG9ubHkgZm9yIHRo
ZSBub24gdGhyZWFkIHNhZmUgcGFydHMuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbmNsdWRl
cyByMjAwNDU1IHRoYXQgd2FzIHJvbGxlZCBvdXQsIGJ1dCBpdCB3YXMgYSBwZXJmZWN0bHkgdmFs
aWQgd29ya2Fyb3VuZCBmb3IgR1NUIGJ1Zy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdURjo6ZW5zdXJlR1Jl
Zik6IENvbnN1bWUgdGhlIGZsb2F0aW5nIHJlZiBpZiBuZWVkZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfc3JjX2luaXQpOiBDaGVjayBpZiBvYmplY3QgaXMgYmVpbmcgY3Jl
YXRlZCBpbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdG9wKTogU3Rv
cCB0aGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGluIHRoZSBtYWluIHRocmVhZCBhbmQgdGhlIHJl
c291cmNlIGhhbmRsZSBzdHJlYW1pbmcgaW4gdGhlCisgICAgICAgIGN1cnJlbnQgdGhyZWFkLgor
ICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOiBTdGFydCB0aGUgbWVkaWEgcmVzb3VyY2UgbG9h
ZGVyIGluIHRoZSBtYWluIHRocmVhZCBhbmQgdGhlIHJlc291cmNlIGhhbmRsZSBzdHJlYW1pbmcg
aW4KKyAgICAgICAgdGhlIGN1cnJlbnQgdGhyZWFkLgorICAgICAgICAod2ViS2l0V2ViU3JjQ2hh
bmdlU3RhdGUpOiBDYWxsIHdlYktpdFdlYlNyY1N0YXJ0IGFuZCB3ZWJLaXRXZWJTcmNTdG9wIGlu
IHRoZSBjdXJyZW50IHRocmVhZC4KKyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRhKTogVXBk
YXRlIHN0YXR1cyBpbiB0aGUgY3VycmVudCB0aHJlYWQgYW5kIG5vdGlmeSB0aGUgbWVkaWEgcmVz
b3VyY2UgbG9hZGVyIGluIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKHdlYktpdFdlYlNyY0Vu
b3VnaERhdGEpOiBEaXR0by4KKyAgICAgICAgKHdlYktpdFdlYlNyY1NlZWspOiBEaXR0by4KKyAg
ICAgICAgKHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKTogQWRkIGFuIGFzc2VydCB0byBlbnN1
cmUgdGhhdCBzb3VyY2UgZWxlbWVudHMgdXNlZCBieSBXZWJLaXQgYXJlIGFsd2F5cyBjcmVhdGVk
IGluCisgICAgICAgIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3Ry
ZWFtaW5nQ2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6IFVzZSBhIHNlY29u
ZGFyeSB0aHJlYWQgdG8gZG8gdGhlIGRvd25sb2FkLgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVT
dHJlYW1pbmdDbGllbnQ6On5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6IFN0b3AgdGhl
IHNlY29uZGFyeSB0aHJlYWQuCisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dDo6c2V0RGVmZXJzTG9hZGluZyk6IE5vdGlmeSB0aGUgc2Vjb25kYXJ5IHRocmVhZC4KKwogMjAx
Ni0wNi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMTk4NzgyLCByMjAxMDQzKTogW2ltYWdlLWRlY29kZXJzXSBGbGlj
a2VyaW5nIHdpdGggc29tZSBhbmltYXRlZCBnaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNw
cAppbmRleCA0NzExM2Y2Li4yMzcyMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3Bw
CkBAIC0zNDIsNiArMzQyLDE2IEBAIHRlbXBsYXRlIDw+IEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBh
ZG9wdEdSZWYoV2ViS2l0V2ViU3JjKiBwdHIpCiAgICAgcmV0dXJuIEdSZWZQdHI8V2ViS2l0V2Vi
U3JjPihwdHIsIEdSZWZQdHJBZG9wdCk7CiB9CiAKKy8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgYXZh
aWxhYmxlIGZvciBXZWJLaXRXZWJTcmMgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgYW55IG90
aGVyIHR5cGUuCisvLyBUaGlzIGlzIG9ubHkgdG8gd29yayBhcm91bmQgYSBidWcgaW4gR1NUIHdo
ZXJlIHRoZSBVUkkgZG93bmxvYWRlciBpcyBub3QgdGFraW5nIHRoZSBvd25lcnNoaXAgb2YgV2Vi
S2l0V2ViU3JjLgorLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDQwNDAuCitHUmVmUHRyPFdlYktpdFdlYlNyYz4gZW5zdXJlR1JlZihXZWJLaXRXZWJTcmMq
IHB0cikKK3sKKyAgICBpZiAocHRyICYmIGdfb2JqZWN0X2lzX2Zsb2F0aW5nKHB0cikpCisgICAg
ICAgIGdzdF9vYmplY3RfcmVmX3NpbmsoR1NUX09CSkVDVChwdHIpKTsKKyAgICByZXR1cm4gR1Jl
ZlB0cjxXZWJLaXRXZWJTcmM+KHB0cik7Cit9CisKIHRlbXBsYXRlIDw+IFdlYktpdFdlYlNyYyog
cmVmR1B0cjxXZWJLaXRXZWJTcmM+KFdlYktpdFdlYlNyYyogcHRyKQogewogICAgIGlmIChwdHIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1JlZlB0ckdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuaAppbmRleCA4MWUxZTBkLi4xYTMzNmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HUmVmUHRyR1N0cmVhbWVyLmgKQEAgLTEwOCw2ICsxMDgsNyBAQCB0ZW1wbGF0ZTw+IFdlYktp
dFZpZGVvU2luayogcmVmR1B0cjxXZWJLaXRWaWRlb1Npbms+KFdlYktpdFZpZGVvU2luayogcHRy
KTsKIHRlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8V2ViS2l0VmlkZW9TaW5rPihXZWJLaXRWaWRl
b1NpbmsqIHB0cik7CiAKIHRlbXBsYXRlPD4gR1JlZlB0cjxXZWJLaXRXZWJTcmM+IGFkb3B0R1Jl
ZihXZWJLaXRXZWJTcmMqIHB0cik7CitHUmVmUHRyPFdlYktpdFdlYlNyYz4gZW5zdXJlR1JlZihX
ZWJLaXRXZWJTcmMqIHB0cik7CiB0ZW1wbGF0ZTw+IFdlYktpdFdlYlNyYyogcmVmR1B0cjxXZWJL
aXRXZWJTcmM+KFdlYktpdFdlYlNyYyogcHRyKTsKIHRlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8
V2ViS2l0V2ViU3JjPihXZWJLaXRXZWJTcmMqIHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggZTc4NzE3My4uMGNiNTRmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTgzLDcgKzgzLDcgQEAg
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQgZmluYWwgOiBwdWJsaWMgUGxhdGZv
cm1NZWRpYVJlc291cmNlQ2xpZW50LAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGll
bnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW1pbmdDbGllbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNvdXJj
ZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3Jj
KiwgUmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgICAgICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZVN0
cmVhbWluZ0NsaWVudCgpOwogCiAgICAgICAgIC8vIFN0cmVhbWluZ0NsaWVudCB2aXJ0dWFsIG1l
dGhvZHMuCkBAIC0xMDQsNiArMTA0LDEyIEBAIGNsYXNzIFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50LCBwdWJsaWMgU3RyZWFtCiAgICAg
ICAgIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogICAgICAgICB2
b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKIAorICAgICAgICBU
aHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkIHsgMCB9OworICAgICAgICBMb2NrIG1faW5pdGlhbGl6
ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICAgICAgQ29uZGl0aW9uIG1faW5pdGlhbGl6ZVJ1
bkxvb3BDb25kaXRpb247CisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcCB7IG51bGxwdHIgfTsK
KyAgICAgICAgTG9jayBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb25NdXRleDsKKyAgICAgICAg
Q29uZGl0aW9uIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbjsKICAgICAgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBtX3Jlc291cmNlOwogfTsKIApAQCAtMTI5LDE4ICsxMzUsMTkgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKIAogICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXI+IGxvYWRlcjsKICAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBy
ZXNvdXJjZTsKLSAgICBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCogY2xpZW50OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudD4gY2xpZW50Owog
CiAgICAgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrOwogCiAgICAgZ3VpbnQ2NCBvZmZz
ZXQ7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdib29sZWFuIHNlZWthYmxlOwotICAgIGdib29s
ZWFuIHBhdXNlZDsKKyAgICBib29sIHBhdXNlZDsKICAgICBib29sIGlzU2Vla2luZzsKIAogICAg
IGd1aW50NjQgcmVxdWVzdGVkT2Zmc2V0OwogCisgICAgYm9vbCBjcmVhdGVkSW5NYWluVGhyZWFk
OwogICAgIE1haW5UaHJlYWROb3RpZmllcjxNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uPiBu
b3RpZmllcjsKICAgICBHUmVmUHRyPEdzdEJ1ZmZlcj4gYnVmZmVyOwogfTsKQEAgLTE3NCw1NyAr
MTgxLDIwIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNRdWVyeVdpdGhQYXJlbnQoR3N0
UGFkKiwgR3N0T2JqZWN0KiwgR3N0UXVlcnkqKTsKIAogc3RhdGljIHZvaWQgd2ViS2l0V2ViU3Jj
TmVlZERhdGEoV2ViS2l0V2ViU3JjKik7CiBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNFbm91Z2hE
YXRhKFdlYktpdFdlYlNyYyopOwotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2VlayhXZWJLaXRX
ZWJTcmMqKTsKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrKFdlYktpdFdlYlNyYyos
IGd1aW50NjQpOwogCiBzdGF0aWMgR3N0QXBwU3JjQ2FsbGJhY2tzIGFwcHNyY0NhbGxiYWNrcyA9
IHsKICAgICAvLyBuZWVkX2RhdGEKICAgICBbXShHc3RBcHBTcmMqLCBndWludCwgZ3BvaW50ZXIg
dXNlckRhdGEpIHsKLSAgICAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1
c2VyRGF0YSk7Ci0gICAgICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7
Ci0KLSAgICAgICAgewotICAgICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2Nr
ZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgICAgICBpZiAoIXByaXYtPnBh
dXNlZCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBHUmVm
UHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVy
Lm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpOZWVkRGF0YSwgW3Byb3RlY3Rv
cl0geyB3ZWJLaXRXZWJTcmNOZWVkRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKKyAgICAgICAg
d2ViS2l0V2ViU3JjTmVlZERhdGEoV0VCS0lUX1dFQl9TUkModXNlckRhdGEpKTsKICAgICB9LAog
ICAgIC8vIGVub3VnaF9kYXRhCiAgICAgW10oR3N0QXBwU3JjKiwgZ3BvaW50ZXIgdXNlckRhdGEp
IHsKLSAgICAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSk7
Ci0gICAgICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0KLSAgICAg
ICAgewotICAgICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9P
QkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgICAgICBpZiAocHJpdi0+cGF1c2VkKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEdSZWZQdHI8V2ViS2l0
V2ViU3JjPiBwcm90ZWN0b3Ioc3JjKTsKLSAgICAgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1h
aW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OkVub3VnaERhdGEsIFtwcm90ZWN0b3JdIHsgd2Vi
S2l0V2ViU3JjRW5vdWdoRGF0YShwcm90ZWN0b3IuZ2V0KCkpOyB9KTsKKyAgICAgICAgd2ViS2l0
V2ViU3JjRW5vdWdoRGF0YShXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSkpOwogICAgIH0sCiAgICAg
Ly8gc2Vla19kYXRhCiAgICAgW10oR3N0QXBwU3JjKiwgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludGVy
IHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgIFdlYktpdFdlYlNyYyogc3JjID0gV0VC
S0lUX1dFQl9TUkModXNlckRhdGEpOwotICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2
ID0gc3JjLT5wcml2OwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdURjo6R011dGV4TG9ja2Vy
PEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwotICAgICAgICAgICAg
aWYgKG9mZnNldCA9PSBwcml2LT5vZmZzZXQgJiYgcHJpdi0+cmVxdWVzdGVkT2Zmc2V0ID09IHBy
aXYtPm9mZnNldCkKLSAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLQotICAgICAgICAgICAg
aWYgKCFwcml2LT5zZWVrYWJsZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAg
ICAgICAgICAgIHByaXYtPmlzU2Vla2luZyA9IHRydWU7Ci0gICAgICAgICAgICBwcml2LT5yZXF1
ZXN0ZWRPZmZzZXQgPSBvZmZzZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBHUmVmUHRyPFdlYktp
dFdlYlNyYz4gcHJvdGVjdG9yKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVyLm5vdGlmeShN
YWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTZWVrLCBbcHJvdGVjdG9yXSB7IHdlYktpdFdl
YlNyY1NlZWsocHJvdGVjdG9yLmdldCgpKTsgfSk7Ci0gICAgICAgIHJldHVybiBUUlVFOworICAg
ICAgICByZXR1cm4gd2ViS2l0V2ViU3JjU2VlayhXRUJLSVRfV0VCX1NSQyh1c2VyRGF0YSksIG9m
ZnNldCk7CiAgICAgfSwKICAgICB7IG51bGxwdHIgfQogfTsKQEAgLTI4OSw2ICsyNTksOCBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NyY19pbml0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIHNy
Yy0+cHJpdiA9IHByaXY7CiAgICAgbmV3IChwcml2KSBXZWJLaXRXZWJTcmNQcml2YXRlKCk7CiAK
KyAgICBwcml2LT5jcmVhdGVkSW5NYWluVGhyZWFkID0gaXNNYWluVGhyZWFkKCk7CisKICAgICBw
cml2LT5hcHBzcmMgPSBHU1RfQVBQX1NSQyhnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImFwcHNy
YyIsIDApKTsKICAgICBpZiAoIXByaXYtPmFwcHNyYykgewogICAgICAgICBHU1RfRVJST1JfT0JK
RUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgYXBwc3JjIik7CkBAIC00MTQsMjggKzM4NiwzNiBA
QCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNyYyogc3JjKQogewogICAg
IFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIGlmIChwcml2LT5yZXNvdXJjZSB8fCAocHJpdi0+bG9hZGVyICYm
ICFwcml2LT5rZWVwQWxpdmUpKSB7CisgICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90
ZWN0b3IgPSBXVEY6OmVuc3VyZUdSZWYoc3JjKTsKKyAgICAgICAgcHJpdi0+bm90aWZpZXIuY2Fu
Y2VsUGVuZGluZ05vdGlmaWNhdGlvbnMoTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6TmVl
ZERhdGEgfCBNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpFbm91Z2hEYXRhIHwgTWFpblRo
cmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6U2Vlayk7CisgICAgICAgIHByaXYtPm5vdGlmaWVyLm5v
dGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9wLCBbcHJvdGVjdG9yLCBrZWVw
QWxpdmUgPSBwcml2LT5rZWVwQWxpdmVdIHsKKyAgICAgICAgICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBwcm90ZWN0b3ItPnByaXY7CisKKyAgICAgICAgICAgIFdURjo6R011dGV4TG9j
a2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHByb3RlY3Rvci5nZXQoKSkp
OworICAgICAgICAgICAgaWYgKHByaXYtPnJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgcHJp
di0+cmVzb3VyY2UtPnN0b3AoKTsKKyAgICAgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0
Q2xpZW50KG51bGxwdHIpOworICAgICAgICAgICAgICAgIHByaXYtPnJlc291cmNlID0gbnVsbHB0
cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFrZWVwQWxpdmUpCisgICAgICAg
ICAgICAgICAgcHJpdi0+bG9hZGVyID0gbnVsbHB0cjsKKyAgICAgICAgfSk7CisgICAgfQogCiAg
ICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBsb2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0so
c3JjKSk7CiAKICAgICBib29sIHdhc1NlZWtpbmcgPSBzdGQ6OmV4Y2hhbmdlKHByaXYtPmlzU2Vl
a2luZywgZmFsc2UpOwogCi0gICAgcHJpdi0+bm90aWZpZXIuY2FuY2VsUGVuZGluZ05vdGlmaWNh
dGlvbnMoTWFpblRocmVhZFNvdXJjZU5vdGlmaWNhdGlvbjo6TmVlZERhdGEgfCBNYWluVGhyZWFk
U291cmNlTm90aWZpY2F0aW9uOjpFbm91Z2hEYXRhIHwgTWFpblRocmVhZFNvdXJjZU5vdGlmaWNh
dGlvbjo6U2Vlayk7Ci0KLSAgICBpZiAocHJpdi0+Y2xpZW50KSB7Ci0gICAgICAgIGRlbGV0ZSBw
cml2LT5jbGllbnQ7Ci0gICAgICAgIHByaXYtPmNsaWVudCA9IDA7Ci0gICAgfQotCi0gICAgaWYg
KCFwcml2LT5rZWVwQWxpdmUpCi0gICAgICAgIHByaXYtPmxvYWRlciA9IG51bGxwdHI7CisgICAg
cHJpdi0+Y2xpZW50ID0gbnVsbHB0cjsKIAogICAgIGlmIChwcml2LT5idWZmZXIpIHsKICAgICAg
ICAgdW5tYXBHc3RCdWZmZXIocHJpdi0+YnVmZmVyLmdldCgpKTsKICAgICAgICAgcHJpdi0+YnVm
ZmVyLmNsZWFyKCk7CiAgICAgfQogCi0gICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7CisgICAgcHJp
di0+cGF1c2VkID0gZmFsc2U7CiAKICAgICBwcml2LT5vZmZzZXQgPSAwOwogICAgIHByaXYtPnNl
ZWthYmxlID0gRkFMU0U7CkBAIC01MTIsOCArNDkyLDYgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2Vi
U3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSog
cHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KICAgICBX
VEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMp
KTsKIAogICAgIHByaXYtPmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2sgPSBmYWxzZTsKQEAgLTU3
OCwzNyArNTU2LDQxIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNy
Yyogc3JjKQogICAgIC8vIFdlIGFsd2F5cyByZXF1ZXN0IEljZWNhc3QvU2hvdXRjYXN0IG1ldGFk
YXRhLCBqdXN0IGluIGNhc2UgLi4uCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkljeU1ldGFkYXRhLCAiMSIpOwogCi0gICAgYm9vbCBsb2FkRmFpbGVkID0g
dHJ1ZTsKLSAgICBpZiAocHJpdi0+cGxheWVyICYmICFwcml2LT5sb2FkZXIpCi0gICAgICAgIHBy
aXYtPmxvYWRlciA9IHByaXYtPnBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKTsKKyAgICBp
ZiAoIXByaXYtPnBsYXllciB8fCAhcHJpdi0+Y3JlYXRlZEluTWFpblRocmVhZCkgeworICAgICAg
ICBwcml2LT5jbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50PihzcmMsIFdURk1vdmUocmVxdWVzdCkpOworICAgICAgICBpZiAocHJpdi0+Y2xpZW50
LT5sb2FkRmFpbGVkKCkpIHsKKyAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFp
bGVkIHRvIHNldHVwIHN0cmVhbWluZyBjbGllbnQiKTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVu
dCA9IG51bGxwdHI7CisgICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7CisgICAgICAgICAgICB3
ZWJLaXRXZWJTcmNTdG9wKHNyYyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX0RF
QlVHX09CSkVDVChzcmMsICJTdGFydGVkIHJlcXVlc3QiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGxvY2tlci51bmxvY2soKTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJv
dGVjdG9yID0gV1RGOjplbnN1cmVHUmVmKHNyYyk7CisgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5
KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246OlN0YXJ0LCBbcHJvdGVjdG9yLCByZXF1ZXN0
ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2
ID0gcHJvdGVjdG9yLT5wcml2OworCisgICAgICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4g
bG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHByb3RlY3Rvci5nZXQoKSkpOworICAgICAgICBp
ZiAoIXByaXYtPmxvYWRlcikKKyAgICAgICAgICAgIHByaXYtPmxvYWRlciA9IHByaXYtPnBsYXll
ci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIGlmIChwcml2LT5sb2FkZXIpIHsKICAg
ICAgICAgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBsb2FkT3B0aW9u
cyA9IDA7CiAgICAgICAgIGlmIChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpCiAgICAg
ICAgICAgICBsb2FkT3B0aW9ucyB8PSBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRP
cHRpb246OkJ1ZmZlckRhdGE7CiAgICAgICAgIHByaXYtPnJlc291cmNlID0gcHJpdi0+bG9hZGVy
LT5yZXF1ZXN0UmVzb3VyY2UocmVxdWVzdCwgbG9hZE9wdGlvbnMpOwotICAgICAgICBsb2FkRmFp
bGVkID0gIXByaXYtPnJlc291cmNlOwotCi0gICAgICAgIGlmIChwcml2LT5yZXNvdXJjZSkKLSAg
ICAgICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxDYWNo
ZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudD4oc3JjKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
cHJpdi0+Y2xpZW50ID0gbmV3IFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KHNyYywgcmVx
dWVzdCk7Ci0gICAgICAgIGxvYWRGYWlsZWQgPSBwcml2LT5jbGllbnQtPmxvYWRGYWlsZWQoKTsK
LSAgICB9Ci0KLSAgICBpZiAobG9hZEZhaWxlZCkgewotICAgICAgICBHU1RfRVJST1JfT0JKRUNU
KHNyYywgIkZhaWxlZCB0byBzZXR1cCBzdHJlYW1pbmcgY2xpZW50Iik7Ci0gICAgICAgIGlmIChw
cml2LT5jbGllbnQpIHsKLSAgICAgICAgICAgIGRlbGV0ZSBwcml2LT5jbGllbnQ7Ci0gICAgICAg
ICAgICBwcml2LT5jbGllbnQgPSBudWxscHRyOworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2Up
IHsKKyAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1
ZTxDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudD4ocHJvdGVjdG9yLmdldCgpKSk7CisgICAg
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHByb3RlY3Rvci5nZXQoKSwgIlN0YXJ0ZWQgcmVxdWVz
dCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVChwcm90
ZWN0b3IuZ2V0KCksICJGYWlsZWQgdG8gc2V0dXAgc3RyZWFtaW5nIGNsaWVudCIpOworICAgICAg
ICAgICAgcHJpdi0+bG9hZGVyID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGxvY2tlci51bmxvY2so
KTsKKyAgICAgICAgICAgIHdlYktpdFdlYlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsKICAgICAg
ICAgfQotICAgICAgICBwcml2LT5sb2FkZXIgPSBudWxscHRyOwotICAgICAgICBwcml2LT5yZXNv
dXJjZSA9IG51bGxwdHI7Ci0gICAgICAgIGxvY2tlci51bmxvY2soKTsKLSAgICAgICAgd2ViS2l0
V2ViU3JjU3RvcChzcmMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiU3RhcnRlZCByZXF1ZXN0Iik7CisgICAgfSk7CiB9CiAKIHN0YXRpYyBHc3RT
dGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVt
ZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQpAQCAtNjQwLDE2ICs2MjIsMTMgQEAgc3Rh
dGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYktpdFdlYlNyY0NoYW5nZVN0YXRlKEdzdEVsZW1l
bnQqIGVsZW1lbnQsIEdzdFN0YXQKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUkVBRFlfVE9f
UEFVU0VEOgogICAgIHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJSRUFEWS0+UEFV
U0VEIik7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3Ioc3JjKTsKLSAg
ICAgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRTb3VyY2VOb3RpZmljYXRpb246
OlN0YXJ0LCBbcHJvdGVjdG9yXSB7IHdlYktpdFdlYlNyY1N0YXJ0KHByb3RlY3Rvci5nZXQoKSk7
IH0pOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChzcmMpOwogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICB7CiAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiUEFVU0VELT5SRUFEWSIpOwotICAgICAgICBw
cml2LT5ub3RpZmllci5jYW5jZWxQZW5kaW5nTm90aWZpY2F0aW9ucygpOwotICAgICAgICBHUmVm
UHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yKHNyYyk7Ci0gICAgICAgIHByaXYtPm5vdGlmaWVy
Lm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpTdG9wLCBbcHJvdGVjdG9yXSB7
IHdlYktpdFdlYlNyY1N0b3AocHJvdGVjdG9yLmdldCgpKTsgfSk7CisgICAgICAgIHdlYktpdFdl
YlNyY1N0b3Aoc3JjKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBAIC03
NzQsNTkgKzc1Myw5MSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5pdChn
cG9pbnRlciBnSWZhY2UsIGdwb2ludGVyKQogICAgIGlmYWNlLT5zZXRfdXJpID0gd2ViS2l0V2Vi
U3JjU2V0VXJpOwogfQogCi0vLyBhcHBzcmMgY2FsbGJhY2tzCi0KIHN0YXRpYyB2b2lkIHdlYktp
dFdlYlNyY05lZWREYXRhKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1By
aXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
CiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJOZWVkIG1vcmUgZGF0YSIpOwogCiAgICAgewog
ICAgICAgICBXVEY6OkdNdXRleExvY2tlcjxHTXV0ZXg+IGxvY2tlcigqR1NUX09CSkVDVF9HRVRf
TE9DSyhzcmMpKTsKLSAgICAgICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7CisgICAgICAgIGlmICgh
cHJpdi0+cGF1c2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBwcml2LT5wYXVzZWQg
PSBmYWxzZTsKKyAgICAgICAgaWYgKHByaXYtPmNsaWVudCkgeworICAgICAgICAgICAgcHJpdi0+
Y2xpZW50LT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmIChwcml2LT5jbGllbnQpCi0gICAgICAgIHByaXYtPmNs
aWVudC0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7Ci0gICAgaWYgKHByaXYtPnJlc291cmNlKQot
ICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CisgICAgR1Jl
ZlB0cjxXZWJLaXRXZWJTcmM+IHByb3RlY3RvciA9IFdURjo6ZW5zdXJlR1JlZihzcmMpOworICAg
IHByaXYtPm5vdGlmaWVyLm5vdGlmeShNYWluVGhyZWFkU291cmNlTm90aWZpY2F0aW9uOjpOZWVk
RGF0YSwgW3Byb3RlY3Rvcl0geworICAgICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0g
cHJvdGVjdG9yLT5wcml2OworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2UpCisgICAgICAgICAg
ICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CisgICAgfSk7CiB9CiAK
IHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGEoV2ViS2l0V2ViU3JjKiBzcmMpCiB7
CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0KICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIkhhdmUgZW5v
dWdoIGRhdGEiKTsKIAogICAgIHsKICAgICAgICAgV1RGOjpHTXV0ZXhMb2NrZXI8R011dGV4PiBs
b2NrZXIoKkdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgICAgIHByaXYtPnBhdXNlZCA9
IFRSVUU7CisgICAgICAgIGlmIChwcml2LT5wYXVzZWQpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHByaXYtPnBhdXNlZCA9IHRydWU7CisgICAgICAgIGlmIChwcml2LT5jbGllbnQpIHsK
KyAgICAgICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChwcml2LT5jbGllbnQp
Ci0gICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKLSAgICBpZiAo
cHJpdi0+cmVzb3VyY2UpCi0gICAgICAgIHByaXYtPnJlc291cmNlLT5zZXREZWZlcnNMb2FkaW5n
KHRydWUpOworICAgIEdSZWZQdHI8V2ViS2l0V2ViU3JjPiBwcm90ZWN0b3IgPSBXVEY6OmVuc3Vy
ZUdSZWYoc3JjKTsKKyAgICBwcml2LT5ub3RpZmllci5ub3RpZnkoTWFpblRocmVhZFNvdXJjZU5v
dGlmaWNhdGlvbjo6RW5vdWdoRGF0YSwgW3Byb3RlY3Rvcl0geworICAgICAgICBXZWJLaXRXZWJT
cmNQcml2YXRlKiBwcml2ID0gcHJvdGVjdG9yLT5wcml2OworICAgICAgICBpZiAocHJpdi0+cmVz
b3VyY2UpCisgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyh0cnVl
KTsKKyAgICB9KTsKIH0KIAotc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2VlayhXZWJLaXRXZWJT
cmMqIHNyYykKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrKFdlYktpdFdlYlNyYyog
c3JjLCBndWludDY0IG9mZnNldCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKKyAgICB7CisgICAgICAg
IFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4gbG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNy
YykpOworICAgICAgICBpZiAob2Zmc2V0ID09IHByaXYtPm9mZnNldCAmJiBwcml2LT5yZXF1ZXN0
ZWRPZmZzZXQgPT0gcHJpdi0+b2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAg
ICAgICAgaWYgKCFwcml2LT5zZWVrYWJsZSkKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKwor
ICAgICAgICBwcml2LT5pc1NlZWtpbmcgPSB0cnVlOworICAgICAgICBwcml2LT5yZXF1ZXN0ZWRP
ZmZzZXQgPSBvZmZzZXQ7CisgICAgfQogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTZWVr
aW5nIHRvIG9mZnNldDogJSIgR19HVUlOVDY0X0ZPUk1BVCwgc3JjLT5wcml2LT5yZXF1ZXN0ZWRP
ZmZzZXQpOworICAgIGlmIChwcml2LT5jbGllbnQpIHsKKyAgICAgICAgd2ViS2l0V2ViU3JjU3Rv
cChzcmMpOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChzcmMpOworICAgICAgICByZXR1cm4g
VFJVRTsKKyAgICB9CiAKLSAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7Ci0gICAgd2ViS2l0V2Vi
U3JjU3RhcnQoc3JjKTsKKyAgICBHUmVmUHRyPFdlYktpdFdlYlNyYz4gcHJvdGVjdG9yID0gV1RG
OjplbnN1cmVHUmVmKHNyYyk7CisgICAgcHJpdi0+bm90aWZpZXIubm90aWZ5KE1haW5UaHJlYWRT
b3VyY2VOb3RpZmljYXRpb246OlNlZWssIFtwcm90ZWN0b3JdIHsKKyAgICAgICAgd2ViS2l0V2Vi
U3JjU3RvcChwcm90ZWN0b3IuZ2V0KCkpOworICAgICAgICB3ZWJLaXRXZWJTcmNTdGFydChwcm90
ZWN0b3IuZ2V0KCkpOworICAgIH0pOworICAgIHJldHVybiBUUlVFOwogfQogCiB2b2lkIHdlYktp
dFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3JlOjpNZWRpYVBs
YXllciogcGxheWVyKQogewogICAgIEFTU0VSVChwbGF5ZXIpOworICAgIEFTU0VSVChzcmMtPnBy
aXYtPmNyZWF0ZWRJbk1haW5UaHJlYWQpOwogICAgIFdURjo6R011dGV4TG9ja2VyPEdNdXRleD4g
bG9ja2VyKCpHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogICAgIHNyYy0+cHJpdi0+cGxheWVy
ID0gcGxheWVyOwogfQpAQCAtMTA1MywxNyArMTA2NCw0NyBAQCB2b2lkIENhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJikKICAg
ICBoYW5kbGVOb3RpZnlGaW5pc2hlZCgpOwogfQogCi1SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0Ns
aWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK1Jlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xp
ZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7Ci0g
ICAgbV9yZXNvdXJjZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoMCAvKmNvbnRleHQqLywgcmVx
dWVzdCwgdGhpcywgZmFsc2UsIGZhbHNlKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2luaXRp
YWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgIG1fdGhyZWFkID0gY3JlYXRlVGhyZWFk
KCJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92
ZShyZXF1ZXN0KV0geworICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICAgICAgbV9ydW5Mb29w
ID0gJlJ1bkxvb3A6OmN1cnJlbnQoKTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2UgPSBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKG51bGxwdHIgLypjb250ZXh0Ki8sIHJlcXVlc3QsIHRoaXMsIHRydWUs
IGZhbHNlKTsKKyAgICAgICAgICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5
T25lKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtX3Jlc291cmNlKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIG1fcnVuTG9vcC0+ZGlzcGF0Y2goW3RoaXNdIHsgbV9yZXNvdXJj
ZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7IH0pOworICAgICAgICBtX3J1bkxvb3AtPnJ1bigp
OworICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rlcm1pbmF0ZVJ1
bkxvb3BDb25kaXRpb25NdXRleCk7CisgICAgICAgICAgICBtX3J1bkxvb3AgPSBudWxscHRyOwor
ICAgICAgICAgICAgbV9yZXNvdXJjZS0+Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fcmVz
b3VyY2UtPmNhbmNlbCgpOworICAgICAgICAgICAgbV9yZXNvdXJjZSA9IG51bGxwdHI7CisgICAg
ICAgICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgICAg
IH0KKyAgICB9KTsKKyAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIH0KIAogUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQ6On5SZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCgpCiB7Ci0gICAgaWYgKG1f
cmVzb3VyY2UpIHsKLSAgICAgICAgbV9yZXNvdXJjZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fcmVz
b3VyY2UgPSBudWxscHRyOworICAgIGlmIChtX3RocmVhZCkgeworICAgICAgICBkZXRhY2hUaHJl
YWQobV90aHJlYWQpOworICAgICAgICBtX3RocmVhZCA9IDA7CisgICAgfQorCisgICAgaWYgKG1f
cnVuTG9vcCA9PSAmUnVuTG9vcDo6Y3VycmVudCgpKQorICAgICAgICBtX3J1bkxvb3AtPnN0b3Ao
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVSdW5M
b29wQ29uZGl0aW9uTXV0ZXgpOworICAgICAgICBtX3J1bkxvb3AtPnN0b3AoKTsKKyAgICAgICAg
bV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0aW9uLndhaXQobV90ZXJtaW5hdGVSdW5Mb29wQ29uZGl0
aW9uTXV0ZXgpOwogICAgIH0KIH0KIApAQCAtMTA3NCw4ICsxMTE1LDEwIEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OmxvYWRGYWlsZWQoKSBjb25zdAogCiB2b2lkIFJlc291
cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQog
ewotICAgIGlmIChtX3Jlc291cmNlKQotICAgICAgICBtX3Jlc291cmNlLT5zZXREZWZlcnNMb2Fk
aW5nKGRlZmVycyk7CisgICAgbV9ydW5Mb29wLT5kaXNwYXRjaChbdGhpcywgZGVmZXJzXSB7Cisg
ICAgICAgIGlmIChtX3Jlc291cmNlKQorICAgICAgICAgICAgbV9yZXNvdXJjZS0+c2V0RGVmZXJz
TG9hZGluZyhkZWZlcnMpOworICAgIH0pOwogfQogCiAjaWYgVVNFKFNPVVApCg==
</data>
<flag name="review"
          id="306040"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>