<?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>104347</bug_id>
          
          <creation_ts>2012-12-07 00:15:51 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Remove the dependency of WebCoordinatedSurface::Handle from Coordinated Graphics.</short_desc>
          <delta_ts>2013-01-11 17:33:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100819</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>jturcotte</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>785693</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-07 00:15:51 -0800</bug_when>
    <thetext>It is a preparation patch for Threaded Coordinated Graphics on WK1.

Currently, UpdateAtlas and CoordinatedImageBacking use WebCoordinatedSurface::Handle, but WebCoordinatedSurface::Handle can be used only IPC-based Coordinated Graphics.
So this patch removes the dependency of WebCoordinatedSurface::Handle from UpdateAtlas and CoordinatedImageBacking.

The constructor of WebCoordinatedSurface creates a handle implicitly and then destroys the handle as soon as sending the handle to UI Process.
External class cannot create WebCoordinatedSurface::Handle anymore, because we don&apos;t have the requirement of creating many handles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785741</commentid>
    <comment_count>1</comment_count>
      <attachid>178181</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-07 01:31:06 -0800</bug_when>
    <thetext>Created attachment 178181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786443</commentid>
    <comment_count>2</comment_count>
      <attachid>178342</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-07 23:32:28 -0800</bug_when>
    <thetext>Created attachment 178342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786922</commentid>
    <comment_count>3</comment_count>
      <attachid>178458</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 18:32:24 -0800</bug_when>
    <thetext>Created attachment 178458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786923</commentid>
    <comment_count>4</comment_count>
      <attachid>178458</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 18:36:55 -0800</bug_when>
    <thetext>Comment on attachment 178458
Patch

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

&gt; Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:238
&gt; +    m_releaseHandleTimer = adoptPtr(new Timer&lt;WebCoordinatedSurface&gt;(const_cast&lt;WebCoordinatedSurface*&gt;(this), &amp;WebCoordinatedSurface::releaseHandleTimerFired));

This patch creates the timer lazily because a WebCoordinatedSurface instance in UI Process does not need to create the timer.
Moreover, the destructor of TimerBase has ASSERT(m_thread == currentThread()), so UI Process can fire the Assertion if WebCoordinatedSurface is destroyed in the compositing thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786994</commentid>
    <comment_count>5</comment_count>
      <attachid>178458</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-09 22:27:28 -0800</bug_when>
    <thetext>Comment on attachment 178458
Patch

I don&apos;t see the point in this.
You can remove the dependency of the Handle in CoordinatedImageBacking and UpdateAtlas by converting the handle in LayerTreeCoordinator and LayerTreeCoordinatorProxy.
I&apos;d rather we don&apos;t add this kind of magic in the argument coders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787006</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 22:43:53 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 178458 [details])
&gt; I don&apos;t see the point in this.
&gt; You can remove the dependency of the Handle in CoordinatedImageBacking and UpdateAtlas by converting the handle in LayerTreeCoordinator and LayerTreeCoordinatorProxy.
&gt; I&apos;d rather we don&apos;t add this kind of magic in the argument coders.

My purpose is to share the same API with both IPC-base and Threaded Coordinated Graphics.

In the detail, Threaded Coordinated Graphics will use LayerTreeCoordinatorProxy also, although LayerTreeCoordinatorProxy will be refactored to extract subset of LayerTreeCoordinatorProxy that Threaded Coordinated Graphics needs.

If we convert the handle in LayerTreeCoordinator, we will have following code.
#if ENABLE(IPC_BASED_COORDIATED_GRAPHICS)
void LayerTreeCoordinatorProxy::updateImageBacking(CoordinatedImageBackingID, const WebCoordinatedSurface::Handle&amp;);
#elif ENABLE(THREADED_COORDIATED_GRAPHICS)
void LayerTreeCoordinatorProxy::updateImageBacking(CoordinatedImageBackingID, PassRefPtr&lt;CoordinatedSurface&gt;);
#endif

If we cast the magic in ArgumentCoder, we can have the same API.
void LayerTreeCoordinatorProxy::updateImageBacking(CoordinatedImageBackingID, PassRefPtr&lt;CoordinatedSurface&gt;);

I think both have its own benefit. I think it&apos;s a matter of personal taste. Do you prefer the first option?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787011</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-09 22:48:31 -0800</bug_when>
    <thetext>&gt; If we cast the magic in ArgumentCoder, we can have the same API.
&gt; void LayerTreeCoordinatorProxy::updateImageBacking(CoordinatedImageBackingID, PassRefPtr&lt;CoordinatedSurface&gt;);
&gt; 
&gt; I think both have its own benefit. I think it&apos;s a matter of personal taste. Do you prefer the first option?

I prefer it if there was some class that does the IPC-specific stuff, and not try to make everything magically work the same for IPC/threading, since it&apos;s not really 100% the same.

I prefer it if there was a supervisor/coordinator class that was shared between IPC/threading, and then a smaller &quot;client&quot; class that does the IPC-specific/threading-specific thing, which is where the handle conversion would take place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787105</commentid>
    <comment_count>8</comment_count>
      <attachid>178492</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-10 01:49:31 -0800</bug_when>
    <thetext>Created attachment 178492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787106</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-10 01:50:22 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I prefer it if there was some class that does the IPC-specific stuff, and not try to make everything magically work the same for IPC/threading, since it&apos;s not really 100% the same.
&gt; 
&gt; I prefer it if there was a supervisor/coordinator class that was shared between IPC/threading, and then a smaller &quot;client&quot; class that does the IPC-specific/threading-specific thing, which is where the handle conversion would take place.

Ok, I understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789047</commentid>
    <comment_count>10</comment_count>
      <attachid>178932</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 17:38:08 -0800</bug_when>
    <thetext>Created attachment 178932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789048</commentid>
    <comment_count>11</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 17:38:28 -0800</bug_when>
    <thetext>rebased to upstream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789198</commentid>
    <comment_count>12</comment_count>
      <attachid>178932</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 22:15:26 -0800</bug_when>
    <thetext>Comment on attachment 178932
Patch

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

&gt; Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.h:125
&gt; +
&gt; +    // Only WebCoordinatedSurface in Web Process has this member.
&gt; +    OwnPtr&lt;Handle&gt; m_handle;
&gt; +    mutable OwnPtr&lt;WebCore::Timer&lt;WebCoordinatedSurface&gt; &gt; m_releaseHandleTimer;
&gt; +
&gt; +#ifndef NDEBUG
&gt; +    enum Purpose {
&gt; +        Producer,
&gt; +        Consumer
&gt; +    };
&gt; +    // This member exists for only a debugging purpose. It is Producer in Web Process, while Consumer in UI Process.
&gt; +    Purpose m_purpose;
&gt; +#endif

This is not really needed.
You can do everything else in this patch without having this magically-released handle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789242</commentid>
    <comment_count>13</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 23:27:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 178932 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178932&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.h:125
&gt; &gt; +
&gt; &gt; +    // Only WebCoordinatedSurface in Web Process has this member.
&gt; &gt; +    OwnPtr&lt;Handle&gt; m_handle;
&gt; &gt; +    mutable OwnPtr&lt;WebCore::Timer&lt;WebCoordinatedSurface&gt; &gt; m_releaseHandleTimer;
&gt; &gt; +
&gt; &gt; +#ifndef NDEBUG
&gt; &gt; +    enum Purpose {
&gt; &gt; +        Producer,
&gt; &gt; +        Consumer
&gt; &gt; +    };
&gt; &gt; +    // This member exists for only a debugging purpose. It is Producer in Web Process, while Consumer in UI Process.
&gt; &gt; +    Purpose m_purpose;
&gt; &gt; +#endif
&gt; 
&gt; This is not really needed.
&gt; You can do everything else in this patch without having this magically-released handle.

Ok, I&apos;ll remain createHandle(Handle&amp;) public.
And remove Purpose enum.

Do I understand correctly what you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789277</commentid>
    <comment_count>14</comment_count>
      <attachid>178985</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-12 00:10:28 -0800</bug_when>
    <thetext>Created attachment 178985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790590</commentid>
    <comment_count>15</comment_count>
      <attachid>178985</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-13 07:19:00 -0800</bug_when>
    <thetext>Comment on attachment 178985
Patch

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

Note that I r+/cq- those patches. Please work with guys at #qtwebkit to make sure you submit those patches gradually without breaking anything.

&gt; Source/WebKit2/ChangeLog:15
&gt; +        CoordinatedImageBacking. Now CoordinatedLayerTreeHost treats with the
&gt; +        Handle.

treats with the handles -&gt; converts the handle to a WebCoordinatedSurface.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:118
&gt; +    // If failing to send the message, try again in the next update.

If sending the message fails

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp:45
&gt; +    // FIXME: We need to find more elegant way.
&gt; +    if (!m_client-&gt;createUpdateAtlas(m_ID, m_surface))
&gt; +        m_surface.clear();

What&apos;s not elegant?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791100</commentid>
    <comment_count>16</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-13 16:35:21 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 178985 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178985&amp;action=review

Thank you for review!
 
&gt; Note that I r+/cq- those patches. Please work with guys at #qtwebkit to make sure you submit those patches gradually without breaking anything.

I&apos;ll ask jturcotte to review too.
 
&gt; &gt; Source/WebKit2/ChangeLog:15
&gt; &gt; +        CoordinatedImageBacking. Now CoordinatedLayerTreeHost treats with the
&gt; &gt; +        Handle.
&gt; 
&gt; treats with the handles -&gt; converts the handle to a WebCoordinatedSurface.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:118
&gt; &gt; +    // If failing to send the message, try again in the next update.
&gt; 
&gt; If sending the message fails

Thx.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp:45
&gt; &gt; +    // FIXME: We need to find more elegant way.
&gt; &gt; +    if (!m_client-&gt;createUpdateAtlas(m_ID, m_surface))
&gt; &gt; +        m_surface.clear();
&gt; 
&gt; What&apos;s not elegant?

Currently, if we fail to create handle, the UpdateAtlas gives up drawing anything. The comment means that we can do more proactive handling..

How about changing comment like
// FIXME: Currently, if we fail to send the surface to UI Process, UpdateAtlas gives up drawing anything implicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791113</commentid>
    <comment_count>17</comment_count>
      <attachid>179375</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-13 16:47:01 -0800</bug_when>
    <thetext>Created attachment 179375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791115</commentid>
    <comment_count>18</comment_count>
      <attachid>179375</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-13 16:47:48 -0800</bug_when>
    <thetext>Comment on attachment 179375
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp:43
&gt; +    // FIXME: Currently, if sending the message fails, UpdateAtlas gives up drawing anything implicitly.

Changed the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799982</commentid>
    <comment_count>19</comment_count>
      <attachid>178985</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 00:41:47 -0800</bug_when>
    <thetext>Comment on attachment 178985
Patch

Cleared Noam Rosenthal&apos;s review+ from obsolete attachment 178985 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804870</commentid>
    <comment_count>20</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-10 18:56:02 -0800</bug_when>
    <thetext>jocelyn : as you mentioned http://webkit.org/b/102994#c14, we want that Qt WK1 reuse Coordinated Graphics.

This patch is needed for WK1 to reuse CoordinatedSurface. As noam mentioned #c15, I need your opinion on this project.
Do you think this patch can be landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805179</commentid>
    <comment_count>21</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-01-11 04:48:31 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; jocelyn : as you mentioned http://webkit.org/b/102994#c14, we want that Qt WK1 reuse Coordinated Graphics.
&gt; 
&gt; This patch is needed for WK1 to reuse CoordinatedSurface. As noam mentioned #c15, I need your opinion on this project.
&gt; Do you think this patch can be landed?

The patch looks good to me, nothing blasphemous here.
I&apos;m okay with the general direction, just make sure that you track regressions and fix them in a reasonable delay.

I&apos;m still not sure what&apos;s the status of the WebKit2 lockout, is this considered a trivial change or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805765</commentid>
    <comment_count>22</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-11 17:10:29 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; The patch looks good to me, nothing blasphemous here.
&gt; I&apos;m okay with the general direction, just make sure that you track regressions and fix them in a reasonable delay.

I&apos;m glad to hear you :) I&apos;ll do my best not to make regression. If so, I&apos;ll fix immediately.

&gt; I&apos;m still not sure what&apos;s the status of the WebKit2 lockout, is this considered a trivial change or not?

The term of trivial change is so ambiguous. IMO coordinated graphics is on WK2 by chance. It is not strange if coordinated graphics is on WK1 or Platform.
So it seems to be ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805779</commentid>
    <comment_count>23</comment_count>
      <attachid>179375</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 17:33:46 -0800</bug_when>
    <thetext>Comment on attachment 179375
Patch

Clearing flags on attachment: 179375

Committed r139525: &lt;http://trac.webkit.org/changeset/139525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805780</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 17:33:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178181</attachid>
            <date>2012-12-07 01:31:06 -0800</date>
            <delta_ts>2012-12-07 23:32:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121207182823.patch</filename>
            <type>text/plain</type>
            <size>29769</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDQ4YTFlYzZjZmIyNGUx
NjI3NDcxYjIwNTE3OTI2NGIzY2E2ZDExNS4uYjhhNDBlNDgwNzRlYjNkMTc3MGM2YTBhNTdjOThk
ZWU5MjYyODM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEyLTA3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLgorCisgICAgICAgIFRoZSBjb25zdHJ1Y3Rv
ciBvZiBXZWJDb29yZGluYXRlZFN1cmZhY2UgY3JlYXRlcyBhIGhhbmRsZSBpbXBsaWNpdGx5IGFu
ZAorICAgICAgICB0aGVuIGRlc3Ryb3lzIHRoZSBoYW5kbGUgYXMgc29vbiBhcyBzZW5kaW5nIHRo
ZSBoYW5kbGUgdG8gVUkgUHJvY2Vzcy4KKyAgICAgICAgRXh0ZXJuYWwgY2xhc3MgY2Fubm90IGNy
ZWF0ZSBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSBhbnltb3JlLAorICAgICAgICBiZWNh
dXNlIHdlIGRvbid0IGhhdmUgdGhlIHJlcXVpcmVtZW50IG9mIGNyZWF0aW5nIG1hbnkgaGFuZGxl
cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGZv
cndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5
cGUpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6Cisg
ICAgICAgICAgRW5jb2RlIFdlYkdyYXBoaWNzU3VyZmFjZS4gSXQgYWN0dWFsbHkgZW5jb2RlcyBX
ZWJHcmFwaGljc1N1cmZhY2U6OkhhbmRsZS4KKyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAo
Q29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAgIE1ha2UgYSBXZWJHcmFwaGljc1N1cmZhY2Ug
aW5zdGFuY2UgdXNpbmcgV2ViR3JhcGhpY3NTdXJmYWNlOjpIYW5kbGUuCisgICAgICAgICogU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
Lmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRTdXJm
YWNlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjcmVhdGVHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKToKKyAgICAgICAgICBUaGlz
IG1ldGhvZCBpcyBvbmx5IHVzZWQgYnkgdGhlIGNyZWF0ZSBtZXRob2QsIHNvIHRoaXMgbWV0aG9k
IGlzCisgICAgICAgICAgcHJpdmF0ZSBub3cuIFdlIGRvbid0IGhhdmUgdGhlIHJlcXVpcmVtZW50
IG9mIGNyZWF0aW5nIG1hbnkgaGFuZGxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpoYW5kbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNlSGFuZGxlVGltZXJGaXJlZCk6CisgICAgICAg
ICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6Cisg
ICAgICAgIChXZWJDb29yZGluYXRlZFN1cmZhY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVVcGRhdGVBdGxhcyk6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFj
a2luZyk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSk6
CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuaDoKKyAgICAgICAgKENvb3JkaW5hdG9yKToKKyAgICAgICAgKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVXBkYXRlQXRsYXMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0
bGFzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKToKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6On5VcGRhdGVBdGxhcyk6CisgICAgICAgIChXZWJL
aXQ6OlVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmg6
CisgICAgICAgIChVcGRhdGVBdGxhc0NsaWVudCk6CisgICAgICAgIChVcGRhdGVBdGxhcyk6CisK
IDIwMTItMTItMDYgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAK
ICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IEFkZCBDb29yZGluYXRlZFN1cmZhY2UgdG8g
cmVtb3ZlIHRoZSBkZXBlbmRlbmN5IG9mIFNoYXJlYWJsZVN1cmZhY2UgZnJvbSBDb29yZGluYXRl
ZCBHcmFwaGljcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpp
bmRleCA0ZDhjMjA4NjE0YTRlMmQ2ZmZjNWY0ZTYyOGJmNjE5ZTFmNzczZTJlLi44MTY3NTExZjZl
N2JkM2ZjMzkwOTk2NzJhMjJmMzlhMWNmZTMxNzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0yNTIsNiArMjUyLDcgQEAgZGVmIGZvcndhcmRfZGVj
bGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgc3BlY2lhbF9jYXNlcyA9
IGZyb3plbnNldChbCiAgICAgICAgICAgICAnV2ViS2l0OjpDb29yZGluYXRlZExheWVySUQnLAog
ICAgICAgICAgICAgJ1dlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCcsCisgICAgICAg
ICAgICAnV2ViS2l0OjpDb29yZGluYXRlZFN1cmZhY2VSZWYnLAogICAgICAgICBdKQogCiAgICAg
ICAgIGlmIHR5cGUgaW4gc3BlY2lhbF9jYXNlczoKQEAgLTQwOCw2ICs0MDksNyBAQCBkZWYgaGVh
ZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwKICAgICAgICAgJ1dlYktpdDo6
Q29vcmRpbmF0ZWRMYXllcklEJzogWyciQ29vcmRpbmF0ZWRMYXllckluZm8uaCInXSwKICAgICAg
ICAgJ1dlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCc6IFsnIkNvb3JkaW5hdGVkTGF5
ZXJJbmZvLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZVJlZic6IFsn
IkNvb3JkaW5hdGVkU3VyZmFjZS5oIiddLAogICAgICAgICAnV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0OjpXZWJDb250ZXh0VXNl
ck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6OldlYkdlc3R1cmVFdmVudCc6
IFsnIldlYkV2ZW50LmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBhODAyN2ZkYjk1Y2IzNjA2ZjZhYzYxZTIyYzlk
ODkyZjJjNzg0ZWMwLi5hYTk0NmI1YWRkYTQwMTkxNmI4YzI2ZDJiMGZkOGRlYTYzZTkzNzBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNzQXJn
dW1lbnRDb2RlcnMuaCIKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpbmNsdWRl
ICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29sb3IuaD4KQEAgLTcxLDEyICs3MiwyNiBAQAogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotI2lmIEVOQUJMRShDU1NfU0hBREVSUykKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
Ci0jZW5kaWYKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29v
cmRpbmF0ZWRTdXJmYWNlUmVmPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQ29vcmRpbmF0ZWRTdXJmYWNlUmVmJiBzdXJmYWNlUmVmKQoreworICAgIFdlYkNvb3JkaW5h
dGVkU3VyZmFjZSogc2hhcmVhYmxlU3VyZmFjZSA9IHN0YXRpY19jYXN0PFdlYkNvb3JkaW5hdGVk
U3VyZmFjZSo+KHN1cmZhY2VSZWYuZ2V0KCkpOworICAgIGVuY29kZXIuZW5jb2RlKHNoYXJlYWJs
ZVN1cmZhY2UtPmhhbmRsZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVk
U3VyZmFjZVJlZj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIENvb3JkaW5hdGVk
U3VyZmFjZVJlZiYgc3VyZmFjZVJlZikKK3sKKyAgICBXZWJDb29yZGluYXRlZFN1cmZhY2U6Okhh
bmRsZSBoYW5kbGU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgc3VyZmFjZVJlZiA9IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
Y3JlYXRlKGhhbmRsZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2Rl
cjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBG
bG9hdFBvaW50M0QmIGZsb2F0UG9pbnQzRCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZShlbmNvZGVyLCBmbG9hdFBvaW50M0QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaAppbmRleCBiYmE0Mjdk
MDFhOTE0YjFiM2ZiOWI5OTExYTYyNjEzNWUwOWMxYzdkLi5iMzY4OGM2NjE4ZWRjNzIxY2E5N2Fi
NGQxOTQ3MDM4YjM5MTExNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAi
Q29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0
UG9pbnQzRDsKQEAgLTU0LDYgKzU1LDExIEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VUb2tlbjsK
IAogbmFtZXNwYWNlIENvcmVJUEMgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlUmVmPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlUmVmJik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYktpdDo6Q29vcmRp
bmF0ZWRTdXJmYWNlUmVmJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkZsb2F0UG9pbnQzRD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IGY0YzkxNmMwMzk4NTJkZGNmZGY3OGViZGIxMWJm
Y2M0YTJlMDFkMjAuLmU1NWM3MDQ1MTUyYjM0OTE4MzQ2YzQ2NjYzN2JkYTBmZDVhODQxNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC02OCw2ICs2OCw4IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIEZsYWdzIGZsYWdzKCkgY29uc3QgPSAwOwogfTsKIAordHlwZWRlZiBSZWZQ
dHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBDb29yZGluYXRlZFN1cmZhY2VSZWY7CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
Y3BwCmluZGV4IDg1NDYxMDkxYzViMjVmN2ZjNDE4MGUxMGU1YmFhNTAwMzM3Yzk0YzIuLjNjNjFm
NDczZWMyMWM0NGM5MzMyNTljNmE3ZDIzMTU5MTUwZDc2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmNwcApAQCAtODQsNiArODQsOSBAQCBQYXNzUmVmUHRyPFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZT4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoY29uc3QgSW50U2l6
ZSYgcwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgc3VyZmFjZSA9IGNyZWF0ZShzaXplLCBm
bGFncywgU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoc2l6ZSwgc3VwcG9ydHNBbHBo
YShmbGFncykgPyBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEgOiBTaGFyZWFibGVCaXRt
YXA6Ok5vRmxhZ3MpKTsKIAorICAgIGlmICghc3VyZmFjZS0+Y3JlYXRlSGFuZGxlKCkpCisgICAg
ICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOwogfQogCkBAIC0x
MTEsNiArMTE0LDcgQEAgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+IFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6Y3JlYXRlV2l0aFN1cmZhY2UoY29uc3QKIAogUGFzc093blB0cjxXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ+IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlR3JhcGhp
Y3NDb250ZXh0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisgICAgQVNTRVJUKG1fcHVycG9zZSA9
PSBQcm9kdWNlcik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgaWYgKGlzQmFja2Vk
QnlHcmFwaGljc1N1cmZhY2UoKSkKICAgICAgICAgcmV0dXJuIG1fZ3JhcGhpY3NTdXJmYWNlLT5i
ZWdpblBhaW50KHJlY3QsIDAgLyogV3JpdGUgd2l0aG91dCByZXRhaW5pbmcgcGl4ZWxzKi8pOwpA
QCAtMTMyLDYgKzEzNiwxMCBAQCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVk
U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cgogICAgIDogbV9zaXpl
KHNpemUpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQogICAgICwgbV9iaXRtYXAoYml0bWFwKQorICAg
ICwgbV9yZWxlYXNlSGFuZGxlVGltZXIodGhpcywgJldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6cmVs
ZWFzZUhhbmRsZVRpbWVyRmlyZWQpCisjaWZuZGVmIE5ERUJVRworICAgICwgbV9wdXJwb3NlKENv
bnN1bWVyKQorI2VuZGlmCiB7CiB9CiAKQEAgLTE0MCw2ICsxNDgsMTAgQEAgV2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpXZWJDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
c2l6ZSwgQ29vcmQKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9mbGFncyhmbGFncykKICAg
ICAsIG1fZ3JhcGhpY3NTdXJmYWNlKHN1cmZhY2UpCisgICAgLCBtX3JlbGVhc2VIYW5kbGVUaW1l
cih0aGlzLCAmV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNlSGFuZGxlVGltZXJGaXJlZCkK
KyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX3B1cnBvc2UoQ29uc3VtZXIpCisjZW5kaWYKIHsKIH0K
IApAQCAtMTczLDE3ICsxODUsMjEgQEAgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+
IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYgaGEKICAgICByZXR1
cm4gY3JlYXRlKGhhbmRsZS5tX3NpemUsIGhhbmRsZS5tX2ZsYWdzLCBiaXRtYXAucmVsZWFzZSgp
KTsKIH0KIAotYm9vbCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUhhbmRsZShIYW5kbGUm
IGhhbmRsZSkKK2Jvb2wgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUoKQogewot
ICAgIGhhbmRsZS5tX3NpemUgPSBtX3NpemU7Ci0gICAgaGFuZGxlLm1fZmxhZ3MgPSBtX2ZsYWdz
OworI2lmbmRlZiBOREVCVUcKKyAgICBtX3B1cnBvc2UgPSBQcm9kdWNlcjsKKyNlbmRpZgorICAg
IG1faGFuZGxlID0gYWRvcHRQdHIobmV3IEhhbmRsZSgpKTsKKyAgICBtX2hhbmRsZS0+bV9zaXpl
ID0gbV9zaXplOworICAgIG1faGFuZGxlLT5tX2ZsYWdzID0gbV9mbGFnczsKIAogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotICAgIGhhbmRsZS5tX2dyYXBoaWNzU3VyZmFjZVRva2VuID0gbV9n
cmFwaGljc1N1cmZhY2UgPyBtX2dyYXBoaWNzU3VyZmFjZS0+ZXhwb3J0VG9rZW4oKSA6IEdyYXBo
aWNzU3VyZmFjZVRva2VuKCk7Ci0gICAgaWYgKGhhbmRsZS5tX2dyYXBoaWNzU3VyZmFjZVRva2Vu
LmlzVmFsaWQoKSkKKyAgICBtX2hhbmRsZS0+bV9ncmFwaGljc1N1cmZhY2VUb2tlbiA9IG1fZ3Jh
cGhpY3NTdXJmYWNlID8gbV9ncmFwaGljc1N1cmZhY2UtPmV4cG9ydFRva2VuKCkgOiBHcmFwaGlj
c1N1cmZhY2VUb2tlbigpOworICAgIGlmIChtX2hhbmRsZS0+bV9ncmFwaGljc1N1cmZhY2VUb2tl
bi5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgaWYgKCFtX2Jp
dG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZS5tX2JpdG1hcEhhbmRsZSkpCisgICAgaWYgKCFtX2Jp
dG1hcC0+Y3JlYXRlSGFuZGxlKG1faGFuZGxlLT5tX2JpdG1hcEhhbmRsZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTkyLDYgKzIwOCw3IEBAIGJvb2wg
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUoSGFuZGxlJiBoYW5kbGUpCiAjaWYg
VVNFKFRFWFRVUkVfTUFQUEVSKQogdm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1Rl
eHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiBwYXNzVGV4dHVyZSwgY29u
c3QgSW50UmVjdCYgdGFyZ2V0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0KQogeworICAg
IEFTU0VSVChtX3B1cnBvc2UgPT0gQ29uc3VtZXIpOwogICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJl
PiB0ZXh0dXJlKHBhc3NUZXh0dXJlKTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpAQCAt
MjE2LDUgKzIzMywxOCBAQCB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y29weVRvVGV4dHVy
ZShQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHBhcwogfQogI2VuZGlmIC8vIFVT
RShURVhUVVJFX01BUFBFUikKIAorY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUm
IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9w
dXJwb3NlID09IFByb2R1Y2VyKTsKKyAgICBBU1NFUlQobV9oYW5kbGUpOworICAgIG1fcmVsZWFz
ZUhhbmRsZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICByZXR1cm4gKm1faGFuZGxlOworfQor
Cit2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6cmVsZWFzZUhhbmRsZVRpbWVyRmlyZWQoVGlt
ZXI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiopCit7CisgICAgbV9oYW5kbGUuY2xlYXIoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAppbmRleCAwMzMzZDM0OGM1ZTVh
Nzc1YjY2OGI1YjdkZGVmYzI4ZjRkYzZlODIxLi40OTEwMzNkN2VkZWFlMzU5NmZmMWJiYTc0MzNk
NGU4OTMzYzlmNWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaApAQCAtMjQs
NiArMjQsNyBAQAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJDb29y
ZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICNpbmNsdWRl
ICJHcmFwaGljc1N1cmZhY2UuaCIKQEAgLTY2LDkgKzY3LDYgQEAgcHVibGljOgogICAgIC8vIENy
ZWF0ZSBhIHNoYXJlYWJsZSBzdXJmYWNlIGZyb20gYSBoYW5kbGUuCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGUoY29uc3QgSGFuZGxlJik7CiAKLSAg
ICAvLyBDcmVhdGUgYSBoYW5kbGUuCi0gICAgYm9vbCBjcmVhdGVIYW5kbGUoSGFuZGxlJik7Ci0K
ICAgICB2aXJ0dWFsIH5XZWJDb29yZGluYXRlZFN1cmZhY2UoKTsKIAogICAgIHZpcnR1YWwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fc2l6
ZTsgfQpAQCAtNzksNiArNzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvcHlUb1Rl
eHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgdGFyZ2V0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlT2Zmc2V0KSBP
VkVSUklERTsKICNlbmRpZgogCisgICAgLy8gVGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBvbmx5
IG9uY2UsIGJlY2F1c2UgdGhpcyBtZXRob2QgZGVzdHJveXMgbV9oYW5kbGUuCisgICAgY29uc3Qg
SGFuZGxlJiBoYW5kbGUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBXZWJDb29yZGluYXRlZFN1
cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIEZsYWdzLCBQYXNzUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4pOwogCkBAIC04Nyw2ICs4OCw5IEBAIHByaXZhdGU6CiAgICAgLy8gQ3JlYXRlIGEg
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlIHJlZmVyZW5jaW5nIGFuIGV4aXN0aW5nIFNoYXJlYWJsZUJp
dG1hcC4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0
bWFwPik7CiAKKyAgICAvLyBDcmVhdGUgYSBoYW5kbGUuCisgICAgYm9vbCBjcmVhdGVIYW5kbGUo
KTsKKwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3Jh
cGhpY3NTdXJmYWNlPik7CiAgICAgLy8gQ3JlYXRlIGEgc2hhcmVhYmxlIGJpdG1hcCBiYWNrZWQg
YnkgYSBncmFwaGljcyBzdXJmYWNlLgpAQCAtOTcsNiArMTAxLDggQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzQmFja2VkQnlHcmFwaGljc1N1cmZhY2UoKSBjb25zdCB7IHJldHVybiAhIW1fZ3JhcGhp
Y3NTdXJmYWNlOyB9CiAjZW5kaWYKIAorICAgIHZvaWQgcmVsZWFzZUhhbmRsZVRpbWVyRmlyZWQo
V2ViQ29yZTo6VGltZXI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiopOworCiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBtX3NpemU7CiAgICAgRmxhZ3MgbV9mbGFnczsKICAgICBSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBtX2JpdG1hcDsKQEAgLTEwNCw2ICsxMTAsMTkgQEAgcHJpdmF0ZToKICNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKICAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlPiBt
X2dyYXBoaWNzU3VyZmFjZTsKICNlbmRpZgorCisgICAgLy8gT25seSBXZWJDb29yZGluYXRlZFN1
cmZhY2UgaW4gV2ViIFByb2Nlc3MgaGFzIHRoaXMgbWVtYmVyLgorICAgIE93blB0cjxIYW5kbGU+
IG1faGFuZGxlOworICAgIG11dGFibGUgV2ViQ29yZTo6VGltZXI8V2ViQ29vcmRpbmF0ZWRTdXJm
YWNlPiBtX3JlbGVhc2VIYW5kbGVUaW1lcjsKKworI2lmbmRlZiBOREVCVUcKKyAgICBlbnVtIFB1
cnBvc2UgeworICAgICAgICBQcm9kdWNlciwKKyAgICAgICAgQ29uc3VtZXIKKyAgICB9OworICAg
IC8vIFRoaXMgbWVtYmVyIGV4aXN0cyBmb3Igb25seSBhIGRlYnVnZ2luZyBwdXJwb3NlLiBJdCBp
cyBQcm9kdWNlciBpbiBXZWIgUHJvY2Vzcywgd2hpbGUgQ29uc3VtZXIgaW4gVUkgUHJvY2Vzcy4K
KyAgICBQdXJwb3NlIG1fcHVycG9zZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmlu
ZGV4IDk4NDJjZjMxNDhkNjE5ZWQ3MGQ4NjE0N2UwZWNjYTliZGNjNjY4ZTQuLmI5NzY5NGM2ZThj
ZjgwYzJiYzY3NWI1ODMxY2VkZTcxN2NhOWExYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC03OCwxMCArNzgsMTAgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpyZW1vdmVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXll
cklEIGxheWVySUQsIHUKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJl
cjo6cmVtb3ZlVGlsZSwgbV9yZW5kZXJlci5nZXQoKSwgbGF5ZXJJRCwgdGlsZUlEKSk7CiB9CiAK
LXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0
bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lE
LCBjb25zdCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZVJlZiYgc3VyZmFjZVJlZikKIHsKICAg
ICBBU1NFUlQoIW1fc3VyZmFjZXMuY29udGFpbnMoYXRsYXNJRCkpOwotICAgIG1fc3VyZmFjZXMu
YWRkKGF0bGFzSUQsIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGhhbmRsZSkpOworICAg
IG1fc3VyZmFjZXMuYWRkKGF0bGFzSUQsIHN1cmZhY2VSZWYpOwogfQogCiB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKQpAQCAtMTQ1
LDkgKzE0NSw5IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlSW1hZ2VC
YWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hCiAgICAgZGlzcGF0Y2hVcGRhdGUo
YmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUltYWdlQmFja2luZywgbV9yZW5kZXJlci5n
ZXQoKSwgaW1hZ2VJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVw
ZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIGNvbnN0
IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lkIExheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2lu
Z0lEIGltYWdlSUQsIGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlUmVmJiBzdXJmYWNl
UmVmKQogewotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1cGRh
dGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQsIFdlYkNvb3JkaW5hdGVk
U3VyZmFjZTo6Y3JlYXRlKGhhbmRsZSkpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXll
clRyZWVSZW5kZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5nLCBtX3JlbmRlcmVyLmdldCgpLCBpbWFn
ZUlELCBzdXJmYWNlUmVmKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6
Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXgg
ZjAwY2JjOTY2OGZlNTEyYjMyOGUwYmJhOGFiZDhkNDAxZTc3MmJiMy4uOTlmMzI3YTJhODUzMThi
NzRjMzg1ZDM2MTViZGY3MTEzN2ZiYzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkuaApAQCAtMjUsMTAgKzI1LDEwIEBACiAjaW5jbHVkZSAiQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKKyNpbmNsdWRlICJDb29yZGluYXRl
ZFN1cmZhY2UuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiUmVn
aW9uLmgiCiAjaW5jbHVkZSAiU3VyZmFjZVVwZGF0ZUluZm8uaCIKLSNpbmNsdWRlICJXZWJDb29y
ZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllckFuaW1hdGlvbi5oPgpAQCAtNjksMTAgKzY5LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGNyZWF0ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IHRpbGVJ
RCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAg
ICAgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0
aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYp
OwogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMy
X3QgdGlsZUlEKTsKLSAgICB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25z
dCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpOworICAgIHZvaWQgY3JlYXRlVXBkYXRl
QXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlUmVmJik7
CiAgICAgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CiAgICAgdm9pZCBjcmVh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7Ci0gICAgdm9pZCB1cGRh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZVJl
ZiYpOwogICAgIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKTsKICAgICB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKTsKICAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjk3NGRiMGVmM2U2OWUzNjE1YWUy
ZTY5NzYzMjBiNzBhNmViYWZjZS4uOTVhZTgxNWQ2YWIxMjhjYjJhN2I1ODFhMGEzYTkzMTI4NzQ1
NmRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMywxMCArMzMsMTAgQEAgbWVzc2FnZXMgLT4gTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgQ3JlYXRlVGlsZUZvckxheWVyKFdlYktpdDo6Q29v
cmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgV2ViQ29yZTo6SW50UmVj
dCB0aWxlUmVjdCwgV2ViS2l0OjpTdXJmYWNlVXBkYXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFVw
ZGF0ZVRpbGVGb3JMYXllcihXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklELCB1aW50
MzJfdCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYktpdDo6U3VyZmFjZVVw
ZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBSZW1vdmVUaWxlRm9yTGF5ZXIoV2ViS2l0OjpDb29y
ZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlEKQotICAgIENyZWF0ZVVwZGF0
ZUF0bGFzKGludCBhdGxhc0lELCBXZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxl
IGhhbmRsZSkKKyAgICBDcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgV2ViS2l0OjpDb29y
ZGluYXRlZFN1cmZhY2VSZWYgc3VyZmFjZVJlZikKICAgICBSZW1vdmVVcGRhdGVBdGxhcyhpbnQg
YXRsYXNJRCkKICAgICBDcmVhdGVJbWFnZUJhY2tpbmcoV2ViS2l0OjpDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEIGltYWdlSUQpCi0gICAgVXBkYXRlSW1hZ2VCYWNraW5nKFdlYktpdDo6Q29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBXZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFj
ZTo6SGFuZGxlIGhhbmRsZSkKKyAgICBVcGRhdGVJbWFnZUJhY2tpbmcoV2ViS2l0OjpDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlUmVm
IHN1cmZhY2VSZWYpCiAgICAgQ2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhXZWJLaXQ6OkNvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKICAgICBSZW1vdmVJbWFnZUJhY2tpbmcoV2Vi
S2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCiAgICAgRGlkUmVuZGVyRnJh
bWUoV2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIFdlYkNvcmU6OkludFJlY3QgY292ZXJl
ZFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZElt
YWdlQmFja2luZy5jcHAKaW5kZXggM2ZhYzFiMDJmNjg4NzBiZjY5NmRmNWEyMzk3OWZiNTVlMDBl
Y2EwMS4uZWE3MjlkMGMyNmE0NzM2MDE1NmUxNmVhZmE5YjBjOWE2Y2MwYTFkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNw
cApAQCAtMTA0LDEwICsxMDQsNyBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRh
dGUoKQogICAgIH0KIAogICAgIG1fc3VyZmFjZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRl
KG1faW1hZ2UtPnNpemUoKSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjp0b0ZsYWdzKG1faW1hZ2UtPmN1
cnJlbnRGcmFtZUhhc0FscGhhKCkpKTsKLSAgICBtX2hhbmRsZSA9IGFkb3B0UHRyKG5ldyBXZWJD
b29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSgpKTsKLQotICAgIGlmICghc3RhdGljX2Nhc3Q8V2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+Y3JlYXRlSGFuZGxlKCptX2hh
bmRsZSkpIHsKLSAgICAgICAgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOworICAgIGlmICghbV9z
dXJmYWNlKSB7CiAgICAgICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTE4LDcgKzExNSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVw
ZGF0ZSgpCiAKICAgICBtX25hdGl2ZUltYWdlUHRyID0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKTsKIAotICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhp
ZCgpLCAqbV9oYW5kbGUpOworICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhp
ZCgpLCBtX3N1cmZhY2UpOwogICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogfQogCkBAIC0xMjYsNyAr
MTIzLDYgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5l
ZWRlZCgpCiB7CiAgICAgLy8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRpbCBVSSBQcm9jZXNz
IHJlYWRzIG1fc3VyZmFjZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3RzLCBpdCB3YXMgY3Jl
YXRlZCBpbiB0aGUgcHJldmlvdXMgdXBkYXRlLgotICAgIG1faGFuZGxlLmNsZWFyKCk7CiAgICAg
bV9zdXJmYWNlLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCmluZGV4IGVkYzZlNDQyYjFiNjdjMWI2Nzc2ZTU1
ZThmMDI2MDg1OTg4NmJkZjIuLmVmNTc3ZmY3MTMyZjdiZDQ4NmE4YzYzY2EyMTE0ZmYwOTg0Mzgz
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJ
bmZvLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSW1hZ2Uu
aCIKLSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CkBAIC00Myw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBDb29yZGluYXRvciB7
CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJDb29yZGlu
YXRlZFN1cmZhY2U6OkhhbmRsZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlt
YWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5n
Q29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsK
ICAgICB9OwpAQCAtODIsNyArODEsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxIb3N0Kj4gbV9o
b3N0czsKIAogICAgIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKLSAgICBP
d25QdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU+IG1faGFuZGxlOwogCiAgICAgV2Vi
Q29yZTo6VGltZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IG1fY2xlYXJDb250ZW50c1RpbWVy
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKaW5kZXggYTZmMWQ1OThhMDlmOWVjNGM4OTRiNmU3YWUyODAxZWIwYzdhNDIwZC4uMzkz
ODllMjJmODkxZGNlM2ZiODQ4OGE2MmZlYTcyOTlmZTlhODM4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0
ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBsLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VzLmgiCkBAIC01NzIsMTAgKzU3MywxMSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpj
cmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3Jl
YXRlSW1hZ2VCYWNraW5nKGltYWdlSUQpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwg
Y29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTGF5ZXJU
cmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2lu
Z0lEIGltYWdlSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBjb29yZGluYXRlZFN1
cmZhY2UpCiB7CiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwotICAgIG1fd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6VXBkYXRlSW1hZ2VCYWNr
aW5nKGltYWdlSUQsIGhhbmRsZSkpOworICAgIENvb3JkaW5hdGVkU3VyZmFjZVJlZiBzdXJmYWNl
UmVmID0gY29vcmRpbmF0ZWRTdXJmYWNlOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6VXBkYXRlSW1hZ2VCYWNraW5nKGltYWdlSUQsIHN1
cmZhY2VSZWYpKTsKIH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y2xlYXJJbWFnZUJh
Y2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCkBAIC02NjAs
OSArNjYyLDEwIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVRpbGUoQ29vcmRp
bmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJCiAgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpSZW1vdmVUaWxlRm9yTGF5ZXIo
bGF5ZXJJRCwgdGlsZUlEKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0
ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6Okhh
bmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVXBkYXRlQXRs
YXMoaW50IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBjb29yZGluYXRl
ZFN1cmZhY2UpCiB7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29y
ZGluYXRvclByb3h5OjpDcmVhdGVVcGRhdGVBdGxhcyhhdGxhc0lELCBoYW5kbGUpKTsKKyAgICBD
b29yZGluYXRlZFN1cmZhY2VSZWYgc3VyZmFjZVJlZiA9IGNvb3JkaW5hdGVkU3VyZmFjZTsKKyAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNy
ZWF0ZVVwZGF0ZUF0bGFzKGF0bGFzSUQsIHN1cmZhY2VSZWYpKTsKIH0KIAogdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6cmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBhYjM4Y2Fh
Mzc5ZGY0M2M3NGE1YzM5Mzk2OWVmMjQ4ZGYxMzFiZGRlLi5mYWRkMGJhMGFlZjRhMTk0OTQ4Y2Q1
ZTMzNTc5NjkyYjViNzI0MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJMYXllclRy
ZWVIb3N0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVcGRhdGVBdGxhcy5oIgot
I2luY2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckZhY3Rv
cnkuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0zOSw2ICszOCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitjbGFzcyBDb29yZGluYXRlZFN1cmZhY2U7CiBjbGFzcyBVcGRhdGVJ
bmZvOwogY2xhc3MgV2ViUGFnZTsKIApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRV
cGRhdGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3Ms
IGludCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKTsKIAogICAgIC8vIFVwZGF0ZUF0bGFz
Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBj
b25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpOworICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZh
Y2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpOwog
CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpAQCAtMTI2LDcgKzEyNiw3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBDb29yZGluYXRlZEltYWdlQmFja2luZzo6Q29vcmRpbmF0b3IK
ICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5k
bGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlt
YWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVXBkYXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCmluZGV4IDk5NjUzMThkMGZhNTUyYjY3
NGVjYTE1MGExODhlYTA4MTdlYTE0YmQuLjE0Zjc3MDY5Y2U1NDQ0NzdhOTUyODk5ZWFiYjRhZDMw
NDY4NTdkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKQEAg
LTMzLDI1ICszMywyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVXBkYXRlQXRsYXM6OlVwZGF0
ZUF0bGFzKFVwZGF0ZUF0bGFzQ2xpZW50KiBjbGllbnQsIGludCBkaW1lbnNpb24sIENvb3JkaW5h
dGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBt
X2ZsYWdzKGZsYWdzKQogICAgICwgbV9pbmFjdGl2aXR5SW5TZWNvbmRzKDApCi0gICAgLCBtX2lz
VmFpbGQodHJ1ZSkKIHsKICAgICBzdGF0aWMgaW50IG5leHRJRCA9IDA7CiAgICAgbV9JRCA9ICsr
bmV4dElEOworCiAgICAgSW50U2l6ZSBzaXplID0gbmV4dFBvd2VyT2ZUd28oSW50U2l6ZShkaW1l
bnNpb24sIGRpbWVuc2lvbikpOwogICAgIG1fc3VyZmFjZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6
Y3JlYXRlKHNpemUsIGZsYWdzKTsKLQotICAgIGlmICghc3RhdGljX2Nhc3Q8V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+Y3JlYXRlSGFuZGxlKG1faGFuZGxlKSkgewot
ICAgICAgICBtX2lzVmFpbGQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBt
X2NsaWVudC0+Y3JlYXRlVXBkYXRlQXRsYXMobV9JRCwgbV9oYW5kbGUpOworICAgIGlmIChtX3N1
cmZhY2UpCisgICAgICAgIG1fY2xpZW50LT5jcmVhdGVVcGRhdGVBdGxhcyhtX0lELCBtX3N1cmZh
Y2UpOwogfQogCiBVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKCkKIHsKLSAgICBpZiAobV9pc1Zh
aWxkKQorICAgIGlmIChtX3N1cmZhY2UpCiAgICAgICAgIG1fY2xpZW50LT5yZW1vdmVVcGRhdGVB
dGxhcyhtX0lEKTsKIH0KIApAQCAtNzgsNyArNzMsNyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzQ29u
dGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihpbnQmIGF0
bAogICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8R3Jh
cGhpY3NDb250ZXh0PigpOwogCi0gICAgaWYgKCFtX2lzVmFpbGQpCisgICAgaWYgKCFtX3N1cmZh
Y2UpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4oKTsKIAogICAg
IGF0bGFzSUQgPSBtX0lEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmgKaW5k
ZXggZDBiNzc5ZTA0YjlmZTM2OGZlYWE2MmM1MzEzZjJkZTljODU1NGQxMy4uYmVhMTMxMWUwMGJk
MDg1OGYzMDE0YTUzYTUxZmQ4OTRlYzFkNjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9V
cGRhdGVBdGxhcy5oCkBAIC0yMiw4ICsyMiw4IEBACiAjZGVmaW5lIFVwZGF0ZUF0bGFzX2gKIAog
I2luY2x1ZGUgIkFyZWFBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2Uu
aCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiV2ViQ29vcmRpbmF0ZWRTdXJmYWNl
LmgiCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBVcGRhdGVBdGxh
c0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGlu
dCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFBhc3NSZWZQdHI8
Q29vcmRpbmF0ZWRTdXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVB
dGxhcyhpbnQgYXRsYXNJRCkgPSAwOwogfTsKIApAQCAtNzAsMTIgKzcwLDkgQEAgcHJpdmF0ZToK
IHByaXZhdGU6CiAgICAgVXBkYXRlQXRsYXNDbGllbnQqIG1fY2xpZW50OwogICAgIE93blB0cjxH
ZW5lcmFsQXJlYUFsbG9jYXRvcj4gbV9hcmVhQWxsb2NhdG9yOwotICAgIFNoYXJlYWJsZUJpdG1h
cDo6RmxhZ3MgbV9mbGFnczsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBtX3N1cmZh
Y2U7Ci0gICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgbV9oYW5kbGU7CiAgICAgZG91
YmxlIG1faW5hY3Rpdml0eUluU2Vjb25kczsKICAgICBpbnQgbV9JRDsKLSAgICBib29sIG1faXNW
YWlsZDsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178342</attachid>
            <date>2012-12-07 23:32:28 -0800</date>
            <delta_ts>2012-12-09 18:32:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121208162942.patch</filename>
            <type>text/plain</type>
            <size>29591</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWVjNzU1MDFmZGQ4MGMw
MmM4ZDMyZDMyOTAwOWRjZDBjODY3MTk4MS4uZGZlOWY2YzEyMGYwNjQzYzEwMmI3ZDBjY2FmYzYx
Y2M3YTBlNDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDEyLTEyLTA3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLgorCisgICAgICAgIFRoZSBjb25zdHJ1Y3Rv
ciBvZiBXZWJDb29yZGluYXRlZFN1cmZhY2UgY3JlYXRlcyBhIGhhbmRsZSBpbXBsaWNpdGx5IGFu
ZAorICAgICAgICB0aGVuIGRlc3Ryb3lzIHRoZSBoYW5kbGUgYXMgc29vbiBhcyBzZW5kaW5nIHRo
ZSBoYW5kbGUgdG8gVUkgUHJvY2Vzcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgICAgRW5jb2RlIFdlYkdyYXBo
aWNzU3VyZmFjZS4gSXQgYWN0dWFsbHkgZW5jb2RlcyBXZWJHcmFwaGljc1N1cmZhY2U6OkhhbmRs
ZS4KKyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAg
ICAgICAgIE1ha2UgYSBXZWJHcmFwaGljc1N1cmZhY2UgaW5zdGFuY2UgdXNpbmcgV2ViR3JhcGhp
Y3NTdXJmYWNlOjpIYW5kbGUuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkU3VyZmFjZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlcik6
CisgICAgICAgICAgV2UgY2FuIG5vdCB1c2UgUmVmUHRyPD4gYXMgYW4gYXJndW1lbnQgb2YgbWVz
c2FnZXMsIHNvIHdlIG5lZWQgdGhlIHdyYXBwZXIgY2xhc3MuCisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUpOgorICAg
ICAgICAgIFRoaXMgbWV0aG9kIGlzIG9ubHkgdXNlZCBieSB0aGUgY3JlYXRlIG1ldGhvZCwgc28g
dGhpcyBtZXRob2QgaXMKKyAgICAgICAgICBwcml2YXRlIG5vdy4gV2UgZG9uJ3QgaGF2ZSB0aGUg
cmVxdWlyZW1lbnQgb2YgY3JlYXRpbmcgbWFueSBoYW5kbGVzLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1RleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmhhbmRsZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OnJlbGVhc2VIYW5kbGVUaW1lckZpcmVk
KToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVVwZGF0
ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6dXBk
YXRlSW1hZ2VCYWNraW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGlu
YXRvclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3IpOgorICAgICAg
ICAoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVBdGxhcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChMYXllclRyZWVDb29y
ZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVXBkYXRlQXRsYXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRl
QXRsYXMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKToKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuaDoKKyAgICAgICAgKFVwZGF0ZUF0bGFzQ2xpZW50KToKKyAgICAgICAgKFVwZGF0
ZUF0bGFzKToKKworMjAxMi0xMi0wNyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55
MTAwLm5ldD4KKwogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogQWRkIENvb3JkaW5hdGVk
U3VyZmFjZSB0byByZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgU2hhcmVhYmxlU3VyZmFjZSBmcm9t
IENvb3JkaW5hdGVkIEdyYXBoaWNzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAwODE5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weQppbmRleCA1NTk0NzhjYTljZDNlMzdhZTA1MTQ1ZWMyMzk2OTY5MWQ0ZDViZWEy
Li5mMzU0ZjMxZTM2NTNkNGQ1ODhiNDExMTdhMzE4YzhhNDhhMzFkZjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0zOTcsNiArMzk3LDcgQEAgZGVm
IGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXN1bHQnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+
J10sCiAgICAgICAgICdXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJJRCc6IFsnIkNvb3JkaW5hdGVk
TGF5ZXJJbmZvLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRl
cic6IFsnIkNvb3JkaW5hdGVkU3VyZmFjZS5oIiddLAogICAgICAgICAnV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0OjpXZWJDb250
ZXh0VXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6OldlYkdlc3R1cmVF
dmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBhODAyN2ZkYjk1Y2IzNjA2ZjZhYzYx
ZTIyYzlkODkyZjJjNzg0ZWMwLi42NDRiZmJkYWRmZjA1NWJlZjVhMzU3MzM3OWU3YTJhMmJkMDYy
NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVu
dENvZGVycy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuaCIKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNp
bmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29sb3IuaD4KQEAgLTcxLDEyICs3MiwyNiBAQAogI2VuZGlmCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotI2lmIEVOQUJMRShDU1NfU0hBREVSUykKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci0jZW5kaWYKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCit2b2lkIEFyZ3VtZW50Q29k
ZXI8Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyJiBzdXJmYWNlSG9sZGVyKQorewor
ICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFjZSogc2hhcmVhYmxlU3VyZmFjZSA9IHN0YXRpY19jYXN0
PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KHN1cmZhY2VIb2xkZXIuY29vcmRpbmF0ZWRTdXJmYWNl
LmdldCgpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaGFyZWFibGVTdXJmYWNlLT5oYW5kbGUoKSk7
Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZFN1cmZhY2VIb2xkZXI+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb29yZGluYXRlZFN1cmZhY2VIb2xkZXImIHN1
cmZhY2VIb2xkZXIpCit7CisgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgaGFuZGxl
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHN1cmZhY2VIb2xkZXIuY29vcmRpbmF0ZWRTdXJmYWNlID0gV2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjcmVhdGUoaGFuZGxlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBB
cmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludDNEKQogewogICAgIFNpbXBsZUFyZ3Vt
ZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0UG9pbnQzRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmlu
ZGV4IGJiYTQyN2QwMWE5MTRiMWIzZmI5Yjk5MTFhNjI2MTM1ZTA5YzFjN2QuLjQzZWM2MjA4OGVj
ZDY1ZDkzYjliMjdjZWI1NjZiMzViMGQ5ZjE5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCkBAIC01Miw4ICs1MiwxNyBAQCBzdHJ1
Y3QgR3JhcGhpY3NTdXJmYWNlVG9rZW47CiAjZW5kaWYKIH0KIAorbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBDb29yZGluYXRlZFN1cmZhY2VIb2xkZXI7Cit9CisKIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkNvb3JkaW5hdGVk
U3VyZmFjZUhvbGRlcj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhv
bGRlciYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
bG9hdFBvaW50M0Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRTdXJmYWNl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZFN1cmZhY2UuaAppbmRleCBmNGM5MTZjMDM5ODUyZGRjZmRmNzhlYmRiMTFiZmNjNGEyZTAxZDIw
Li5hYzg3MjFhOTY1NGQyYWVmYmE4N2E1OTk0NjYyOTFhZDQ4NGE4MzFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFN1cmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZFN1cmZhY2UuaApAQCAtNjgsNiArNjgsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgRmxhZ3MgZmxhZ3MoKSBjb25zdCA9IDA7CiB9OwogCisvLyBXZSBjYW4gbm90IHVzZSBSZWZQ
dHI8PiBhcyBhbiBhcmd1bWVudCBvZiBtZXNzYWdlcywgc28gd2UgbmVlZCB0aGUgd3JhcHBlciBj
bGFzcy4KK2NsYXNzIENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciB7CitwdWJsaWM6CisgICAgUmVm
UHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gY29vcmRpbmF0ZWRTdXJmYWNlOworfTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFj
ZS5jcHAKaW5kZXggODU0NjEwOTFjNWIyNWY3ZmM0MTgwZTEwZTViYWE1MDAzMzdjOTRjMi4uM2M2
MWY0NzNlYzIxYzQ0YzkzMzI1OWM2YTdkMjMxNTkxNTBkNzZjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuY3BwCkBAIC04NCw2ICs4NCw5IEBAIFBhc3NSZWZQdHI8V2ViQ29v
cmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShjb25zdCBJbnRT
aXplJiBzCiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICBzdXJmYWNlID0gY3JlYXRlKHNpemUs
IGZsYWdzLCBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShzaXplLCBzdXBwb3J0c0Fs
cGhhKGZsYWdzKSA/IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IFNoYXJlYWJsZUJp
dG1hcDo6Tm9GbGFncykpOwogCisgICAgaWYgKCFzdXJmYWNlLT5jcmVhdGVIYW5kbGUoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CiB9CiAKQEAg
LTExMSw2ICsxMTQsNyBAQCBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4gV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVXaXRoU3VyZmFjZShjb25zdAogCiBQYXNzT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVHcmFw
aGljc0NvbnRleHQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyAgICBBU1NFUlQobV9wdXJwb3Nl
ID09IFByb2R1Y2VyKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICBpZiAoaXNCYWNr
ZWRCeUdyYXBoaWNzU3VyZmFjZSgpKQogICAgICAgICByZXR1cm4gbV9ncmFwaGljc1N1cmZhY2Ut
PmJlZ2luUGFpbnQocmVjdCwgMCAvKiBXcml0ZSB3aXRob3V0IHJldGFpbmluZyBwaXhlbHMqLyk7
CkBAIC0xMzIsNiArMTM2LDEwIEBAIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3VyCiAgICAgOiBtX3Np
emUoc2l6ZSkKICAgICAsIG1fZmxhZ3MoZmxhZ3MpCiAgICAgLCBtX2JpdG1hcChiaXRtYXApCisg
ICAgLCBtX3JlbGVhc2VIYW5kbGVUaW1lcih0aGlzLCAmV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpy
ZWxlYXNlSGFuZGxlVGltZXJGaXJlZCkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBtX3B1cnBvc2Uo
Q29uc3VtZXIpCisjZW5kaWYKIHsKIH0KIApAQCAtMTQwLDYgKzE0OCwxMCBAQCBXZWJDb29yZGlu
YXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzaXplLCBDb29yZAogICAgIDogbV9zaXplKHNpemUpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQog
ICAgICwgbV9ncmFwaGljc1N1cmZhY2Uoc3VyZmFjZSkKKyAgICAsIG1fcmVsZWFzZUhhbmRsZVRp
bWVyKHRoaXMsICZXZWJDb29yZGluYXRlZFN1cmZhY2U6OnJlbGVhc2VIYW5kbGVUaW1lckZpcmVk
KQorI2lmbmRlZiBOREVCVUcKKyAgICAsIG1fcHVycG9zZShDb25zdW1lcikKKyNlbmRpZgogewog
fQogCkBAIC0xNzMsMTcgKzE4NSwyMSBAQCBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZT4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYQogICAgIHJl
dHVybiBjcmVhdGUoaGFuZGxlLm1fc2l6ZSwgaGFuZGxlLm1fZmxhZ3MsIGJpdG1hcC5yZWxlYXNl
KCkpOwogfQogCi1ib29sIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKEhhbmRs
ZSYgaGFuZGxlKQorYm9vbCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUhhbmRsZSgpCiB7
Ci0gICAgaGFuZGxlLm1fc2l6ZSA9IG1fc2l6ZTsKLSAgICBoYW5kbGUubV9mbGFncyA9IG1fZmxh
Z3M7CisjaWZuZGVmIE5ERUJVRworICAgIG1fcHVycG9zZSA9IFByb2R1Y2VyOworI2VuZGlmCisg
ICAgbV9oYW5kbGUgPSBhZG9wdFB0cihuZXcgSGFuZGxlKCkpOworICAgIG1faGFuZGxlLT5tX3Np
emUgPSBtX3NpemU7CisgICAgbV9oYW5kbGUtPm1fZmxhZ3MgPSBtX2ZsYWdzOwogCiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaGFuZGxlLm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBt
X2dyYXBoaWNzU3VyZmFjZSA/IG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigpIDogR3Jh
cGhpY3NTdXJmYWNlVG9rZW4oKTsKLSAgICBpZiAoaGFuZGxlLm1fZ3JhcGhpY3NTdXJmYWNlVG9r
ZW4uaXNWYWxpZCgpKQorICAgIG1faGFuZGxlLT5tX2dyYXBoaWNzU3VyZmFjZVRva2VuID0gbV9n
cmFwaGljc1N1cmZhY2UgPyBtX2dyYXBoaWNzU3VyZmFjZS0+ZXhwb3J0VG9rZW4oKSA6IEdyYXBo
aWNzU3VyZmFjZVRva2VuKCk7CisgICAgaWYgKG1faGFuZGxlLT5tX2dyYXBoaWNzU3VyZmFjZVRv
a2VuLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAoIW1f
Yml0bWFwLT5jcmVhdGVIYW5kbGUoaGFuZGxlLm1fYml0bWFwSGFuZGxlKSkKKyAgICBpZiAoIW1f
Yml0bWFwLT5jcmVhdGVIYW5kbGUobV9oYW5kbGUtPm1fYml0bWFwSGFuZGxlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xOTIsNiArMjA4LDcgQEAgYm9v
bCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSkKICNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y29weVRv
VGV4dHVyZShQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHBhc3NUZXh0dXJlLCBj
b25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQpCiB7Cisg
ICAgQVNTRVJUKG1fcHVycG9zZSA9PSBDb25zdW1lcik7CiAgICAgUmVmUHRyPEJpdG1hcFRleHR1
cmU+IHRleHR1cmUocGFzc1RleHR1cmUpOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCkBA
IC0yMTYsNSArMjMzLDE4IEBAIHZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjb3B5VG9UZXh0
dXJlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gcGFzCiB9CiAjZW5kaWYgLy8g
VVNFKFRFWFRVUkVfTUFQUEVSKQogCitjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRs
ZSYgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpoYW5kbGUoKSBjb25zdAoreworICAgIEFTU0VSVCht
X3B1cnBvc2UgPT0gUHJvZHVjZXIpOworICAgIEFTU0VSVChtX2hhbmRsZSk7CisgICAgbV9yZWxl
YXNlSGFuZGxlVGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIHJldHVybiAqbV9oYW5kbGU7Cit9
CisKK3ZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNlSGFuZGxlVGltZXJGaXJlZChU
aW1lcjxXZWJDb29yZGluYXRlZFN1cmZhY2U+KikKK3sKKyAgICBtX2hhbmRsZS5jbGVhcigpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IDAzMzNkMzQ4YzVl
NWE3NzViNjY4YjViN2RkZWZjMjhmNGRjNmU4MjEuLjQ5MTAzM2Q3ZWRlYWUzNTk2ZmYxYmJhNzQz
M2Q0ZTg5MzNjOWY1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC0y
NCw2ICsyNCw3IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkNv
b3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvVGltZXIuaD4KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogI2luY2x1
ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgpAQCAtNjYsOSArNjcsNiBAQCBwdWJsaWM6CiAgICAgLy8g
Q3JlYXRlIGEgc2hhcmVhYmxlIHN1cmZhY2UgZnJvbSBhIGhhbmRsZS4KICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0ZShjb25zdCBIYW5kbGUmKTsKIAot
ICAgIC8vIENyZWF0ZSBhIGhhbmRsZS4KLSAgICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUmKTsK
LQogICAgIHZpcnR1YWwgfldlYkNvb3JkaW5hdGVkU3VyZmFjZSgpOwogCiAgICAgdmlydHVhbCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9z
aXplOyB9CkBAIC03OSw2ICs3Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29weVRv
VGV4dHVyZShQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzb3VyY2VPZmZzZXQp
IE9WRVJSSURFOwogI2VuZGlmCiAKKyAgICAvLyBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG9u
bHkgb25jZSwgYmVjYXVzZSB0aGlzIG1ldGhvZCBkZXN0cm95cyBtX2hhbmRsZS4KKyAgICBjb25z
dCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdlYkNvb3JkaW5hdGVk
U3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hhcmVh
YmxlQml0bWFwPik7CiAKQEAgLTg3LDYgKzg4LDkgQEAgcHJpdmF0ZToKICAgICAvLyBDcmVhdGUg
YSBXZWJDb29yZGluYXRlZFN1cmZhY2UgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU2hhcmVhYmxl
Qml0bWFwLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywgUGFzc1JlZlB0cjxTaGFyZWFibGVC
aXRtYXA+KTsKIAorICAgIC8vIENyZWF0ZSBhIGhhbmRsZS4KKyAgICBib29sIGNyZWF0ZUhhbmRs
ZSgpOworCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywgUGFzc1JlZlB0cjxXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2U+KTsKICAgICAvLyBDcmVhdGUgYSBzaGFyZWFibGUgYml0bWFwIGJhY2tl
ZCBieSBhIGdyYXBoaWNzIHN1cmZhY2UuCkBAIC05Nyw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgaXNCYWNrZWRCeUdyYXBoaWNzU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuICEhbV9ncmFw
aGljc1N1cmZhY2U7IH0KICNlbmRpZgogCisgICAgdm9pZCByZWxlYXNlSGFuZGxlVGltZXJGaXJl
ZChXZWJDb3JlOjpUaW1lcjxXZWJDb29yZGluYXRlZFN1cmZhY2U+Kik7CisKICAgICBXZWJDb3Jl
OjpJbnRTaXplIG1fc2l6ZTsKICAgICBGbGFncyBtX2ZsYWdzOwogICAgIFJlZlB0cjxTaGFyZWFi
bGVCaXRtYXA+IG1fYml0bWFwOwpAQCAtMTA0LDYgKzExMCwxOSBAQCBwcml2YXRlOgogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQogICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U+
IG1fZ3JhcGhpY3NTdXJmYWNlOwogI2VuZGlmCisKKyAgICAvLyBPbmx5IFdlYkNvb3JkaW5hdGVk
U3VyZmFjZSBpbiBXZWIgUHJvY2VzcyBoYXMgdGhpcyBtZW1iZXIuCisgICAgT3duUHRyPEhhbmRs
ZT4gbV9oYW5kbGU7CisgICAgbXV0YWJsZSBXZWJDb3JlOjpUaW1lcjxXZWJDb29yZGluYXRlZFN1
cmZhY2U+IG1fcmVsZWFzZUhhbmRsZVRpbWVyOworCisjaWZuZGVmIE5ERUJVRworICAgIGVudW0g
UHVycG9zZSB7CisgICAgICAgIFByb2R1Y2VyLAorICAgICAgICBDb25zdW1lcgorICAgIH07Cisg
ICAgLy8gVGhpcyBtZW1iZXIgZXhpc3RzIGZvciBvbmx5IGEgZGVidWdnaW5nIHB1cnBvc2UuIEl0
IGlzIFByb2R1Y2VyIGluIFdlYiBQcm9jZXNzLCB3aGlsZSBDb25zdW1lciBpbiBVSSBQcm9jZXNz
LgorICAgIFB1cnBvc2UgbV9wdXJwb3NlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAK
aW5kZXggNmViMTQ5M2FkMWFhODIwYjY2MTZiNzA0NzY4YTNmNWFlN2JmNDMxNS4uZTljMDkwNDg4
M2RiNTdhMTEyY2RlZGRlOTUzY2E2NGEwZDg5NGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTc4LDEwICs3OCwxMCBAQCB2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExh
eWVySUQgbGF5ZXJJRCwgdQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRl
cmVyOjpyZW1vdmVUaWxlLCBtX3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQpKTsKIH0K
IAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpjcmVhdGVVcGRhdGVBdGxhcyhpbnQg
YXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSkKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFz
SUQsIGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyJiBzdXJmYWNlSG9sZGVy
KQogewogICAgIEFTU0VSVCghbV9zdXJmYWNlcy5jb250YWlucyhhdGxhc0lEKSk7Ci0gICAgbV9z
dXJmYWNlcy5hZGQoYXRsYXNJRCwgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoaGFuZGxl
KSk7CisgICAgbV9zdXJmYWNlcy5hZGQoYXRsYXNJRCwgc3VyZmFjZUhvbGRlci5jb29yZGluYXRl
ZFN1cmZhY2UpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVVw
ZGF0ZUF0bGFzKGludCBhdGxhc0lEKQpAQCAtMTQ1LDkgKzE0NSw5IEBAIHZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQgaW1hCiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNy
ZWF0ZUltYWdlQmFja2luZywgbV9yZW5kZXJlci5nZXQoKSwgaW1hZ2VJRCkpOwogfQogCi12b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlJiBoYW5kbGUpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdl
QmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIGNvbnN0IFdlYktpdDo6
Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyJiBzdXJmYWNlSG9sZGVyKQogewotICAgIGRpc3BhdGNo
VXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVu
ZGVyZXIuZ2V0KCksIGltYWdlSUQsIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGhhbmRs
ZSkpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRl
SW1hZ2VCYWNraW5nLCBtX3JlbmRlcmVyLmdldCgpLCBpbWFnZUlELCBzdXJmYWNlSG9sZGVyLmNv
b3JkaW5hdGVkU3VyZmFjZSkpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6
OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFn
ZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4
IGRkZjYxYjNmZWMxZDQ2ODA0ZGI2MGM0N2YwZTVjZDcyM2U2NGUyZmIuLjdlYzk1YjgzZDlmMDZm
NzcyNzZiOTM5NGI4MzkzYzU0NDc2MWE0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgIkJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0
ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJl
Z2lvbi5oIgogI2luY2x1ZGUgIlN1cmZhY2VVcGRhdGVJbmZvLmgiCi0jaW5jbHVkZSAiV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzTGF5ZXJBbmltYXRpb24uaD4KQEAgLTY5LDEwICs2OSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxl
SUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwog
ICAgIHZvaWQgdXBkYXRlVGlsZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3Qg
dGlsZUlELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
KTsKICAgICB2b2lkIHJlbW92ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQz
Ml90IHRpbGVJRCk7Ci0gICAgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29u
c3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIGNyZWF0ZVVwZGF0
ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRl
ciYpOwogICAgIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpOwogICAgIHZvaWQg
Y3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwotICAgIHZvaWQg
dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFdlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJik7CisgICAgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViS2l0OjpDb29yZGluYXRlZFN1cmZh
Y2VIb2xkZXImKTsKICAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE3ZTE3ZGFmYzhmY2Uw
ZTY4MTVjMmE4MjJiZjUxYzExODYxODVhYzQuLmRlOTgxYWRlYjQyYzdmMjQyY2RmNDljZTJkZDM1
ZDBlYTQ2OGUwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzMsMTAgKzMzLDEwIEBAIG1lc3NhZ2VzIC0+
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgewogICAgIENyZWF0ZVRpbGVGb3JMYXllcih1aW50
MzJfdCBsYXllcklELCB1aW50MzJfdCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3Qs
IFdlYktpdDo6U3VyZmFjZVVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxlRm9y
TGF5ZXIodWludDMyX3QgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0
IHRpbGVSZWN0LCBXZWJLaXQ6OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgUmVt
b3ZlVGlsZUZvckxheWVyKHVpbnQzMl90IGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkKLSAgICBD
cmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBoYW5kbGUpCisgICAgQ3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFdl
YktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyIHN1cmZhY2VIb2xkZXIpCiAgICAgUmVtb3Zl
VXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCiAgICAgQ3JlYXRlSW1hZ2VCYWNraW5nKHVpbnQ2NF90
IGltYWdlSUQpCi0gICAgVXBkYXRlSW1hZ2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQsIFdlYktp
dDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgaGFuZGxlKQorICAgIFVwZGF0ZUltYWdl
QmFja2luZyh1aW50NjRfdCBpbWFnZUlELCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRl
ciBzdXJmYWNlSG9sZGVyKQogICAgIENsZWFySW1hZ2VCYWNraW5nQ29udGVudHModWludDY0X3Qg
aW1hZ2VJRCkKICAgICBSZW1vdmVJbWFnZUJhY2tpbmcodWludDY0X3QgaW1hZ2VJRCkKICAgICBE
aWRSZW5kZXJGcmFtZShXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSwgV2ViQ29yZTo6SW50
UmVjdCBjb3ZlcmVkUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRleCAzZmFjMWIwMmY2ODg3MGJmNjk2ZGY1YTIz
OTc5ZmI1NWUwMGVjYTAxLi5lYTcyOWQwYzI2YTQ3MzYwMTU2ZTE2ZWFmYTliMGM5YTZjYzBhMWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuY3BwCkBAIC0xMDQsMTAgKzEwNCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc6OnVwZGF0ZSgpCiAgICAgfQogCiAgICAgbV9zdXJmYWNlID0gQ29vcmRpbmF0ZWRTdXJm
YWNlOjpjcmVhdGUobV9pbWFnZS0+c2l6ZSgpLCBDb29yZGluYXRlZFN1cmZhY2U6OnRvRmxhZ3Mo
bV9pbWFnZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSkpOwotICAgIG1faGFuZGxlID0gYWRvcHRQ
dHIobmV3IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlKCkpOwotCi0gICAgaWYgKCFzdGF0
aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihtX3N1cmZhY2UuZ2V0KCkpLT5jcmVhdGVI
YW5kbGUoKm1faGFuZGxlKSkgewotICAgICAgICByZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCk7Cisg
ICAgaWYgKCFtX3N1cmZhY2UpIHsKICAgICAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMTgsNyArMTE1LDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdl
QmFja2luZzo6dXBkYXRlKCkKIAogICAgIG1fbmF0aXZlSW1hZ2VQdHIgPSBtX2ltYWdlLT5uYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwogCi0gICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1h
Z2VCYWNraW5nKGlkKCksICptX2hhbmRsZSk7CisgICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1h
Z2VCYWNraW5nKGlkKCksIG1fc3VyZmFjZSk7CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiB9CiAK
QEAgLTEyNiw3ICsxMjMsNiBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNl
U3VyZmFjZUlmTmVlZGVkKCkKIHsKICAgICAvLyBXZSBtdXN0IGtlZXAgbV9zdXJmYWNlIHVudGls
IFVJIFByb2Nlc3MgcmVhZHMgbV9zdXJmYWNlLgogICAgIC8vIElmIG1fc3VyZmFjZSBleGlzdHMs
IGl0IHdhcyBjcmVhdGVkIGluIHRoZSBwcmV2aW91cyB1cGRhdGUuCi0gICAgbV9oYW5kbGUuY2xl
YXIoKTsKICAgICBtX3N1cmZhY2UuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKaW5kZXggZWRjNmU0NDJiMWI2
N2MxYjY3NzZlNTVlOGYwMjYwODU5ODg2YmRmMi4uZWY1NzdmZjcxMzJmN2JkNDg2YThjNjNjYTIx
MTRmZjA5ODQzODNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ29vcmRp
bmF0ZWRMYXllckluZm8uaCIKICNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNs
dWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQzLDcgKzQyLDcgQEAgcHVibGljOgogICAgIGNsYXNzIENv
b3JkaW5hdG9yIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFn
ZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0
IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQ
dHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJ
bWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCkgPSAwOwogICAgIH07CkBAIC04Miw3ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PEhvc3QqPiBtX2hvc3RzOwogCiAgICAgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gbV9zdXJm
YWNlOwotICAgIE93blB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7
CiAKICAgICBXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jbGVhckNv
bnRlbnRzVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcAppbmRleCA0MTQxYTk4OGY4OTRlMjgwMjQ1ZjkzY2EzODhjNjkzMzE0
MTRmZTdmLi5kMDA5NzE5NDFjZDYyNzA3Y2JmNTVkYjBkYzczODdmYmZjNDUyZDI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRl
ICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRv
clByb3h5TWVzc2FnZXMuaCIKQEAgLTU3MiwxMCArNTczLDEyIEBAIHZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OmNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGlt
YWdlSUQpCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpDcmVhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCkpOwogfQogCi12b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjp1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCBpbWFnZUlELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQor
dm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNv
b3JkaW5hdGVkU3VyZmFjZSkKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAg
bV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRh
dGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwgaGFuZGxlKSk7CisgICAgQ29vcmRpbmF0ZWRTdXJmYWNl
SG9sZGVyIHN1cmZhY2VIb2xkZXI7CisgICAgc3VyZmFjZUhvbGRlci5jb29yZGluYXRlZFN1cmZh
Y2UgPSBjb29yZGluYXRlZFN1cmZhY2U7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpM
YXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwgc3Vy
ZmFjZUhvbGRlcikpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjbGVhckltYWdl
QmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKQEAgLTY2
MCw5ICs2NjMsMTEgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlVGlsZShDb29y
ZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdGlsZUkKICAgICBtX3dlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlJlbW92ZVRpbGVGb3JMYXll
cihsYXllcklELCB0aWxlSUQpKTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3Jl
YXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
SGFuZGxlJiBoYW5kbGUpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVB
dGxhcyhpbnQgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5h
dGVkU3VyZmFjZSkKIHsKLSAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6OkNyZWF0ZVVwZGF0ZUF0bGFzKGF0bGFzSUQsIGhhbmRsZSkpOworICAg
IENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciBzdXJmYWNlSG9sZGVyOworICAgIHN1cmZhY2VIb2xk
ZXIuY29vcmRpbmF0ZWRTdXJmYWNlID0gY29vcmRpbmF0ZWRTdXJmYWNlOworICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVXBkYXRl
QXRsYXMoYXRsYXNJRCwgc3VyZmFjZUhvbGRlcikpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpyZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGE1NDdmNGUyM2Y0NTE0
OTAwYWJiMjg2MmJhMzdhOWYzNTk2MmU3YWYuLmM4NjdjNzI1OTQxOWJjYmVmNjU1ZWE2ZWEzODk3
MjM0NzM2NTdmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3Qu
aCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVwZGF0ZUF0bGFzLmgiCi0jaW5jbHVk
ZSAiV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyRmFjdG9yeS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTM5LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIENvb3JkaW5hdGVkU3VyZmFjZTsKIGNsYXNzIFVwZGF0ZUluZm87CiBj
bGFzcyBXZWJQYWdlOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncywgaW50JiBh
dGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAgLy8gVXBkYXRlQXRsYXNDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdl
YkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJik7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVw
ZGF0ZUF0bGFzKGludCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pOwog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CiAKICNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpDb29yZGluYXRvcgogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+KSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRh
dGVBdGxhcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKaW5kZXggOTk2NTMxOGQwZmE1NTJiNjc0ZWNhMTUw
YTE4OGVhMDgxN2VhMTRiZC4uMTRmNzcwNjljZTU0NDQ3N2E5NTI4OTllYWJiNGFkMzA0Njg1N2Rj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcApAQCAtMzMsMjUg
KzMzLDIwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMo
VXBkYXRlQXRsYXNDbGllbnQqIGNsaWVudCwgaW50IGRpbWVuc2lvbiwgQ29vcmRpbmF0ZWRTdXJm
YWNlOjpGbGFncyBmbGFncykKICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fZmxhZ3Mo
ZmxhZ3MpCiAgICAgLCBtX2luYWN0aXZpdHlJblNlY29uZHMoMCkKLSAgICAsIG1faXNWYWlsZCh0
cnVlKQogewogICAgIHN0YXRpYyBpbnQgbmV4dElEID0gMDsKICAgICBtX0lEID0gKytuZXh0SUQ7
CisKICAgICBJbnRTaXplIHNpemUgPSBuZXh0UG93ZXJPZlR3byhJbnRTaXplKGRpbWVuc2lvbiwg
ZGltZW5zaW9uKSk7CiAgICAgbV9zdXJmYWNlID0gQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUo
c2l6ZSwgZmxhZ3MpOwotCi0gICAgaWYgKCFzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZh
Y2UqPihtX3N1cmZhY2UuZ2V0KCkpLT5jcmVhdGVIYW5kbGUobV9oYW5kbGUpKSB7Ci0gICAgICAg
IG1faXNWYWlsZCA9IGZhbHNlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fY2xpZW50
LT5jcmVhdGVVcGRhdGVBdGxhcyhtX0lELCBtX2hhbmRsZSk7CisgICAgaWYgKG1fc3VyZmFjZSkK
KyAgICAgICAgbV9jbGllbnQtPmNyZWF0ZVVwZGF0ZUF0bGFzKG1fSUQsIG1fc3VyZmFjZSk7CiB9
CiAKIFVwZGF0ZUF0bGFzOjp+VXBkYXRlQXRsYXMoKQogewotICAgIGlmIChtX2lzVmFpbGQpCisg
ICAgaWYgKG1fc3VyZmFjZSkKICAgICAgICAgbV9jbGllbnQtPnJlbW92ZVVwZGF0ZUF0bGFzKG1f
SUQpOwogfQogCkBAIC03OCw3ICs3Myw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBV
cGRhdGVBdGxhczo6YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKGludCYgYXRsCiAgICAg
aWYgKHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gUGFzc093blB0cjxHcmFwaGljc0Nv
bnRleHQ+KCk7CiAKLSAgICBpZiAoIW1faXNWYWlsZCkKKyAgICBpZiAoIW1fc3VyZmFjZSkKICAg
ICAgICAgcmV0dXJuIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PigpOwogCiAgICAgYXRsYXNJ
RCA9IG1fSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaAppbmRleCBkMGI3
NzllMDRiOWZlMzY4ZmVhYTYyYzUzMTNmMmRlOWM4NTU0ZDEzLi5iZWExMzExZTAwYmQwODU4ZjMw
MTRhNTNhNTFmZDg5NGVjMWQ2MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0
bGFzLmgKQEAgLTIyLDggKzIyLDggQEAKICNkZWZpbmUgVXBkYXRlQXRsYXNfaAogCiAjaW5jbHVk
ZSAiQXJlYUFsbG9jYXRvci5oIgorI2luY2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2lu
Y2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKIAog
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1
LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFVwZGF0ZUF0bGFzQ2xpZW50
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFz
SUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGlu
YXRlZFN1cmZhY2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGlu
dCBhdGxhc0lEKSA9IDA7CiB9OwogCkBAIC03MCwxMiArNzAsOSBAQCBwcml2YXRlOgogcHJpdmF0
ZToKICAgICBVcGRhdGVBdGxhc0NsaWVudCogbV9jbGllbnQ7CiAgICAgT3duUHRyPEdlbmVyYWxB
cmVhQWxsb2NhdG9yPiBtX2FyZWFBbGxvY2F0b3I7Ci0gICAgU2hhcmVhYmxlQml0bWFwOjpGbGFn
cyBtX2ZsYWdzOwogICAgIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKLSAg
ICBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSBtX2hhbmRsZTsKICAgICBkb3VibGUgbV9p
bmFjdGl2aXR5SW5TZWNvbmRzOwogICAgIGludCBtX0lEOwotICAgIGJvb2wgbV9pc1ZhaWxkOwog
fTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178458</attachid>
            <date>2012-12-09 18:32:24 -0800</date>
            <delta_ts>2012-12-10 01:49:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121210112933.patch</filename>
            <type>text/plain</type>
            <size>29573</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjcxY2JjMzI4OGNlMjFh
MGQ1MjZjNWUwM2Y0OTliMWIxODViMGVjOC4uNjQzMzA4Njk5NmUxZjNjZmJlZjFmNDBiYzkyNzJh
NzIyZDM3ZjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEyLTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLgorCisgICAgICAgIFRoZSBjb25zdHJ1Y3Rv
ciBvZiBXZWJDb29yZGluYXRlZFN1cmZhY2UgY3JlYXRlcyBhIGhhbmRsZSBpbXBsaWNpdGx5IGFu
ZAorICAgICAgICB0aGVuIGRlc3Ryb3lzIHRoZSBoYW5kbGUgYXMgc29vbiBhcyBzZW5kaW5nIHRo
ZSBoYW5kbGUgdG8gVUkgUHJvY2Vzcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgICAgRW5jb2RlIFdlYkdyYXBo
aWNzU3VyZmFjZS4gSXQgYWN0dWFsbHkgZW5jb2RlcyBXZWJHcmFwaGljc1N1cmZhY2U6OkhhbmRs
ZS4KKyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAg
ICAgICAgIE1ha2UgYSBXZWJHcmFwaGljc1N1cmZhY2UgaW5zdGFuY2UgdXNpbmcgV2ViR3JhcGhp
Y3NTdXJmYWNlOjpIYW5kbGUuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkU3VyZmFjZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlcik6
CisgICAgICAgICAgV2UgY2FuIG5vdCB1c2UgUmVmUHRyPD4gYXMgYW4gYXJndW1lbnQgb2YgbWVz
c2FnZXMsIHNvIHdlIG5lZWQgdGhlIHdyYXBwZXIgY2xhc3MuCisgICAgICAgICogU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUpOgorICAg
ICAgICAgIFRoaXMgbWV0aG9kIGlzIG9ubHkgdXNlZCBieSB0aGUgY3JlYXRlIG1ldGhvZCwgc28g
dGhpcyBtZXRob2QgaXMKKyAgICAgICAgICBwcml2YXRlIG5vdy4gV2UgZG9uJ3QgaGF2ZSB0aGUg
cmVxdWlyZW1lbnQgb2YgY3JlYXRpbmcgbWFueSBoYW5kbGVzLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1RleHR1cmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmhhbmRsZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OnJlbGVhc2VIYW5kbGVUaW1lckZpcmVk
KToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuaDoKKyAgICAgICAgKFdlYkNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZVVwZGF0
ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6dXBk
YXRlSW1hZ2VCYWNraW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGlu
YXRvclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3IpOgorICAgICAg
ICAoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVBdGxhcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChMYXllclRyZWVDb29y
ZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVXBkYXRlQXRsYXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRl
QXRsYXMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKToKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuaDoKKyAgICAgICAgKFVwZGF0ZUF0bGFzQ2xpZW50KToKKyAgICAgICAgKFVwZGF0
ZUF0bGFzKToKKwogMjAxMi0xMi0wNyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55
MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogQWRkIENvb3JkaW5hdGVk
U3VyZmFjZSB0byByZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgU2hhcmVhYmxlU3VyZmFjZSBmcm9t
IENvb3JkaW5hdGVkIEdyYXBoaWNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21l
c3NhZ2VzLnB5CmluZGV4IDU1OTQ3OGNhOWNkM2UzN2FlMDUxNDVlYzIzOTY5NjkxZDRkNWJlYTIu
LmYzNTRmMzFlMzY1M2Q0ZDU4OGI0MTExN2EzMThjOGE0OGEzMWRmM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTM5Nyw2ICszOTcsNyBAQCBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlZpZXdwb3J0QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4n
XSwKICAgICAgICAgJ1dlYktpdDo6Q29vcmRpbmF0ZWRMYXllcklEJzogWyciQ29vcmRpbmF0ZWRM
YXllckluZm8uaCInXSwKKyAgICAgICAgJ1dlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVy
JzogWyciQ29vcmRpbmF0ZWRTdXJmYWNlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6OldlYkNvbnRl
eHRVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwKICAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2
ZW50JzogWyciV2ViRXZlbnQuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGE4MDI3ZmRiOTVjYjM2MDZmNmFjNjFl
MjJjOWQ4OTJmMmM3ODRlYzAuLjY0NGJmYmRhZGZmMDU1YmVmNWEzNTczMzc5ZTdhMmEyYmQwNjI1
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhp
Y3NBcmd1bWVudENvZGVycy5oIgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lu
Y2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Db2xvci5oPgpAQCAtNzEsMTIgKzcyLDI2IEBACiAjZW5kaWYKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0jaWYgRU5BQkxFKENTU19TSEFERVJTKQogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKLSNlbmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxDb29yZGluYXRlZFN1cmZhY2VIb2xkZXI+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBDb29yZGluYXRlZFN1cmZhY2VIb2xkZXImIHN1cmZhY2VIb2xkZXIpCit7Cisg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlKiBzaGFyZWFibGVTdXJmYWNlID0gc3RhdGljX2Nhc3Q8
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKj4oc3VyZmFjZUhvbGRlci5jb29yZGluYXRlZFN1cmZhY2Uu
Z2V0KCkpOworICAgIGVuY29kZXIuZW5jb2RlKHNoYXJlYWJsZVN1cmZhY2UtPmhhbmRsZSgpKTsK
K30KKworYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlcj46OmRlY29k
ZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciYgc3Vy
ZmFjZUhvbGRlcikKK3sKKyAgICBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSBoYW5kbGU7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc3VyZmFjZUhvbGRlci5jb29yZGluYXRlZFN1cmZhY2UgPSBXZWJDb29yZGluYXRl
ZFN1cmZhY2U6OmNyZWF0ZShoYW5kbGUpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFy
Z3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50M0QpCiB7CiAgICAgU2ltcGxlQXJndW1l
bnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRQb2ludDNEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggYmJhNDI3ZDAxYTkxNGIxYjNmYjliOTkxMWE2MjYxMzVlMDljMWM3ZC4uNDNlYzYyMDg4ZWNk
NjVkOTNiOWIyN2NlYjU2NmIzNWIwZDlmMTk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKQEAgLTUyLDggKzUyLDE3IEBAIHN0cnVj
dCBHcmFwaGljc1N1cmZhY2VUb2tlbjsKICNlbmRpZgogfQogCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIENvb3JkaW5hdGVkU3VyZmFjZUhvbGRlcjsKK30KKwogbmFtZXNwYWNlIENvcmVJUEMg
ewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYktpdDo6Q29vcmRpbmF0ZWRT
dXJmYWNlSG9sZGVyPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyJik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNlSG9s
ZGVyJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZs
b2F0UG9pbnQzRD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6RmxvYXRQb2ludDNEJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZFN1cmZhY2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
U3VyZmFjZS5oCmluZGV4IGY0YzkxNmMwMzk4NTJkZGNmZGY3OGViZGIxMWJmY2M0YTJlMDFkMjAu
LmFjODcyMWE5NjU0ZDJhZWZiYTg3YTU5OTQ2NjI5MWFkNDg0YTgzMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkU3VyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkU3VyZmFjZS5oCkBAIC02OCw2ICs2OCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBGbGFncyBmbGFncygpIGNvbnN0ID0gMDsKIH07CiAKKy8vIFdlIGNhbiBub3QgdXNlIFJlZlB0
cjw+IGFzIGFuIGFyZ3VtZW50IG9mIG1lc3NhZ2VzLCBzbyB3ZSBuZWVkIHRoZSB3cmFwcGVyIGNs
YXNzLgorY2xhc3MgQ29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyIHsKK3B1YmxpYzoKKyAgICBSZWZQ
dHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBjb29yZGluYXRlZFN1cmZhY2U7Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNl
LmNwcAppbmRleCA4NTQ2MTA5MWM1YjI1ZjdmYzQxODBlMTBlNWJhYTUwMDMzN2M5NGMyLi40M2Nj
MWJlOThiYjBkYzIzZDE5NGY3NGVmMDExZDkzYmQ1MjBjOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNv
b3JkaW5hdGVkU3VyZmFjZS5jcHAKQEAgLTg0LDYgKzg0LDkgQEAgUGFzc1JlZlB0cjxXZWJDb29y
ZGluYXRlZFN1cmZhY2U+IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNp
emUmIHMKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHN1cmZhY2UgPSBjcmVhdGUoc2l6ZSwg
ZmxhZ3MsIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHNpemUsIHN1cHBvcnRzQWxw
aGEoZmxhZ3MpID8gU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhIDogU2hhcmVhYmxlQml0
bWFwOjpOb0ZsYWdzKSk7CiAKKyAgICBpZiAoIXN1cmZhY2UtPmNyZWF0ZUhhbmRsZSgpKQorICAg
ICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKIH0KIApAQCAt
MTExLDYgKzExNCw3IEBAIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OmNyZWF0ZVdpdGhTdXJmYWNlKGNvbnN0CiAKIFBhc3NPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0PiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUdyYXBo
aWNzQ29udGV4dChjb25zdCBJbnRSZWN0JiByZWN0KQogeworICAgIEFTU0VSVChtX3B1cnBvc2Ug
PT0gUHJvZHVjZXIpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIGlmIChpc0JhY2tl
ZEJ5R3JhcGhpY3NTdXJmYWNlKCkpCiAgICAgICAgIHJldHVybiBtX2dyYXBoaWNzU3VyZmFjZS0+
YmVnaW5QYWludChyZWN0LCAwIC8qIFdyaXRlIHdpdGhvdXQgcmV0YWluaW5nIHBpeGVscyovKTsK
QEAgLTEzMiw2ICsxMzYsOSBAQCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVk
U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cgogICAgIDogbV9zaXpl
KHNpemUpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQogICAgICwgbV9iaXRtYXAoYml0bWFwKQorI2lm
bmRlZiBOREVCVUcKKyAgICAsIG1fcHVycG9zZShDb25zdW1lcikKKyNlbmRpZgogewogfQogCkBA
IC0xNDAsNiArMTQ3LDkgQEAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpXZWJDb29yZGluYXRlZFN1
cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgQ29vcmQKICAgICA6IG1fc2l6ZShz
aXplKQogICAgICwgbV9mbGFncyhmbGFncykKICAgICAsIG1fZ3JhcGhpY3NTdXJmYWNlKHN1cmZh
Y2UpCisjaWZuZGVmIE5ERUJVRworICAgICwgbV9wdXJwb3NlKENvbnN1bWVyKQorI2VuZGlmCiB7
CiB9CiAKQEAgLTE3MywxNyArMTgzLDIxIEBAIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJm
YWNlPiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhhCiAgICAg
cmV0dXJuIGNyZWF0ZShoYW5kbGUubV9zaXplLCBoYW5kbGUubV9mbGFncywgYml0bWFwLnJlbGVh
c2UoKSk7CiB9CiAKLWJvb2wgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUoSGFu
ZGxlJiBoYW5kbGUpCitib29sIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKCkK
IHsKLSAgICBoYW5kbGUubV9zaXplID0gbV9zaXplOwotICAgIGhhbmRsZS5tX2ZsYWdzID0gbV9m
bGFnczsKKyNpZm5kZWYgTkRFQlVHCisgICAgbV9wdXJwb3NlID0gUHJvZHVjZXI7CisjZW5kaWYK
KyAgICBtX2hhbmRsZSA9IGFkb3B0UHRyKG5ldyBIYW5kbGUoKSk7CisgICAgbV9oYW5kbGUtPm1f
c2l6ZSA9IG1fc2l6ZTsKKyAgICBtX2hhbmRsZS0+bV9mbGFncyA9IG1fZmxhZ3M7CiAKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBoYW5kbGUubV9ncmFwaGljc1N1cmZhY2VUb2tlbiA9
IG1fZ3JhcGhpY3NTdXJmYWNlID8gbV9ncmFwaGljc1N1cmZhY2UtPmV4cG9ydFRva2VuKCkgOiBH
cmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAgIGlmIChoYW5kbGUubV9ncmFwaGljc1N1cmZhY2VU
b2tlbi5pc1ZhbGlkKCkpCisgICAgbV9oYW5kbGUtPm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBt
X2dyYXBoaWNzU3VyZmFjZSA/IG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigpIDogR3Jh
cGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICBpZiAobV9oYW5kbGUtPm1fZ3JhcGhpY3NTdXJmYWNl
VG9rZW4uaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmICgh
bV9iaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5kbGUubV9iaXRtYXBIYW5kbGUpKQorICAgIGlmICgh
bV9iaXRtYXAtPmNyZWF0ZUhhbmRsZShtX2hhbmRsZS0+bV9iaXRtYXBIYW5kbGUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE5Miw2ICsyMDYsNyBAQCBi
b29sIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQog
I2lmIFVTRShURVhUVVJFX01BUFBFUikKIHZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjb3B5
VG9UZXh0dXJlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4gcGFzc1RleHR1cmUs
IGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCkKIHsK
KyAgICBBU1NFUlQobV9wdXJwb3NlID09IENvbnN1bWVyKTsKICAgICBSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gdGV4dHVyZShwYXNzVGV4dHVyZSk7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
QEAgLTIxNiw1ICsyMzEsMjAgQEAgdm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1Rl
eHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiBwYXMKIH0KICNlbmRpZiAv
LyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKK2NvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlJiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KG1fcHVycG9zZSA9PSBQcm9kdWNlcik7CisgICAgQVNTRVJUKG1faGFuZGxlKTsKKyAgICBtX3Jl
bGVhc2VIYW5kbGVUaW1lciA9IGFkb3B0UHRyKG5ldyBUaW1lcjxXZWJDb29yZGluYXRlZFN1cmZh
Y2U+KGNvbnN0X2Nhc3Q8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKj4odGhpcyksICZXZWJDb29yZGlu
YXRlZFN1cmZhY2U6OnJlbGVhc2VIYW5kbGVUaW1lckZpcmVkKSk7CisgICAgbV9yZWxlYXNlSGFu
ZGxlVGltZXItPnN0YXJ0T25lU2hvdCgwKTsKKyAgICByZXR1cm4gKm1faGFuZGxlOworfQorCit2
b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6cmVsZWFzZUhhbmRsZVRpbWVyRmlyZWQoVGltZXI8
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiopCit7CisgICAgbV9oYW5kbGUuY2xlYXIoKTsKKyAgICBt
X3JlbGVhc2VIYW5kbGVUaW1lci5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5h
dGVkU3VyZmFjZS5oCmluZGV4IDAzMzNkMzQ4YzVlNWE3NzViNjY4YjViN2RkZWZjMjhmNGRjNmU4
MjEuLmM0ZDc2YWJhOTAyMmE3MzAzMDQwYzVmMDQzZTJlMzlmZWFmOGQ1YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVk
U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KIAogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQogI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgpAQCAt
NjYsOSArNjcsNiBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlIGEgc2hhcmVhYmxlIHN1cmZhY2Ug
ZnJvbSBhIGhhbmRsZS4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZh
Y2U+IGNyZWF0ZShjb25zdCBIYW5kbGUmKTsKIAotICAgIC8vIENyZWF0ZSBhIGhhbmRsZS4KLSAg
ICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUmKTsKLQogICAgIHZpcnR1YWwgfldlYkNvb3JkaW5h
dGVkU3VyZmFjZSgpOwogCiAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXpl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zaXplOyB9CkBAIC03OSw2ICs3Nyw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29weVRvVGV4dHVyZShQYXNzUmVmUHRyPFdlYkNvcmU6
OkJpdG1hcFRleHR1cmU+LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzb3VyY2VPZmZzZXQpIE9WRVJSSURFOwogI2VuZGlmCiAKKyAgICAv
LyBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIG9ubHkgb25jZSwgYmVjYXVzZSB0aGlzIG1ldGhv
ZCBkZXN0cm95cyBtX2hhbmRsZS4KKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPik7CiAKQEAgLTg3LDYgKzg4
LDkgQEAgcHJpdmF0ZToKICAgICAvLyBDcmVhdGUgYSBXZWJDb29yZGluYXRlZFN1cmZhY2UgcmVm
ZXJlbmNpbmcgYW4gZXhpc3RpbmcgU2hhcmVhYmxlQml0bWFwLgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBGbGFncywgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+KTsKIAorICAgIC8vIENyZWF0ZSBh
IGhhbmRsZS4KKyAgICBib29sIGNyZWF0ZUhhbmRsZSgpOworCiAjaWYgVVNFKEdSQVBISUNTX1NV
UkZBQ0UpCiAgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBGbGFncywgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U+KTsKICAgICAvLyBD
cmVhdGUgYSBzaGFyZWFibGUgYml0bWFwIGJhY2tlZCBieSBhIGdyYXBoaWNzIHN1cmZhY2UuCkBA
IC05Nyw2ICsxMDEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNCYWNrZWRCeUdyYXBoaWNzU3Vy
ZmFjZSgpIGNvbnN0IHsgcmV0dXJuICEhbV9ncmFwaGljc1N1cmZhY2U7IH0KICNlbmRpZgogCisg
ICAgdm9pZCByZWxlYXNlSGFuZGxlVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJDb29yZGlu
YXRlZFN1cmZhY2U+Kik7CisKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKICAgICBGbGFn
cyBtX2ZsYWdzOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYml0bWFwOwpAQCAtMTA0
LDYgKzExMCwxOSBAQCBwcml2YXRlOgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIFJl
ZlB0cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2U+IG1fZ3JhcGhpY3NTdXJmYWNlOwogI2VuZGlm
CisKKyAgICAvLyBPbmx5IFdlYkNvb3JkaW5hdGVkU3VyZmFjZSBpbiBXZWIgUHJvY2VzcyBoYXMg
dGhpcyBtZW1iZXIuCisgICAgT3duUHRyPEhhbmRsZT4gbV9oYW5kbGU7CisgICAgbXV0YWJsZSBP
d25QdHI8V2ViQ29yZTo6VGltZXI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiA+IG1fcmVsZWFzZUhh
bmRsZVRpbWVyOworCisjaWZuZGVmIE5ERUJVRworICAgIGVudW0gUHVycG9zZSB7CisgICAgICAg
IFByb2R1Y2VyLAorICAgICAgICBDb25zdW1lcgorICAgIH07CisgICAgLy8gVGhpcyBtZW1iZXIg
ZXhpc3RzIGZvciBvbmx5IGEgZGVidWdnaW5nIHB1cnBvc2UuIEl0IGlzIFByb2R1Y2VyIGluIFdl
YiBQcm9jZXNzLCB3aGlsZSBDb25zdW1lciBpbiBVSSBQcm9jZXNzLgorICAgIFB1cnBvc2UgbV9w
dXJwb3NlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNmViMTQ5M2FkMWFh
ODIwYjY2MTZiNzA0NzY4YTNmNWFlN2JmNDMxNS4uZTljMDkwNDg4M2RiNTdhMTEyY2RlZGRlOTUz
Y2E2NGEwZDg5NGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5jcHAKQEAgLTc4LDEwICs3OCwxMCBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHk6OnJlbW92ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdQog
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVUaWxlLCBt
X3JlbmRlcmVyLmdldCgpLCBsYXllcklELCB0aWxlSUQpKTsKIH0KIAotdm9pZCBMYXllclRyZWVD
b29yZGluYXRvclByb3h5OjpjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6Y3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYktpdDo6
Q29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyJiBzdXJmYWNlSG9sZGVyKQogewogICAgIEFTU0VSVCgh
bV9zdXJmYWNlcy5jb250YWlucyhhdGxhc0lEKSk7Ci0gICAgbV9zdXJmYWNlcy5hZGQoYXRsYXNJ
RCwgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoaGFuZGxlKSk7CisgICAgbV9zdXJmYWNl
cy5hZGQoYXRsYXNJRCwgc3VyZmFjZUhvbGRlci5jb29yZGluYXRlZFN1cmZhY2UpOwogfQogCiB2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxh
c0lEKQpAQCAtMTQ1LDkgKzE0NSw5IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6
Y3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hCiAgICAgZGlz
cGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6OmNyZWF0ZUltYWdlQmFja2luZywg
bV9yZW5kZXJlci5nZXQoKSwgaW1hZ2VJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGlt
YWdlSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIGNvbnN0IFdlYktpdDo6Q29vcmRpbmF0ZWRTdXJmYWNl
SG9sZGVyJiBzdXJmYWNlSG9sZGVyKQogewotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVy
VHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdl
SUQsIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKGhhbmRsZSkpKTsKKyAgICBkaXNwYXRj
aFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5nLCBtX3Jl
bmRlcmVyLmdldCgpLCBpbWFnZUlELCBzdXJmYWNlSG9sZGVyLmNvb3JkaW5hdGVkU3VyZmFjZSkp
OwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5n
Q29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGRkZjYxYjNmZWMxZDQ2ODA0
ZGI2MGM0N2YwZTVjZDcyM2U2NGUyZmIuLjdlYzk1YjgzZDlmMDZmNzcyNzZiOTM5NGI4MzkzYzU0
NDc2MWE0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
LmgKQEAgLTI1LDEwICsyNSwxMCBAQAogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZS5oIgogI2luY2x1
ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkNvb3Jk
aW5hdGVkTGF5ZXJJbmZvLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5j
bHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUg
IlN1cmZhY2VVcGRhdGVJbmZvLmgiCi0jaW5jbHVkZSAiV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJBbmltYXRp
b24uaD4KQEAgLTY5LDEwICs2OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVUaWxlRm9y
TGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYpOwogICAgIHZvaWQgdXBkYXRlVGls
ZUZvckxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHJlbW92
ZVRpbGVGb3JMYXllcihDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IHRpbGVJRCk7Ci0gICAg
dm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lE
LCBjb25zdCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciYpOwogICAgIHZvaWQgcmVt
b3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5n
KENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwotICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5n
KENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
SGFuZGxlJik7CisgICAgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCwgY29uc3QgV2ViS2l0OjpDb29yZGluYXRlZFN1cmZhY2VIb2xkZXImKTsKICAgICB2
b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7
CiAgICAgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7
CiAgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE3ZTE3ZGFmYzhmY2UwZTY4MTVjMmE4MjJiZjUxYzEx
ODYxODVhYzQuLmRlOTgxYWRlYjQyYzdmMjQyY2RmNDljZTJkZDM1ZDBlYTQ2OGUwZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMzMsMTAgKzMzLDEwIEBAIG1lc3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkgewogICAgIENyZWF0ZVRpbGVGb3JMYXllcih1aW50MzJfdCBsYXllcklELCB1aW50
MzJfdCB0aWxlSUQsIFdlYkNvcmU6OkludFJlY3QgdGlsZVJlY3QsIFdlYktpdDo6U3VyZmFjZVVw
ZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVUaWxlRm9yTGF5ZXIodWludDMyX3QgbGF5
ZXJJRCwgdWludDMyX3QgdGlsZUlELCBXZWJDb3JlOjpJbnRSZWN0IHRpbGVSZWN0LCBXZWJLaXQ6
OlN1cmZhY2VVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgUmVtb3ZlVGlsZUZvckxheWVyKHVp
bnQzMl90IGxheWVySUQsIHVpbnQzMl90IHRpbGVJRCkKLSAgICBDcmVhdGVVcGRhdGVBdGxhcyhp
bnQgYXRsYXNJRCwgV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSBoYW5kbGUp
CisgICAgQ3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFdlYktpdDo6Q29vcmRpbmF0ZWRT
dXJmYWNlSG9sZGVyIHN1cmZhY2VIb2xkZXIpCiAgICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0
bGFzSUQpCiAgICAgQ3JlYXRlSW1hZ2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQpCi0gICAgVXBk
YXRlSW1hZ2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQsIFdlYktpdDo6V2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpIYW5kbGUgaGFuZGxlKQorICAgIFVwZGF0ZUltYWdlQmFja2luZyh1aW50NjRfdCBp
bWFnZUlELCBXZWJLaXQ6OkNvb3JkaW5hdGVkU3VyZmFjZUhvbGRlciBzdXJmYWNlSG9sZGVyKQog
ICAgIENsZWFySW1hZ2VCYWNraW5nQ29udGVudHModWludDY0X3QgaW1hZ2VJRCkKICAgICBSZW1v
dmVJbWFnZUJhY2tpbmcodWludDY0X3QgaW1hZ2VJRCkKICAgICBEaWRSZW5kZXJGcmFtZShXZWJD
b3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSwgV2ViQ29yZTo6SW50UmVjdCBjb3ZlcmVkUmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nLmNwcAppbmRleCAzZmFjMWIwMmY2ODg3MGJmNjk2ZGY1YTIzOTc5ZmI1NWUwMGVjYTAxLi5l
YTcyOWQwYzI2YTQ3MzYwMTU2ZTE2ZWFmYTliMGM5YTZjYzBhMWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCkBAIC0x
MDQsMTAgKzEwNCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSgpCiAg
ICAgfQogCiAgICAgbV9zdXJmYWNlID0gQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUobV9pbWFn
ZS0+c2l6ZSgpLCBDb29yZGluYXRlZFN1cmZhY2U6OnRvRmxhZ3MobV9pbWFnZS0+Y3VycmVudEZy
YW1lSGFzQWxwaGEoKSkpOwotICAgIG1faGFuZGxlID0gYWRvcHRQdHIobmV3IFdlYkNvb3JkaW5h
dGVkU3VyZmFjZTo6SGFuZGxlKCkpOwotCi0gICAgaWYgKCFzdGF0aWNfY2FzdDxXZWJDb29yZGlu
YXRlZFN1cmZhY2UqPihtX3N1cmZhY2UuZ2V0KCkpLT5jcmVhdGVIYW5kbGUoKm1faGFuZGxlKSkg
ewotICAgICAgICByZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCk7CisgICAgaWYgKCFtX3N1cmZhY2Up
IHsKICAgICAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xMTgsNyArMTE1LDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKCkK
IAogICAgIG1fbmF0aXZlSW1hZ2VQdHIgPSBtX2ltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpOwogCi0gICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNraW5nKGlkKCksICpt
X2hhbmRsZSk7CisgICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNraW5nKGlkKCksIG1f
c3VyZmFjZSk7CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiB9CiAKQEAgLTEyNiw3ICsxMjMsNiBA
QCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCkK
IHsKICAgICAvLyBXZSBtdXN0IGtlZXAgbV9zdXJmYWNlIHVudGlsIFVJIFByb2Nlc3MgcmVhZHMg
bV9zdXJmYWNlLgogICAgIC8vIElmIG1fc3VyZmFjZSBleGlzdHMsIGl0IHdhcyBjcmVhdGVkIGlu
IHRoZSBwcmV2aW91cyB1cGRhdGUuCi0gICAgbV9oYW5kbGUuY2xlYXIoKTsKICAgICBtX3N1cmZh
Y2UuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nLmgKaW5kZXggZWRjNmU0NDJiMWI2N2MxYjY3NzZlNTVlOGYwMjYw
ODU5ODg2YmRmMi4uZWY1NzdmZjcxMzJmN2JkNDg2YThjNjNjYTIxMTRmZjA5ODQzODNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2lu
Zy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIK
ICNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2lu
Y2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTQzLDcgKzQyLDcgQEAgcHVibGljOgogICAgIGNsYXNzIENvb3JkaW5hdG9yIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VC
YWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3Vy
ZmFjZTo6SGFuZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJm
YWNlPikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50
cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAgIH07
CkBAIC04Miw3ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEhvc3QqPiBtX2hvc3RzOwog
CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gbV9zdXJmYWNlOwotICAgIE93blB0cjxX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7CiAKICAgICBXZWJDb3JlOjpU
aW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jbGVhckNvbnRlbnRzVGltZXI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApp
bmRleCA0MTQxYTk4OGY4OTRlMjgwMjQ1ZjkzY2EzODhjNjkzMzE0MTRmZTdmLi5kMDA5NzE5NDFj
ZDYyNzA3Y2JmNTVkYjBkYzczODdmYmZjNDUyZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAK
ICNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJDb29yZGluYXRlZFN1cmZh
Y2UuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCIK
QEAgLTU3MiwxMCArNTczLDEyIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUlt
YWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCiAgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVJbWFn
ZUJhY2tpbmcoaW1hZ2VJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBjb25zdCBX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVDb29y
ZGluYXRvcjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1h
Z2VJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5hdGVkU3VyZmFjZSkK
IHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmcoaW1h
Z2VJRCwgaGFuZGxlKSk7CisgICAgQ29vcmRpbmF0ZWRTdXJmYWNlSG9sZGVyIHN1cmZhY2VIb2xk
ZXI7CisgICAgc3VyZmFjZUhvbGRlci5jb29yZGluYXRlZFN1cmZhY2UgPSBjb29yZGluYXRlZFN1
cmZhY2U7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRv
clByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwgc3VyZmFjZUhvbGRlcikpOwogfQog
CiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKQEAgLTY2MCw5ICs2NjMsMTEgQEAgdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlVGlsZShDb29yZGluYXRlZExheWVySUQgbGF5
ZXJJRCwgdWludDMyX3QgdGlsZUkKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OlJlbW92ZVRpbGVGb3JMYXllcihsYXllcklELCB0aWxlSUQp
KTsKIH0KIAotdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVXBkYXRlQXRsYXMoaW50
IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCit2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwg
UGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5hdGVkU3VyZmFjZSkKIHsKLSAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkNy
ZWF0ZVVwZGF0ZUF0bGFzKGF0bGFzSUQsIGhhbmRsZSkpOworICAgIENvb3JkaW5hdGVkU3VyZmFj
ZUhvbGRlciBzdXJmYWNlSG9sZGVyOworICAgIHN1cmZhY2VIb2xkZXIuY29vcmRpbmF0ZWRTdXJm
YWNlID0gY29vcmRpbmF0ZWRTdXJmYWNlOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Q3JlYXRlVXBkYXRlQXRsYXMoYXRsYXNJRCwgc3Vy
ZmFjZUhvbGRlcikpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVVcGRh
dGVBdGxhcyhpbnQgYXRsYXNJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5oCmluZGV4IGE1NDdmNGUyM2Y0NTE0OTAwYWJiMjg2MmJhMzdhOWYz
NTk2MmU3YWYuLmM4NjdjNzI1OTQxOWJjYmVmNjU1ZWE2ZWEzODk3MjM0NzM2NTdmMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAt
MjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgIlVwZGF0ZUF0bGFzLmgiCi0jaW5jbHVkZSAiV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KQEAgLTM5LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIENv
b3JkaW5hdGVkU3VyZmFjZTsKIGNsYXNzIFVwZGF0ZUluZm87CiBjbGFzcyBXZWJQYWdlOwogCkBA
IC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncywgaW50JiBhdGxhc0lELCBXZWJDb3JlOjpJ
bnRQb2ludCYpOwogCiAgICAgLy8gVXBkYXRlQXRsYXNDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZTo6SGFuZGxlJik7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxh
c0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nOjpDb29yZGluYXRvcgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJ
bWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBj
b25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFz
c1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVB
dGxhcy5jcHAKaW5kZXggOTk2NTMxOGQwZmE1NTJiNjc0ZWNhMTUwYTE4OGVhMDgxN2VhMTRiZC4u
MTRmNzcwNjljZTU0NDQ3N2E5NTI4OTllYWJiNGFkMzA0Njg1N2RjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRl
QXRsYXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcApAQCAtMzMsMjUgKzMzLDIwIEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMoVXBkYXRlQXRsYXNDbGllbnQq
IGNsaWVudCwgaW50IGRpbWVuc2lvbiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncykK
ICAgICA6IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fZmxhZ3MoZmxhZ3MpCiAgICAgLCBtX2lu
YWN0aXZpdHlJblNlY29uZHMoMCkKLSAgICAsIG1faXNWYWlsZCh0cnVlKQogewogICAgIHN0YXRp
YyBpbnQgbmV4dElEID0gMDsKICAgICBtX0lEID0gKytuZXh0SUQ7CisKICAgICBJbnRTaXplIHNp
emUgPSBuZXh0UG93ZXJPZlR3byhJbnRTaXplKGRpbWVuc2lvbiwgZGltZW5zaW9uKSk7CiAgICAg
bV9zdXJmYWNlID0gQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoc2l6ZSwgZmxhZ3MpOwotCi0g
ICAgaWYgKCFzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihtX3N1cmZhY2UuZ2V0
KCkpLT5jcmVhdGVIYW5kbGUobV9oYW5kbGUpKSB7Ci0gICAgICAgIG1faXNWYWlsZCA9IGZhbHNl
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fY2xpZW50LT5jcmVhdGVVcGRhdGVBdGxh
cyhtX0lELCBtX2hhbmRsZSk7CisgICAgaWYgKG1fc3VyZmFjZSkKKyAgICAgICAgbV9jbGllbnQt
PmNyZWF0ZVVwZGF0ZUF0bGFzKG1fSUQsIG1fc3VyZmFjZSk7CiB9CiAKIFVwZGF0ZUF0bGFzOjp+
VXBkYXRlQXRsYXMoKQogewotICAgIGlmIChtX2lzVmFpbGQpCisgICAgaWYgKG1fc3VyZmFjZSkK
ICAgICAgICAgbV9jbGllbnQtPnJlbW92ZVVwZGF0ZUF0bGFzKG1fSUQpOwogfQogCkBAIC03OCw3
ICs3Myw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBVcGRhdGVBdGxhczo6YmVnaW5Q
YWludGluZ09uQXZhaWxhYmxlQnVmZmVyKGludCYgYXRsCiAgICAgaWYgKHJlY3QuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+KCk7CiAKLSAgICBp
ZiAoIW1faXNWYWlsZCkKKyAgICBpZiAoIW1fc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIFBhc3NP
d25QdHI8R3JhcGhpY3NDb250ZXh0PigpOwogCiAgICAgYXRsYXNJRCA9IG1fSUQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9VcGRhdGVBdGxhcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaAppbmRleCBkMGI3NzllMDRiOWZlMzY4ZmVhYTYy
YzUzMTNmMmRlOWM4NTU0ZDEzLi5iZWExMzExZTAwYmQwODU4ZjMwMTRhNTNhNTFmZDg5NGVjMWQ2
MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmgKQEAgLTIyLDggKzIy
LDggQEAKICNkZWZpbmUgVXBkYXRlQXRsYXNfaAogCiAjaW5jbHVkZSAiQXJlYUFsbG9jYXRvci5o
IgorI2luY2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
LSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKIAogI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFVwZGF0ZUF0bGFzQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRh
dGVBdGxhcyhpbnQgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKSA9IDA7CiB9
OwogCkBAIC03MCwxMiArNzAsOSBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICBVcGRhdGVBdGxh
c0NsaWVudCogbV9jbGllbnQ7CiAgICAgT3duUHRyPEdlbmVyYWxBcmVhQWxsb2NhdG9yPiBtX2Fy
ZWFBbGxvY2F0b3I7Ci0gICAgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBtX2ZsYWdzOwogICAgIFJl
ZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKLSAgICBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZSBtX2hhbmRsZTsKICAgICBkb3VibGUgbV9pbmFjdGl2aXR5SW5TZWNvbmRz
OwogICAgIGludCBtX0lEOwotICAgIGJvb2wgbV9pc1ZhaWxkOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178492</attachid>
            <date>2012-12-10 01:49:31 -0800</date>
            <delta_ts>2012-12-11 17:38:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121210184639.patch</filename>
            <type>text/plain</type>
            <size>19315</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmQ4ZDYzZjVlZjRlN2Y1
ZjYzNjUxOGY5ZDIxMWMwMjkwODdhNjhkMC4uOTc4YjBhOWY3MTg3N2FlNmM0ZWY1NzI5YmM0YTI0
YWQ5YWM3NTFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEyLTEwICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLgorCisgICAgICAgIFRoZSBjb25zdHJ1Y3Rv
ciBvZiBXZWJDb29yZGluYXRlZFN1cmZhY2UgY3JlYXRlcyBhIGhhbmRsZSBpbXBsaWNpdGx5IGFu
ZAorICAgICAgICB0aGVuIGRlc3Ryb3lzIHRoZSBoYW5kbGUgYXMgc29vbiBhcyBzZW5kaW5nIHRo
ZSBoYW5kbGUgdG8gVUkgUHJvY2Vzcy4KKworICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjcmVhdGVHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKToKKyAgICAgICAgICBUaGlz
IG1ldGhvZCBpcyBvbmx5IHVzZWQgYnkgdGhlIGNyZWF0ZSBtZXRob2QsIHNvIHRoaXMgbWV0aG9k
IGlzCisgICAgICAgICAgcHJpdmF0ZSBub3cuIFdlIGRvbid0IGhhdmUgdGhlIHJlcXVpcmVtZW50
IG9mIGNyZWF0aW5nIG1hbnkgaGFuZGxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpoYW5kbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNlSGFuZGxlVGltZXJGaXJlZCk6CisgICAgICAg
ICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6Cisg
ICAgICAgIChXZWJDb29yZGluYXRlZFN1cmZhY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3IpOgorICAgICAgICAo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyk6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGVVcGRhdGVBdGxhcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChMYXllclRyZWVDb29yZGlu
YXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VXBkYXRlQXRsYXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRs
YXMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKToKKyAgICAg
ICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRl
QXRsYXMuaDoKKyAgICAgICAgKFVwZGF0ZUF0bGFzQ2xpZW50KToKKyAgICAgICAgKFVwZGF0ZUF0
bGFzKToKKworMjAxMi0xMi0xMCAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAw
Lm5ldD4KKwogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogUmVtb3ZlIHRoZSBkZXBlbmRl
bmN5IG9mIFNoYXJlYWJsZVN1cmZhY2UgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDgxOQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29y
ZGluYXRlZFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAppbmRleCA2OGY1OGU4NjgwYjRjYWZjZGQz
MGVlNTZhMjhlZjNhODM2Mzc5ODRhLi5iZmYzNGRlYzU2NzAyMWQ2ODZjYzA3NmFkMmZjNjBhYjkw
MzIwMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKQEAgLTgzLDYg
KzgzLDkgQEAgUGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+IFdlYkNvb3JkaW5hdGVk
U3VyZmFjZTo6Y3JlYXRlKGNvbnN0IEludFNpemUmIHMKICAgICBpZiAoIXN1cmZhY2UpCiAgICAg
ICAgIHN1cmZhY2UgPSBjcmVhdGUoc2l6ZSwgZmxhZ3MsIFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
U2hhcmVhYmxlKHNpemUsIChmbGFncyAmIFN1cHBvcnRzQWxwaGEpID8gU2hhcmVhYmxlQml0bWFw
OjpTdXBwb3J0c0FscGhhIDogU2hhcmVhYmxlQml0bWFwOjpOb0ZsYWdzKSk7CiAKKyAgICBpZiAo
IXN1cmZhY2UtPmNyZWF0ZUhhbmRsZSgpKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVy
biBzdXJmYWNlLnJlbGVhc2UoKTsKIH0KIApAQCAtMTEwLDYgKzExMyw3IEBAIFBhc3NSZWZQdHI8
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZVdpdGhT
dXJmYWNlKGNvbnN0CiAKIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBXZWJD
b29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dChjb25zdCBJbnRSZWN0JiBy
ZWN0KQogeworICAgIEFTU0VSVChtX3B1cnBvc2UgPT0gUHJvZHVjZXIpOwogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQogICAgIGlmIChpc0JhY2tlZEJ5R3JhcGhpY3NTdXJmYWNlKCkpCiAgICAg
ICAgIHJldHVybiBtX2dyYXBoaWNzU3VyZmFjZS0+YmVnaW5QYWludChyZWN0LCAwIC8qIFdyaXRl
IHdpdGhvdXQgcmV0YWluaW5nIHBpeGVscyovKTsKQEAgLTEzMSw2ICsxMzUsOSBAQCBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXpl
LCBDb29yZGluYXRlZFN1cgogICAgIDogbV9zaXplKHNpemUpCiAgICAgLCBtX2ZsYWdzKGZsYWdz
KQogICAgICwgbV9iaXRtYXAoYml0bWFwKQorI2lmbmRlZiBOREVCVUcKKyAgICAsIG1fcHVycG9z
ZShDb25zdW1lcikKKyNlbmRpZgogewogfQogCkBAIC0xMzksNiArMTQ2LDkgQEAgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlOjpXZWJDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2l6ZSwgQ29vcmQKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9mbGFncyhmbGFncykK
ICAgICAsIG1fZ3JhcGhpY3NTdXJmYWNlKHN1cmZhY2UpCisjaWZuZGVmIE5ERUJVRworICAgICwg
bV9wdXJwb3NlKENvbnN1bWVyKQorI2VuZGlmCiB7CiB9CiAKQEAgLTE3MiwxNyArMTgyLDIxIEBA
IFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29yZGluYXRlZFN1cmZhY2U6
OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhhCiAgICAgcmV0dXJuIGNyZWF0ZShoYW5kbGUubV9zaXpl
LCBoYW5kbGUubV9mbGFncywgYml0bWFwLnJlbGVhc2UoKSk7CiB9CiAKLWJvb2wgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlOjpjcmVhdGVIYW5kbGUoSGFuZGxlJiBoYW5kbGUpCitib29sIFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKCkKIHsKLSAgICBoYW5kbGUubV9zaXplID0gbV9z
aXplOwotICAgIGhhbmRsZS5tX2ZsYWdzID0gbV9mbGFnczsKKyNpZm5kZWYgTkRFQlVHCisgICAg
bV9wdXJwb3NlID0gUHJvZHVjZXI7CisjZW5kaWYKKyAgICBtX2hhbmRsZSA9IGFkb3B0UHRyKG5l
dyBIYW5kbGUoKSk7CisgICAgbV9oYW5kbGUtPm1fc2l6ZSA9IG1fc2l6ZTsKKyAgICBtX2hhbmRs
ZS0+bV9mbGFncyA9IG1fZmxhZ3M7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBo
YW5kbGUubV9ncmFwaGljc1N1cmZhY2VUb2tlbiA9IG1fZ3JhcGhpY3NTdXJmYWNlID8gbV9ncmFw
aGljc1N1cmZhY2UtPmV4cG9ydFRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAg
IGlmIChoYW5kbGUubV9ncmFwaGljc1N1cmZhY2VUb2tlbi5pc1ZhbGlkKCkpCisgICAgbV9oYW5k
bGUtPm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBtX2dyYXBoaWNzU3VyZmFjZSA/IG1fZ3JhcGhp
Y3NTdXJmYWNlLT5leHBvcnRUb2tlbigpIDogR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICBp
ZiAobV9oYW5kbGUtPm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4uaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmICghbV9iaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5k
bGUubV9iaXRtYXBIYW5kbGUpKQorICAgIGlmICghbV9iaXRtYXAtPmNyZWF0ZUhhbmRsZShtX2hh
bmRsZS0+bV9iaXRtYXBIYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTE5MSw2ICsyMDUsNyBAQCBib29sIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQogI2lmIFVTRShURVhUVVJFX01BUFBFUikKIHZv
aWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6Qml0bWFwVGV4dHVyZT4gcGFzc1RleHR1cmUsIGNvbnN0IEludFJlY3QmIHRhcmdldCwgY29u
c3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCkKIHsKKyAgICBBU1NFUlQobV9wdXJwb3NlID09IENv
bnN1bWVyKTsKICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZShwYXNzVGV4dHVyZSk7
CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKQEAgLTIxNSw1ICsyMzAsMjAgQEAgdm9pZCBX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNvcHlUb1RleHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlPiBwYXMKIH0KICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKK2Nv
bnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBXZWJDb29yZGluYXRlZFN1cmZhY2U6
OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHVycG9zZSA9PSBQcm9kdWNlcik7Cisg
ICAgQVNTRVJUKG1faGFuZGxlKTsKKyAgICBtX3JlbGVhc2VIYW5kbGVUaW1lciA9IGFkb3B0UHRy
KG5ldyBUaW1lcjxXZWJDb29yZGluYXRlZFN1cmZhY2U+KGNvbnN0X2Nhc3Q8V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlKj4odGhpcyksICZXZWJDb29yZGluYXRlZFN1cmZhY2U6OnJlbGVhc2VIYW5kbGVU
aW1lckZpcmVkKSk7CisgICAgbV9yZWxlYXNlSGFuZGxlVGltZXItPnN0YXJ0T25lU2hvdCgwKTsK
KyAgICByZXR1cm4gKm1faGFuZGxlOworfQorCit2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6
cmVsZWFzZUhhbmRsZVRpbWVyRmlyZWQoVGltZXI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiopCit7
CisgICAgbV9oYW5kbGUuY2xlYXIoKTsKKyAgICBtX3JlbGVhc2VIYW5kbGVUaW1lci5jbGVhcigp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IGI4MjhhYWQ4
MTc0NTQyZWRkMzdiMThlMzdmMjZjZGM5NGFiODA5ZjAuLjc3MjU4Y2FiYWQxZDI2YzkwNjhjMThj
NTQxNmYzMDE5MmYxZGE0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBA
IC0yNCw2ICsyNCw3IEBACiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUg
IkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogI2lu
Y2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgpAQCAtNjYsOSArNjcsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gQ3JlYXRlIGEgc2hhcmVhYmxlIHN1cmZhY2UgZnJvbSBhIGhhbmRsZS4KICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0ZShjb25zdCBIYW5kbGUmKTsK
IAotICAgIC8vIENyZWF0ZSBhIGhhbmRsZS4KLSAgICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUm
KTsKLQogICAgIHZpcnR1YWwgfldlYkNvb3JkaW5hdGVkU3VyZmFjZSgpOwogCiAgICAgdmlydHVh
bCBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3NpemU7
IH0KQEAgLTc5LDYgKzc3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3B5VG9UZXh0
dXJlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4dHVyZT4sIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHRhcmdldCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNvdXJjZU9mZnNldCkgT1ZF
UlJJREU7CiAjZW5kaWYKIAorICAgIC8vIFRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgb25seSBv
bmNlLCBiZWNhdXNlIHRoaXMgbWV0aG9kIGRlc3Ryb3lzIG1faGFuZGxlLgorICAgIGNvbnN0IEhh
bmRsZSYgaGFuZGxlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywgUGFzc1JlZlB0cjxTaGFyZWFibGVC
aXRtYXA+KTsKIApAQCAtODcsNiArODgsOSBAQCBwcml2YXRlOgogICAgIC8vIENyZWF0ZSBhIFdl
YkNvb3JkaW5hdGVkU3VyZmFjZSByZWZlcmVuY2luZyBhbiBleGlzdGluZyBTaGFyZWFibGVCaXRt
YXAuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIEZsYWdzLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4pOwogCisgICAgLy8gQ3JlYXRlIGEgaGFuZGxlLgorICAgIGJvb2wgY3JlYXRlSGFuZGxlKCk7
CisKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICBXZWJDb29yZGluYXRlZFN1cmZhY2Uo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIEZsYWdzLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBo
aWNzU3VyZmFjZT4pOwogICAgIC8vIENyZWF0ZSBhIHNoYXJlYWJsZSBiaXRtYXAgYmFja2VkIGJ5
IGEgZ3JhcGhpY3Mgc3VyZmFjZS4KQEAgLTk3LDYgKzEwMSw4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBpc0JhY2tlZEJ5R3JhcGhpY3NTdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gISFtX2dyYXBoaWNz
U3VyZmFjZTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHJlbGVhc2VIYW5kbGVUaW1lckZpcmVkKFdl
YkNvcmU6OlRpbWVyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4qKTsKKwogICAgIFdlYkNvcmU6Oklu
dFNpemUgbV9zaXplOwogICAgIEZsYWdzIG1fZmxhZ3M7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4gbV9iaXRtYXA7CkBAIC0xMDQsNiArMTEwLDE5IEBAIHByaXZhdGU6CiAjaWYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCiAgICAgUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZT4gbV9n
cmFwaGljc1N1cmZhY2U7CiAjZW5kaWYKKworICAgIC8vIE9ubHkgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlIGluIFdlYiBQcm9jZXNzIGhhcyB0aGlzIG1lbWJlci4KKyAgICBPd25QdHI8SGFuZGxlPiBt
X2hhbmRsZTsKKyAgICBtdXRhYmxlIE93blB0cjxXZWJDb3JlOjpUaW1lcjxXZWJDb29yZGluYXRl
ZFN1cmZhY2U+ID4gbV9yZWxlYXNlSGFuZGxlVGltZXI7CisKKyNpZm5kZWYgTkRFQlVHCisgICAg
ZW51bSBQdXJwb3NlIHsKKyAgICAgICAgUHJvZHVjZXIsCisgICAgICAgIENvbnN1bWVyCisgICAg
fTsKKyAgICAvLyBUaGlzIG1lbWJlciBleGlzdHMgZm9yIG9ubHkgYSBkZWJ1Z2dpbmcgcHVycG9z
ZS4gSXQgaXMgUHJvZHVjZXIgaW4gV2ViIFByb2Nlc3MsIHdoaWxlIENvbnN1bWVyIGluIFVJIFBy
b2Nlc3MuCisgICAgUHVycG9zZSBtX3B1cnBvc2U7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IDE0NjgxMTU4YjA4YTcxZDgxYjdmNWE2ZWUxMzI4NDFi
NGFiOWRhMzMuLmE2ZWQ0MTBjNzQxZTZmNzk0MDI2MmZkMTc4NjI4ZWRiNmE2YTdlMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2lu
Zy5jcHAKQEAgLTEwNCwxMCArMTA0LDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6
dXBkYXRlKCkKICAgICB9CiAKICAgICBtX3N1cmZhY2UgPSBDb29yZGluYXRlZFN1cmZhY2U6OmNy
ZWF0ZShtX2ltYWdlLT5zaXplKCksIG1faW1hZ2UtPmN1cnJlbnRGcmFtZUhhc0FscGhhKCkgPyBD
b29yZGluYXRlZFN1cmZhY2U6OlN1cHBvcnRzQWxwaGEgOiBDb29yZGluYXRlZFN1cmZhY2U6Ok5v
RmxhZ3MpOwotICAgIG1faGFuZGxlID0gYWRvcHRQdHIobmV3IFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZTo6SGFuZGxlKCkpOwotCi0gICAgaWYgKCFzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZh
Y2UqPihtX3N1cmZhY2UuZ2V0KCkpLT5jcmVhdGVIYW5kbGUoKm1faGFuZGxlKSkgewotICAgICAg
ICByZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCk7CisgICAgaWYgKCFtX3N1cmZhY2UpIHsKICAgICAg
ICAgbV9pc0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMTgsNyAr
MTE1LDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKCkKIAogICAgIG1f
bmF0aXZlSW1hZ2VQdHIgPSBtX2ltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwog
Ci0gICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNraW5nKGlkKCksICptX2hhbmRsZSk7
CisgICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNraW5nKGlkKCksIG1fc3VyZmFjZSk7
CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiB9CiAKQEAgLTEyNiw3ICsxMjMsNiBAQCB2b2lkIENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCkKIHsKICAgICAv
LyBXZSBtdXN0IGtlZXAgbV9zdXJmYWNlIHVudGlsIFVJIFByb2Nlc3MgcmVhZHMgbV9zdXJmYWNl
LgogICAgIC8vIElmIG1fc3VyZmFjZSBleGlzdHMsIGl0IHdhcyBjcmVhdGVkIGluIHRoZSBwcmV2
aW91cyB1cGRhdGUuCi0gICAgbV9oYW5kbGUuY2xlYXIoKTsKICAgICBtX3N1cmZhY2UuY2xlYXIo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmgKaW5kZXggZWRjNmU0NDJiMWI2N2MxYjY3NzZlNTVlOGYwMjYwODU5ODg2YmRm
Mi4uZWY1NzdmZjcxMzJmN2JkNDg2YThjNjNjYTIxMTRmZjA5ODQzODNhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllckluZm8uaCIKICNpbmNsdWRl
ICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIldl
YkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQzLDcg
KzQyLDcgQEAgcHVibGljOgogICAgIGNsYXNzIENvb3JkaW5hdG9yIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgPSAw
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFn
ZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAgIH07CkBAIC04Miw3
ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEhvc3QqPiBtX2hvc3RzOwogCiAgICAgUmVm
UHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gbV9zdXJmYWNlOwotICAgIE93blB0cjxXZWJDb29yZGlu
YXRlZFN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7CiAKICAgICBXZWJDb3JlOjpUaW1lcjxDb29y
ZGluYXRlZEltYWdlQmFja2luZz4gbV9jbGVhckNvbnRlbnRzVGltZXI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCAxMTdj
ZGJhYTY1MDU1YTljNTg3ZWI5MDE5ZDZmY2Y1NGMwZDZmNTE3Li4zYmRhOWJlMDdmNDc0Mjk5Yzg0
OWI0MmY4YjA4YTRlNWNlZGMyNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUlE
LmgiCiAjaW5jbHVkZSAiU3VyZmFjZVVwZGF0ZUluZm8uaCIKKyNpbmNsdWRlICJXZWJDb29yZGlu
YXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTU3
OCwxMCArNTc5LDExIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCiAgICAgbV93ZWJQYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVJbWFnZUJhY2tp
bmcoaW1hZ2VJRCkpOwogfQogCi12b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVJbWFn
ZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBjb25zdCBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwg
UGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5hdGVkU3VyZmFjZSkKIHsKICAg
ICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwg
aGFuZGxlKSk7CisgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlKiB3ZWJDb29yZGluYXRlZFN1cmZh
Y2UgPSBzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihjb29yZGluYXRlZFN1cmZh
Y2UuZ2V0KCkpOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6VXBkYXRlSW1hZ2VCYWNraW5nKGltYWdlSUQsIHdlYkNvb3JkaW5hdGVkU3Vy
ZmFjZS0+aGFuZGxlKCkpKTsKIH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y2xlYXJJ
bWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCkBA
IC02NjYsOSArNjY4LDEwIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVRpbGUo
Q29vcmRpbmF0ZWRMYXllcklEIGxheWVySUQsIHVpbnQzMl90IHRpbGVJCiAgICAgbV93ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpSZW1vdmVUaWxlRm9y
TGF5ZXIobGF5ZXJJRCwgdGlsZUlEKSk7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OmNyZWF0ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSYgaGFuZGxlKQordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlVXBk
YXRlQXRsYXMoaW50IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBjb29y
ZGluYXRlZFN1cmZhY2UpCiB7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpDcmVhdGVVcGRhdGVBdGxhcyhhdGxhc0lELCBoYW5kbGUpKTsK
KyAgICBXZWJDb29yZGluYXRlZFN1cmZhY2UqIHdlYkNvb3JkaW5hdGVkU3VyZmFjZSA9IHN0YXRp
Y19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KGNvb3JkaW5hdGVkU3VyZmFjZS5nZXQoKSk7
CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5
OjpDcmVhdGVVcGRhdGVBdGxhcyhhdGxhc0lELCB3ZWJDb29yZGluYXRlZFN1cmZhY2UtPmhhbmRs
ZSgpKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZVVwZGF0ZUF0bGFz
KGludCBhdGxhc0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKaW5kZXggNzA1NzhlNTVjM2IzYzdhNDBhNjBiMWRiNjM3YTJhZmQ0MTM3NGJi
ZC4uNTA3MDYxODQxZWU1YTZjYzJlMDk4NmU4YTkyMDEzOTQ1ODRmMWQwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSAiVXBkYXRlQXRsYXMuaCIKLSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2Uu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpA
QCAtMzksNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ29vcmRpbmF0
ZWRTdXJmYWNlOwogY2xhc3MgVXBkYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBD
b29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCBpbnQmIGF0bGFzSUQsIFdlYkNvcmU6OkludFBvaW50
Jik7CiAKICAgICAvLyBVcGRhdGVBdGxhc0NsaWVudAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVV
cGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5k
bGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQsIFBh
c3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNvb3JkaW5hdG9yCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQs
IGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQ
YXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0
ZUF0bGFzLmNwcAppbmRleCA5OTY1MzE4ZDBmYTU1MmI2NzRlY2ExNTBhMTg4ZWEwODE3ZWExNGJk
Li4xNGY3NzA2OWNlNTQ0NDc3YTk1Mjg5OWVhYmI0YWQzMDQ2ODU3ZGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRh
dGVBdGxhcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCkBAIC0zMywyNSArMzMsMjAgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyhVcGRhdGVBdGxhc0NsaWVu
dCogY2xpZW50LCBpbnQgZGltZW5zaW9uLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdz
KQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9mbGFncyhmbGFncykKICAgICAsIG1f
aW5hY3Rpdml0eUluU2Vjb25kcygwKQotICAgICwgbV9pc1ZhaWxkKHRydWUpCiB7CiAgICAgc3Rh
dGljIGludCBuZXh0SUQgPSAwOwogICAgIG1fSUQgPSArK25leHRJRDsKKwogICAgIEludFNpemUg
c2l6ZSA9IG5leHRQb3dlck9mVHdvKEludFNpemUoZGltZW5zaW9uLCBkaW1lbnNpb24pKTsKICAg
ICBtX3N1cmZhY2UgPSBDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShzaXplLCBmbGFncyk7Ci0K
LSAgICBpZiAoIXN0YXRpY19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KG1fc3VyZmFjZS5n
ZXQoKSktPmNyZWF0ZUhhbmRsZShtX2hhbmRsZSkpIHsKLSAgICAgICAgbV9pc1ZhaWxkID0gZmFs
c2U7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9jbGllbnQtPmNyZWF0ZVVwZGF0ZUF0
bGFzKG1fSUQsIG1faGFuZGxlKTsKKyAgICBpZiAobV9zdXJmYWNlKQorICAgICAgICBtX2NsaWVu
dC0+Y3JlYXRlVXBkYXRlQXRsYXMobV9JRCwgbV9zdXJmYWNlKTsKIH0KIAogVXBkYXRlQXRsYXM6
On5VcGRhdGVBdGxhcygpCiB7Ci0gICAgaWYgKG1faXNWYWlsZCkKKyAgICBpZiAobV9zdXJmYWNl
KQogICAgICAgICBtX2NsaWVudC0+cmVtb3ZlVXBkYXRlQXRsYXMobV9JRCk7CiB9CiAKQEAgLTc4
LDcgKzczLDcgQEAgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpiZWdp
blBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaW50JiBhdGwKICAgICBpZiAocmVjdC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4oKTsKIAotICAg
IGlmICghbV9pc1ZhaWxkKQorICAgIGlmICghbV9zdXJmYWNlKQogICAgICAgICByZXR1cm4gUGFz
c093blB0cjxHcmFwaGljc0NvbnRleHQ+KCk7CiAKICAgICBhdGxhc0lEID0gbV9JRDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCmluZGV4IGQwYjc3OWUwNGI5ZmUzNjhmZWFh
NjJjNTMxM2YyZGU5Yzg1NTRkMTMuLmJlYTEzMTFlMDBiZDA4NThmMzAxNGE1M2E1MWZkODk0ZWMx
ZDYwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaApAQCAtMjIsOCAr
MjIsOCBAQAogI2RlZmluZSBVcGRhdGVBdGxhc19oCiAKICNpbmNsdWRlICJBcmVhQWxsb2NhdG9y
LmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5o
IgotI2luY2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXBkYXRlQXRsYXNDbGllbnQgewogcHVibGljOgotICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCwgY29uc3QgV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVw
ZGF0ZUF0bGFzKGludCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpID0gMDsK
IH07CiAKQEAgLTcwLDEyICs3MCw5IEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIFVwZGF0ZUF0
bGFzQ2xpZW50KiBtX2NsaWVudDsKICAgICBPd25QdHI8R2VuZXJhbEFyZWFBbGxvY2F0b3I+IG1f
YXJlYUFsbG9jYXRvcjsKLSAgICBTaGFyZWFibGVCaXRtYXA6OkZsYWdzIG1fZmxhZ3M7CiAgICAg
UmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gbV9zdXJmYWNlOwotICAgIFdlYkNvb3JkaW5hdGVk
U3VyZmFjZTo6SGFuZGxlIG1faGFuZGxlOwogICAgIGRvdWJsZSBtX2luYWN0aXZpdHlJblNlY29u
ZHM7CiAgICAgaW50IG1fSUQ7Ci0gICAgYm9vbCBtX2lzVmFpbGQ7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178932</attachid>
            <date>2012-12-11 17:38:08 -0800</date>
            <delta_ts>2012-12-12 00:10:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121212103524.patch</filename>
            <type>text/plain</type>
            <size>19385</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDM3MGRiMWU0MGIyZDRh
Y2IyOTQ5MTA3NDM3NmRkNTNlMWI5ZTg1Yi4uMzZjY2M0YWRmNGM2ZDY3MzczNGI3M2MyMWRmMmQ2
MGExZDczMzExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLgorCisgICAgICAgIFRoZSBjb25zdHJ1Y3Rv
ciBvZiBXZWJDb29yZGluYXRlZFN1cmZhY2UgY3JlYXRlcyBhIGhhbmRsZSBpbXBsaWNpdGx5IGFu
ZAorICAgICAgICB0aGVuIGRlc3Ryb3lzIHRoZSBoYW5kbGUgYXMgc29vbiBhcyBzZW5kaW5nIHRo
ZSBoYW5kbGUgdG8gVUkgUHJvY2Vzcy4KKworICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjcmVhdGVHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29yZGluYXRlZFN1cmZhY2U6OldlYkNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKToKKyAgICAgICAgICBUaGlz
IG1ldGhvZCBpcyBvbmx5IHVzZWQgYnkgdGhlIGNyZWF0ZSBtZXRob2QsIHNvIHRoaXMgbWV0aG9k
IGlzCisgICAgICAgICAgcHJpdmF0ZSBub3cuIFdlIGRvbid0IGhhdmUgdGhlIHJlcXVpcmVtZW50
IG9mIGNyZWF0aW5nIG1hbnkgaGFuZGxlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlOjpoYW5kbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNlSGFuZGxlVGltZXJGaXJlZCk6CisgICAgICAg
ICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6Cisg
ICAgICAgIChXZWJDb29yZGluYXRlZFN1cmZhY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3IpOgorICAgICAgICAo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6dXBkYXRlSW1hZ2VCYWNraW5nKToK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGVVcGRhdGVB
dGxhcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVw
ZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjp+
VXBkYXRlQXRsYXMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6YmVnaW5QYWludGlu
Z09uQXZhaWxhYmxlQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oOgorICAgICAgICAoVXBkYXRlQXRsYXNDbGllbnQp
OgorICAgICAgICAoVXBkYXRlQXRsYXMpOgorCiAyMDEyLTEyLTExICBHd2FuZyBZb29uIEh3YW5n
ICA8cnl1bWllbEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGlj
czogUmVuYW1lIExheWVyVHJlZUNvb3JkaW5hdG9yIHRvIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKaW5kZXggNjhmNThlODY4MGI0
Y2FmY2RkMzBlZTU2YTI4ZWYzYTgzNjM3OTg0YS4uYmZmMzRkZWM1NjcwMjFkNjg2Y2MwNzZhZDJm
YzYwYWI5MDMyMDJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCkBA
IC04Myw2ICs4Myw5IEBAIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBXZWJDb29y
ZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShjb25zdCBJbnRTaXplJiBzCiAgICAgaWYgKCFzdXJmYWNl
KQogICAgICAgICBzdXJmYWNlID0gY3JlYXRlKHNpemUsIGZsYWdzLCBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZVNoYXJlYWJsZShzaXplLCAoZmxhZ3MgJiBTdXBwb3J0c0FscGhhKSA/IFNoYXJlYWJs
ZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IFNoYXJlYWJsZUJpdG1hcDo6Tm9GbGFncykpOwogCisg
ICAgaWYgKCFzdXJmYWNlLT5jcmVhdGVIYW5kbGUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAg
ICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CiB9CiAKQEAgLTExMCw2ICsxMTMsNyBAQCBQYXNz
UmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVh
dGVXaXRoU3VyZmFjZShjb25zdAogCiBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dD4gV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGVHcmFwaGljc0NvbnRleHQoY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKKyAgICBBU1NFUlQobV9wdXJwb3NlID09IFByb2R1Y2VyKTsKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICBpZiAoaXNCYWNrZWRCeUdyYXBoaWNzU3VyZmFjZSgp
KQogICAgICAgICByZXR1cm4gbV9ncmFwaGljc1N1cmZhY2UtPmJlZ2luUGFpbnQocmVjdCwgMCAv
KiBXcml0ZSB3aXRob3V0IHJldGFpbmluZyBwaXhlbHMqLyk7CkBAIC0xMzEsNiArMTM1LDkgQEAg
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpXZWJDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgQ29vcmRpbmF0ZWRTdXIKICAgICA6IG1fc2l6ZShzaXplKQogICAgICwgbV9mbGFn
cyhmbGFncykKICAgICAsIG1fYml0bWFwKGJpdG1hcCkKKyNpZm5kZWYgTkRFQlVHCisgICAgLCBt
X3B1cnBvc2UoQ29uc3VtZXIpCisjZW5kaWYKIHsKIH0KIApAQCAtMTM5LDYgKzE0Niw5IEBAIFdl
YkNvb3JkaW5hdGVkU3VyZmFjZTo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNpemUsIENvb3JkCiAgICAgOiBtX3NpemUoc2l6ZSkKICAgICAsIG1fZmxhZ3Mo
ZmxhZ3MpCiAgICAgLCBtX2dyYXBoaWNzU3VyZmFjZShzdXJmYWNlKQorI2lmbmRlZiBOREVCVUcK
KyAgICAsIG1fcHVycG9zZShDb25zdW1lcikKKyNlbmRpZgogewogfQogCkBAIC0xNzIsMTcgKzE4
MiwyMSBAQCBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4gV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYQogICAgIHJldHVybiBjcmVhdGUoaGFuZGxl
Lm1fc2l6ZSwgaGFuZGxlLm1fZmxhZ3MsIGJpdG1hcC5yZWxlYXNlKCkpOwogfQogCi1ib29sIFdl
YkNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQorYm9vbCBX
ZWJDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZUhhbmRsZSgpCiB7Ci0gICAgaGFuZGxlLm1fc2l6
ZSA9IG1fc2l6ZTsKLSAgICBoYW5kbGUubV9mbGFncyA9IG1fZmxhZ3M7CisjaWZuZGVmIE5ERUJV
RworICAgIG1fcHVycG9zZSA9IFByb2R1Y2VyOworI2VuZGlmCisgICAgbV9oYW5kbGUgPSBhZG9w
dFB0cihuZXcgSGFuZGxlKCkpOworICAgIG1faGFuZGxlLT5tX3NpemUgPSBtX3NpemU7CisgICAg
bV9oYW5kbGUtPm1fZmxhZ3MgPSBtX2ZsYWdzOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0Up
Ci0gICAgaGFuZGxlLm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4gPSBtX2dyYXBoaWNzU3VyZmFjZSA/
IG1fZ3JhcGhpY3NTdXJmYWNlLT5leHBvcnRUb2tlbigpIDogR3JhcGhpY3NTdXJmYWNlVG9rZW4o
KTsKLSAgICBpZiAoaGFuZGxlLm1fZ3JhcGhpY3NTdXJmYWNlVG9rZW4uaXNWYWxpZCgpKQorICAg
IG1faGFuZGxlLT5tX2dyYXBoaWNzU3VyZmFjZVRva2VuID0gbV9ncmFwaGljc1N1cmZhY2UgPyBt
X2dyYXBoaWNzU3VyZmFjZS0+ZXhwb3J0VG9rZW4oKSA6IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7
CisgICAgaWYgKG1faGFuZGxlLT5tX2dyYXBoaWNzU3VyZmFjZVRva2VuLmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAoIW1fYml0bWFwLT5jcmVhdGVIYW5k
bGUoaGFuZGxlLm1fYml0bWFwSGFuZGxlKSkKKyAgICBpZiAoIW1fYml0bWFwLT5jcmVhdGVIYW5k
bGUobV9oYW5kbGUtPm1fYml0bWFwSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xOTEsNiArMjA1LDcgQEAgYm9vbCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSkKICNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCiB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6Y29weVRvVGV4dHVyZShQYXNzUmVmUHRy
PFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+IHBhc3NUZXh0dXJlLCBjb25zdCBJbnRSZWN0JiB0YXJn
ZXQsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQpCiB7CisgICAgQVNTRVJUKG1fcHVycG9z
ZSA9PSBDb25zdW1lcik7CiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUocGFzc1Rl
eHR1cmUpOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCkBAIC0yMTUsNSArMjMwLDIwIEBA
IHZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpjb3B5VG9UZXh0dXJlKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6Qml0bWFwVGV4dHVyZT4gcGFzCiB9CiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVS
KQogCitjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpoYW5kbGUoKSBjb25zdAoreworICAgIEFTU0VSVChtX3B1cnBvc2UgPT0gUHJvZHVj
ZXIpOworICAgIEFTU0VSVChtX2hhbmRsZSk7CisgICAgbV9yZWxlYXNlSGFuZGxlVGltZXIgPSBh
ZG9wdFB0cihuZXcgVGltZXI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPihjb25zdF9jYXN0PFdlYkNv
b3JkaW5hdGVkU3VyZmFjZSo+KHRoaXMpLCAmV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpyZWxlYXNl
SGFuZGxlVGltZXJGaXJlZCkpOworICAgIG1fcmVsZWFzZUhhbmRsZVRpbWVyLT5zdGFydE9uZVNo
b3QoMCk7CisgICAgcmV0dXJuICptX2hhbmRsZTsKK30KKwordm9pZCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OnJlbGVhc2VIYW5kbGVUaW1lckZpcmVkKFRpbWVyPFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZT4qKQoreworICAgIG1faGFuZGxlLmNsZWFyKCk7CisgICAgbV9yZWxlYXNlSGFuZGxlVGltZXIu
Y2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAjZW5kaWYgLy8gVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAppbmRleCBi
ODI4YWFkODE3NDU0MmVkZDM3YjE4ZTM3ZjI2Y2RjOTRhYjgwOWYwLi43NzI1OGNhYmFkMWQyNmM5
MDY4YzE4YzU0MTZmMzAxOTJmMWRhNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZh
Y2UuaApAQCAtMjQsNiArMjQsNyBAQAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNp
bmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKICNpbmNsdWRlICJHcmFwaGljc1N1cmZhY2UuaCIKQEAgLTY2LDkgKzY3LDYgQEAgcHVibGlj
OgogICAgIC8vIENyZWF0ZSBhIHNoYXJlYWJsZSBzdXJmYWNlIGZyb20gYSBoYW5kbGUuCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGUoY29uc3QgSGFu
ZGxlJik7CiAKLSAgICAvLyBDcmVhdGUgYSBoYW5kbGUuCi0gICAgYm9vbCBjcmVhdGVIYW5kbGUo
SGFuZGxlJik7Ci0KICAgICB2aXJ0dWFsIH5XZWJDb29yZGluYXRlZFN1cmZhY2UoKTsKIAogICAg
IHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9zaXplOyB9CkBAIC03OSw2ICs3Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29w
eVRvVGV4dHVyZShQYXNzUmVmUHRyPFdlYkNvcmU6OkJpdG1hcFRleHR1cmU+LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzb3VyY2VPZmZz
ZXQpIE9WRVJSSURFOwogI2VuZGlmCiAKKyAgICAvLyBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVk
IG9ubHkgb25jZSwgYmVjYXVzZSB0aGlzIG1ldGhvZCBkZXN0cm95cyBtX2hhbmRsZS4KKyAgICBj
b25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdlYkNvb3JkaW5h
dGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBhc3NSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPik7CiAKQEAgLTg3LDYgKzg4LDkgQEAgcHJpdmF0ZToKICAgICAvLyBDcmVh
dGUgYSBXZWJDb29yZGluYXRlZFN1cmZhY2UgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgU2hhcmVh
YmxlQml0bWFwLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvb3JkaW5hdGVkU3VyZmFjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywgUGFzc1JlZlB0cjxTaGFyZWFi
bGVCaXRtYXA+KTsKIAorICAgIC8vIENyZWF0ZSBhIGhhbmRsZS4KKyAgICBib29sIGNyZWF0ZUhh
bmRsZSgpOworCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBGbGFncywgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2U+KTsKICAgICAvLyBDcmVhdGUgYSBzaGFyZWFibGUgYml0bWFwIGJh
Y2tlZCBieSBhIGdyYXBoaWNzIHN1cmZhY2UuCkBAIC05Nyw2ICsxMDEsOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaXNCYWNrZWRCeUdyYXBoaWNzU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuICEhbV9n
cmFwaGljc1N1cmZhY2U7IH0KICNlbmRpZgogCisgICAgdm9pZCByZWxlYXNlSGFuZGxlVGltZXJG
aXJlZChXZWJDb3JlOjpUaW1lcjxXZWJDb29yZGluYXRlZFN1cmZhY2U+Kik7CisKICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fc2l6ZTsKICAgICBGbGFncyBtX2ZsYWdzOwogICAgIFJlZlB0cjxTaGFy
ZWFibGVCaXRtYXA+IG1fYml0bWFwOwpAQCAtMTA0LDYgKzExMCwxOSBAQCBwcml2YXRlOgogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2U+IG1fZ3JhcGhpY3NTdXJmYWNlOwogI2VuZGlmCisKKyAgICAvLyBPbmx5IFdlYkNvb3JkaW5h
dGVkU3VyZmFjZSBpbiBXZWIgUHJvY2VzcyBoYXMgdGhpcyBtZW1iZXIuCisgICAgT3duUHRyPEhh
bmRsZT4gbV9oYW5kbGU7CisgICAgbXV0YWJsZSBPd25QdHI8V2ViQ29yZTo6VGltZXI8V2ViQ29v
cmRpbmF0ZWRTdXJmYWNlPiA+IG1fcmVsZWFzZUhhbmRsZVRpbWVyOworCisjaWZuZGVmIE5ERUJV
RworICAgIGVudW0gUHVycG9zZSB7CisgICAgICAgIFByb2R1Y2VyLAorICAgICAgICBDb25zdW1l
cgorICAgIH07CisgICAgLy8gVGhpcyBtZW1iZXIgZXhpc3RzIGZvciBvbmx5IGEgZGVidWdnaW5n
IHB1cnBvc2UuIEl0IGlzIFByb2R1Y2VyIGluIFdlYiBQcm9jZXNzLCB3aGlsZSBDb25zdW1lciBp
biBVSSBQcm9jZXNzLgorICAgIFB1cnBvc2UgbV9wdXJwb3NlOworI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRleCAxNDY4MTE1OGIwOGE3MWQ4MWI3ZjVhNmVl
MTMyODQxYjRhYjlkYTMzLi5hNmVkNDEwYzc0MWU2Zjc5NDAyNjJmZDE3ODYyOGVkYjZhNmE3ZTJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuY3BwCkBAIC0xMDQsMTAgKzEwNCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc6OnVwZGF0ZSgpCiAgICAgfQogCiAgICAgbV9zdXJmYWNlID0gQ29vcmRpbmF0ZWRTdXJm
YWNlOjpjcmVhdGUobV9pbWFnZS0+c2l6ZSgpLCBtX2ltYWdlLT5jdXJyZW50RnJhbWVIYXNBbHBo
YSgpID8gQ29vcmRpbmF0ZWRTdXJmYWNlOjpTdXBwb3J0c0FscGhhIDogQ29vcmRpbmF0ZWRTdXJm
YWNlOjpOb0ZsYWdzKTsKLSAgICBtX2hhbmRsZSA9IGFkb3B0UHRyKG5ldyBXZWJDb29yZGluYXRl
ZFN1cmZhY2U6OkhhbmRsZSgpKTsKLQotICAgIGlmICghc3RhdGljX2Nhc3Q8V2ViQ29vcmRpbmF0
ZWRTdXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+Y3JlYXRlSGFuZGxlKCptX2hhbmRsZSkpIHsK
LSAgICAgICAgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOworICAgIGlmICghbV9zdXJmYWNlKSB7
CiAgICAgICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MTE4LDcgKzExNSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSgpCiAK
ICAgICBtX25hdGl2ZUltYWdlUHRyID0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoKTsKIAotICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhpZCgpLCAqbV9o
YW5kbGUpOworICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhpZCgpLCBtX3N1
cmZhY2UpOwogICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogfQogCkBAIC0xMjYsNyArMTIzLDYgQEAg
dm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpCiB7
CiAgICAgLy8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRpbCBVSSBQcm9jZXNzIHJlYWRzIG1f
c3VyZmFjZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3RzLCBpdCB3YXMgY3JlYXRlZCBpbiB0
aGUgcHJldmlvdXMgdXBkYXRlLgotICAgIG1faGFuZGxlLmNsZWFyKCk7CiAgICAgbV9zdXJmYWNl
LmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEltYWdlQmFja2luZy5oCmluZGV4IGVkYzZlNDQyYjFiNjdjMWI2Nzc2ZTU1ZThmMDI2MDg1
OTg4NmJkZjIuLmVmNTc3ZmY3MTMyZjdiZDQ4NmE4YzYzY2EyMTE0ZmYwOTg0MzgzYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcu
aApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJJbmZvLmgiCiAj
aW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNs
dWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBA
IC00Myw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBDb29yZGluYXRvciB7CiAgICAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2lu
ZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFj
ZT4pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKICAgICB9OwpA
QCAtODIsNyArODEsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxIb3N0Kj4gbV9ob3N0czsKIAog
ICAgIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsKLSAgICBPd25QdHI8V2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU+IG1faGFuZGxlOwogCiAgICAgV2ViQ29yZTo6VGlt
ZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IG1fY2xlYXJDb250ZW50c1RpbWVyOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAppbmRleCA5ZjQ0ZWJmYzEwY2JhOWY3Yzc2Zjg2MTgxN2FlYzJmN2NkNzhkNTRiLi5jNmZh
YzIyNTcxYWZhM2I3M2FhZDk4NjEzZmE4YmJmYmQ1ZDA0ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKICNpbmNsdWRlICJTdXJmYWNlVXBkYXRlSW5mby5oIgorI2luY2x1ZGUgIldlYkNv
b3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgpA
QCAtNTc4LDEwICs1NzksMTEgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0
ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWcKICAgICBtX3dlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpDcmVhdGVJ
bWFnZUJhY2tpbmcoaW1hZ2VJRCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwg
Y29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSkKK3ZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0Ojp1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCBpbWFnZUlELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gY29vcmRpbmF0
ZWRTdXJmYWNlKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKLSAgICBtX3dlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpVcGRhdGVJ
bWFnZUJhY2tpbmcoaW1hZ2VJRCwgaGFuZGxlKSk7CisgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNl
KiB3ZWJDb29yZGluYXRlZFN1cmZhY2UgPSBzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZh
Y2UqPihjb29yZGluYXRlZFN1cmZhY2UuZ2V0KCkpOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OlVwZGF0ZUltYWdlQmFja2luZyhp
bWFnZUlELCB3ZWJDb29yZGluYXRlZFN1cmZhY2UtPmhhbmRsZSgpKSk7CiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKQEAgLTY2Niw5ICs2NjgsMTAgQEAgdm9pZCBDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRMYXllcklEIGxheWVy
SUQsIHVpbnQzMl90IHQKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5OjpSZW1vdmVUaWxlRm9yTGF5ZXIobGF5ZXJJRCwgdGlsZUlEKSk7
CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGVVcGRhdGVBdGxhcyh1
aW50MzJfdCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYgaGFu
ZGxlKQordm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZVVwZGF0ZUF0bGFzKHVp
bnQzMl90IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBjb29yZGluYXRl
ZFN1cmZhY2UpCiB7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpDb29yZGluYXRlZExh
eWVyVHJlZUhvc3RQcm94eTo6Q3JlYXRlVXBkYXRlQXRsYXMoYXRsYXNJRCwgaGFuZGxlKSk7Cisg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlKiB3ZWJDb29yZGluYXRlZFN1cmZhY2UgPSBzdGF0aWNf
Y2FzdDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihjb29yZGluYXRlZFN1cmZhY2UuZ2V0KCkpOwor
ICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHk6OkNyZWF0ZVVwZGF0ZUF0bGFzKGF0bGFzSUQsIHdlYkNvb3JkaW5hdGVkU3VyZmFjZS0+aGFu
ZGxlKCkpKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlbW92ZVVwZGF0
ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDBjNjhiYjUxZTE3ZjRiMzgwMTlk
NGQ3ODk2YjYwZGU0NTA1MzhlYWEuLjQ0OWE2ZTlkN2MwYzFhNjQ4ODk4OGVkNWJjN2ZkM2ZiZWU4
ZDhmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVXBkYXRlQXRsYXMuaCIKLSNpbmNs
dWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzksNiArMzgsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorY2xhc3MgQ29vcmRpbmF0ZWRTdXJmYWNlOwogY2xhc3MgVXBkYXRlSW5mbzsK
IGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1aW50
MzJfdCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKTsKIAogICAgIC8vIFVwZGF0ZUF0bGFz
Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFz
SUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJik7CisgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0
bGFzKHVpbnQzMl90IGF0bGFzSUQpOwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKQpAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb29yZGluYXRlZElt
YWdlQmFja2luZzo6Q29vcmRpbmF0b3IKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8
Q29vcmRpbmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1h
Z2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2lu
Z0lEKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3Bw
CmluZGV4IDRmMjQwNDc4NmY2NzkwYzlmZTZiMTljNzQ3MGRkZmNhZTQ5OGQxNWMuLjlhOTkxODA0
MjVlMmNkNzMyMjNmNzgwYmUxYjM3Njk5MzkyYTgzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9VcGRhdGVBdGxhcy5jcHAKQEAgLTMzLDI1ICszMywyMCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogVXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKFVwZGF0ZUF0bGFzQ2xpZW50KiBjbGllbnQs
IGludCBkaW1lbnNpb24sIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCi0gICAgLCBtX2ZsYWdzKGZsYWdzKQogICAgICwgbV9pbmFjdGl2aXR5
SW5TZWNvbmRzKDApCi0gICAgLCBtX2lzVmFsaWQodHJ1ZSkKIHsKICAgICBzdGF0aWMgdWludDMy
X3QgbmV4dElEID0gMDsKICAgICBtX0lEID0gKytuZXh0SUQ7CiAgICAgSW50U2l6ZSBzaXplID0g
bmV4dFBvd2VyT2ZUd28oSW50U2l6ZShkaW1lbnNpb24sIGRpbWVuc2lvbikpOwogICAgIG1fc3Vy
ZmFjZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKHNpemUsIGZsYWdzKTsKIAotICAgIGlm
ICghc3RhdGljX2Nhc3Q8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+
Y3JlYXRlSGFuZGxlKG1faGFuZGxlKSkgewotICAgICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX2NsaWVudC0+Y3JlYXRlVXBkYXRlQXRsYXMobV9J
RCwgbV9oYW5kbGUpOworICAgIGlmIChtX3N1cmZhY2UpCisgICAgICAgIG1fY2xpZW50LT5jcmVh
dGVVcGRhdGVBdGxhcyhtX0lELCBtX3N1cmZhY2UpOwogfQogCiBVcGRhdGVBdGxhczo6flVwZGF0
ZUF0bGFzKCkKIHsKLSAgICBpZiAobV9pc1ZhbGlkKQorICAgIGlmIChtX3N1cmZhY2UpCiAgICAg
ICAgIG1fY2xpZW50LT5yZW1vdmVVcGRhdGVBdGxhcyhtX0lEKTsKIH0KIApAQCAtNzgsNyArNzMs
NyBAQCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRp
bmdPbkF2YWlsYWJsZUJ1ZmZlcih1aW50MzJfdAogICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PigpOwogCi0gICAgaWYgKCFt
X2lzVmFsaWQpCisgICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRy
PEdyYXBoaWNzQ29udGV4dD4oKTsKIAogICAgIGF0bGFzSUQgPSBtX0lEOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmgKaW5kZXggMGY0YWFhNjc3NjA3ODVkMjMyNmQxZWE3OWUy
Njk5ZWQ3YjkzYzBmMy4uMTMxYzZjYWIyY2Q5ZTEwMzZjYTY5NWIxNGI3ZjZhYzA4ODA3N2RmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVXBkYXRlQXRsYXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCkBAIC0yMiw4ICsyMiw4IEBA
CiAjZGVmaW5lIFVwZGF0ZUF0bGFzX2gKIAogI2luY2x1ZGUgIkFyZWFBbGxvY2F0b3IuaCIKKyNp
bmNsdWRlICJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5j
bHVkZSAiV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBVcGRhdGVBdGxhc0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRh
dGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4p
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJ
RCkgPSAwOwogfTsKIApAQCAtNzAsMTIgKzcwLDkgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAg
VXBkYXRlQXRsYXNDbGllbnQqIG1fY2xpZW50OwogICAgIE93blB0cjxHZW5lcmFsQXJlYUFsbG9j
YXRvcj4gbV9hcmVhQWxsb2NhdG9yOwotICAgIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgbV9mbGFn
czsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBtX3N1cmZhY2U7Ci0gICAgV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgbV9oYW5kbGU7CiAgICAgZG91YmxlIG1faW5hY3Rpdml0
eUluU2Vjb25kczsKICAgICB1aW50MzJfdCBtX0lEOwotICAgIGJvb2wgbV9pc1ZhbGlkOwogfTsK
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178985</attachid>
            <date>2012-12-12 00:10:28 -0800</date>
            <delta_ts>2013-01-10 18:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121212170743.patch</filename>
            <type>text/plain</type>
            <size>12305</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGFiMWQ1ZjMwYmY1MzA5
NDM2NmQ0MGQ1MzRiNjBkOGEzZDFiZjcxNi4uZDJmOGEyZWU2NTBhOWJjZjg2ODVkMDNhNDhjYWZm
YjdiMGE2YWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLiBOb3cgQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0IHRyZWF0cyB3aXRoIHRoZQorICAgICAgICBIYW5kbGUuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJ
Zk5lZWRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaDoKKyAgICAgICAgKENvb3JkaW5hdG9yKToKKyAg
ICAgICAgKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnVwZGF0ZUltYWdlQmFj
a2luZyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
VXBkYXRlQXRsYXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVB
dGxhczo6flVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmJlZ2lu
UGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAgKFVwZGF0ZUF0bGFz
Q2xpZW50KToKKyAgICAgICAgKFVwZGF0ZUF0bGFzKToKKwogMjAxMi0xMi0xMSAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4
NTc4NzA+IFtXSzIgTmV0d29ya1Byb2Nlc3NdIENhbm5vdCBsb2FkIEhUVFBTIHNpdGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5j
cHAKaW5kZXggMTQ2ODExNThiMDhhNzFkODFiN2Y1YTZlZTEzMjg0MWI0YWI5ZGEzMy4uY2IzNzdi
ZWI3OTIyYmU4ZTkwYjRmYjI0ZjQzNGM5OWU4ZmQzOTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTA0LDEw
ICsxMDQsNyBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUoKQogICAgIH0K
IAogICAgIG1fc3VyZmFjZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKG1faW1hZ2UtPnNp
emUoKSwgbV9pbWFnZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IENvb3JkaW5hdGVkU3VyZmFj
ZTo6U3VwcG9ydHNBbHBoYSA6IENvb3JkaW5hdGVkU3VyZmFjZTo6Tm9GbGFncyk7Ci0gICAgbV9o
YW5kbGUgPSBhZG9wdFB0cihuZXcgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUoKSk7Ci0K
LSAgICBpZiAoIXN0YXRpY19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KG1fc3VyZmFjZS5n
ZXQoKSktPmNyZWF0ZUhhbmRsZSgqbV9oYW5kbGUpKSB7Ci0gICAgICAgIHJlbGVhc2VTdXJmYWNl
SWZOZWVkZWQoKTsKKyAgICBpZiAoIW1fc3VyZmFjZSkgewogICAgICAgICBtX2lzRGlydHkgPSBm
YWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExOCwxNSArMTE1LDE1IEBAIHZvaWQg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSgpCiAKICAgICBtX25hdGl2ZUltYWdlUHRy
ID0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKIAotICAgIG1fY29vcmRp
bmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhpZCgpLCAqbV9oYW5kbGUpOwotICAgIG1faXNEaXJ0
eSA9IGZhbHNlOworICAgIC8vIElmIGZhaWxpbmcgdG8gc2VuZCB0aGUgbWVzc2FnZSwgdHJ5IGFn
YWluIGluIHRoZSBuZXh0IHVwZGF0ZS4KKyAgICBib29sIHN1Y2Nlc3MgPSBtX2Nvb3JkaW5hdG9y
LT51cGRhdGVJbWFnZUJhY2tpbmcoaWQoKSwgbV9zdXJmYWNlKTsKKyAgICBtX2lzRGlydHkgPSAh
c3VjY2VzczsKIH0KIAogdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZh
Y2VJZk5lZWRlZCgpCiB7CiAgICAgLy8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRpbCBVSSBQ
cm9jZXNzIHJlYWRzIG1fc3VyZmFjZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3RzLCBpdCB3
YXMgY3JlYXRlZCBpbiB0aGUgcHJldmlvdXMgdXBkYXRlLgotICAgIG1faGFuZGxlLmNsZWFyKCk7
CiAgICAgbV9zdXJmYWNlLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCmluZGV4IGVkYzZlNDQyYjFiNjdjMWI2
Nzc2ZTU1ZThmMDI2MDg1OTg4NmJkZjIuLjJhZGIyYTAyZWI4MmRmMjdkOTEwZjVhOWNjYjBhNzBj
ZTc0MzRmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVk
TGF5ZXJJbmZvLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAi
SW1hZ2UuaCIKLSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CkBAIC00Myw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBDb29yZGlu
YXRvciB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJD
b29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIHVw
ZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQYXNzUmVmUHRyPENv
b3JkaW5hdGVkU3VyZmFjZT4pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VC
YWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
ID0gMDsKICAgICB9OwpAQCAtODIsNyArODEsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxIb3N0
Kj4gbV9ob3N0czsKIAogICAgIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IG1fc3VyZmFjZTsK
LSAgICBPd25QdHI8V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU+IG1faGFuZGxlOwogCiAg
ICAgV2ViQ29yZTo6VGltZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IG1fY2xlYXJDb250ZW50
c1RpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA5ZjQ0ZWJmYzEwY2JhOWY3Yzc2Zjg2MTgxN2FlYzJm
N2NkNzhkNTRiLi40YzhkNGM3YWY4OGYyYTMyYzQ4MjU2ODllOWI1YjA1ZDM2NTJlZWJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJTdXJmYWNlVXBkYXRlSW5mby5oIgor
I2luY2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIgpAQCAtNTc4LDEwICs1NzksMTUgQEAgdm9pZCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OmNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGlt
YWcKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5OjpDcmVhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCkpOwogfQogCi12b2lkIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQgaW1hZ2VJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmIGhhbmRs
ZSkKK2Jvb2wgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp1cGRhdGVJbWFnZUJhY2tpbmcoQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3Vy
ZmFjZT4gY29vcmRpbmF0ZWRTdXJmYWNlKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1
ZTsKKyAgICBXZWJDb29yZGluYXRlZFN1cmZhY2UqIHdlYkNvb3JkaW5hdGVkU3VyZmFjZSA9IHN0
YXRpY19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KGNvb3JkaW5hdGVkU3VyZmFjZS5nZXQo
KSk7CisgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUgaGFuZGxlOworICAgIGlmICgh
d2ViQ29vcmRpbmF0ZWRTdXJmYWNlLT5jcmVhdGVIYW5kbGUoaGFuZGxlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHk6OlVwZGF0ZUltYWdlQmFja2luZyhpbWFnZUlELCBoYW5kbGUpKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNsZWFy
SW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQpA
QCAtNjY2LDkgKzY3MiwxNCBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cmVtb3Zl
VGlsZShDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCwgdWludDMyX3QgdAogICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OlJlbW92ZVRp
bGVGb3JMYXllcihsYXllcklELCB0aWxlSUQpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OmNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCitib29sIENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6Y3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgUGFzc1JlZlB0cjxD
b29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5hdGVkU3VyZmFjZSkKIHsKKyAgICBXZWJDb29yZGlu
YXRlZFN1cmZhY2UqIHdlYkNvb3JkaW5hdGVkU3VyZmFjZSA9IHN0YXRpY19jYXN0PFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZSo+KGNvb3JkaW5hdGVkU3VyZmFjZS5nZXQoKSk7CisgICAgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlOjpIYW5kbGUgaGFuZGxlOworICAgIGlmICghd2ViQ29vcmRpbmF0ZWRTdXJm
YWNlLT5jcmVhdGVIYW5kbGUoaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1f
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OkNy
ZWF0ZVVwZGF0ZUF0bGFzKGF0bGFzSUQsIGhhbmRsZSkpOworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cmVtb3ZlVXBkYXRlQXRsYXModWludDMy
X3QgYXRsYXNJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMGM2OGJiNTFlMTdmNGIzODAxOWQ0ZDc4OTZiNjBkZTQ1
MDUzOGVhYS4uN2QwOWY1OGI1MDlkYTkzYTYzNTI1NDgxMGE5MTljNTEwMTBlMmM4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKICNpbmNsdWRlICJVcGRhdGVBdGxhcy5oIgotI2luY2x1ZGUgIldlYkNvb3Jk
aW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckZhY3RvcnkuaD4KICNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CkBAIC0zOSw2ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBDb29yZGluYXRlZFN1cmZhY2U7CiBjbGFzcyBVcGRhdGVJbmZvOwogY2xhc3MgV2ViUGFn
ZTsKIApAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MsIHVpbnQzMl90JiBhdGxhc0lE
LCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAgLy8gVXBkYXRlQXRsYXNDbGllbnQKLSAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgY29uc3QgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlVXBk
YXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3Qg
YXRsYXNJRCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0xMjYs
NyArMTI2LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpD
b29yZGluYXRvcgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdl
QmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJbWFnZUJh
Y2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1
cmZhY2U+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250
ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURF
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKaW5kZXggNGYyNDA0
Nzg2ZjY3OTBjOWZlNmIxOWM3NDcwZGRmY2FlNDk4ZDE1Yy4uMjk0ZWRiNmRhZDFmMjQxMDBhY2Nm
NjkwNWVmOWY0MTJhZmRlMDg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0
bGFzLmNwcApAQCAtMzMsMjUgKzMzLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVcGRhdGVB
dGxhczo6VXBkYXRlQXRsYXMoVXBkYXRlQXRsYXNDbGllbnQqIGNsaWVudCwgaW50IGRpbWVuc2lv
biwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncykKICAgICA6IG1fY2xpZW50KGNsaWVu
dCkKLSAgICAsIG1fZmxhZ3MoZmxhZ3MpCiAgICAgLCBtX2luYWN0aXZpdHlJblNlY29uZHMoMCkK
LSAgICAsIG1faXNWYWxpZCh0cnVlKQogewogICAgIHN0YXRpYyB1aW50MzJfdCBuZXh0SUQgPSAw
OwogICAgIG1fSUQgPSArK25leHRJRDsKICAgICBJbnRTaXplIHNpemUgPSBuZXh0UG93ZXJPZlR3
byhJbnRTaXplKGRpbWVuc2lvbiwgZGltZW5zaW9uKSk7CiAgICAgbV9zdXJmYWNlID0gQ29vcmRp
bmF0ZWRTdXJmYWNlOjpjcmVhdGUoc2l6ZSwgZmxhZ3MpOwogCi0gICAgaWYgKCFzdGF0aWNfY2Fz
dDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihtX3N1cmZhY2UuZ2V0KCkpLT5jcmVhdGVIYW5kbGUo
bV9oYW5kbGUpKSB7Ci0gICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIG1fY2xpZW50LT5jcmVhdGVVcGRhdGVBdGxhcyhtX0lELCBtX2hhbmRsZSk7
CisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmluZCBtb3JlIGVsZWdhbnQgd2F5LgorICAgIGlm
ICghbV9jbGllbnQtPmNyZWF0ZVVwZGF0ZUF0bGFzKG1fSUQsIG1fc3VyZmFjZSkpCisgICAgICAg
IG1fc3VyZmFjZS5jbGVhcigpOwogfQogCiBVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKCkKIHsK
LSAgICBpZiAobV9pc1ZhbGlkKQorICAgIGlmIChtX3N1cmZhY2UpCiAgICAgICAgIG1fY2xpZW50
LT5yZW1vdmVVcGRhdGVBdGxhcyhtX0lEKTsKIH0KIApAQCAtNzgsNyArNzQsNyBAQCBQYXNzT3du
UHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJs
ZUJ1ZmZlcih1aW50MzJfdAogICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PigpOwogCi0gICAgaWYgKCFtX2lzVmFsaWQpCisg
ICAgaWYgKCFtX3N1cmZhY2UpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEdyYXBoaWNzQ29u
dGV4dD4oKTsKIAogICAgIGF0bGFzSUQgPSBtX0lEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Vw
ZGF0ZUF0bGFzLmgKaW5kZXggMGY0YWFhNjc3NjA3ODVkMjMyNmQxZWE3OWUyNjk5ZWQ3YjkzYzBm
My4uZWQ1ODYzYjg0ZDBkOGRiYWNjYmFlMzliMTJlMjM0MTQ4MzM4NzYyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCkBAIC0yMiw4ICsyMiw4IEBACiAjZGVmaW5lIFVw
ZGF0ZUF0bGFzX2gKIAogI2luY2x1ZGUgIkFyZWFBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJDb29y
ZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmgiCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBVcGRhdGVBdGxhc0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZTo6SGFuZGxlJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVVcGRhdGVBdGxhcyh1aW50
MzJfdCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCkgPSAwOwogfTsK
IApAQCAtNzAsMTIgKzcwLDkgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAgVXBkYXRlQXRsYXND
bGllbnQqIG1fY2xpZW50OwogICAgIE93blB0cjxHZW5lcmFsQXJlYUFsbG9jYXRvcj4gbV9hcmVh
QWxsb2NhdG9yOwotICAgIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgbV9mbGFnczsKICAgICBSZWZQ
dHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBtX3N1cmZhY2U7Ci0gICAgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgbV9oYW5kbGU7CiAgICAgZG91YmxlIG1faW5hY3Rpdml0eUluU2Vjb25kczsK
ICAgICB1aW50MzJfdCBtX0lEOwotICAgIGJvb2wgbV9pc1ZhbGlkOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="200170"
          type_id="1"
          status="+"
          setter="dongseong.hwang"
    />
    <flag name="commit-queue"
          id="200171"
          type_id="3"
          status="-"
          setter="dongseong.hwang"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179375</attachid>
            <date>2012-12-13 16:47:01 -0800</date>
            <delta_ts>2013-01-11 17:33:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104347-20121214094410.patch</filename>
            <type>text/plain</type>
            <size>12402</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzI2MDU5ZTljZTgzMjBh
ZTRlMjE2YzA4N2JkNmZiYTVmNjU4ZjZiOS4uYjNhOTAxYjVjZmEzMjQwM2RiYzI4YzQxMTliZTNi
NTQ5NmU0Mjg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb2YgV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlOjpIYW5kbGUgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5vYW0gUm9zZW50aGFsLgorCisgICAgICAgIEl0IGlzIGEgcHJlcGFyYXRpb24gcGF0Y2gg
Zm9yIFRocmVhZGVkIENvb3JkaW5hdGVkIEdyYXBoaWNzIG9uIFdLMS4KKworICAgICAgICBDdXJy
ZW50bHksIFVwZGF0ZUF0bGFzIGFuZCBDb29yZGluYXRlZEltYWdlQmFja2luZyB1c2UKKyAgICAg
ICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUsIGJ1dCBXZWJDb29yZGluYXRlZFN1cmZh
Y2U6OkhhbmRsZSBjYW4gYmUKKyAgICAgICAgdXNlZCBvbmx5IElQQy1iYXNlZCBDb29yZGluYXRl
ZCBHcmFwaGljcy4gU28gdGhpcyBwYXRjaCByZW1vdmVzIHRoZQorICAgICAgICBkZXBlbmRlbmN5
IG9mIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIGZyb20gVXBkYXRlQXRsYXMgYW5kCisg
ICAgICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLiBOb3cgQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0IGNvbnZlcnRzIHRoZQorICAgICAgICBoYW5kbGUgdG8gYSBXZWJDb29yZGluYXRlZFN1cmZh
Y2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdl
QmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaDoKKyAg
ICAgICAgKENvb3JkaW5hdG9yKToKKyAgICAgICAgKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnVwZGF0ZUltYWdlQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlVXBkYXRlQXRsYXMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRl
QXRsYXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMpOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6flVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdl
YktpdDo6VXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMu
aDoKKyAgICAgICAgKFVwZGF0ZUF0bGFzQ2xpZW50KToKKyAgICAgICAgKFVwZGF0ZUF0bGFzKToK
KwogMjAxMi0xMi0xMyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4K
IAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogUmVmYWN0b3IgVGlsZWRCYWNraW5nU3Rv
cmUgY29kZSBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKaW5kZXggMTQ2ODEx
NThiMDhhNzFkODFiN2Y1YTZlZTEzMjg0MWI0YWI5ZGEzMy4uNzA0MzE0OTMyNWNhNWE3NmRjOTVi
NDc1MmNkNmVkMmZmOWI2YTZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTA0LDEwICsxMDQsNyBAQCB2b2lk
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUoKQogICAgIH0KIAogICAgIG1fc3VyZmFj
ZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKG1faW1hZ2UtPnNpemUoKSwgbV9pbWFnZS0+
Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IENvb3JkaW5hdGVkU3VyZmFjZTo6U3VwcG9ydHNBbHBo
YSA6IENvb3JkaW5hdGVkU3VyZmFjZTo6Tm9GbGFncyk7Ci0gICAgbV9oYW5kbGUgPSBhZG9wdFB0
cihuZXcgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUoKSk7Ci0KLSAgICBpZiAoIXN0YXRp
Y19jYXN0PFdlYkNvb3JkaW5hdGVkU3VyZmFjZSo+KG1fc3VyZmFjZS5nZXQoKSktPmNyZWF0ZUhh
bmRsZSgqbV9oYW5kbGUpKSB7Ci0gICAgICAgIHJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKTsKKyAg
ICBpZiAoIW1fc3VyZmFjZSkgewogICAgICAgICBtX2lzRGlydHkgPSBmYWxzZTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTExOCwxNSArMTE1LDE1IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmc6OnVwZGF0ZSgpCiAKICAgICBtX25hdGl2ZUltYWdlUHRyID0gbV9pbWFnZS0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKIAotICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUlt
YWdlQmFja2luZyhpZCgpLCAqbV9oYW5kbGUpOwotICAgIG1faXNEaXJ0eSA9IGZhbHNlOworICAg
IC8vIElmIHNlbmRpbmcgdGhlIG1lc3NhZ2UgZmFpbHMsIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCB1
cGRhdGUuCisgICAgYm9vbCBzdWNjZXNzID0gbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNr
aW5nKGlkKCksIG1fc3VyZmFjZSk7CisgICAgbV9pc0RpcnR5ID0gIXN1Y2Nlc3M7CiB9CiAKIHZv
aWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQogewog
ICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1
cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhl
IHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX2hhbmRsZS5jbGVhcigpOwogICAgIG1fc3VyZmFjZS5j
bGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuaAppbmRleCBlZGM2ZTQ0MmIxYjY3YzFiNjc3NmU1NWU4ZjAyNjA4NTk4
ODZiZGYyLi4yYWRiMmEwMmViODJkZjI3ZDkxMGY1YTljY2IwYTcwY2U3NDM0ZjQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVySW5mby5oIgogI2lu
Y2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVk
ZSAiV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAt
NDMsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgY2xhc3MgQ29vcmRpbmF0b3IgewogICAgIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tp
bmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNl
OjpIYW5kbGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgfTsKQEAg
LTgyLDcgKzgxLDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8SG9zdCo+IG1faG9zdHM7CiAKICAg
ICBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBtX3N1cmZhY2U7Ci0gICAgT3duUHRyPFdlYkNv
b3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlPiBtX2hhbmRsZTsKIAogICAgIFdlYkNvcmU6OlRpbWVy
PENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBtX2NsZWFyQ29udGVudHNUaW1lcjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5j
cHAKaW5kZXggMzRhN2M2OTRkODk4NmFiM2RkZmYwNDJiNDlhYmU0MjM3NjIzM2U3Ny4uZjhhNWE0
YjdkZjkyYWQ0ZDI4MjYzMGRiOGFiYWRhYTc5N2E0OWM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZUlELmgiCiAjaW5jbHVkZSAiU3VyZmFjZVVwZGF0ZUluZm8uaCIKKyNpbmNsdWRlICJXZWJDb29y
ZGluYXRlZFN1cmZhY2UuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAg
LTU4MiwxMCArNTgzLDE1IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGVJ
bWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnCiAgICAgbV93ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6Q3JlYXRlSW1h
Z2VCYWNraW5nKGltYWdlSUQpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsIGNv
bnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUpCitib29sIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQgaW1hZ2VJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGNvb3JkaW5hdGVk
U3VyZmFjZSkKIHsKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CisgICAgV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlKiB3ZWJDb29yZGluYXRlZFN1cmZhY2UgPSBzdGF0aWNfY2FzdDxXZWJDb29y
ZGluYXRlZFN1cmZhY2UqPihjb29yZGluYXRlZFN1cmZhY2UuZ2V0KCkpOworICAgIFdlYkNvb3Jk
aW5hdGVkU3VyZmFjZTo6SGFuZGxlIGhhbmRsZTsKKyAgICBpZiAoIXdlYkNvb3JkaW5hdGVkU3Vy
ZmFjZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBt
X3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpV
cGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwgaGFuZGxlKSk7CisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjbGVhckltYWdlQmFja2luZ0NvbnRl
bnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKQEAgLTY3MSw5ICs2NzcsMTQg
QEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlbW92ZVRpbGUoQ29vcmRpbmF0ZWRM
YXllcklEIGxheWVySUQsIHVpbnQzMl90IHQKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6
OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpSZW1vdmVUaWxlRm9yTGF5ZXIobGF5ZXJJ
RCwgdGlsZUlEKSk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGVV
cGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6
OkhhbmRsZSYgaGFuZGxlKQorYm9vbCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZVVw
ZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNl
PiBjb29yZGluYXRlZFN1cmZhY2UpCiB7CisgICAgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlKiB3ZWJD
b29yZGluYXRlZFN1cmZhY2UgPSBzdGF0aWNfY2FzdDxXZWJDb29yZGluYXRlZFN1cmZhY2UqPihj
b29yZGluYXRlZFN1cmZhY2UuZ2V0KCkpOworICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlIGhhbmRsZTsKKyAgICBpZiAoIXdlYkNvb3JkaW5hdGVkU3VyZmFjZS0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpDcmVhdGVVcGRhdGVBdGxhcyhh
dGxhc0lELCBoYW5kbGUpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OnJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5o
CmluZGV4IDMzZmVjMDdlYWM4YzUzZWIyYmRiYjU4NDVjMDU3ZGEzNmU3ZjUxN2YuLjg4YzZlYjRh
YjZkNjI3NjE2OWFhYjk5MTBiNDYzYzQ2ZWNhM2NjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC0yOCw3ICsyOCw2
IEBACiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiVXBkYXRlQXRsYXMuaCIKLSNpbmNsdWRlICJXZWJDb29yZGluYXRlZFN1cmZhY2UuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAt
MzksNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ29vcmRpbmF0ZWRT
dXJmYWNlOwogY2xhc3MgVXBkYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb29y
ZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1aW50MzJfdCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9p
bnQmKTsKIAogICAgIC8vIFVwZGF0ZUF0bGFzQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIGNvbnN0IFdlYkNvb3JkaW5hdGVkU3VyZmFj
ZTo6SGFuZGxlJik7CisgICAgdmlydHVhbCBib29sIGNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90
IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpOwogCiAjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBDb29yZGluYXRlZEltYWdlQmFja2luZzo6Q29vcmRpbmF0b3IKICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGUmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCmluZGV4IDRmMjQwNDc4NmY2NzkwYzlmZTZiMTlj
NzQ3MGRkZmNhZTQ5OGQxNWMuLmQ4MmQzMmZjNmZmYzEwMmNmNmQ0YTY0M2Y1YzMyODc4NGQ2YjU3
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5jcHAKQEAgLTMzLDI1
ICszMywyMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFz
KFVwZGF0ZUF0bGFzQ2xpZW50KiBjbGllbnQsIGludCBkaW1lbnNpb24sIENvb3JkaW5hdGVkU3Vy
ZmFjZTo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2ZsYWdz
KGZsYWdzKQogICAgICwgbV9pbmFjdGl2aXR5SW5TZWNvbmRzKDApCi0gICAgLCBtX2lzVmFsaWQo
dHJ1ZSkKIHsKICAgICBzdGF0aWMgdWludDMyX3QgbmV4dElEID0gMDsKICAgICBtX0lEID0gKytu
ZXh0SUQ7CiAgICAgSW50U2l6ZSBzaXplID0gbmV4dFBvd2VyT2ZUd28oSW50U2l6ZShkaW1lbnNp
b24sIGRpbWVuc2lvbikpOwogICAgIG1fc3VyZmFjZSA9IENvb3JkaW5hdGVkU3VyZmFjZTo6Y3Jl
YXRlKHNpemUsIGZsYWdzKTsKIAotICAgIGlmICghc3RhdGljX2Nhc3Q8V2ViQ29vcmRpbmF0ZWRT
dXJmYWNlKj4obV9zdXJmYWNlLmdldCgpKS0+Y3JlYXRlSGFuZGxlKG1faGFuZGxlKSkgewotICAg
ICAgICBtX2lzVmFsaWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX2Ns
aWVudC0+Y3JlYXRlVXBkYXRlQXRsYXMobV9JRCwgbV9oYW5kbGUpOworICAgIC8vIEZJWE1FOiBD
dXJyZW50bHksIGlmIHNlbmRpbmcgdGhlIG1lc3NhZ2UgZmFpbHMsIFVwZGF0ZUF0bGFzIGdpdmVz
IHVwIGRyYXdpbmcgYW55dGhpbmcgaW1wbGljaXRseS4KKyAgICBpZiAoIW1fY2xpZW50LT5jcmVh
dGVVcGRhdGVBdGxhcyhtX0lELCBtX3N1cmZhY2UpKQorICAgICAgICBtX3N1cmZhY2UuY2xlYXIo
KTsKIH0KIAogVXBkYXRlQXRsYXM6On5VcGRhdGVBdGxhcygpCiB7Ci0gICAgaWYgKG1faXNWYWxp
ZCkKKyAgICBpZiAobV9zdXJmYWNlKQogICAgICAgICBtX2NsaWVudC0+cmVtb3ZlVXBkYXRlQXRs
YXMobV9JRCk7CiB9CiAKQEAgLTc4LDcgKzc0LDcgQEAgUGFzc093blB0cjxHcmFwaGljc0NvbnRl
eHQ+IFVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIodWludDMyX3QK
ICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPEdyYXBo
aWNzQ29udGV4dD4oKTsKIAotICAgIGlmICghbV9pc1ZhbGlkKQorICAgIGlmICghbV9zdXJmYWNl
KQogICAgICAgICByZXR1cm4gUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+KCk7CiAKICAgICBh
dGxhc0lEID0gbV9JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9VcGRhdGVBdGxhcy5oCmluZGV4
IDBmNGFhYTY3NzYwNzg1ZDIzMjZkMWVhNzllMjY5OWVkN2I5M2MwZjMuLmVkNTg2M2I4NGQwZDhk
YmFjY2JhZTM5YjEyZTIzNDE0ODMzODc2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBk
YXRlQXRsYXMuaApAQCAtMjIsOCArMjIsOCBAQAogI2RlZmluZSBVcGRhdGVBdGxhc19oCiAKICNp
bmNsdWRlICJBcmVhQWxsb2NhdG9yLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIldlYkNvb3JkaW5hdGVkU3VyZmFjZS5o
IgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXBkYXRlQXRsYXND
bGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVVcGRhdGVBdGxhcyh1aW50
MzJfdCBhdGxhc0lELCBjb25zdCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZSYpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgUGFz
c1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpID0gMDsKIH07CiAKQEAgLTcwLDEyICs3MCw5
IEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIFVwZGF0ZUF0bGFzQ2xpZW50KiBtX2NsaWVudDsK
ICAgICBPd25QdHI8R2VuZXJhbEFyZWFBbGxvY2F0b3I+IG1fYXJlYUFsbG9jYXRvcjsKLSAgICBT
aGFyZWFibGVCaXRtYXA6OkZsYWdzIG1fZmxhZ3M7CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkU3Vy
ZmFjZT4gbV9zdXJmYWNlOwotICAgIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlIG1faGFu
ZGxlOwogICAgIGRvdWJsZSBtX2luYWN0aXZpdHlJblNlY29uZHM7CiAgICAgdWludDMyX3QgbV9J
RDsKLSAgICBib29sIG1faXNWYWxpZDsKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>