<?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>137765</bug_id>
          
          <creation_ts>2014-10-15 20:26:43 -0700</creation_ts>
          <short_desc>Use std::unique_ptr instead of PassOwnPtr in MediaPlayerFoo classes</short_desc>
          <delta_ts>2015-02-20 02:10:57 -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>WebKit Misc.</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>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1042052</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-15 20:26:43 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042053</commentid>
    <comment_count>1</comment_count>
      <attachid>239922</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-15 20:29:56 -0700</bug_when>
    <thetext>Created attachment 239922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042056</commentid>
    <comment_count>2</comment_count>
      <attachid>239924</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-15 20:44:28 -0700</bug_when>
    <thetext>Created attachment 239924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042065</commentid>
    <comment_count>3</comment_count>
      <attachid>239924</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-15 21:41:10 -0700</bug_when>
    <thetext>Comment on attachment 239924
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:61
&gt; +    explicit MediaPlayerPrivateGStreamer(MediaPlayer*);

I don&apos;t like that we have to make those constructors public. It is weird to have both a factory function and a public constructor. How about we don&apos;t use make_unique to avoid this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042066</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-15 21:45:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 239924 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239924&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:61
&gt; &gt; +    explicit MediaPlayerPrivateGStreamer(MediaPlayer*);
&gt; 
&gt; I don&apos;t like that we have to make those constructors public. It is weird to have both a factory function and a public constructor. How about we don&apos;t use make_unique to avoid this issue?

Darin, what do you think about chris comment ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042280</commentid>
    <comment_count>5</comment_count>
      <attachid>239994</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-16 21:11:59 -0700</bug_when>
    <thetext>Created attachment 239994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042281</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-16 21:14:03 -0700</bug_when>
    <thetext>create() factory function is still needed by media engine register function pointer.

typedef void (*MediaEngineRegistrar)(CreateMediaEnginePlayer, MediaEngineSupportedTypes, MediaEngineSupportsType,
    MediaEngineGetSitesInMediaCache, MediaEngineClearMediaCache, MediaEngineClearMediaCacheForSite, MediaEngineSupportsKeySystem);

Thus my approach is that create() function is set as private, then it is only used by the register function. How about this change ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042282</commentid>
    <comment_count>7</comment_count>
      <attachid>239994</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-16 21:22:53 -0700</bug_when>
    <thetext>Comment on attachment 239994
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:576
&gt; +    static std::unique_ptr&lt;MediaPlayer&gt; create(MediaPlayerClient&amp; client)

I don&apos;t get it. Why does it make sense to make the constructor public but the factory function private? This seems reversed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042285</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-16 21:29:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 239994 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=239994&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:576
&gt; &gt; +    static std::unique_ptr&lt;MediaPlayer&gt; create(MediaPlayerClient&amp; client)
&gt; 
&gt; I don&apos;t get it. Why does it make sense to make the constructor public but
&gt; the factory function private? This seems reversed.


Because Darin wanted to use std::make_unique&lt;&gt; instead of std::unique_ptr.
https://bugs.webkit.org/show_bug.cgi?id=137738#c3


If Darin is fine to use std::unique_ptr, I don&apos;t mind to use std::unique_ptr instead of std::make_unique.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042288</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-16 21:36:50 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Comment on attachment 239994 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=239994&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:576
&gt; &gt; &gt; +    static std::unique_ptr&lt;MediaPlayer&gt; create(MediaPlayerClient&amp; client)
&gt; &gt; 
&gt; &gt; I don&apos;t get it. Why does it make sense to make the constructor public but
&gt; &gt; the factory function private? This seems reversed.
&gt; 
&gt; 
&gt; Because Darin wanted to use std::make_unique&lt;&gt; instead of std::unique_ptr.
&gt; https://bugs.webkit.org/show_bug.cgi?id=137738#c3
&gt; 
&gt; 
&gt; If Darin is fine to use std::unique_ptr, I don&apos;t mind to use std::unique_ptr
&gt; instead of std::make_unique.

The thing is that I am not sure Darin realized using make_unique here would mean making the constructors public because the patch he reviewed had the constructors private (only the post-review patch that landed had the constructors public).

Anyway, I&apos;ll defer to Darin but I am not a fan of making the constructors public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042299</commentid>
    <comment_count>10</comment_count>
      <attachid>239998</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-16 22:20:25 -0700</bug_when>
    <thetext>Created attachment 239998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042300</commentid>
    <comment_count>11</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-16 22:23:31 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; Comment on attachment 239994 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=239994&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:576
&gt; &gt; &gt; &gt; +    static std::unique_ptr&lt;MediaPlayer&gt; create(MediaPlayerClient&amp; client)
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t get it. Why does it make sense to make the constructor public but
&gt; &gt; &gt; the factory function private? This seems reversed.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Because Darin wanted to use std::make_unique&lt;&gt; instead of std::unique_ptr.
&gt; &gt; https://bugs.webkit.org/show_bug.cgi?id=137738#c3
&gt; &gt; 
&gt; &gt; 
&gt; &gt; If Darin is fine to use std::unique_ptr, I don&apos;t mind to use std::unique_ptr
&gt; &gt; instead of std::make_unique.
&gt; 
&gt; The thing is that I am not sure Darin realized using make_unique here would
&gt; mean making the constructors public because the patch he reviewed had the
&gt; constructors private (only the post-review patch that landed had the
&gt; constructors public).
&gt; 
&gt; Anyway, I&apos;ll defer to Darin but I am not a fan of making the constructors
&gt; public.

Chris, your comment makes more sense. I fix this patch using std::unique_ptr, then keep ctor as private. I wonder how does Darin think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042443</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-17 13:27:01 -0700</bug_when>
    <thetext>I talked to Andreas and he told me that he usually got rid of the factory functions altogether, made the constructors public and used make_unique&lt;&gt;() at call sites. I like this, what do you think?

At least it would be consistent with the classes that Andreas already ported a while back and we would get to use make_unique&lt;&gt;() without any inconsistency (i.e. like having both a public factory and a public constructor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042568</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-17 22:47:40 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I talked to Andreas and he told me that he usually got rid of the factory
&gt; functions altogether, made the constructors public and used make_unique&lt;&gt;()
&gt; at call sites. I like this, what do you think?
&gt; 
&gt; At least it would be consistent with the classes that Andreas already ported
&gt; a while back and we would get to use make_unique&lt;&gt;() without any
&gt; inconsistency (i.e. like having both a public factory and a public
&gt; constructor).

I like this suggestion.

It’s actually Anders who strongly suggests using make_unique. We have often made constructors public so that we could use make_unique and avoid invoking new directly. I think it does indeed then make sense to get rid of the create function entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042731</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-19 21:30:17 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; I talked to Andreas and he told me that he usually got rid of the factory
&gt; &gt; functions altogether, made the constructors public and used make_unique&lt;&gt;()
&gt; &gt; at call sites. I like this, what do you think?
&gt; &gt; 
&gt; &gt; At least it would be consistent with the classes that Andreas already ported
&gt; &gt; a while back and we would get to use make_unique&lt;&gt;() without any
&gt; &gt; inconsistency (i.e. like having both a public factory and a public
&gt; &gt; constructor).
&gt; 
&gt; I like this suggestion.
&gt; 
&gt; It’s actually Anders who strongly suggests using make_unique. We have often
&gt; made constructors public so that we could use make_unique and avoid invoking
&gt; new directly. I think it does indeed then make sense to get rid of the
&gt; create function entirely.

Ok, Darin, let me try to remove create() factory function here. It might be a little hard to remove it because MediaPlayer is using factory pattern to create child media player.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042767</commentid>
    <comment_count>15</comment_count>
      <attachid>240105</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-20 03:28:21 -0700</bug_when>
    <thetext>Created attachment 240105
Patch for ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042768</commentid>
    <comment_count>16</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-20 03:32:12 -0700</bug_when>
    <thetext>I remove all create() factory function in MediaPlayerFoo classes in order to use make_unique&lt;&gt;. Thus I delegate MediaPlayerFactory creation from MediaPlayerFoo to MediaPlayerFactory because MediaPlayerFactory has used the create() factory to create instance. 

Darin and Chris, how do you think about this approach ? If you guys have better idea, please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042769</commentid>
    <comment_count>17</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-20 03:36:51 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I remove all create() factory function in MediaPlayerFoo classes in order to
&gt; use make_unique&lt;&gt;. Thus I delegate MediaPlayerFactory creation from
&gt; MediaPlayerFoo to MediaPlayerFactory because MediaPlayerFactory has used the
&gt; create() factory to create instance. 
&gt; 
&gt; Darin and Chris, how do you think about this approach ? If you guys have
&gt; better idea, please let me know.

Typo: I delegate MediaPlayerFactory creation from MediaPlayerFoo to MediaPlayerFactory

-&gt; I delegate MediaPlayerFoo creation from &quot;MediaPlayerFoo&quot; factory to &quot;MediaPlayerFactory&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043173</commentid>
    <comment_count>18</comment_count>
      <attachid>240202</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-21 07:32:40 -0700</bug_when>
    <thetext>Created attachment 240202
WIP for mac port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043333</commentid>
    <comment_count>19</comment_count>
      <attachid>240235</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-21 18:26:34 -0700</bug_when>
    <thetext>Created attachment 240235
Patch for mac ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043375</commentid>
    <comment_count>20</comment_count>
      <attachid>240253</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-22 00:01:45 -0700</bug_when>
    <thetext>Created attachment 240253
Patch for gtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043681</commentid>
    <comment_count>21</comment_count>
      <attachid>240327</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-22 21:49:01 -0700</bug_when>
    <thetext>Created attachment 240327
Patch for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043686</commentid>
    <comment_count>22</comment_count>
      <attachid>240331</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-22 22:57:54 -0700</bug_when>
    <thetext>Created attachment 240331
Patch for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043690</commentid>
    <comment_count>23</comment_count>
      <attachid>240333</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-22 23:08:15 -0700</bug_when>
    <thetext>Created attachment 240333
Patch for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1043713</commentid>
    <comment_count>24</comment_count>
      <attachid>240335</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-23 00:46:52 -0700</bug_when>
    <thetext>Created attachment 240335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044656</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-28 17:28:48 -0700</bug_when>
    <thetext>I think we pushed you in a strange direction here. It seems fine to use factory functions rather than an enum to make these objects. The desire to use std::make_unique should not drive us to abandon that pattern entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044663</commentid>
    <comment_count>26</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 17:52:16 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; I think we pushed you in a strange direction here. It seems fine to use
&gt; factory functions rather than an enum to make these objects. The desire to
&gt; use std::make_unique should not drive us to abandon that pattern entirely.

If so, we should keep create() factory function and public constructor as well. If we don&apos;t want to keep both, I think it is best to use std::unique_ptr in create() factory function. What do you think about it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044682</commentid>
    <comment_count>27</comment_count>
      <attachid>240588</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 19:14:05 -0700</bug_when>
    <thetext>Created attachment 240588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044687</commentid>
    <comment_count>28</comment_count>
      <attachid>240590</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 20:34:18 -0700</bug_when>
    <thetext>Created attachment 240590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044688</commentid>
    <comment_count>29</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 20:35:11 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; I think we pushed you in a strange direction here. It seems fine to use
&gt; &gt; factory functions rather than an enum to make these objects. The desire to
&gt; &gt; use std::make_unique should not drive us to abandon that pattern entirely.
&gt; 
&gt; If so, we should keep create() factory function and public constructor as
&gt; well. If we don&apos;t want to keep both, I think it is best to use
&gt; std::unique_ptr in create() factory function. What do you think about it ?

Darin, I modify this patch using std::unique_ptr for create() factory function. I think this is best for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044699</commentid>
    <comment_count>30</comment_count>
      <attachid>240593</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 21:38:08 -0700</bug_when>
    <thetext>Created attachment 240593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044705</commentid>
    <comment_count>31</comment_count>
      <attachid>240593</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-28 22:45:03 -0700</bug_when>
    <thetext>Comment on attachment 240593
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:389
&gt; -PassOwnPtr&lt;MediaPlayerPrivateInterface&gt; MediaPlayerPrivateAVFoundationObjC::create(MediaPlayer* player)
&gt; +std::unique_ptr&lt;MediaPlayerPrivateInterface&gt; MediaPlayerPrivateAVFoundationObjC::create(MediaPlayer* player)
&gt;  { 
&gt; -    return adoptPtr(new MediaPlayerPrivateAVFoundationObjC(player));
&gt; +    return std::unique_ptr&lt;MediaPlayerPrivateAVFoundationObjC&gt;(new MediaPlayerPrivateAVFoundationObjC(player));
&gt;  }

I thought we&apos;re removing these create functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044709</commentid>
    <comment_count>32</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-28 23:26:28 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Comment on attachment 240593 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240593&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:389
&gt; &gt; -PassOwnPtr&lt;MediaPlayerPrivateInterface&gt; MediaPlayerPrivateAVFoundationObjC::create(MediaPlayer* player)
&gt; &gt; +std::unique_ptr&lt;MediaPlayerPrivateInterface&gt; MediaPlayerPrivateAVFoundationObjC::create(MediaPlayer* player)
&gt; &gt;  { 
&gt; &gt; -    return adoptPtr(new MediaPlayerPrivateAVFoundationObjC(player));
&gt; &gt; +    return std::unique_ptr&lt;MediaPlayerPrivateAVFoundationObjC&gt;(new MediaPlayerPrivateAVFoundationObjC(player));
&gt; &gt;  }
&gt; 
&gt; I thought we&apos;re removing these create functions?

In this case, we need to use create() because MediaPlayer is using factory pattern to make proper media player.

I already tried to remove create() in below patch. However, it looks this is too poor architecture.

https://bugs.webkit.org/attachment.cgi?id=240335&amp;action=review

If you have good idea to replace the factory pattern without create() function, please let me know. I will try it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045200</commentid>
    <comment_count>33</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-30 18:49:00 -0700</bug_when>
    <thetext>Darin, what do you think about this ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045216</commentid>
    <comment_count>34</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-30 19:56:32 -0700</bug_when>
    <thetext>We have three separate goals:

1) Eliminate &quot;new&quot; entirely from WebKit code, long term; we want objects to go straight into the appropriate type of smart pointer. We use std::make_unique&lt;X&gt;(y) instead of using std::unique_ptr&lt;X&gt;(new X(y)) because of this.

2) Use the factory pattern for CreateMediaEnginePlayer and the callRegisterMediaEngine function.

3) Minimize the pattern where classes supply functions named &quot;create&quot; that wrap newly allocated object in smart pointers. That&apos;s because std::make_unique does the job even better, moving the new entirely out of WebKit code. We still need the &quot;create&quot; functions for RefCounted, though.

Given these goals I would suggest one of these patterns:

a) Make the constructors of these classes public, make the factory functions be local functions with internal linkage (&quot;static&quot;) just above the various registerMediaEngine functions, have these factory functions call std::make_unique, and remove the unneeded static member functions named create.

b) Make the constructors of these classes public, make the factory functions be lambdas inside the registerMediaEngine functions, and have these lambdas call std::make_unique, and remove the unneeded static member functions named create.

While I understand that we need functions to pass to the registrar, I do not think they need to be static member functions named create, nor do I think we need to keep the constructors of these classes private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045223</commentid>
    <comment_count>35</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-30 22:07:16 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; We have three separate goals:
&gt; 
&gt; 1) Eliminate &quot;new&quot; entirely from WebKit code, long term; we want objects to
&gt; go straight into the appropriate type of smart pointer. We use
&gt; std::make_unique&lt;X&gt;(y) instead of using std::unique_ptr&lt;X&gt;(new X(y)) because
&gt; of this.
&gt; 
&gt; 2) Use the factory pattern for CreateMediaEnginePlayer and the
&gt; callRegisterMediaEngine function.
&gt; 
&gt; 3) Minimize the pattern where classes supply functions named &quot;create&quot; that
&gt; wrap newly allocated object in smart pointers. That&apos;s because
&gt; std::make_unique does the job even better, moving the new entirely out of
&gt; WebKit code. We still need the &quot;create&quot; functions for RefCounted, though.
&gt; 
&gt; Given these goals I would suggest one of these patterns:
&gt; 
&gt; a) Make the constructors of these classes public, make the factory functions
&gt; be local functions with internal linkage (&quot;static&quot;) just above the various
&gt; registerMediaEngine functions, have these factory functions call
&gt; std::make_unique, and remove the unneeded static member functions named
&gt; create.
&gt; 
&gt; b) Make the constructors of these classes public, make the factory functions
&gt; be lambdas inside the registerMediaEngine functions, and have these lambdas
&gt; call std::make_unique, and remove the unneeded static member functions named
&gt; create.
 
&gt; While I understand that we need functions to pass to the registrar, I do not
&gt; think they need to be static member functions named create, nor do I think
&gt; we need to keep the constructors of these classes private.

Thank you for your detailed suggestion. Now I understand you want to remove create() factory function, and then we use std::make_unique&lt;&gt; for the registerMediaEngine() using internal linkage or lambdas. Let me try to apply your suggestions. It looks I tried to solve this issue with too simple approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069717</commentid>
    <comment_count>36</comment_count>
      <attachid>246713</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-16 18:30:29 -0800</bug_when>
    <thetext>Created attachment 246713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069747</commentid>
    <comment_count>37</comment_count>
      <attachid>246720</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-16 20:30:18 -0800</bug_when>
    <thetext>Created attachment 246720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069766</commentid>
    <comment_count>38</comment_count>
      <attachid>246728</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-16 22:20:24 -0800</bug_when>
    <thetext>Created attachment 246728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069777</commentid>
    <comment_count>39</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-16 23:16:18 -0800</bug_when>
    <thetext>(In reply to comment #34)

&gt; Given these goals I would suggest one of these patterns:
&gt; 
&gt; a) Make the constructors of these classes public, make the factory functions
&gt; be local functions with internal linkage (&quot;static&quot;) just above the various
&gt; registerMediaEngine functions, have these factory functions call
&gt; std::make_unique, and remove the unneeded static member functions named
&gt; create.
&gt; 
&gt; b) Make the constructors of these classes public, make the factory functions
&gt; be lambdas inside the registerMediaEngine functions, and have these lambdas
&gt; call std::make_unique, and remove the unneeded static member functions named
&gt; create.
&gt; 
&gt; While I understand that we need functions to pass to the registrar, I do not
&gt; think they need to be static member functions named create, nor do I think
&gt; we need to keep the constructors of these classes private.

I want to use b) method though, I fail to support b) because lambdas needs to use a MediaPlayer argument in registerMediaEngine(). To use lambdas inside registerMediaEngine(), I think we need to support to access a MediaPlayer instance. So I upload a patch which is based on a) suggestion at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069779</commentid>
    <comment_count>40</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-16 23:28:10 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #34)
&gt; 
&gt; &gt; Given these goals I would suggest one of these patterns:
&gt; &gt; 
&gt; &gt; a) Make the constructors of these classes public, make the factory functions
&gt; &gt; be local functions with internal linkage (&quot;static&quot;) just above the various
&gt; &gt; registerMediaEngine functions, have these factory functions call
&gt; &gt; std::make_unique, and remove the unneeded static member functions named
&gt; &gt; create.
&gt; &gt; 
&gt; &gt; b) Make the constructors of these classes public, make the factory functions
&gt; &gt; be lambdas inside the registerMediaEngine functions, and have these lambdas
&gt; &gt; call std::make_unique, and remove the unneeded static member functions named
&gt; &gt; create.
&gt; &gt; 
&gt; &gt; While I understand that we need functions to pass to the registrar, I do not
&gt; &gt; think they need to be static member functions named create, nor do I think
&gt; &gt; we need to keep the constructors of these classes private.
&gt; 
&gt; I want to use b) method though, I fail to support b) because lambdas needs
&gt; to use a MediaPlayer argument in registerMediaEngine(). To use lambdas
&gt; inside registerMediaEngine(), I think we need to support to access a
&gt; MediaPlayer instance. So I upload a patch which is based on a) suggestion at
&gt; the moment.

Could you clarify what doesn&apos;t work (it is not clear to me at least).

Why doesn&apos;t something like this work?
registrar([](MediaPlayer* player) { return std::make_unique&lt;MediaPlayerPrivateAVFoundationCF&gt;(player); }, getSupportedTypes, supportsType, 0, 0, 0, supportsKeySystem);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069802</commentid>
    <comment_count>41</comment_count>
      <attachid>246736</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-17 01:13:12 -0800</bug_when>
    <thetext>Created attachment 246736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069807</commentid>
    <comment_count>42</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-17 01:50:39 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; 
&gt; Could you clarify what doesn&apos;t work (it is not clear to me at least).
&gt; 
&gt; Why doesn&apos;t something like this work?
&gt; registrar([](MediaPlayer* player) { return
&gt; std::make_unique&lt;MediaPlayerPrivateAVFoundationCF&gt;(player); },
&gt; getSupportedTypes, supportsType, 0, 0, 0, supportsKeySystem);

I needed to modify &quot;CreateMeidaEnginePlayer&quot; in order to use lambdas as well. Thanks to your comment, I could update my patch again.

typedef std::function&lt;std::unique_ptr&lt;MediaPlayerPrivateInterface&gt; (MediaPlayer*)&gt; CreateMediaEnginePlayer;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070094</commentid>
    <comment_count>43</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-18 03:55:58 -0800</bug_when>
    <thetext>Darin and Chris, could you take a look this patch again ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070604</commentid>
    <comment_count>44</comment_count>
      <attachid>246736</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-19 21:41:15 -0800</bug_when>
    <thetext>Comment on attachment 246736
Patch

Rejecting attachment 246736 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 246736, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
tching file Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp
patching file Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h
patching file Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp
patching file Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Ryosuke Niwa&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5137653796175872</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070627</commentid>
    <comment_count>45</comment_count>
      <attachid>246944</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-20 01:20:24 -0800</bug_when>
    <thetext>Created attachment 246944
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070646</commentid>
    <comment_count>46</comment_count>
      <attachid>246944</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-20 02:10:48 -0800</bug_when>
    <thetext>Comment on attachment 246944
Patch for landing

Clearing flags on attachment: 246944

Committed r180406: &lt;http://trac.webkit.org/changeset/180406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070647</commentid>
    <comment_count>47</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-20 02:10:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239922</attachid>
            <date>2014-10-15 20:29:56 -0700</date>
            <delta_ts>2014-10-15 20:44:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141016122959.patch</filename>
            <type>text/plain</type>
            <size>8150</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4ZmIyZjk5NjJlZTUx
MjA3OTFmMDFlZGJmMjQwMzI3MDc5YWJkMi4uMmY3ODkyZjM3MTBjOTJkODFiZWM1NzM2MWYyODZh
NzNjNjIxODQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTEwLTE1ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTnVsbE1lZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOiBTZXQgY3RvciB0byBwdWJsaWMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6IFNldCBjdG9yIGFuZCBjcmVh
dGUoKSB0byBwdWJsaWMuCisKIDIwMTQtMTAtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbTWFjXSBGaXggaW5lZmZpY2llbmNpZXMgaW4gUmVzb3VyY2VSZXNw
b25zZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwpIC0gUGFydCAyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAxZmE5MGViMzI5OThhZDJkY2ZiYTA2N2Q5
OTNkZWJhMjZlMjYxYTcyLi5iNTg1MjVhMDQxMzNiOTIxYzk2YTNkNmU1ZDUxYjgyN2RlN2QwMmJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ2NDYsNyAr
NDY0Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihpbnQgZmxh
Z3MpCiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVycygqdGhpcywgZmFsc2UpOwogI2VuZGlmCiAKLSAgICBtX3BsYXllci5jbGVh
cigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHN0b3BQZXJpb2RpY1RpbWVycygp
OwogICAgIG1fbG9hZFRpbWVyLnN0b3AoKTsKQEAgLTQ2OTMsNyArNDY5Myw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c3RvcCgpCiAgICAgLy8gT25jZSBhbiBhY3RpdmUgRE9NIG9iamVjdCBo
YXMgYmVlbiBzdG9wcGVkIGl0IGNhbiBub3QgYmUgcmVzdGFydGVkLCBzbyB3ZSBjYW4gZGVhbGxv
Y2F0ZQogICAgIC8vIHRoZSBtZWRpYSBwbGF5ZXIgbm93LiBOb3RlIHRoYXQgdXNlckNhbmNlbGxl
ZExvYWQgd2lsbCBhbHJlYWR5IGhhdmUgY2xlYXJlZCB0aGUgcGxheWVyCiAgICAgLy8gaWYgdGhl
IG1lZGlhIHdhcyBub3QgZnVsbHkgbG9hZGVkLiBUaGlzIGhhbmRsZXMgYWxsIG90aGVyIGNhc2Vz
LgotICAgIG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAg
dXBkYXRlU2xlZXBEaXNhYmxpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggMTNlYTdhZDZiOGE1MDQzZmEwMTc4OGQzNTBkN2VmOGE4NDhiY2MzYS4uNDBh
MGUxOGM3YmZiNGRhZTJmYzRmNmVhMDUxY2YzMjUwNGExNDFmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTc3MCw3ICs3NzAsNyBAQCBwcml2YXRlOgogICAgIE1l
ZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OwogI2VuZGlm
CiAKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CiAKICAgICBNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3By
ZWxvYWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAppbmRleCA4YWQ3OWRiNzdjOWIwNTM2YTcwZjY0ZWQ2MWEzZTZmMjFlNTdkM2UyLi40
NzE2OWFmZDExZjYyMzYyMGM2OTlkYmJlM2FmYjI2MmY5NjhjY2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNDQsMTIgKzE0
NCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBw
bGF5ZXIpIAoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZh
dGUocGxheWVyKSk7IAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKK3sK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPihwbGF5
ZXIpOwogfQogCi0KIC8vIGVuZ2luZSBzdXBwb3J0CiAKIHN0cnVjdCBNZWRpYVBsYXllckZhY3Rv
cnkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggN2M2YWRkNmIzNzYyOGNjMTc0NjUyOWZjNGU3Yzk1MWVhMTg2MTM5OC4uMzI3ODRmODUx
ZmI0MTlhYTZmMTlhYzNiMGY5YjNkZTZlZjA4MDc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yNzksMTAgKzI3OSwxMiBAQCBjbGFz
cyBNZWRpYVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXIpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBQYXNzT3duUHRy
PE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQm
IGNsaWVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIo
Y2xpZW50KSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihj
bGllbnQpOwogICAgIH0KKworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xp
ZW50Jik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2lu
ZSBzdXBwb3J0LgpAQCAtNTc3LDcgKzU3OSw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5
ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRCZXN0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0
aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lkIHJlbG9hZFRp
bWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7CkBAIC01ODYsNyArNTg3LDcgQEAgcHJpdmF0
ZToKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1lcjxNZWRpYVBs
YXllcj4gbV9yZWxvYWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVk
aWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsK
QEAgLTYwOCw3ICs2MDksNyBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBlZGVmIFBhc3NP
d25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxh
eWVyKShNZWRpYVBsYXllciopOwordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciop
OwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFy
YW1ldGVycyk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hl
KShWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAwMzg3YTdkMTUyOGM0ZDU4ZWI0MzU2
Njc1YjFkODU3ZWY1NmU2MGFhLi40MzFlMDFiODc2ZWM5MzViNzJkYTM3N2U3OTYyYjFhMTAzMjZi
OTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVy
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4
YWM4ZmNjZmJhYjNhMTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi5kMDg3MzZiNjllNzQyNDk4
ODE4NTk1NTYyMGQxZGVmOTI4MmNhZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM4LDkgKzEzOCw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2Jq
ZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIs
IHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxh
eWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDUw
ODQ5MjE5ODJjNjE4NDMyYTFhYTJmMWZmYTljMGY4MWMzMWJhNzYuLmQ0Y2VkZWMwYWVjNjk5N2Mz
YTFmYzljZTgzZTI2YmNiYTgwN2MxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTU3LDcgKzU3LDEwIEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlR1N0cmVhbWVyOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRp
YVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRp
YVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKKwogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogICAg
IGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSopOwogICAgIHZvaWQgaGFuZGxlUGx1
Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5zUmV0dXJuKTsKQEAgLTEyNiwxMCAr
MTI5LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7
CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVy
Kik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IGNyZWF0ZShNZWRpYVBsYXllciopOwotCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlw
ZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239924</attachid>
            <date>2014-10-15 20:44:28 -0700</date>
            <delta_ts>2014-10-16 21:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141016124431.patch</filename>
            <type>text/plain</type>
            <size>10583</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4ZmIyZjk5NjJlZTUx
MjA3OTFmMDFlZGJmMjQwMzI3MDc5YWJkMi4uMjEwNGM4OGU0MWU3MTRlNzhhYjg0NjYwMWZjZDU3
ZTAxOGMyMzYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTEwLTE1ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTnVsbE1lZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOiBTZXQgY3RvciB0byBwdWJsaWMuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6IFNldCBjdG9yIGFuZCBjcmVh
dGUoKSB0byBwdWJsaWMuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmg6IGRpdHRvLgorCiAyMDE0LTEwLTE1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gRml4IGlu
ZWZmaWNpZW5jaWVzIGluIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExl
dmVsKSAtIFBhcnQgMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5k
ZXggMWZhOTBlYjMyOTk4YWQyZGNmYmEwNjdkOTkzZGViYTI2ZTI2MWE3Mi4uYjU4NTI1YTA0MTMz
YjkyMWM5NmEzZDZlNWQ1MWI4MjdkZTdkMDJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCkBAIC00NjQ2LDcgKzQ2NDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+
c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsK
ICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7
CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBA
IC00NjkzLDcgKzQ2OTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8v
IE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJl
IHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVy
IG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFy
ZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4g
VGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAg
IG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDEzZWE3YWQ2YjhhNTA0M2Zh
MDE3ODhkMzUwZDdlZjhhODQ4YmNjM2EuLjQwYTBlMThjN2JmYjRkYWUyZmM0ZjZlYTA1MWNmMzI1
MDRhMTQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC03NzAs
NyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlk
ZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3duUHRyPE1lZGlhUGxheWVyPiBt
X3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOwogCiAg
ICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOGFkNzlkYjc3YzliMDUz
NmE3MGY2NGVkNjFhM2U2ZjIxZTU3ZDNlMi4uNDcxNjlhZmQxMWY2MjM2MjBjNjk5ZGJiZTNhZmIy
NjJmOTY4Y2NjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMTQ0LDEyICsxNDQsMTEgQEAgcHVibGljOgogI2VuZGlmCiB9Owog
Ci1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZU51
bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAKK3N0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGVOdWxsTWVkaWFQbGF5
ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKIH0KIAotCiAvLyBlbmdpbmUgc3VwcG9y
dAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdjNmFkZDZiMzc2MjhjYzE3NDY1Mjlm
YzRlN2M5NTFlYTE4NjEzOTguLjMyNzg0Zjg1MWZiNDE5YWE2ZjE5YWMzYjBmOWIzZGU2ZWYwODA3
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMjc5LDEwICsyNzksMTIgQEAgY2xhc3MgTWVkaWFQbGF5ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
cj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllcj4oY2xpZW50KTsKICAgICB9CisKKyAgICBleHBsaWNp
dCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU3Nyw3ICs1NzksNiBA
QCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9y
eSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJG
YWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiYp
OwpAQCAtNTg2LDcgKzU4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVudCYg
bV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0gICAgT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAgICBNZWRp
YVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3VybDsKICAg
ICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjA5LDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKK3R5cGVkZWYg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpDcmVhdGVNZWRp
YUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
U3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgqTWVk
aWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggMDM4N2E3ZDE1MjhjNGQ1OGViNDM1NjY3NWIxZDg1N2VmNTZlNjBhYS4uNDMxZTAxYjg3
NmVjOTM1YjcyZGEzNzdlNzk2MmIxYTEwMzI2YjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMxLDcgKzMx
LDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggOGFjOGZjY2ZiYWIzYTE3NTZkMTk3MmVkNzRjN2Qw
NjhkZTNkOTY4Zi4uZDA4NzM2YjY5ZTc0MjQ5ODgxODU5NTU2MjBkMWRlZjkyODJjYWVjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEz
OCw5ICsxMzgsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9T
dHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
U2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xlLCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9
CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQorc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KHBsYXllcik7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1l
ZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA1MDg0OTIxOTgyYzYxODQzMmExYWEyZjFmZmE5YzBm
ODFjMzFiYTc2Li5kNGNlZGVjMGFlYzY5OTdjM2ExZmM5Y2U4M2UyNmJjYmE4MDdjMWZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC01Nyw3ICs1
NywxMCBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UgewogcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5l
KE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1l
c3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxs
UGx1Z2luc1JldHVybik7CkBAIC0xMjYsMTAgKzEyOSw2IEBAIHB1YmxpYzoKICAgICBib29sIGNo
YW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKLQogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0
YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJN
ZWRpYVNvdXJjZS5jcHAKaW5kZXggYzY2MTc4Yjk2NzdjZjg0OTY1ZDk4YmY4OGJlM2EzOTg2Zjdl
MzhkYS4uMDM2ZjM0YjAwNTRjNDY2MjhkYWFkYWU3NWI1MWM5YmVlYzU3ZTgxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAg
dm9pZCBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3QKICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0
ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5
ZXIqIHBsYXllcikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tNZWRp
YVBsYXllck1lZGlhU291cmNlPihwbGF5ZXIpOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+
IG1pbWVUeXBlQ2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5o
CmluZGV4IGI2Njk0ZDhlZDg3Mzc5ODllYjBiZjZlZWY5NjM5MDYzNjVmZmI5N2YuLjQ1OTc4NzIw
YmY5YTU0OGI2NTUyZTNiZjhhYmEzZTFmNGRiYWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRp
YVBsYXllck1lZGlhU291cmNlLmgKQEAgLTM4LDkgKzM4LDExIEBAIGNsYXNzIE1vY2tNZWRpYVNv
dXJjZVByaXZhdGU7CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKwogICAgIC8vIE1lZGlhUGxh
eWVyIEVuZ2luZSBTdXBwb3J0CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShN
ZWRpYUVuZ2luZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVy
Kik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0
eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApAQCAtNTYsOCArNTgsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZWVrQ29tcGxldGVkKCk7CiAKIHByaXZhdGU6Ci0gICAgTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIE1lZGlhUGxh
eWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmws
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239994</attachid>
            <date>2014-10-16 21:11:59 -0700</date>
            <delta_ts>2014-10-16 22:20:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141017131203.patch</filename>
            <type>text/plain</type>
            <size>13499</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0ODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ5M2E4ZDhlZjUyNzYx
NDFiNWJhN2JlNjY2YmFjMGZlYWJhNGE0Yy4uYzI4ZmNmZTYyNWE0YTk0NDQ0MWFmMjFhMzQ1MGJj
MTgyODY3ZmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTEwLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGNvbnN0cnVjdG9ycyBhcmUgbW92ZWQgdG8gcHVibGljLCBjcmVhdGUoKSBmYWN0b3J5IGZ1
bmN0aW9uIGlzIG5lZWRlZCBubyBsb25nZXIuCisgICAgICAgIEhvd2V2ZXIgbWVkaWEgZW5naW5l
IHJlZ2lzdGVyIGZ1bmN0aW9uIHJlcXVpcmVzIGEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUg
YSBtZWRpYSBwbGF5ZXIuCisgICAgICAgIFRodXMgdGhpcyBwYXRjaCBtb3ZlcyB0aGUgZmFjdG9y
eSBmdW5jdGlvbiB0byBwcml2YXRlIGJlY2F1c2UgaXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yCisg
ICAgICAgIHJlZ2lzdGVyaW5nIG1lZGlhIHBsYXllciB0aGUgaW5zaWRlIG9mIHRoZSBjbGFzcy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDogU2V0IGN0b3IgdG8gcHVibGljLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOiBTZXQgY3Rv
ciBhbmQgY3JlYXRlKCkgdG8gcHVibGljLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOiBkaXR0by4KKwog
MjAxNC0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIEJhc2ljU2hhcGUgc3ViY2xhc3NlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMWZhOTBlYjMyOTk4YWQyZGNm
YmEwNjdkOTkzZGViYTI2ZTI2MWE3Mi4uNTYzMzY3YjI3MTQ3ZTc4M2VkYTllODQ2MWVmMjFmNTU3
M2JlMTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00
NjQ2LDcgKzQ2NDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIo
aW50IGZsYWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5
ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNU
aW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBv
YmplY3QgaGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2Fu
IGRlYWxsb2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJD
YW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8v
IGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhl
ciBjYXNlcy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsK
IAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01MzM0LDcgKzUzMzQsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwogI2VuZGlmCi0g
ICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBtX3BsYXllciA9
IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0PE1lZGlhUGxheWVyQ2xp
ZW50Jj4oKnRoaXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYgKG1fYXVkaW9T
b3VyY2VOb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDEz
ZWE3YWQ2YjhhNTA0M2ZhMDE3ODhkMzUwZDdlZjhhODQ4YmNjM2EuLjQwYTBlMThjN2JmYjRkYWUy
ZmM0ZjZlYTA1MWNmMzI1MDRhMTQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC03NzAsNyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3duUHRy
PE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXI+
IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXgg
OGFkNzlkYjc3YzliMDUzNmE3MGY2NGVkNjFhM2U2ZjIxZTU3ZDNlMi4uNDcxNjlhZmQxMWY2MjM2
MjBjNjk5ZGJiZTNhZmIyNjJmOTY4Y2NjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTQ0LDEyICsxNDQsMTEgQEAgcHVibGlj
OgogI2VuZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0g
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAK
K3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVh
dGVOdWxsTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKIH0KIAotCiAv
LyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdjNmFkZDZi
Mzc2MjhjYzE3NDY1MjlmYzRlN2M5NTFlYTE4NjEzOTguLmNlNTk5MGRmZDlkMTA3MjQxODAyZjkx
YmMwYWE4OGM1OTUwMWIxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc4LDExICsyNzgsNyBAQCBwdWJsaWM6CiBjbGFzcyBNZWRp
YVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXIpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7Ci0gICAgfQorICAgIGV4
cGxpY2l0IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+TWVk
aWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3LDcgKzU3
MywxMSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxNZWRpYVBsYXllcj4oY2xpZW50KTsKKyAgICB9CisKICAgICBNZWRpYVBsYXllckZhY3Rvcnkq
IG5leHRCZXN0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9p
ZCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lk
IHJlbG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7CkBAIC01ODYsNyArNTg2LDcg
QEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1l
cjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9j
dXJyZW50TWVkaWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRN
SU1FVHlwZTsKQEAgLTYwOCw3ICs2MDgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBl
ZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlh
RW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRp
YVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFz
aFNldDxTdHJpbmc+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
KCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycyk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5N
ZWRpYUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAwMzg3YTdkMTUyOGM0
ZDU4ZWI0MzU2Njc1YjFkODU3ZWY1NmU2MGFhLi40MzFlMDFiODc2ZWM5MzViNzJkYTM3N2U3OTYy
YjFhMTAzMjZiOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMjc1ZDllMTI1ZDI3MGEyYWI1MDQ4ZmZlZmRm
ZDVjYTkxNTEwNjAyNi4uZmM5MjA4YjY0NGMzODAwMDg4ZGE3OWQ2OWM1ZTA1YjBiY2M2NDFlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0zMzUsOSArMzM1LDkgQEAgc3RhdGljIGRpc3BhdGNoX3F1
ZXVlX3QgZ2xvYmFsTG9hZGVyRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCitzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Rjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAogeyAKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKHBsYXllcikpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGPihwbGF5
ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgK
aW5kZXggMmFjMDE0NGRhYTkzOGNkMjMwMmM2YjJkNjdkZGEzMDM1MDA4NDdkMy4uYTI4YTQyOGQ2
YThiNTNlYWU5NzcwMGVkNzVhYWY1OTMyZmExMWUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQxLDYg
KzQxLDcgQEAgY2xhc3MgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92
ZXJyaWRlOwpAQCAtNTgsMTAgKzU5LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgotICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBF
bmdpbmUgc3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwog
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNL
ZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCA4YWM4ZmNjZmJhYjNhMTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi5kMDg3MzZiNjllNzQy
NDk4ODE4NTk1NTYyMGQxZGVmOTI4MmNhZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM4LDkgKzEzOCw5IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCog
b2JqZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAl
cyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0
cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IDUwODQ5MjE5ODJjNjE4NDMyYTFhYTJmMWZmYTljMGY4MWMzMWJhNzYuLjAyMzJlNTk4ZDI4MmEw
ZmExNjEzMjc5YmZmYWIzMGJmNTBkNTA5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTU3LDcgKzU3LDkgQEAgY2xhc3MgVmlkZW9UcmFja1By
aXZhdGVHU3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAgICBleHBs
aWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1l
ZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNz
YWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChH
c3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMjYsMTAgKzEyOCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiBwcml2YXRlOgotICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwotCi0gICAgc3RhdGljIFBh
c3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIq
KTsKLQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IGM2NjE3
OGI5Njc3Y2Y4NDk2NWQ5OGJmODhiZTNhMzk4NmY3ZTM4ZGEuLjAzNmYzNGIwMDU0YzQ2NjI4ZGFh
ZGFlNzViNTFjOWJlZWM1N2U4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0CiAg
ICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwg
MCwgMCwgMCk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBN
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShwbGF5ZXIpKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZT4ocGxheWVy
KTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAppbmRleCBiNjY5NGQ4ZWQ4NzM3OTg5ZWIw
YmY2ZWVmOTYzOTA2MzY1ZmZiOTdmLi4yNjdiNTU0NGQ3YTBhZDI4NjM1OTM1YWU2YjI0MTA1NzQ0
YTJhMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCkBAIC0z
OCw5ICszOCwxMCBAQCBjbGFzcyBNb2NrTWVkaWFTb3VyY2VQcml2YXRlOwogCiBjbGFzcyBNb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1l
ZGlhUGxheWVyKik7CisKICAgICAvLyBNZWRpYVBsYXllciBFbmdpbmUgU3VwcG9ydAogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwotICAg
IHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1l
ZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApAQCAtNTYs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWVrQ29tcGxldGVkKCk7CiAKIHByaXZhdGU6
Ci0gICAgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1l
ZGlhUGxheWVyKik7CiAKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGUgT3ZlcnJpZGVzCiAgICAg
dmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239998</attachid>
            <date>2014-10-16 22:20:25 -0700</date>
            <delta_ts>2014-10-20 03:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141017142029.patch</filename>
            <type>text/plain</type>
            <size>15165</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0ODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ5M2E4ZDhlZjUyNzYx
NDFiNWJhN2JlNjY2YmFjMGZlYWJhNGE0Yy4uNWZlMzc1OTc1YzU4NmUwYWEyOTQxYzhhMDA5ZTM3
Mzc2NTRmZjZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTEwLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTnVsbE1lZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNy
ZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOiBkaXR0by4KKwogMjAxNC0x
MC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBpczw+
KCkgLyBkb3duY2FzdDw+KCkgZm9yIEJhc2ljU2hhcGUgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMWZhOTBlYjMyOTk4YWQyZGNmYmEwNjdk
OTkzZGViYTI2ZTI2MWE3Mi4uYjU4NTI1YTA0MTMzYjkyMWM5NmEzZDZlNWQ1MWI4MjdkZTdkMDJi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NjQ2LDcg
KzQ2NDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZs
YWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xl
YXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMo
KTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3Qg
aGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxs
b2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxs
ZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRo
ZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNl
cy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAg
IHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCmluZGV4IDEzZWE3YWQ2YjhhNTA0M2ZhMDE3ODhkMzUwZDdlZjhhODQ4YmNjM2EuLjQw
YTBlMThjN2JmYjRkYWUyZmM0ZjZlYTA1MWNmMzI1MDRhMTQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC03NzAsNyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRp
ZgogCi0gICAgT3duUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9w
cmVsb2FkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKaW5kZXggOGFkNzlkYjc3YzliMDUzNmE3MGY2NGVkNjFhM2U2ZjIxZTU3ZDNlMi4u
NDcxNjlhZmQxMWY2MjM2MjBjNjk5ZGJiZTNhZmIyNjJmOTY4Y2NjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTQ0LDEyICsx
NDQsMTEgQEAgcHVibGljOgogI2VuZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciog
cGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2
YXRlKHBsYXllcikpOyAKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBjcmVhdGVOdWxsTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxh
eWVyKTsKIH0KIAotCiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0
b3J5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CmluZGV4IDdjNmFkZDZiMzc2MjhjYzE3NDY1MjlmYzRlN2M5NTFlYTE4NjEzOTguLjFiOGFmODk5
ZGYyYjBiMTg1OWM5MjkyZTcyNWM3YjQ2ODQ4NGI1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc4LDExICsyNzgsMTEgQEAgcHVi
bGljOgogY2xhc3MgTWVkaWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlh
UGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQp
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1l
ZGlhUGxheWVyKGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UGxheWVyPihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7CiAgICAgfQorCiAgICAgdmlydHVhbCB+
TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3LDcg
KzU3Nyw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVy
KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQm
KTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOworCiAgICAg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9y
eSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJG
YWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiYp
OwpAQCAtNTg2LDcgKzU4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVudCYg
bV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0gICAgT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAgICBNZWRp
YVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3VybDsKICAg
ICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjA5LDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKK3R5cGVkZWYg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpDcmVhdGVNZWRp
YUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
U3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgqTWVk
aWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggMDM4N2E3ZDE1MjhjNGQ1OGViNDM1NjY3NWIxZDg1N2VmNTZlNjBhYS4uNDMxZTAxYjg3
NmVjOTM1YjcyZGEzNzdlNzk2MmIxYTEwMzI2YjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMxLDcgKzMx
LDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDI3NWQ5ZTEy
NWQyNzBhMmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYuLmZkZDk2ZjRkYzljNGEwMmZkMjA5ZTdk
ZTVkMjMwMzY1YTdlNDE1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtMzM1LDkgKzMzNSw5IEBA
IHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbExvYWRlckRlbGVnYXRlUXVldWUoKQogfQog
I2VuZGlmCiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAot
eyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGKHBsYXllcikpOworc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVn
aXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRleCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMw
MzUwMDg0N2QzLi4yNjI1NmI2ODA2N2Y4MzAwNGNlMjBjNTE4MTBjMDc3NTQ4MDVlMDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9h
ZGVyOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRigpOwog
CiAgICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBvdmVycmlkZTsKQEAgLTU4LDEwICs1
OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlh
RW5naW5lUmVnaXN0cmFyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRihNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAKICAgICAvLyBFbmdpbmUgc3VwcG9ydAot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRl
KE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMzdmY2M2MWQ5
M2JhNzE2ZDk2ZDY1NWEzZTdiZWJlNTc1YTA0ZmQzZi4uYjM2YzlmODkxMjkyMWJjNWZkNWYyZjgw
NGIxZGMwNGEzY2IzNzk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtNjgsNiArNjgsOSBA
QCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uIHsKIHB1YmxpYzoKKyAgICAvLyBlbmdpbmUgc3VwcG9ydAorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIq
KTsKKwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoKTsK
IAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3Ry
YXIpOwpAQCAtMTMyLDggKzEzNSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOwogCi0gICAgLy8gZW5naW5l
IHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
Jik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggOThlYjhlY2M2NmIwYWVkZDcyNTEzM2Q1NGZkZjE0NTk0NTRmMzNiMi4uOTZkOTQwZjRlNWE0
ZGMxZmFlMDIwYjc2YTEwZThmZDVjZWNlNDllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC0zNzEsOSArMzcxLDkgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVn
YXRlUXVldWUoKQogfQogI2VuZGlmCiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUoTWVkaWFQ
bGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXll
ciogcGxheWVyKQogeyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
IHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAKaW5kZXggOGFjOGZjY2ZiYWIzYTE3NTZkMTk3MmVkNzRjN2QwNjhkZTNkOTY4Zi4uMDkz
YWZmOTM5YzdiZDc1YTllMzZmYWU4MmFhMzhlYjI0OTAwYzA0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEzOCw5ICsxMzgsOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVz
KEdPYmplY3QqIG9iamVjdCkKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUg
YXMgJXMgYXQgJXMiLCByb2xlLCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoTWVk
aWFQbGF5ZXIqIHBsYXllcikKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4obmV3IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cihwbGF5ZXIpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDUwODQ5MjE5ODJjNjE4
NDMyYTFhYTJmMWZmYTljMGY4MWMzMWJhNzYuLmJlMWFhZTg0NmRmMzdkMDVhNGNjNTMzNDAxMDM3
YTE2NTFlZmY2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmgKQEAgLTU3LDcgKzU3LDkgQEAgY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI7
CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAg
ICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpOworCiAgICAgc3RhdGljIHZvaWQgcmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAgICAgZ2Jvb2xlYW4gaGFu
ZGxlTWVzc2FnZShHc3RNZXNzYWdlKik7CiAgICAgdm9pZCBoYW5kbGVQbHVnaW5JbnN0YWxsZXJS
ZXN1bHQoR3N0SW5zdGFsbFBsdWdpbnNSZXR1cm4pOwpAQCAtMTI2LDkgKzEyOCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiBwcml2YXRlOgot
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwotCi0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQ
bGF5ZXIqKTsKIAogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3Ry
aW5nPiYpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IGM2NjE3OGI5Njc3Y2Y4NDk2NWQ5OGJm
ODhiZTNhMzk4NmY3ZTM4ZGEuLmYyMGZhMDQ4YTVhOGQwZGIzMTRmMWNkN2Q5YzYyNzNjMDE0ZTk3
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC00
NCw5ICs0NCw5IEBAIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0CiAgICAgcmVnaXN0cmFyKGNyZWF0
ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKLVBh
c3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZTo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVf
cHRyPE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlPihuZXcgTW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2UocGxheWVyKSk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNo
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXggYjY2OTRk
OGVkODczNzk4OWViMGJmNmVlZjk2MzkwNjM2NWZmYjk3Zi4uZmM5NjM1N2FkMGU4M2M5YmQxNjQx
M2JmMTEwYjQyZThkZGMwMWEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2UuaApAQCAtMzgsOSArMzgsMTAgQEAgY2xhc3MgTW9ja01lZGlhU291cmNlUHJpdmF0ZTsK
IAogY2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisKICAgICAv
LyBNZWRpYVBsYXllciBFbmdpbmUgU3VwcG9ydAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAg
c3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZWVrQ29tcGxldGVkKCk7CiAKIHByaXZhdGU6Ci0gICAgTW9ja01lZGlhUGxheWVy
TWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNb2NrTWVkaWFQbGF5ZXJN
ZWRpYVNvdXJjZShNZWRpYVBsYXllciopOwogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92
ZXJyaWRlcwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlk
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240105</attachid>
            <date>2014-10-20 03:28:21 -0700</date>
            <delta_ts>2014-10-21 07:32:30 -0700</delta_ts>
            <desc>Patch for ews</desc>
            <filename>bug-137765-20141020192826.patch</filename>
            <type>text/plain</type>
            <size>34630</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ2ODE1NjMzMGU1MGVl
NGI1YzVjYTYxMDNkMWU3YTgxY2IzNzNjNy4uZDE2Mjk1MzhjODQzYzJkMTRkYzNhZWFjNDdlNGUy
NmQyZDEzY2JjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTE5ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBm
b3IgYWxsIHJlbWFpbmluZyBSZW5kZXJPYmplY3Qgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMWRhYWIxOGI5M2M4ZDUxOTg0NzkzYjI2OWVh
YTk1Njg4MDViNzBhMy4uMWVlMzI3N2E5OTJiZmJiNGE4NGM2YmRmNjcyNjliZTIzNWE4MWI0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NjQ2LDcgKzQ2
NDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdz
KQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xlYXIo
KTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsK
ICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3QgaGFz
IGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxsb2Nh
dGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxsZWRM
b2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRoZSBt
ZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNlcy4K
LSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHVw
ZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01MzM0LDcgKzUzMzQsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwogI2VuZGlmCi0gICAgbV9wbGF5
ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBtX3BsYXllciA9IHN0ZDo6bWFr
ZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0PE1lZGlhUGxheWVyQ2xpZW50Jj4oKnRo
aXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VOb2Rl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDEzZWE3YWQ2Yjhh
NTA0M2ZhMDE3ODhkMzUwZDdlZjhhODQ4YmNjM2EuLjQwYTBlMThjN2JmYjRkYWUyZmM0ZjZlYTA1
MWNmMzI1MDRhMTQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC03NzAsNyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5
IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3duUHRyPE1lZGlhUGxh
eWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVy
OwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYUVuZ2luZVBsYXllclR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1NzU2ODE4MDcwNWMwNGRmZjliNGVmYmRkNTM1NGQxMGRkMjZhMDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYUVu
Z2luZVBsYXllclR5cGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaWZuZGVmIE1lZGlhRW5naW5l
UGxheWVyVHlwZV9oCisjZGVmaW5lIE1lZGlhRW5naW5lUGxheWVyVHlwZV9oCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3R5cGVkZWYgZW51bSB7CisgICAgTnVsbE1lZGlhUGxheWVyLAorICAgIEFW
Rm91bmRhdGlvbkNGUGxheWVyLAorICAgIEFWRm91bmRhdGlvbk9iakNQbGF5ZXIsCisgICAgTWVk
aWFTb3VyY2VBVkZPYmpDUGxheWVyLAorICAgIEdTdHJlYW1lclBsYXllciwKKyAgICBRVEtpdFBs
YXllciwKKyAgICBNZWRpYUZvdW5kYXRpb25QbGF5ZXIsCisgICAgTW9ja01lZGlhU291cmNlUGxh
eWVyCit9ICBNZWRpYUVuZ2luZVBsYXllclR5cGU7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDhhZDc5ZGI3
N2M5YjA1MzZhNzBmNjRlZDYxYTNlNmYyMWU1N2QzZTIuLmNmNmM4NzVlMTE5MjZmNGQ0YWM3ZDhj
ZDNmYmQyYWUxZWViY2ZmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgY29uc3QgUGxhdGZvcm1NZWRp
YSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRmb3JtTWVkaWE6Ok5vbmUsIHswfSB9OwogCiBjbGFz
cyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciop
IHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIHsgfQogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCkBAIC0xNDQsMzkgKzE0NCw3MyBAQCBwdWJsaWM6CiAjZW5kaWYKIH07
CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRl
TnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAoteyAKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7IAotfQotCiAKIC8vIGVu
Z2luZSBzdXBwb3J0CiAKIHN0cnVjdCBNZWRpYVBsYXllckZhY3RvcnkgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIE1lZGlhUGxheWVyRmFjdG9yeShDcmVhdGVNZWRpYUVuZ2luZVBsYXll
ciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBl
cywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzLAorICAgIE1l
ZGlhUGxheWVyRmFjdG9yeShNZWRpYUVuZ2luZVBsYXllclR5cGUgcGxheWVyVHlwZSwgTWVkaWFF
bmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzLAogICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVz
SW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFD
YWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBj
bGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBv
cnRzS2V5U3lzdGVtKQotICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQotICAgICAg
ICAsIGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQotICAgICAgICAsIHN1cHBv
cnRzVHlwZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCi0gICAgICAgICwgZ2V0U2l0
ZXNJbk1lZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJNZWRp
YUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkKLSAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRl
KGNsZWFyTWVkaWFDYWNoZUZvclNpdGUpCi0gICAgICAgICwgc3VwcG9ydHNLZXlTeXN0ZW0oc3Vw
cG9ydHNLZXlTeXN0ZW0pCisgICAgICAgICAgICA6IHBsYXllclR5cGUocGxheWVyVHlwZSkKKyAg
ICAgICAgICAgICwgZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCisgICAgICAg
ICAgICAsIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCisgICAg
ICAgICAgICAsIGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQorICAg
ICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGUoY2xlYXJNZWRpYUNhY2hlKQorICAgICAgICAgICAg
LCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFyTWVkaWFDYWNoZUZvclNpdGUpCisgICAgICAg
ICAgICAsIHN1cHBvcnRzS2V5U3lzdGVtKHN1cHBvcnRzS2V5U3lzdGVtKQogICAgIHsKICAgICB9
CiAKLSAgICBDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKKyAgICBNZWRpYUVu
Z2luZVBsYXllclR5cGUgcGxheWVyVHlwZTsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVz
IGdldFN1cHBvcnRlZFR5cGVzOwogICAgIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZUFuZENvZGVjczsKICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNp
dGVzSW5NZWRpYUNhY2hlOwogICAgIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFyTWVk
aWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRp
YUNhY2hlRm9yU2l0ZTsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRz
S2V5U3lzdGVtOworCisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAocGxheWVyVHlwZSkgeworICAgICAgICBjYXNlIE51bGxNZWRpYVBsYXllcjoK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZh
dGU+KHBsYXllcik7CisjaWYgUExBVEZPUk0oV0lOKSAmJiBFTkFCTEUoVklERU8pICYmIFVTRShB
VkZPVU5EQVRJT04pCisgICAgICAgIGNhc2UgQVZGb3VuZGF0aW9uQ0ZQbGF5ZXI6CisgICAgICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRB
VElPTikKKyAgICAgICAgY2FzZSBBVkZvdW5kYXRpb25PYmpDUGxheWVyOgorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qz4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZP
VU5EQVRJT04pCisgICAgICAgIGNhc2UgTWVkaWFTb3VyY2VBVkZPYmpDUGxheWVyOgorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDPihwbGF5ZXIpOworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NU
UkVBTUVSKQorICAgICAgICBjYXNlIEdTdHJlYW1lclBsYXllcjoKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsK
KyNlbmRpZgorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oTUFDKQorICAgICAgICBjYXNl
IFFUS2l0UGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQ+KHBsYXllcik7CisjZW5kaWYKKyNpZiBVU0UoTUVESUFfRk9VTkRB
VElPTikKKyAgICAgICAgY2FzZSBNZWRpYUZvdW5kYXRpb25QbGF5ZXI6CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24+
KHBsYXllcik7CisjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgICAgICBjYXNl
IE1vY2tNZWRpYVNvdXJjZVBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlPihwbGF5ZXIpOworI2VuZGlmCisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7
CisgICAgICAgIH0KKyAgICB9CiB9OwogCi1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVh
dGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdp
bmVTdXBwb3J0c1R5cGUsIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5n
aW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1l
ZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOworc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFF
bmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwg
TWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSk7CiAKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rv
cnkqIGJlc3RNZWRpYUVuZ2luZUZvclN1cHBvcnRQYXJhbWV0ZXJzKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmLCBNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0
YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3Rv
cnkqIGN1cnJlbnQpOwpAQCAtMjIzLDE0ICsyNTcsMTQgQEAgc3RhdGljIFZlY3RvcjxNZWRpYVBs
YXllckZhY3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVPcHRpb25z
IHIKICAgICByZXR1cm4gaW5zdGFsbGVkRW5naW5lczsKIH0KIAotc3RhdGljIHZvaWQgYWRkTWVk
aWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5l
U3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZSwKK3N0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKE1lZGlhRW5naW5lUGxh
eWVyVHlwZSBwbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1cHBvcnRl
ZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUsCiAgICAgTWVkaWFF
bmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdp
bmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFD
YWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tl
eVN5c3RlbSBzdXBwb3J0c0tleVN5c3RlbSkKIHsKLSAgICBBU1NFUlQoY29uc3RydWN0b3IpOwor
ICAgIEFTU0VSVChwbGF5ZXJUeXBlKTsKICAgICBBU1NFUlQoZ2V0U3VwcG9ydGVkVHlwZXMpOwog
ICAgIEFTU0VSVChzdXBwb3J0c1R5cGUpOwogCi0gICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCku
YXBwZW5kKG5ldyBNZWRpYVBsYXllckZhY3RvcnkoY29uc3RydWN0b3IsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUs
IGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIHN1cHBvcnRzS2V5U3lzdGVtKSk7CisgICAgaW5zdGFs
bGVkTWVkaWFFbmdpbmVzKCkuYXBwZW5kKG5ldyBNZWRpYVBsYXllckZhY3RvcnkocGxheWVyVHlw
ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUs
IGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0
ZW0pKTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYXBwbGljYXRpb25PY3RldFN0
cmVhbSgpCkBAIC0zMDgsNyArMzQyLDcgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4
dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKIE1lZGlhUGxheWVyOjpN
ZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xp
ZW50KQogICAgICwgbV9yZWxvYWRUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVy
RmlyZWQpCi0gICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpKQorICAg
ICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhp
cykpCiAgICAgLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgwKQogICAgICwgbV9wcmVsb2FkKEF1dG8p
CiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCkBAIC00MDksNyArNDQzLDcgQEAgdm9pZCBNZWRpYVBs
YXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50
KQogICAgICAgICBtX3ByaXZhdGUgPSBudWxscHRyOwogICAgIH0gZWxzZSBpZiAobV9jdXJyZW50
TWVkaWFFbmdpbmUgIT0gZW5naW5lKSB7CiAgICAgICAgIG1fY3VycmVudE1lZGlhRW5naW5lID0g
ZW5naW5lOwotICAgICAgICBtX3ByaXZhdGUgPSBlbmdpbmUtPmNvbnN0cnVjdG9yKHRoaXMpOwor
ICAgICAgICBtX3ByaXZhdGUgPSBlbmdpbmUtPmNyZWF0ZU1lZGlhUGxheWVyKHRoaXMpOwogICAg
ICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1f
cHJpdmF0ZS0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShtX3ByaXZhdGVCcm93c2luZyk7CiAgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0UHJlbG9hZChtX3ByZWxvYWQpOwpAQCAtNDI2LDcgKzQ2MCw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFj
dG9yeSogY3VycmVudCkKICNlbmRpZgogICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwuc3Ry
aW5nKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU51bGxNZWRp
YVBsYXllcih0aGlzKTsKKyAgICAgICAgbV9wcml2YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxOdWxs
TWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKTsKICAgICAgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJF
bmdpbmVVcGRhdGVkKHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlc291cmNl
Tm90U3VwcG9ydGVkKHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDdjNmFkZDZiMzc2MjhjYzE3NDY1MjlmYzRlN2M5
NTFlYTE4NjEzOTguLmE4YWRmZGU3NGE3YzM5M2VlN2JkOTNiOTllYTUxNzg0Mzc1NDczZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgi
CiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCkBAIC00NSw4ICs0Niw2IEBACiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5B
QkxFKEFWRl9DQVBUSU9OUykKQEAgLTI3OCwxMSArMjc3LDcgQEAgcHVibGljOgogY2xhc3MgTWVk
aWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBl
eHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhUGxheWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU3Nyw3ICs1
NzIsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7
CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVy
RmFjdG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQ
bGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxh
eWVyPiYpOwpAQCAtNTg2LDcgKzU4MCw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNs
aWVudCYgbV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0g
ICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAg
ICBNZWRpYVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3Vy
bDsKICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjAyLDYgQEAgcHJp
dmF0ZToKICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5
cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVT
dXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVj
dG9yPFN0cmluZz4mKTsKQEAgLTYxNiw3ICs2MDksNyBAQCB0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiB0eXBlZGVmIGJvb2wgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzS2V5U3lzdGVtKShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk7CiAKLXR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFF
bmdpbmVTdXBwb3J0c1R5cGUsCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVJlZ2lzdHJhciko
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSwKICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBN
ZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JT
aXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlh
RW5naW5lUmVnaXN0ZXIpKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDY2MGIwYzAw
MjVkMWI3ZGU3YzVkNzVhYTFiYzc1Yjg4OGJjMWZlODUuLmQ4OTM5ODdiNTMyNDRhODU1MTRlMjEz
ZTIxZDY2YmNlZDU1OTkwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgR2VuZXJpY0N1
ZURhdGE7CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQVZGSW5iYW5kVHJhY2tQYXJlbnQKIHsK
IHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVk
aWFQbGF5ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KCk7CiAgICAgdmlydHVhbCB2
b2lkIG1ldGFkYXRhTG9hZGVkKCk7CkBAIC0xNDQsNyArMTQ1LDYgQEAgcHVibGljOgogI2VuZGlm
CiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQ
bGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsK
IAogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwCmluZGV4IDI3NWQ5ZTEyNWQyNzBhMmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYu
LmVkOWMwZWFjZDdiNzIyOWUzYzZiMWUxNjM5NzUzZTIzYzIwZjlhMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcApAQCAtMzM1LDE1ICszMzUsMTAgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFs
TG9hZGVyRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdp
bmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAg
ICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lzdHJhcihBVkZvdW5kYXRpb25D
RlBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9y
dHNLZXlTeXN0ZW0pOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmgKaW5kZXggMmFjMDE0NGRhYTkzOGNkMjMwMmM2YjJkNjdkZGEzMDM1MDA4NDdkMy4uNDRh
OGNmNjM5NTAyYjVlMmUxN2I4YzQzYWE3Mzg4NzJlN2IyMTBlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdl
ZCgpIG92ZXJyaWRlOwpAQCAtNTgsMTAgKzU5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgot
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7Ci0KICAg
ICAvLyBFbmdpbmUgc3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKaW5kZXggZjJiOGUzYjdhMmFjMDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uN2U3
ZDk3N2VmYzA3Nzc4ZDdmYzExZDhiYjk4MWJmZWVmZjZjNTY2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaApAQCAtNjksNiArNjksNyBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiAK
IGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CkBAIC0xMzEsMTAgKzEz
Miw3IEBAIHB1YmxpYzoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDliZGE4YzgzNzg1ODIyNzZm
YjQxNWZjYjVhMmE1ZDQ0N2U3ZjdjOWMuLmNjNzEzZGY1MmJiZmNhYzFhOGE4MTFjOGFmMzA3ZThh
N2M2MDZkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzgzLDE1ICszODMsMTAgQEAg
c3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogfQogI2Vu
ZGlmCiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsg
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQog
ewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRT
dXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7
CisgICAgICAgIHJlZ2lzdHJhcihBVkZvdW5kYXRpb25PYmpDUGxheWVyLCBnZXRTdXBwb3J0ZWRU
eXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggOWM4OTZiNTEzODAwMDcxYjBmM2EwMmEyNDRjNTA0ODAzYjNiZmU1My4uNTdlMzcyZThj
Y2Y3YjRhN2E0YTViY2U0ZTRhODQzNjk5OTdlOWMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTQ5LDEzICs0OSwxMSBAQCBjbGFzcyBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOwog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFs
IH5NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoKTsKIAogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCi0gICAgLy8g
TWVkaWFQbGF5ZXIgRmFjdG9yeSBNZXRob2RzCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhh
c2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggY2Y3YWIyZmYzMDZhN2I1ODdjMjBmZDNlMDMy
NDU3NjEzODgxZmYzMy4uZjRiOWUyY2U4NmQyM2E2MDUxYjM1OTQwY2M0ZGMzN2NiZDY4NGJkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTk1LDEyICsxOTUsNyBAQCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMoKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewog
ICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBw
b3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKLX0KLQotUGFzc093blB0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7Cisg
ICAgICAgIHJlZ2lzdHJhcihNZWRpYVNvdXJjZUFWRk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4YWM4ZmNjZmJhYjNhMTc1NmQx
OTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi4wZTExMzZiNTYzMGViYmM5NDAyYWZiMTA5MzkyYWUwZTky
YWRjMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTM4LDE1ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHT2JqZWN0KiBvYmplY3QpCiAgICAgTE9HX01F
RElBX01FU1NBR0UoIlNldCBtZWRpYS5yb2xlIGFzICVzIGF0ICVzIiwgcm9sZSwgZWxlbWVudE5h
bWUuZ2V0KCkpOwogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikK
LXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihw
bGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChp
c0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBl
cywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKEdTdHJlYW1l
clBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9
CiAKIGJvb2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDUwODQ5
MjE5ODJjNjE4NDMyYTFhYTJmMWZmYTljMGY4MWMzMWJhNzYuLjY2OWZiNTZhMzFhYWUzYWU3ZjE3
NDI4Mjc0Zjk5MTJiMjMyNzhjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTU3LDcgKzU3LDkgQEAgY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVH
U3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdz
dE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0
YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMjYsMTAgKzEyOCw2IEBAIHB1YmxpYzoKICAgICBib29s
IGNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwotCi0gICAgc3RhdGljIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKLQog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgK
aW5kZXggODBjMmNlYTU5MTNhNDI1MmJlMWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uZWMzMWE3NzQ1
MGE3NDhhMTBmOTMzZjMzMmMzNzFiNGUxNWFjZjQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0LmgKQEAgLTUwLDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRp
YVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVRVEtpdCgpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3Ry
YXIpOwogCkBAIC02MywxMCArNjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXllckhvc3RDaGFu
Z2VkKFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKLQotICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUo
TWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggYWY2NTllNWQ4Y2Q0ZDRhOTYxODc2MzZjNGVj
OTRmODI2OGNjNjQ4ZS4uYzMzNjA4ZTkxMGRlMjI0NTQ2MjViMmZiMDQ1Yzg4Njk0MGYzMTQzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTY2LDE1ICsxNjYsMTAgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpj
cmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdChwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdp
c3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVh
dGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hl
LCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIDApOworICAgICAgICBy
ZWdpc3RyYXIoUVRLaXRQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNp
dGUsIDApOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOGExY2VlNmZiMjM2ZWEzZThhNmZkZGEyZjEwYjE1
NzlmNWIyNmM2ZS4uN2YzMmE2NDliOGIzMDBhYzU3OTgzMzY3MDI3ZjE4NDBjNzY1ZWEzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQx
LDE1ICs0MSwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllcgogewogfQogCi1QYXNzT3duUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihwbGF5ZXIpKTsKLX0KLQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJs
ZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKE1lZGlhRm91bmRhdGlvblBs
YXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjppc0F2YWlsYWJsZSgpIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCmluZGV4IGI5YWUw
YzU1ZDU1ZmFlZWJmZmU0MTJhNWFmZTFiZTU0ZTc5NTM4YTIuLmJiYTUzNmM2YTJmYWNmY2ZlODRl
YjgxNmRkM2VmODVjMzFhZmM4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmgKQEAgLTMwLDEwICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFp
bGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYzY2MTc4Yjk2NzdjZjg0OTY1ZDk4YmY4OGJlM2EzOTg2ZjdlMzhkYS4uOWZhNjRkOTNmYmMy
Y2IzZmNlNDMyNjdmODIxMTBmYmJhNzVmYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTQxLDEyICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIC8vIE1lZGlhUGxheWVyIEVuaWduZSBTdXBwb3J0CiB2b2lkIE1vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lz
dHJhcikKIHsKLSAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKLX0KLQotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlKHBsYXllcikpOworICAgIHJlZ2lzdHJhcihNb2NrTWVkaWFTb3VyY2VQbGF5ZXIsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBzdGF0aWMg
SGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGI2Njk0ZDhlZDg3Mzc5ODllYjBiZjZlZWY5NjM5MDYzNjVm
ZmI5N2YuLmYyODM5N2M5YzdiODExMDBlZTFhNGRkNWFhODdlNGM5YWVhMTYyNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKQEAgLTM4LDkgKzM4LDEwIEBAIGNs
YXNzIE1vY2tNZWRpYVNvdXJjZVByaXZhdGU7CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Cisg
ICAgZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKwog
ICAgIC8vIE1lZGlhUGxheWVyIEVuZ2luZSBTdXBwb3J0CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAg
ICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsK
ICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3Qg
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCkBAIC01Niw4ICs1Nyw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNlZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBsYXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2
YXRlIE92ZXJyaWRlcwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240202</attachid>
            <date>2014-10-21 07:32:40 -0700</date>
            <delta_ts>2014-10-21 18:26:23 -0700</delta_ts>
            <desc>WIP for mac port</desc>
            <filename>bug-137765-20141021233245.patch</filename>
            <type>text/plain</type>
            <size>39565</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc2YTU0YjUxODA1Y2Q4
NDQ0ZDUxMTVlZDQyOTJiOTYzMWI3NTJkMi4uMTBlZDVkNTk2NTZhZDVhN2VhM2ExYjhmMjc1YzM1
NDkwZDdiY2U5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIxICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6
ICFncmlkV2FzUG9wdWxhdGVkKCkgaW4gV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09u
R3JpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzOGE2MDkyNzllNWEwM2Y5ZDhiZWU1NDE1ZTkw
NDRiMmM3YWQ2YTI5Li5lZTZiZDc1YWZiYmFiNzlkM2I3NzM0YmJjY2JlNzNhYzdhOTk3N2M3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzIzMiw3ICszMjMyLDcgQEAgX19aTjdXZWJDb3JlOERv
Y3VtZW50MTNnZXRUb3VjaFJlY3RzRVJOM1dURjZWZWN0b3JJTlNfN0ludFJlY3RFTG0wRU5TMV8x
NUNyYXNoT24KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogX19aTjdXZWJDb3JlMTJTb3VyY2VC
dWZmZXIyNWJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSURFUktOM1dURjEyQXRvbWljU3RyaW5nRQog
X19aTjdXZWJDb3JlMTRKU1NvdXJjZUJ1ZmZlcjl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUKLV9f
Wk43V2ViQ29yZTI2TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UxOXJlZ2lzdGVyTWVkaWFFbmdp
bmVFUEZ2UEZOM1dURjEwUGFzc093blB0cklOU18yN01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMxXzdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8x
MFN0cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTQV9FRUVFRVBGTlM1XzEyU3VwcG9ydHNUeXBl
RVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMxXzZWZWN0b3JJU0Ff
TG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2RVBGdlJLU0FfRVBGYlNYX1NYX0VFCitf
X1pON1dlYkNvcmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlMTlyZWdpc3Rlck1lZGlhRW5n
aW5lRVBGdk5TXzIxTWVkaWFFbmdpbmVQbGF5ZXJUeXBlRVBGdlJOM1dURjdIYXNoU2V0SU5TMl82
U3RyaW5nRU5TMl8xMFN0cmluZ0hhc2hFTlMyXzEwSGFzaFRyYWl0c0lTNF9FRUVFRVBGTlNfMTFN
ZWRpYVBsYXllcjEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzRUVQRnZSTlMyXzZWZWN0b3JJUzRfTG0wRU5TMl8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2
RVBGdlJLUzRfRVBGYlNTX1NTX0VFCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CkBAIC0zNDA4LDcgKzM0MDgsNyBAQCBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNs
ZWFyTWVkaWFDYWNoZUZvclNpdGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQ0cGxheUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VF
dgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50OHNldE11dGVkRWIKLV9fWk43V2ViQ29y
ZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDIzY2FsbFJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2
UEZ2UEZOM1dURjEwUGFzc093blB0cklOU18yN01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZUVF
RVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMxXzdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTQV9FRUVFRVBGTlM1XzEyU3VwcG9ydHNUeXBlRVJL
TlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMxXzZWZWN0b3JJU0FfTG0w
RU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2RVBGdlJLU0FfRVBGYlNYX1NYX0VFRQorX19a
TjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZUVQRnZQRnZOU18yMU1lZGlhRW5naW5lUGxheWVyVHlwZUVQRnZSTjNXVEY3SGFzaFNldElO
UzJfNlN0cmluZ0VOUzJfMTBTdHJpbmdIYXNoRU5TMl8xMEhhc2hUcmFpdHNJUzRfRUVFRUVQRk5T
XzExTWVkaWFQbGF5ZXIxMlN1cHBvcnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVyc0VFUEZ2Uk5TMl82VmVjdG9ySVM0X0xtMEVOUzJfMTVDcmFzaE9uT3ZlcmZsb3dFRUVF
UEZ2dkVQRnZSS1M0X0VQRmJTU19TU19FRUUKIF9fWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVj
U3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzEwVGltZVJhbmdlc0UKIF9fWk5LN1dl
YkNvcmUxMFRpbWVSYW5nZXM3bmVhcmVzdEVkCiBfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVt
ZW50MTFjdXJyZW50VGltZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTY1ZGFjOWFlYzhmYzIyZDhlMTFlNjU2N2I4Njc3NDE1
NDU1ZTI4MS4uNjNhNjVlN2U4ODM5MDA5ZjQ2ZmJhODA5NjZlMDllY2I4ZmFhNWNkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTI5LDYgKzEyOSw3IEBACiAJCTA3MDc1NkRGMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFj
a0N1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcwNzU2RDkxNDIzOUI0QzAwNDE0MTYxIC8qIEpTVGV4dFRyYWNrQ3VlTGlzdC5jcHAgKi87
IH07CiAJCTA3MDc1NkUwMTQyMzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDc1NkRBMTQy
MzlCNEUwMDQxNDE2MSAvKiBKU1RleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKIAkJMDcwOUZDNEUx
MDI1REVFMzAwNTlDREJBIC8qIEFjY2Vzc2liaWxpdHlTbGlkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDlGQzREMTAyNURFRTMwMDU5Q0RCQSAv
KiBBY2Nlc3NpYmlsaXR5U2xpZGVyLmggKi87IH07CisJCUUyREI3QTg0MTlGNjhEQTcwMDdDOTYx
MiAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MEUwOTE4MTg3NUVEOTMwMDNB
MUQzQyAvKiBNZWRpYVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzBFMDkxQjE4NzVFRjcxMDAzQTFEM0MgLyogTWVkaWFTZXNzaW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MEUw
OTFBMTg3NUVGNzEwMDNBMUQzQyAvKiBNZWRpYVNlc3Npb24uY3BwICovOyB9OwogCQkwNzBGNTQ5
ODE3RjEyRjZCMDAxNjlFMDQgLyogTWVkaWFTdHJlYW1Db25zdHJhaW50c1ZhbGlkYXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MEY1
NDk3MTdGMTJGNkIwMDE2OUUwNCAvKiBNZWRpYVN0cmVhbUNvbnN0cmFpbnRzVmFsaWRhdGlvbkNs
aWVudC5oICovOyB9OwpAQCAtMjA0NzUsNiArMjA0NzYsNyBAQAogCQkJCTE0MURDMDRDMTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKIAkJCQkxNDFEQzA0RDE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UmVjdC5oICovLAogCQkJCTE0MURDMDRFMTY0ODM0QjkwMDM3MUU1QSAv
KiBMYXlvdXRTaXplLmggKi8sCisJCQkJRTJEQjdBODQxOUY2OERBNzAwN0M5NjEyIC8qIE1lZGlh
RW5naW5lUGxheWVyVHlwZS5oICovLAogCQkJCUU0QjQxRTBDMENCRjkwQkQwMEFGMkVDRSAvKiBN
ZWRpYVBsYXllci5jcHAgKi8sCiAJCQkJRTRCNDFFMEQwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlh
UGxheWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1lZGlhUGxheWVy
UHJpdmF0ZS5oICovLApAQCAtMjUyODUsNiArMjUyODcsNyBAQAogCQkJCTk3MjA1QUI4MTIzOTI5
MTAwMEIxNzM4MCAvKiBNZWRpYURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDZGMjUy
RDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDQ2MTNBRDBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJvci5oIGlu
IEhlYWRlcnMgKi8sCisJCSAgICAgICAgICAgICAgICBFMkRCN0E4NDE5RjY4REE3MDA3Qzk2MTIg
LyogTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmggKi8sCiAJCQkJNEUxOTU5MjIwQTM5REFCQTAwMjIw
RkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0E2RDFFQzE0
OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTgwMEUwQTE5NTE2RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAxZGFhYjE4
YjkzYzhkNTE5ODQ3OTNiMjY5ZWFhOTU2ODgwNWI3MGEzLi4xZWUzMjc3YTk5MmJmYmI0YTg0YzZi
ZGY2NzI2OWJlMjM1YTgxYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTQ2NDYsNyArNDY0Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJN
ZWRpYVBsYXllcihpbnQgZmxhZ3MpCiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5zZXRIYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycygqdGhpcywgZmFsc2UpOwogI2VuZGlmCiAK
LSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHN0
b3BQZXJpb2RpY1RpbWVycygpOwogICAgIG1fbG9hZFRpbWVyLnN0b3AoKTsKQEAgLTQ2OTMsNyAr
NDY5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RvcCgpCiAgICAgLy8gT25jZSBhbiBh
Y3RpdmUgRE9NIG9iamVjdCBoYXMgYmVlbiBzdG9wcGVkIGl0IGNhbiBub3QgYmUgcmVzdGFydGVk
LCBzbyB3ZSBjYW4gZGVhbGxvY2F0ZQogICAgIC8vIHRoZSBtZWRpYSBwbGF5ZXIgbm93LiBOb3Rl
IHRoYXQgdXNlckNhbmNlbGxlZExvYWQgd2lsbCBhbHJlYWR5IGhhdmUgY2xlYXJlZCB0aGUgcGxh
eWVyCiAgICAgLy8gaWYgdGhlIG1lZGlhIHdhcyBub3QgZnVsbHkgbG9hZGVkLiBUaGlzIGhhbmRs
ZXMgYWxsIG90aGVyIGNhc2VzLgotICAgIG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIg
PSBudWxscHRyOwogCiAgICAgdXBkYXRlU2xlZXBEaXNhYmxpbmcoKTsKIH0KQEAgLTUzMzQsNyAr
NTMzNCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIoKQogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICAgICBmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKCk7
CiAjZW5kaWYKLSAgICBtX3BsYXllciA9IE1lZGlhUGxheWVyOjpjcmVhdGUoKnRoaXMpOworICAg
IG1fcGxheWVyID0gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllcj4oc3RhdGljX2Nhc3Q8TWVk
aWFQbGF5ZXJDbGllbnQmPigqdGhpcykpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBp
ZiAobV9hdWRpb1NvdXJjZU5vZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKaW5kZXggMTNlYTdhZDZiOGE1MDQzZmEwMTc4OGQzNTBkN2VmOGE4NDhiY2MzYS4uNDBhMGUx
OGM3YmZiNGRhZTJmYzRmNmVhMDUxY2YzMjUwNGExNDFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTc3MCw3ICs3NzAsNyBAQCBwcml2YXRlOgogICAgIE1lZGlh
UGxheWVyOjpWaWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OwogI2VuZGlmCiAK
LSAgICBPd25QdHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllcj4gbV9wbGF5ZXI7CiAKICAgICBNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3ByZWxv
YWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
RW5naW5lUGxheWVyVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3NTY4MTgwNzA1YzA0ZGZmOWI0ZWZi
ZGQ1MzU0ZDEwZGQyNmEwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmljcy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisK
KyNpZm5kZWYgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlX2gKKyNkZWZpbmUgTWVkaWFFbmdpbmVQbGF5
ZXJUeXBlX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBlbnVtIHsKKyAgICBOdWxs
TWVkaWFQbGF5ZXIsCisgICAgQVZGb3VuZGF0aW9uQ0ZQbGF5ZXIsCisgICAgQVZGb3VuZGF0aW9u
T2JqQ1BsYXllciwKKyAgICBNZWRpYVNvdXJjZUFWRk9iakNQbGF5ZXIsCisgICAgR1N0cmVhbWVy
UGxheWVyLAorICAgIFFUS2l0UGxheWVyLAorICAgIE1lZGlhRm91bmRhdGlvblBsYXllciwKKyAg
ICBNb2NrTWVkaWFTb3VyY2VQbGF5ZXIKK30gIE1lZGlhRW5naW5lUGxheWVyVHlwZTsKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggOGFkNzlkYjc3YzliMDUzNmE3MGY2NGVkNjFhM2U2ZjIxZTU3ZDNlMi4uOWUz
ODI2OTBjNjU3OWE0ZjA0OGZlYTM2MjViZDZhYTY5ODkzOTI0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNjIsNiArNjIsNyBA
QAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCIKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgiCiAj
ZW5kaWYKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oV0lOKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAg
LTc4LDcgKzc5LDcgQEAgY29uc3QgUGxhdGZvcm1NZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBs
YXRmb3JtTWVkaWE6Ok5vbmUsIHswfSB9OwogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRl
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVs
bE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxN
ZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBs
b2FkKGNvbnN0IFN0cmluZyYpIHsgfQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDQs
MzkgKzE0NSw3MyBAQCBwdWJsaWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpIAoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXll
clByaXZhdGUocGxheWVyKSk7IAotfQotCiAKIC8vIGVuZ2luZSBzdXBwb3J0CiAKIHN0cnVjdCBN
ZWRpYVBsYXllckZhY3RvcnkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVy
RmFjdG9yeSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIE1lZGlhUGxh
eWVyRmFjdG9yeShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdp
bmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzLAorICAgIE1lZGlhUGxheWVyRmFjdG9yeShNZWRpYUVu
Z2luZVBsYXllclR5cGUgcGxheWVyVHlwZSwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRT
dXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29k
ZWNzLAogICAgICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5N
ZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBN
ZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRzS2V5U3lzdGVtKQotICAgICAgICA6
IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQotICAgICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdl
dFN1cHBvcnRlZFR5cGVzKQotICAgICAgICAsIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhzdXBwb3J0
c1R5cGVBbmRDb2RlY3MpCi0gICAgICAgICwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUoZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJNZWRpYUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkK
LSAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFyTWVkaWFDYWNoZUZvclNpdGUp
Ci0gICAgICAgICwgc3VwcG9ydHNLZXlTeXN0ZW0oc3VwcG9ydHNLZXlTeXN0ZW0pCisgICAgICAg
ICAgICA6IHBsYXllclR5cGUocGxheWVyVHlwZSkKKyAgICAgICAgICAgICwgZ2V0U3VwcG9ydGVk
VHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCisgICAgICAgICAgICAsIHN1cHBvcnRzVHlwZUFuZENv
ZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCisgICAgICAgICAgICAsIGdldFNpdGVzSW5NZWRp
YUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQorICAgICAgICAgICAgLCBjbGVhck1lZGlhQ2Fj
aGUoY2xlYXJNZWRpYUNhY2hlKQorICAgICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRl
KGNsZWFyTWVkaWFDYWNoZUZvclNpdGUpCisgICAgICAgICAgICAsIHN1cHBvcnRzS2V5U3lzdGVt
KHN1cHBvcnRzS2V5U3lzdGVtKQogICAgIHsKICAgICB9CiAKLSAgICBDcmVhdGVNZWRpYUVuZ2lu
ZVBsYXllciBjb25zdHJ1Y3RvcjsKKyAgICBNZWRpYUVuZ2luZVBsYXllclR5cGUgcGxheWVyVHlw
ZTsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzOwogICAg
IE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjczsKICAgICBNZWRp
YUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlOwogICAgIE1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFyTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2lu
ZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZTsKICAgICBNZWRp
YUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRzS2V5U3lzdGVtOworCisgICAgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXIqIHBsYXllcikKKyAgICB7CisgICAgICAgIHN3aXRjaCAocGxheWVyVHlwZSkg
eworICAgICAgICBjYXNlIE51bGxNZWRpYVBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CisjaWYgUExBVEZP
Uk0oV0lOKSAmJiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgICAgIGNh
c2UgQVZGb3VuZGF0aW9uQ0ZQbGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRj4ocGxheWVyKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICAgICAgY2FzZSBBVkZv
dW5kYXRpb25PYmpDUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4ocGxheWVyKTsKKyNlbmRpZgorI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCisgICAgICAgIGNhc2Ug
TWVkaWFTb3VyY2VBVkZPYmpDUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIpOworI2Vu
ZGlmCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQorICAgICAgICBjYXNlIEdT
dHJlYW1lclBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWSURF
TykgJiYgUExBVEZPUk0oTUFDKQorICAgICAgICBjYXNlIFFUS2l0UGxheWVyOgorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ+KHBsYXll
cik7CisjZW5kaWYKKyNpZiBVU0UoTUVESUFfRk9VTkRBVElPTikKKyAgICAgICAgY2FzZSBNZWRp
YUZvdW5kYXRpb25QbGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24+KHBsYXllcik7CisjZW5kaWYKKyNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQorICAgICAgICBjYXNlIE1vY2tNZWRpYVNvdXJjZVBsYXllcjoK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlPihwbGF5ZXIpOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CisgICAgICAgIH0KKyAgICB9CiB9Owog
Ci1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsIE1lZGlhRW5n
aW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRp
YUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0
ZW0pOworc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLCBN
ZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFF
bmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1l
ZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5
c3RlbSk7CiAKIHN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJlc3RNZWRpYUVuZ2luZUZvclN1
cHBvcnRQYXJhbWV0ZXJzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmLCBNZWRp
YVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBNZWRpYVBsYXllckZhY3Rvcnkq
IG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwpAQCAtMjIzLDE0
ICsyNTgsMTQgQEAgc3RhdGljIFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiYgaW5zdGFsbGVk
TWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVPcHRpb25zIHIKICAgICByZXR1cm4gaW5zdGFsbGVk
RW5naW5lczsKIH0KIAotc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdp
bmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwKK3N0YXRpYyB2
b2lkIGFkZE1lZGlhRW5naW5lKE1lZGlhRW5naW5lUGxheWVyVHlwZSBwbGF5ZXJUeXBlLCBNZWRp
YUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUsCiAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJN
ZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSBzdXBwb3J0c0tleVN5c3Rl
bSkKIHsKLSAgICBBU1NFUlQoY29uc3RydWN0b3IpOworICAgIEFTU0VSVChwbGF5ZXJUeXBlKTsK
ICAgICBBU1NFUlQoZ2V0U3VwcG9ydGVkVHlwZXMpOwogICAgIEFTU0VSVChzdXBwb3J0c1R5cGUp
OwogCi0gICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuYXBwZW5kKG5ldyBNZWRpYVBsYXllckZh
Y3RvcnkoY29uc3RydWN0b3IsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNp
dGVzSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUs
IHN1cHBvcnRzS2V5U3lzdGVtKSk7CisgICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuYXBwZW5k
KG5ldyBNZWRpYVBsYXllckZhY3RvcnkocGxheWVyVHlwZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1
cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsKIH0KIAogc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgpCkBAIC0zMDgsNyArMzQzLDcg
QEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVy
RmFjdG9yeSogY3VycmVudCkKIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNs
aWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9yZWxvYWRUaW1l
cih0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpCi0gICAgLCBtX3ByaXZhdGUo
Y3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpKQorICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91
bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCiAgICAgLCBtX2N1cnJlbnRNZWRp
YUVuZ2luZSgwKQogICAgICwgbV9wcmVsb2FkKEF1dG8pCiAgICAgLCBtX3Zpc2libGUoZmFsc2Up
CkBAIC00MDksNyArNDQ0LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgICAgICBtX3ByaXZhdGUgPSBu
dWxscHRyOwogICAgIH0gZWxzZSBpZiAobV9jdXJyZW50TWVkaWFFbmdpbmUgIT0gZW5naW5lKSB7
CiAgICAgICAgIG1fY3VycmVudE1lZGlhRW5naW5lID0gZW5naW5lOwotICAgICAgICBtX3ByaXZh
dGUgPSBlbmdpbmUtPmNvbnN0cnVjdG9yKHRoaXMpOworICAgICAgICBtX3ByaXZhdGUgPSBlbmdp
bmUtPmNyZWF0ZU1lZGlhUGxheWVyKHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXll
ckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fcHJpdmF0ZS0+c2V0UHJpdmF0ZUJyb3dz
aW5nTW9kZShtX3ByaXZhdGVCcm93c2luZyk7CiAgICAgICAgIG1fcHJpdmF0ZS0+c2V0UHJlbG9h
ZChtX3ByZWxvYWQpOwpAQCAtNDI2LDcgKzQ2MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWRX
aXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKICNlbmRpZgog
ICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwuc3RyaW5nKCkpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU51bGxNZWRpYVBsYXllcih0aGlzKTsKKyAgICAgICAg
bV9wcml2YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlz
KTsKICAgICAgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKHRoaXMpOwogICAg
ICAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlc291cmNlTm90U3VwcG9ydGVkKHRoaXMpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmlu
ZGV4IDdjNmFkZDZiMzc2MjhjYzE3NDY1MjlmYzRlN2M5NTFlYTE4NjEzOTguLmE4YWRmZGU3NGE3
YzM5M2VlN2JkOTNiOTllYTUxNzg0Mzc1NDczZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkludFJlY3QuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCisj
aW5jbHVkZSAiTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9u
LmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVy
LmgiCkBAIC00NSw4ICs0Niw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVk
ZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKQEAgLTI3
OCwxMSArMjc3LDcgQEAgcHVibGljOgogY2xhc3MgTWVkaWFQbGF5ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1l
ZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBleHBsaWNpdCBNZWRpYVBsYXllcihNZWRp
YVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyKCk7CiAKICAgICAvLyBN
ZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU3Nyw3ICs1NzIsNiBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0OwogCiBwcml2YXRlOgotICAg
IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5
KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSopIGNvbnN0OwogICAgIHZv
aWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9p
ZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiYpOwpAQCAtNTg2LDcgKzU4MCw3
IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVudCYgbV9jbGllbnQ7CiAgICAgVGlt
ZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG1f
Y3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3VybDsKICAgICBTdHJpbmcgbV9jb250ZW50
TUlNRVR5cGU7CkBAIC02MDgsNyArNjAyLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotdHlw
ZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpDcmVhdGVNZWRp
YUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
U3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgqTWVk
aWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKQEAgLTYxNiw3
ICs2MDksNyBAQCB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSkoKTsK
IHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3Qg
U3RyaW5nJik7CiB0eXBlZGVmIGJvb2wgKCpNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKShj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKLXR5cGVk
ZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciwg
TWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUsCit0eXBl
ZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVJlZ2lzdHJhcikoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLCBN
ZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKICAgICBN
ZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNo
ZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRz
S2V5U3lzdGVtKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0ZXIpKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDY2MGIwYzAwMjVkMWI3ZGU3YzVkNzVhYTFiYzc1Yjg4
OGJjMWZlODUuLmQ4OTM5ODdiNTMyNDRhODU1MTRlMjEzZTIxZDY2YmNlZDU1OTkwYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgR2VuZXJpY0N1ZURhdGE7CiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
LCBwdWJsaWMgQVZGSW5iYW5kVHJhY2tQYXJlbnQKIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KCk7CiAgICAgdmlydHVhbCB2b2lkIG1ldGFkYXRhTG9hZGVkKCk7CkBA
IC0xNDQsNyArMTQ1LDYgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAogICAgIFdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDI3NWQ5ZTEy
NWQyNzBhMmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYuLmVkOWMwZWFjZDdiNzIyOWUzYzZiMWUx
NjM5NzUzZTIzYzIwZjlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtMzM1LDE1ICszMzUsMTAg
QEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsTG9hZGVyRGVsZWdhdGVRdWV1ZSgpCiB9
CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikg
Ci17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQog
ewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRT
dXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7
CisgICAgICAgIHJlZ2lzdHJhcihBVkZvdW5kYXRpb25DRlBsYXllciwgZ2V0U3VwcG9ydGVkVHlw
ZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0ZW0pOwogfQogCiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggMmFjMDE0NGRhYTkz
OGNkMjMwMmM2YjJkNjdkZGEzMDM1MDA4NDdkMy4uNDRhOGNmNjM5NTAyYjVlMmUxN2I4YzQzYWE3
Mzg4NzJlN2IyMTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgV2Vi
Q29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1Ymxp
YzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBs
YXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwpAQCAtNTgsMTAg
KzU5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBFbmdpbmUgc3VwcG9ydAotICAg
IHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1l
ZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggZjJiOGUzYjdhMmFj
MDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uN2U3ZDk3N2VmYzA3Nzc4ZDdmYzExZDhiYjk4
MWJmZWVmZjZjNTY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtNjksNiArNjksNyBAQCBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
IHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhcik7CkBAIC0xMzEsMTAgKzEzMiw3IEBAIHB1YmxpYzoKICAgICBXZWFr
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgot
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKLQog
ICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBn
ZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IDliZGE4YzgzNzg1ODIyNzZmYjQxNWZjYjVhMmE1ZDQ0N2U3ZjdjOWMu
LmNjNzEzZGY1MmJiZmNhYzFhOGE4MTFjOGFmMzA3ZThhN2M2MDZkY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQpAQCAtMzgzLDE1ICszODMsMTAgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3Qg
Z2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogfQogI2VuZGlmCiAKLVBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKHBsYXllcikpOwotfQotCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgp
KQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNU
eXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lzdHJhcihBVkZv
dW5kYXRpb25PYmpDUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIq
IHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOWM4OTZiNTEzODAwMDcxYjBm
M2EwMmEyNDRjNTA0ODAzYjNiZmU1My4uNTdlMzcyZThjY2Y3YjRhN2E0YTViY2U0ZTRhODQzNjk5
OTdlOWMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTQ5LDEzICs0OSwxMSBAQCBj
bGFzcyBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
IHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVk
aWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMoKTsKIAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCi0gICAgLy8gTWVkaWFQbGF5ZXIgRmFjdG9yeSBNZXRo
b2RzCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwog
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
aW5kZXggY2Y3YWIyZmYzMDZhN2I1ODdjMjBmZDNlMDMyNDU3NjEzODgxZmYzMy4uZjRiOWUyY2U4
NmQyM2E2MDUxYjM1OTQwY2M0ZGMzN2NiZDY4NGJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQpAQCAtMTk1LDEyICsxOTUsNyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoKQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQot
ICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBl
LCAwLCAwLCAwLCAwKTsKLX0KLQotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7CisgICAgICAgIHJlZ2lzdHJhcihNZWRpYVNv
dXJjZUFWRk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAs
IDAsIDApOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
aXNBdmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCA4YWM4ZmNjZmJhYjNhMTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi4w
ZTExMzZiNTYzMGViYmM5NDAyYWZiMTA5MzkyYWUwZTkyYWRjMjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM4LDE1ICsxMzgsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldEF1ZGlvU3RyZWFtUHJvcGVy
dGllcyhHT2JqZWN0KiBvYmplY3QpCiAgICAgTE9HX01FRElBX01FU1NBR0UoIlNldCBtZWRpYS5y
b2xlIGFzICVzIGF0ICVzIiwgcm9sZSwgZWxlbWVudE5hbWUuZ2V0KCkpOwogfQogCi1QYXNzT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVS
ZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICBy
ZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAw
LCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKEdTdHJlYW1lclBsYXllciwgZ2V0U3VwcG9ydGVkVHlw
ZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgaW5pdGlhbGl6ZUdTdHJl
YW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDUwODQ5MjE5ODJjNjE4NDMyYTFhYTJmMWZmYTlj
MGY4MWMzMWJhNzYuLjY2OWZiNTZhMzFhYWUzYWU3ZjE3NDI4Mjc0Zjk5MTJiMjMyNzhjNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTU3LDcg
KzU3LDkgQEAgY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisK
ICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
KTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhh
bmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0x
MjYsMTAgKzEyOCw2IEBAIHB1YmxpYzoKICAgICBib29sIGNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0
U3RhdGUpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRp
YVBsYXllciopOwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKLQogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggODBjMmNlYTU5MTNhNDI1MmJl
MWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uZWMzMWE3NzQ1MGE3NDhhMTBmOTMzZjMzMmMzNzFiNGUx
NWFjZjQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAgLTUwLDYgKzUwLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQg
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKKyAgICBleHBs
aWNpdCBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciopOwogICAgIH5NZWRpYVBs
YXllclByaXZhdGVRVEtpdCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCkBAIC02MywxMCArNjQsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBsYXllckhvc3RDaGFuZ2VkKFBsYXRmb3JtTGF5ZXIqIHJvb3RM
YXllcik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5
ZXIqKTsKLQotICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0K
aW5kZXggYWY2NTllNWQ4Y2Q0ZDRhOTYxODc2MzZjNGVjOTRmODI2OGNjNjQ4ZS4uYzMzNjA4ZTkx
MGRlMjI0NTQ2MjViMmZiMDQ1Yzg4Njk0MGYzMTQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbQpAQCAtMTY2LDE1ICsxNjYsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXll
cikKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVRVEtpdChw
bGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZh
aWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUsIDApOworICAgICAgICByZWdpc3RyYXIoUVRLaXRQbGF5ZXIsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVh
ck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIDApOwogfQogCiBNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqIHBsYXll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5k
ZXggOGExY2VlNmZiMjM2ZWEzZThhNmZkZGEyZjEwYjE1NzlmNWIyNmM2ZS4uN2YzMmE2NDliOGIz
MDBhYzU3OTgzMzY3MDI3ZjE4NDBjNzY1ZWEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQxLDE1ICs0MSwxMCBAQCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bihNZWRpYVBsYXllcgogewogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpjcmVhdGUoTWVkaWFQbGF5
ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbihwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb246OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIg
cmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIo
Y3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKKyAg
ICAgICAgcmVnaXN0cmFyKE1lZGlhRm91bmRhdGlvblBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMs
IHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uOjppc0F2YWlsYWJsZSgpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5oCmluZGV4IGI5YWUwYzU1ZDU1ZmFlZWJmZmU0MTJhNWFmZTFi
ZTU0ZTc5NTM4YTIuLmJiYTUzNmM2YTJmYWNmY2ZlODRlYjgxNmRkM2VmODVjMzFhZmM4MDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKQEAgLTMwLDEw
ICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBw
dWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVy
Kik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlh
UGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhcik7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKaW5kZXggYzY2MTc4Yjk2NzdjZjg0OTY1ZDk4
YmY4OGJlM2EzOTg2ZjdlMzhkYS4uOWZhNjRkOTNmYmMyY2IzZmNlNDMyNjdmODIxMTBmYmJhNzVm
YTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAg
LTQxLDEyICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIE1lZGlhUGxheWVyIEVuaWdu
ZSBTdXBwb3J0CiB2b2lkIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpyZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKLSAgICByZWdpc3RyYXIo
Y3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKLX0K
LQotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1vY2tNZWRpYVBsYXll
ck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBsYXllcikpOworICAgIHJl
Z2lzdHJhcihNb2NrTWVkaWFTb3VyY2VQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBl
Q2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGI2
Njk0ZDhlZDg3Mzc5ODllYjBiZjZlZWY5NjM5MDYzNjVmZmI5N2YuLmYyODM5N2M5YzdiODExMDBl
ZTFhNGRkNWFhODdlNGM5YWVhMTYyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmgKQEAgLTM4LDkgKzM4LDEwIEBAIGNsYXNzIE1vY2tNZWRpYVNvdXJjZVByaXZh
dGU7CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKwogICAgIC8vIE1lZGlhUGxheWVyIEVuZ2lu
ZSBTdXBwb3J0CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogCkBAIC01Niw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlZWtDb21wbGV0
ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBs
YXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRlcwogICAgIHZpcnR1
YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3Zl
cnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240235</attachid>
            <date>2014-10-21 18:26:34 -0700</date>
            <delta_ts>2014-10-22 00:01:34 -0700</delta_ts>
            <desc>Patch for mac ews</desc>
            <filename>bug-137765-20141022102639.patch</filename>
            <type>text/plain</type>
            <size>40968</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA0ZjkyZGZjMTFiYTU0
MjgxYzVjYzgyNTZkMzA2ZDQ4MzVkOTRiOC4uZDJiYjhiYTc5YjY1YTJkMGUxNTFhMjU2ZWU5ZmI4
MDUzZDk4YWVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIxICBBZGEgQ2hhbiAgPGFk
YWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxpbmcgV2ViQ29yZTo6UGFnZTo6c2V0TWVk
aWFWb2x1bWUoMCkgZG9lcyBub3QgbXV0ZSB2aWRlb3MgYXMgZXhwZWN0ZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDQxM2U0MDZhZjRlOTM3YjIyMmY3MWZiZWFkZDJlZGJmZmMyZmNhMjcuLmY5
MzA3OTAyMjU0ODBkZDNiNTk3NzlkYzgxZjRkOWEyZDBiZjNiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0zMjMyLDcgKzMyMzIsNyBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM2dldFRvdWNo
UmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVMbTBFTlMxXzE1Q3Jhc2hPbgogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCiBfX1pON1dlYkNvcmUxMlNvdXJjZUJ1ZmZlcjI1YnVmZmVyZWRT
YW1wbGVzRm9yVHJhY2tJREVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmUxNEpT
U291cmNlQnVmZmVyOXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQotX19aTjdXZWJDb3JlMjZNb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRk4zV1RGMTBQ
YXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQ
bGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFf
MTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hP
bk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hfRUUKK19fWk43V2ViQ29yZTI2TW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UxOXJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2TlNfMjFNZWRp
YUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hTZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3Ry
aW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVFUEZOU18xMU1lZGlhUGxheWVyMTJTdXBw
b3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZl
Y3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1Nf
U1NfRUUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTM0MDgsNyArMzQw
OCw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIyY2xlYXJNZWRpYUNhY2hlRm9y
U2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDRwbGF5
RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVwYXVzZUV2CiBfX1pON1dlYkNvcmUx
NkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZh
Y3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk4zV1RGMTBQYXNz
T3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5
ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBI
YXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92
ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hfRUVFCitfX1pON1dlYkNvcmUyNU1lZGlh
UGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rlck1lZGlhRW5naW5lRVBGdlBGdk5TXzIx
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlRVBGdlJOM1dURjdIYXNoU2V0SU5TMl82U3RyaW5nRU5TMl8x
MFN0cmluZ0hhc2hFTlMyXzEwSGFzaFRyYWl0c0lTNF9FRUVFRVBGTlNfMTFNZWRpYVBsYXllcjEy
U3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMy
XzZWZWN0b3JJUzRfTG0wRU5TMl8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2RVBGdlJLUzRfRVBG
YlNTX1NTX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RP
TUdsb2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQogX19aTks3V2ViQ29yZTEwVGltZVJhbmdl
czduZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1l
RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxNjVkYWM5YWVjOGZjMjJkOGUxMWU2NTY3Yjg2Nzc0MTU0NTVlMjgxLi5iNDVlMTE3
M2QwYTQyNDc4YWNmZTVlNTZjY2MwYmNlODgwOGUxNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTc2LDYgKzU1NzYsNyBA
QAogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNw
cCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlG
OTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CisJCUNC
Qjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENCQjc0NUZGMTlGNzNDMjYw
MDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0NDMkI1MTUxNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2
aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTI5OTMsNiAr
MTI5OTQsNyBAQAogCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0JCNzQ1RkYxOUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlh
RW5naW5lUGxheWVyVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YUVuZ2luZVBsYXllclR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1
MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNDc1LDYgKzIw
NDc3LDcgQEAKIAkJCQkxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAg
Ki8sCiAJCQkJMTQxREMwNEQxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuaCAqLywKIAkJ
CQkxNDFEQzA0RTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0U2l6ZS5oICovLAorCQkJCUNCQjc0
NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUuaCAqLywKIAkJCQlF
NEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIuY3BwICovLAogCQkJCUU0QjQx
RTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXllci5oICovLAogCQkJCTA3OUY1RTRCMEYz
QkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKQEAgLTI0NDUwLDYgKzI0
NDUzLDcgQEAKIAkJCQlBOEQyMjNGRTE2QjUyRTRFMDAxNTcyODggLyogSFRNTFJlc291cmNlUHJl
bG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREMyNTBBMTUyMDU3MDBCMTJBNjggLyog
SFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc1MTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQkI3NDYw
MDE5RjczREE4MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NzdCMzg3NjEyMjg4M0U5MDBCODFGRjggLyogSFRNTFNjcmlwdFJ1bm5lckhvc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2Vs
ZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzQTgwQ0Q2MzMxMDAwRkFEQTc1
IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDIwNGQyMGM4OGJhZGRmYWM1NzgxNWYwNThmZTNk
OGMzZDAzZWY4NGQuLjcyNGY3Yjg1MTFhMGJmMDdiZjY4MGEzYTkyZTJmNTg1ODYwNzE5OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDY0NSw3ICs0NjQ1
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVyKGludCBmbGFncykK
ICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYKIAotICAgIG1fcGxheWVyLmNsZWFyKCk7
CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgc3RvcFBlcmlvZGljVGltZXJzKCk7CiAg
ICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDY5Miw3ICs0NjkyLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFuIGFjdGl2ZSBET00gb2JqZWN0IGhhcyBi
ZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0ZWQsIHNvIHdlIGNhbiBkZWFsbG9jYXRl
CiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5vdGUgdGhhdCB1c2VyQ2FuY2VsbGVkTG9h
ZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBwbGF5ZXIKICAgICAvLyBpZiB0aGUgbWVk
aWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFuZGxlcyBhbGwgb3RoZXIgY2FzZXMuCi0g
ICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICB1cGRh
dGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTMzMyw3ICs1MzMzLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKICNlbmRpZgotICAgIG1fcGxheWVy
ID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgbV9wbGF5ZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxNZWRpYVBsYXllckNsaWVudCY+KCp0aGlz
KSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGlmIChtX2F1ZGlvU291cmNlTm9kZSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAxM2VhN2FkNmI4YTUw
NDNmYTAxNzg4ZDM1MGQ3ZWY4YTg0OGJjYzNhLi40MGEwZTE4YzdiZmI0ZGFlMmZjNGY2ZWEwNTFj
ZjMyNTA0YTE0MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAt
NzcwLDcgKzc3MCw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBt
X3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYKIAotICAgIE93blB0cjxNZWRpYVBsYXll
cj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsK
IAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYUVuZ2luZVBsYXllclR5cGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNTc1NjgxODA3MDVjMDRkZmY5YjRlZmJkZDUzNTRkMTBkZDI2YTA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdp
bmVQbGF5ZXJUeXBlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBTYW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRlZiBNZWRpYUVuZ2luZVBs
YXllclR5cGVfaAorI2RlZmluZSBNZWRpYUVuZ2luZVBsYXllclR5cGVfaAorCituYW1lc3BhY2Ug
V2ViQ29yZSB7Cit0eXBlZGVmIGVudW0geworICAgIE51bGxNZWRpYVBsYXllciwKKyAgICBBVkZv
dW5kYXRpb25DRlBsYXllciwKKyAgICBBVkZvdW5kYXRpb25PYmpDUGxheWVyLAorICAgIE1lZGlh
U291cmNlQVZGT2JqQ1BsYXllciwKKyAgICBHU3RyZWFtZXJQbGF5ZXIsCisgICAgUVRLaXRQbGF5
ZXIsCisgICAgTWVkaWFGb3VuZGF0aW9uUGxheWVyLAorICAgIE1vY2tNZWRpYVNvdXJjZVBsYXll
cgorfSAgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4YWQ3OWRiNzdj
OWIwNTM2YTcwZjY0ZWQ2MWEzZTZmMjFlNTdkM2UyLi45ZTM4MjY5MGM2NTc5YTRmMDQ4ZmVhMzYy
NWJkNmFhNjk4OTM5MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisjaW5jbHVk
ZSAiTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaCIKICNlbmRpZgogI2VuZGlmCiAjZWxpZiBQ
TEFURk9STShXSU4pICYmICFVU0UoR1NUUkVBTUVSKQpAQCAtNzgsNyArNzksNyBAQCBjb25zdCBQ
bGF0Zm9ybU1lZGlhIE5vUGxhdGZvcm1NZWRpYSA9IHsgUGxhdGZvcm1NZWRpYTo6Tm9uZSwgezB9
IH07CiAKIGNsYXNzIE51bGxNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1l
ZGlhUGxheWVyKikgeyB9CisgICAgZXhwbGljaXQgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRp
YVBsYXllciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE0NCwzOSArMTQ1LDczIEBAIHB1YmxpYzoK
ICNlbmRpZgogfTsKIAotc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGVOdWxsTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShwbGF5ZXIpKTsgCi19
Ci0KIAogLy8gZW5naW5lIHN1cHBvcnQKIAogc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXJGYWN0b3J5KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJGYWN0b3J5KENyZWF0ZU1lZGlh
RW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1
cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MsCisgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KE1lZGlhRW5naW5lUGxheWVyVHlwZSBwbGF5ZXJU
eXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVzLCBNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3MsCiAgICAgICAgIE1lZGlhRW5n
aW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5l
Q2xlYXJNZWRpYUNhY2hlIGNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlT
eXN0ZW0gc3VwcG9ydHNLZXlTeXN0ZW0pCi0gICAgICAgIDogY29uc3RydWN0b3IoY29uc3RydWN0
b3IpCi0gICAgICAgICwgZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCi0gICAg
ICAgICwgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKHN1cHBvcnRzVHlwZUFuZENvZGVjcykKLSAgICAg
ICAgLCBnZXRTaXRlc0luTWVkaWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNoZSkKLSAgICAgICAg
LCBjbGVhck1lZGlhQ2FjaGUoY2xlYXJNZWRpYUNhY2hlKQotICAgICAgICAsIGNsZWFyTWVkaWFD
YWNoZUZvclNpdGUoY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSkKLSAgICAgICAgLCBzdXBwb3J0c0tl
eVN5c3RlbShzdXBwb3J0c0tleVN5c3RlbSkKKyAgICAgICAgICAgIDogcGxheWVyVHlwZShwbGF5
ZXJUeXBlKQorICAgICAgICAgICAgLCBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBl
cykKKyAgICAgICAgICAgICwgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKHN1cHBvcnRzVHlwZUFuZENv
ZGVjcykKKyAgICAgICAgICAgICwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlh
Q2FjaGUpCisgICAgICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShjbGVhck1lZGlhQ2FjaGUpCisg
ICAgICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSkKKyAgICAgICAgICAgICwgc3VwcG9ydHNLZXlTeXN0ZW0oc3VwcG9ydHNLZXlTeXN0ZW0pCiAg
ICAgewogICAgIH0KIAotICAgIENyZWF0ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yOwor
ICAgIE1lZGlhRW5naW5lUGxheWVyVHlwZSBwbGF5ZXJUeXBlOwogICAgIE1lZGlhRW5naW5lU3Vw
cG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXM7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzOwogICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlh
Q2FjaGUgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGU7CiAgICAgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2Fj
aGUgY2xlYXJNZWRpYUNhY2hlOwogICAgIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlOwogICAgIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0
ZW0gc3VwcG9ydHNLZXlTeXN0ZW07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChwbGF5ZXJUeXBlKSB7CisgICAgICAgIGNhc2UgTnVsbE1l
ZGlhUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlh
UGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKKyNpZiBQTEFURk9STShXSU4pICYmIEVOQUJMRShWSURF
TykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICAgICAgY2FzZSBBVkZvdW5kYXRpb25DRlBsYXll
cjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGPihwbGF5ZXIpOworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQorICAgICAgICBjYXNlIEFWRm91bmRhdGlvbk9iakNQbGF5ZXI6Cisg
ICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDPihwbGF5ZXIpOworI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKKyAgICAgICAgY2FzZSBNZWRpYVNvdXJjZUFWRk9iakNQbGF5
ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM+KHBsYXllcik7CisjZW5kaWYKKyNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShHU1RSRUFNRVIpCisgICAgICAgIGNhc2UgR1N0cmVhbWVyUGxheWVyOgorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
PihwbGF5ZXIpOworI2VuZGlmCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9STShNQUMpCisg
ICAgICAgIGNhc2UgUVRLaXRQbGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKTsKKyNlbmRpZgorI2lmIFVTRShN
RURJQV9GT1VOREFUSU9OKQorICAgICAgICBjYXNlIE1lZGlhRm91bmRhdGlvblBsYXllcjoKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisg
ICAgICAgIGNhc2UgTW9ja01lZGlhU291cmNlUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U+KHBsYXllcik7CisjZW5k
aWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0
ZT4ocGxheWVyKTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKLXN0YXRpYyB2b2lkIGFkZE1lZGlh
RW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVz
LCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSk7CitzdGF0aWMgdm9pZCBhZGRN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlw
ZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNh
Y2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIAogc3RhdGljIE1lZGlh
UGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yU3VwcG9ydFBhcmFtZXRlcnMoY29uc3Qg
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVu
dCA9IDApOwogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlh
UGxheWVyRmFjdG9yeSogY3VycmVudCk7CkBAIC0yMjMsMTQgKzI1OCwxNCBAQCBzdGF0aWMgVmVj
dG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVu
Z2luZU9wdGlvbnMgcgogICAgIHJldHVybiBpbnN0YWxsZWRFbmdpbmVzOwogfQogCi1zdGF0aWMg
dm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3Rvciwg
TWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlLAorc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMg
Z2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwK
ICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5l
Q2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRzS2V5U3lzdGVtKQogewotICAgIEFTU0VSVChjb25z
dHJ1Y3Rvcik7CisgICAgQVNTRVJUKHBsYXllclR5cGUpOwogICAgIEFTU0VSVChnZXRTdXBwb3J0
ZWRUeXBlcyk7CiAgICAgQVNTRVJUKHN1cHBvcnRzVHlwZSk7CiAKLSAgICBpbnN0YWxsZWRNZWRp
YUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9yeShjb25zdHJ1Y3RvciwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsK
KyAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9y
eShwbGF5ZXJUeXBlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0lu
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBzdXBw
b3J0c0tleVN5c3RlbSkpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcHBsaWNh
dGlvbk9jdGV0U3RyZWFtKCkKQEAgLTMwOCw3ICszNDMsNyBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJG
YWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogTWVk
aWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKHRoaXMsICZNZWRpYVBsYXllcjo6
cmVsb2FkVGltZXJGaXJlZCkKLSAgICAsIG1fcHJpdmF0ZShjcmVhdGVOdWxsTWVkaWFQbGF5ZXIo
dGhpcykpCisgICAgLCBtX3ByaXZhdGUoc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlPih0aGlzKSkKICAgICAsIG1fY3VycmVudE1lZGlhRW5naW5lKDApCiAgICAgLCBtX3By
ZWxvYWQoQXV0bykKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKQEAgLTQwOSw3ICs0NDQsNyBAQCB2
b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3Rv
cnkqIGN1cnJlbnQpCiAgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIGlm
IChtX2N1cnJlbnRNZWRpYUVuZ2luZSAhPSBlbmdpbmUpIHsKICAgICAgICAgbV9jdXJyZW50TWVk
aWFFbmdpbmUgPSBlbmdpbmU7Ci0gICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y29uc3RydWN0
b3IodGhpcyk7CisgICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y3JlYXRlTWVkaWFQbGF5ZXIo
dGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsK
ICAgICAgICAgbV9wcml2YXRlLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1fcHJpdmF0ZUJyb3dz
aW5nKTsKICAgICAgICAgbV9wcml2YXRlLT5zZXRQcmVsb2FkKG1fcHJlbG9hZCk7CkBAIC00MjYs
NyArNDYxLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVk
aWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogI2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9h
ZChtX3VybC5zdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3Jl
YXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpOworICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5t
ZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxh
eWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggN2M2YWRkNmIzNzYyOGNjMTc0
NjUyOWZjNGU3Yzk1MWVhMTg2MTM5OC4uYThhZGZkZTc0YTdjMzkzZWU3YmQ5M2I5OWVhNTE3ODQz
NzU0NzNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYUVuZ2luZVBs
YXllclR5cGUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZVB0ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTQ1LDggKzQ2LDYgQEAK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQpAQCAtMjc4LDExICsyNzcsNyBAQCBwdWJsaWM6
CiBjbGFzcyBNZWRpYVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNz
T3duUHRyPE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7Ci0g
ICAgfQorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAg
dmlydHVhbCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpA
QCAtNTc3LDcgKzU3Miw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5
ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRCZXN0TWVkaWFFbmdpbmUo
TWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVu
Z2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lkIHJlbG9hZFRpbWVyRmlyZWQoVGlt
ZXI8TWVkaWFQbGF5ZXI+Jik7CkBAIC01ODYsNyArNTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIE1l
ZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxv
YWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZh
dGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9w
cml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CiAg
ICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKQEAgLTYwOCw3ICs2
MDIsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBs
YXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYgcGFyYW1ldGVycyk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRp
YUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNjE2LDcgKzYwOSw3IEBAIHR5cGVkZWYgdm9p
ZCAoKk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFF
bmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIHR5cGVkZWYgYm9v
bCAoKk1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVS
ZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5
cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
UmVnaXN0cmFyKShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlw
ZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAogICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVk
aWFDYWNoZUZvclNpdGUsIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogdHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RlcikoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5k
ZXggNjYwYjBjMDAyNWQxYjdkZTdjNWQ3NWFhMWJjNzViODg4YmMxZmU4NS4uZDg5Mzk4N2I1MzI0
NGE4NTUxNGUyMTNlMjFkNjZiY2VkNTU5OTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtNDYsNiArNDYsNyBAQCBjbGFz
cyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFj
a1BhcmVudAogewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbihNZWRpYVBsYXllciopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQoKTsKQEAgLTE0NCw3ICsxNDUsNiBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbigpOwogCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMjc1ZDllMTI1ZDI3MGEyYWI1MDQ4ZmZlZmRmZDVj
YTkxNTEwNjAyNi4uZWQ5YzBlYWNkN2I3MjI5ZTNjNmIxZTE2Mzk3NTNlMjNjMjBmOWEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwCkBAIC0zMzUsMTUgKzMzNSwxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVl
dWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIpKTsKLX0KLQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFW
Rm91bmRhdGlvbkNGUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciogcGxh
eWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaAppbmRleCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUw
MDg0N2QzLi40NGE4Y2Y2Mzk1MDJiNWUyZTE3YjhjNDNhYTczODg3MmU3YjIxMGUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVy
OwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB0
cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CkBAIC01OCwxMCArNTksNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAK
IHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5
ZXIqKTsKLQogICAgIC8vIEVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lz
dGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAppbmRleCBmMmI4ZTNiN2EyYWMwNTQ2ODUzY2YzMzg5NjdmYjE0Yjg3
MmE1ODQ2Li43ZTdkOTc3ZWZjMDc3NzhkN2ZjMTFkOGJiOTgxYmZlZWZmNmM1NjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQzsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBz
dGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAg
LTEzMSwxMCArMTMyLDcgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQK
LSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0
ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOWJkYThj
ODM3ODU4MjI3NmZiNDE1ZmNiNWEyYTVkNDQ3ZTdmN2M5Yy4uY2M3MTNkZjUyYmJmY2FjMWE4YTgx
MWM4YWYzMDdlOGE3YzYwNmRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zODMsMTUg
KzM4MywxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1
ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciBy
ZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihj
cmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRz
S2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbk9iakNQbGF5ZXIsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVt
KTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaAppbmRleCAwNzdhYzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2Ix
Li41NzVlZmE1ODM4NGIwNTQyZmU3ZTc1ZmU5YjJlZDc1NTQ4YmUwMzU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaApAQCAtNTAsMTMgKzUwLDExIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwog
ICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAg
ICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7
CiAKLSAgICAvLyBNZWRpYVBsYXllciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBmMGViNjFjYWE4ZTA0ZmU3
N2I4YTc2ZGY1NWIwYzBhMTgwZTI2YjE4Li5jODk3OGUyMWVlNGIxZTAzZTQ2N2UyZTNiYTM2NWFk
OGI5ODIxZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xOTYsMTIgKzE5Niw3
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdp
c3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVh
dGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhw
bGF5ZXIpKTsKKyAgICAgICAgcmVnaXN0cmFyKE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDhhYzhmY2Nm
YmFiM2ExNzU2ZDE5NzJlZDc0YzdkMDY4ZGUzZDk2OGYuLjBlMTEzNmI1NjMwZWJiYzk0MDJhZmIx
MDkzOTJhZTBlOTJhZGMyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCkBAIC0xMzgsMTUgKzEzOCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkK
ICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xl
LCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXll
ciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7
CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1
cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3Ry
YXIoR1N0cmVhbWVyUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCAwKTsKIH0KIAogYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRF
bGVtZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
aW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFhMmYxZmZhOWMwZjgxYzMxYmE3Ni4uNjY5ZmI1NmEz
MWFhZTNhZTdmMTc0MjgyNzRmOTkxMmIyMzI3OGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTcsNyArNTcsOSBAQCBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAg
IGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogICAg
IH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogICAgIGdib29sZWFuIGhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSopOwogICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVz
dWx0KEdzdEluc3RhbGxQbHVnaW5zUmV0dXJuKTsKQEAgLTEyNiwxMCArMTI4LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0g
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwotCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQuaAppbmRleCA4MGMyY2VhNTkxM2E0MjUyYmUxYmRmMmE3MzAwMTNlNmEzYTg0NmY1
Li5lYzMxYTc3NDUwYTc0OGExMGY5MzNmMzMyYzM3MWI0ZTE1YWNmNDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVRVEtpdCA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhcik7CiAKQEAgLTYzLDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxh
eWVySG9zdENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVyKTsKIAogcHJpdmF0ZToKLSAg
ICBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciopOwotCi0gICAgLy8gZW5naW5l
IHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBhZjY1OWU1ZDhjZDRkNGE5
NjE4NzYzNmM0ZWM5NGY4MjY4Y2M2NDhlLi5jMzM2MDhlOTEwZGUyMjQ1NDYyNWIyZmIwNDVjODg2
OTQwZjMxNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNjYsMTUgKzE2
NiwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBsYXllcikpOwotfQotCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVn
aXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7
CisgICAgICAgIHJlZ2lzdHJhcihRVEtpdFBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRp
YUNhY2hlRm9yU2l0ZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCA4YTFjZWU2ZmIyMzZlYTNlOGE2
ZmRkYTJmMTBiMTU3OWY1YjI2YzZlLi43ZjMyYTY0OWI4YjMwMGFjNTc5ODMzNjcwMjdmMTg0MGM3
NjVlYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcApAQCAtNDEsMTUgKzQxLDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bjo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyCiB7CiB9CiAK
LVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXll
cikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoTWVkaWFG
b3VuZGF0aW9uUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAw
LCAwKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmlzQXZh
aWxhYmxlKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgK
aW5kZXggYjlhZTBjNTVkNTVmYWVlYmZmZTQxMmE1YWZlMWJlNTRlNzk1MzhhMi4uYmJhNTM2YzZh
MmZhY2ZjZmU4NGViODE2ZGQzZWY4NWMzMWFmYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAtMzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMg
dm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlh
UGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmNwcAppbmRleCBjNjYxNzhiOTY3N2NmODQ5NjVkOThiZjg4YmUzYTM5ODZmN2UzOGRhLi45
ZmE2NGQ5M2ZiYzJjYjNmY2U0MzI2N2Y4MjExMGZiYmE3NWZhOTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcApAQCAtNDEsMTIgKzQxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLy8gTWVkaWFQbGF5ZXIgRW5pZ25lIFN1cHBvcnQKIHZvaWQgTW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UocGxheWVyKSk7CisgICAgcmVnaXN0cmFyKE1vY2tNZWRpYVNvdXJj
ZVBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9
CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXggYjY2OTRkOGVkODczNzk4OWViMGJmNmVl
Zjk2MzkwNjM2NWZmYjk3Zi4uZjI4Mzk3YzljN2I4MTEwMGVlMWE0ZGQ1YWE4N2U0YzlhZWExNjI1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaApAQCAtMzgsOSAr
MzgsMTAgQEAgY2xhc3MgTW9ja01lZGlhU291cmNlUHJpdmF0ZTsKIAogY2xhc3MgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsK
IHB1YmxpYzoKKyAgICBleHBsaWNpdCBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBs
YXllciopOworCiAgICAgLy8gTWVkaWFQbGF5ZXIgRW5naW5lIFN1cHBvcnQKICAgICBzdGF0aWMg
dm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKLSAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKQEAgLTU2LDggKzU3
LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2Vla0NvbXBsZXRlZCgpOwogCiBwcml2YXRlOgotICAg
IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBNZWRp
YVBsYXllclByaXZhdGUgT3ZlcnJpZGVzCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3Ry
aW5nJiB1cmwpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYg
dXJsLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240253</attachid>
            <date>2014-10-22 00:01:45 -0700</date>
            <delta_ts>2014-10-22 21:48:49 -0700</delta_ts>
            <desc>Patch for gtk</desc>
            <filename>bug-137765-20141022160151.patch</filename>
            <type>text/plain</type>
            <size>43108</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThlMDk0MWI2YmE5YTg5
OTkyNDdjNGYwOTc2MzZkNTk5MTBhY2MyNi4uMGUwZDMyYjI0NTE4ZDViNDc1OTJmNzkxZjgzMGYy
ODQxOWM0YzJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIxICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmUgbW9yZSBpT1MgYnVpbGQgZml4IGFmdGVy
IHIxNzUwMTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDgyMmE2MDQ3NjJlN2Q2NTNjYzIxNjQ4
YmNkZmE5MjgzYzcyMDU2YjQuLjJmMTkzOTJkNWFjMjkxZmRlMmY3ZTJlZjJhOWJkODI0YjMwZWI2
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTY4LDEyICsyMTY4LDE5IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAK
ICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhQ29uc3RyYWludHNNb2NrLmNwcAogICAgIHBsYXRmb3Jt
L21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAorICAgIHBsYXRmb3JtL21vY2svUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCiAgICAgcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hh
bm5lbEhhbmRsZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDRFRNRlNlbmRlckhhbmRs
ZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDTm90aWZpZXJzTW9jay5jcHAKICAgICBw
bGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCiAgICAgcGxhdGZv
cm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCiAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tCb3guY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVNvdXJjZVByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tUcmFja3MuY3BwCisKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcApAQCAtMzEyMywxNCArMzEz
MCw2IEBAIHNldChXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCiApCiAKIHNldChXZWJDb3Jl
VGVzdFN1cHBvcnRfU09VUkNFUwotICAgIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwCi0KLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3gu
Y3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZS5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVBy
aXZhdGUuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tUcmFja3MuY3Bw
Ci0KICAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCiAgICAgdGVzdGluZy9JbnRlcm5h
bHMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDEzZTQwNmFmNGU5MzdiMjIyZjcxZmJl
YWRkMmVkYmZmYzJmY2EyNy4uZjkzMDc5MDIyNTQ4MGRkM2I1OTc3OWRjODFmNGQ5YTJkMGJmM2I3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMyMzIsNyArMzIzMiw3IEBAIF9fWk43V2ViQ29y
ZThEb2N1bWVudDEzZ2V0VG91Y2hSZWN0c0VSTjNXVEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxtMEVO
UzFfMTVDcmFzaE9uCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIF9fWk43V2ViQ29yZTEyU291
cmNlQnVmZmVyMjVidWZmZXJlZFNhbXBsZXNGb3JUcmFja0lERVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0UKIF9fWk43V2ViQ29yZTE0SlNTb3VyY2VCdWZmZXI5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVF
Ci1fX1pON1dlYkNvcmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlMTlyZWdpc3Rlck1lZGlh
RW5naW5lRVBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNldElOUzFfNlN0cmluZ0VO
UzFfMTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQRk5TNV8xMlN1cHBvcnRz
VHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TMV82VmVjdG9y
SVNBX0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NBX0VQRmJTWF9TWF9F
RQorX19aTjdXZWJDb3JlMjZNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJNZWRp
YUVuZ2luZUVQRnZOU18yMU1lZGlhRW5naW5lUGxheWVyVHlwZUVQRnZSTjNXVEY3SGFzaFNldElO
UzJfNlN0cmluZ0VOUzJfMTBTdHJpbmdIYXNoRU5TMl8xMEhhc2hUcmFpdHNJUzRfRUVFRUVQRk5T
XzExTWVkaWFQbGF5ZXIxMlN1cHBvcnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVyc0VFUEZ2Uk5TMl82VmVjdG9ySVM0X0xtMEVOUzJfMTVDcmFzaE9uT3ZlcmZsb3dFRUVF
UEZ2dkVQRnZSS1M0X0VQRmJTU19TU19FRQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpAQCAtMzQwOCw3ICszNDA4LDcgQEAgX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MjJjbGVhck1lZGlhQ2FjaGVGb3JTaXRlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50NHBsYXlFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NXBh
dXNlRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDhzZXRNdXRlZEViCi1fX1pON1dl
YkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rlck1lZGlhRW5naW5l
RVBGdlBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNldElOUzFfNlN0cmluZ0VOUzFf
MTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQRk5TNV8xMlN1cHBvcnRzVHlw
ZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TMV82VmVjdG9ySVNB
X0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NBX0VQRmJTWF9TWF9FRUUK
K19fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDIzY2FsbFJlZ2lzdGVyTWVk
aWFFbmdpbmVFUEZ2UEZ2TlNfMjFNZWRpYUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hT
ZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3RyaW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVF
UEZOU18xMU1lZGlhUGxheWVyMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZlY3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1NfU1NfRUVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5
RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCiBfX1pO
SzdXZWJDb3JlMTBUaW1lUmFuZ2VzN25lYXJlc3RFZAogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlh
RWxlbWVudDExY3VycmVudFRpbWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2NWRhYzlhZWM4ZmMyMmQ4ZTExZTY1NjdiODY3
NzQxNTQ1NWUyODEuLmI0NWUxMTczZDBhNDI0NzhhY2ZlNWU1NmNjYzBiY2U4ODA4ZTE2N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU1NzYsNiArNTU3Niw3IEBACiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0NDFG
MDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjAg
LyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuaCAqLzsgfTsKKwkJQ0JCNzQ2MDAxOUY3M0RBODAwNTIwNTQzIC8qIE1lZGlhRW5naW5l
UGxheWVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0JCNzQ1RkYxOUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxheWVyVHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNDQzJCNTE0
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDQ0MyQjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMTE1RjYx
MzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNDQzJCNTE2MTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2
aWNlQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMjk5Myw2ICsxMjk5NCw3IEBACiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1
MyAvKiBTY3JvbGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JvbGxBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVj
dFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQkI3NDVGRjE5Rjcz
QzI2MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhRW5naW5lUGxheWVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDQ0MyQjUxMTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZp
Y2VDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTIx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA0NzUsNiArMjA0NzcsNyBAQAogCQkJCTE0MURDMDRDMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKIAkJCQkxNDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyog
TGF5b3V0UmVjdC5oICovLAogCQkJCTE0MURDMDRFMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRT
aXplLmggKi8sCisJCQkJQ0JCNzQ1RkYxOUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxh
eWVyVHlwZS5oICovLAogCQkJCUU0QjQxRTBDMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXll
ci5jcHAgKi8sCiAJCQkJRTRCNDFFMEQwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlhUGxheWVyLmgg
Ki8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5o
ICovLApAQCAtMjQ0NTAsNiArMjQ0NTMsNyBAQAogCQkJCUE4RDIyM0ZFMTZCNTJFNEUwMDE1NzI4
OCAvKiBIVE1MUmVzb3VyY2VQcmVsb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzI1
MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc3QjM4NzUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNCQjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXll
clR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc2MTIyODgzRTkwMEI4MUZGOCAvKiBI
VE1MU2NyaXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RDgwOTczNzRG
NjAwRDc0NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2
MTNBODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMjA0ZDIwYzg4
YmFkZGZhYzU3ODE1ZjA1OGZlM2Q4YzNkMDNlZjg0ZC4uNzI0ZjdiODUxMWEwYmYwN2JmNjgwYTNh
OTJlMmY1ODU4NjA3MTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC00NjQ1LDcgKzQ2NDUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVk
aWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0g
ICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9w
UGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NjkyLDcgKzQ2
OTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0
aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwg
c28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0
aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXll
cgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVz
IGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0g
bnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01MzMzLDcgKzUz
MzMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwog
I2VuZGlmCi0gICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBt
X3BsYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0PE1lZGlh
UGxheWVyQ2xpZW50Jj4oKnRoaXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYg
KG1fYXVkaW9Tb3VyY2VOb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IDEzZWE3YWQ2YjhhNTA0M2ZhMDE3ODhkMzUwZDdlZjhhODQ4YmNjM2EuLjQwYTBlMThj
N2JmYjRkYWUyZmM0ZjZlYTA1MWNmMzI1MDRhMTQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC03NzAsNyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBs
YXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0g
ICAgT3duUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXI+IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2Fk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYUVu
Z2luZVBsYXllclR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
RW5naW5lUGxheWVyVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NzU2ODE4MDcwNWMwNGRmZjliNGVmYmRk
NTM1NGQxMGRkMjZhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYUVuZ2luZVBsYXllclR5cGUuaApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisj
aWZuZGVmIE1lZGlhRW5naW5lUGxheWVyVHlwZV9oCisjZGVmaW5lIE1lZGlhRW5naW5lUGxheWVy
VHlwZV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3R5cGVkZWYgZW51bSB7CisgICAgTnVsbE1l
ZGlhUGxheWVyLAorICAgIEFWRm91bmRhdGlvbkNGUGxheWVyLAorICAgIEFWRm91bmRhdGlvbk9i
akNQbGF5ZXIsCisgICAgTWVkaWFTb3VyY2VBVkZPYmpDUGxheWVyLAorICAgIEdTdHJlYW1lclBs
YXllciwKKyAgICBRVEtpdFBsYXllciwKKyAgICBNZWRpYUZvdW5kYXRpb25QbGF5ZXIsCisgICAg
TW9ja01lZGlhU291cmNlUGxheWVyCit9ICBNZWRpYUVuZ2luZVBsYXllclR5cGU7Cit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCmluZGV4IDhhZDc5ZGI3N2M5YjA1MzZhNzBmNjRlZDYxYTNlNmYyMWU1N2QzZTIuLjVlMTUx
NTExNDRkMDU0YWQ2NWI0NmVlMDFmMTg2YmYzNGQ1NzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50LmgiCisjaW5jbHVkZSAiTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaCIKICNlbmRp
ZgogCiAjaWYgVVNFKEdTVFJFQU1FUikKQEAgLTU2LDE0ICs1NywxNSBAQAogI2RlZmluZSBQbGF0
Zm9ybU1lZGlhRW5naW5lQ2xhc3NOYW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgorI2VuZGlmCisKICNp
ZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgot
I2lmIFVTRShBVkZPVU5EQVRJT04pCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCiAjZW5kaWYKLSNlbmRpZgogI2VsaWYg
UExBVEZPUk0oV0lOKSAmJiAhVVNFKEdTVFJFQU1FUikKICNpZiBVU0UoQVZGT1VOREFUSU9OKQog
I2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgiCkBAIC03OCw3ICs4
MCw3IEBAIGNvbnN0IFBsYXRmb3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhID0geyBQbGF0Zm9ybU1l
ZGlhOjpOb25lLCB7MH0gfTsKIAogY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1Ymxp
YyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE51bGxNZWRpYVBs
YXllclByaXZhdGUoTWVkaWFQbGF5ZXIqKSB7IH0KKyAgICBleHBsaWNpdCBOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlKE1lZGlhUGxheWVyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25z
dCBTdHJpbmcmKSB7IH0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTQ0LDM5ICsxNDYs
NzMgQEAgcHVibGljOgogI2VuZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxh
eWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRl
KHBsYXllcikpOyAKLX0KLQogCiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5
ZXJGYWN0b3J5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZhY3Rvcnkp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllckZhY3Rv
cnkoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZUFuZENvZGVjcywKKyAgICBNZWRpYVBsYXllckZhY3RvcnkoTWVkaWFFbmdpbmVQbGF5
ZXJUeXBlIHBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVk
VHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywKICAg
ICAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNo
ZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2lu
ZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdp
bmVTdXBwb3J0c0tleVN5c3RlbSBzdXBwb3J0c0tleVN5c3RlbSkKLSAgICAgICAgOiBjb25zdHJ1
Y3Rvcihjb25zdHJ1Y3RvcikKLSAgICAgICAgLCBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0
ZWRUeXBlcykKLSAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5k
Q29kZWNzKQotICAgICAgICAsIGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNh
Y2hlKQotICAgICAgICAsIGNsZWFyTWVkaWFDYWNoZShjbGVhck1lZGlhQ2FjaGUpCi0gICAgICAg
ICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQotICAgICAg
ICAsIHN1cHBvcnRzS2V5U3lzdGVtKHN1cHBvcnRzS2V5U3lzdGVtKQorICAgICAgICAgICAgOiBw
bGF5ZXJUeXBlKHBsYXllclR5cGUpCisgICAgICAgICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdl
dFN1cHBvcnRlZFR5cGVzKQorICAgICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3Vw
cG9ydHNUeXBlQW5kQ29kZWNzKQorICAgICAgICAgICAgLCBnZXRTaXRlc0luTWVkaWFDYWNoZShn
ZXRTaXRlc0luTWVkaWFDYWNoZSkKKyAgICAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlKGNsZWFy
TWVkaWFDYWNoZSkKKyAgICAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1l
ZGlhQ2FjaGVGb3JTaXRlKQorICAgICAgICAgICAgLCBzdXBwb3J0c0tleVN5c3RlbShzdXBwb3J0
c0tleVN5c3RlbSkKICAgICB7CiAgICAgfQogCi0gICAgQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIg
Y29uc3RydWN0b3I7CisgICAgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGU7CiAgICAg
TWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlczsKICAgICBNZWRpYUVu
Z2luZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3M7CiAgICAgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2lu
ZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGU7CiAgICAgTWVkaWFFbmdpbmVDbGVhck1l
ZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFDYWNoZUZvclNpdGU7CiAgICAgTWVkaWFFbmdpbmVT
dXBwb3J0c0tleVN5c3RlbSBzdXBwb3J0c0tleVN5c3RlbTsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpCisgICAgeworICAgICAgICBzd2l0Y2ggKHBsYXllclR5cGUpIHsKKyAgICAg
ICAgY2FzZSBOdWxsTWVkaWFQbGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPihwbGF5ZXIpOworI2lmIFVTRShBVkZPVU5EQVRJ
T04pCisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICBjYXNlIEFWRm91bmRhdGlvbkNGUGxheWVy
OgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y+KHBsYXllcik7CisjZW5kaWYKKyAgICAgICAgY2FzZSBBVkZvdW5kYXRp
b25PYmpDUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4ocGxheWVyKTsKKyNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTWVkaWFTb3VyY2VBVkZPYmpD
UGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIpOworI2VuZGlmCisjZW5kaWYgLy8gVVNF
KEFWRk9VTkRBVElPTikKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgICAgICBjYXNlIEdTdHJlYW1l
clBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBjYXNlIFFUS2l0UGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ+KHBsYXllcik7CisjZW5kaWYKKyNpZiBQTEFU
Rk9STShXSU4pICYmIFVTRShNRURJQV9GT1VOREFUSU9OKQorICAgICAgICBjYXNlIE1lZGlhRm91
bmRhdGlvblBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTW9ja01lZGlhU291cmNlUGxheWVyOgorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2U+KHBsYXllcik7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TnVs
bE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKLXN0
YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVu
Z2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5n
aW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSk7
CitzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlh
RW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRpYUVuZ2lu
ZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFF
bmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVt
KTsKIAogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yU3VwcG9y
dFBhcmFtZXRlcnMoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYsIE1lZGlhUGxh
eWVyRmFjdG9yeSogY3VycmVudCA9IDApOwogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4
dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCk7CkBAIC0yMjMsMTQgKzI1
OSwxNCBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRp
YUVuZ2luZXMoUmVxdWVyeUVuZ2luZU9wdGlvbnMgcgogICAgIHJldHVybiBpbnN0YWxsZWRFbmdp
bmVzOwogfQogCi1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBs
YXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRU
eXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlLAorc3RhdGljIHZvaWQg
YWRkTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUsIE1lZGlhRW5n
aW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZSwKICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlh
Q2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRzS2V5U3lzdGVtKQog
ewotICAgIEFTU0VSVChjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJUKHBsYXllclR5cGUpOwogICAg
IEFTU0VSVChnZXRTdXBwb3J0ZWRUeXBlcyk7CiAgICAgQVNTRVJUKHN1cHBvcnRzVHlwZSk7CiAK
LSAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9y
eShjb25zdHJ1Y3RvciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3Vw
cG9ydHNLZXlTeXN0ZW0pKTsKKyAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQobmV3
IE1lZGlhUGxheWVyRmFjdG9yeShwbGF5ZXJUeXBlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCBnZXRTaXRlc0luTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlh
Q2FjaGVGb3JTaXRlLCBzdXBwb3J0c0tleVN5c3RlbSkpOwogfQogCiBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkKQEAgLTMwOCw3ICszNDQsNyBAQCBz
dGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0
b3J5KiBjdXJyZW50KQogTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50
JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKHRo
aXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJGaXJlZCkKLSAgICAsIG1fcHJpdmF0ZShjcmVh
dGVOdWxsTWVkaWFQbGF5ZXIodGhpcykpCisgICAgLCBtX3ByaXZhdGUoc3RkOjptYWtlX3VuaXF1
ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKSkKICAgICAsIG1fY3VycmVudE1lZGlhRW5n
aW5lKDApCiAgICAgLCBtX3ByZWxvYWQoQXV0bykKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKQEAg
LTQwOSw3ICs0NDUsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2lu
ZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxw
dHI7CiAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnRNZWRpYUVuZ2luZSAhPSBlbmdpbmUpIHsKICAg
ICAgICAgbV9jdXJyZW50TWVkaWFFbmdpbmUgPSBlbmdpbmU7Ci0gICAgICAgIG1fcHJpdmF0ZSA9
IGVuZ2luZS0+Y29uc3RydWN0b3IodGhpcyk7CisgICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+
Y3JlYXRlTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRW5n
aW5lVXBkYXRlZCh0aGlzKTsKICAgICAgICAgbV9wcml2YXRlLT5zZXRQcml2YXRlQnJvd3NpbmdN
b2RlKG1fcHJpdmF0ZUJyb3dzaW5nKTsKICAgICAgICAgbV9wcml2YXRlLT5zZXRQcmVsb2FkKG1f
cHJlbG9hZCk7CkBAIC00MjYsNyArNDYyLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhO
ZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogI2VuZGlmCiAgICAg
ICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybC5zdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgbV9wcml2YXRlID0gY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpOworICAgICAgICBtX3By
aXZhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHRoaXMpOwog
ICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAg
IG1fY2xpZW50Lm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXgg
N2M2YWRkNmIzNzYyOGNjMTc0NjUyOWZjNGU3Yzk1MWVhMTg2MTM5OC4uYThhZGZkZTc0YTdjMzkz
ZWU3YmQ5M2I5OWVhNTE3ODQzNzU0NzNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW50
UmVjdC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNs
dWRlICJNZWRpYUVuZ2luZVBsYXllclR5cGUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIK
ICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIK
QEAgLTQ1LDggKzQ2LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQpAQCAtMjc4LDEx
ICsyNzcsNyBAQCBwdWJsaWM6CiBjbGFzcyBNZWRpYVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTWVkaWFQbGF5ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJD
bGllbnQmIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQ
bGF5ZXIoY2xpZW50KSk7Ci0gICAgfQorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlh
IGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3LDcgKzU3Miw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG5l
eHRCZXN0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9pZCBs
b2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lkIHJl
bG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7CkBAIC01ODYsNyArNTgwLDcgQEAg
cHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1lcjxN
ZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJy
ZW50TWVkaWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRNSU1F
VHlwZTsKQEAgLTYwOCw3ICs2MDIsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBlZGVm
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5n
aW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBw
b3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycyk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZUdldFNpdGVzSW5NZWRpYUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNjE2LDcgKzYw
OSw3IEBAIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlw
ZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJp
bmcmKTsKIHR5cGVkZWYgYm9vbCAoKk1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pKGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotdHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRp
YUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKK3R5cGVkZWYg
dm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlh
RW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAogICAgIE1lZGlh
RW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBN
ZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlT
eXN0ZW0pOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RlcikoTWVkaWFFbmdpbmVS
ZWdpc3RyYXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKaW5kZXggNjYwYjBjMDAyNWQxYjdkZTdjNWQ3NWFhMWJjNzViODg4YmMx
ZmU4NS4uZDg5Mzk4N2I1MzI0NGE4NTUxNGUyMTNlMjFkNjZiY2VkNTU5OTBhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAt
NDYsNiArNDYsNyBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1
YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciopOwogCiAgICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQoKTsKQEAgLTE0
NCw3ICsxNDUsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwogCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMjc1ZDllMTI1ZDI3
MGEyYWI1MDQ4ZmZlZmRmZDVjYTkxNTEwNjAyNi4uZWQ5YzBlYWNkN2I3MjI5ZTNjNmIxZTE2Mzk3
NTNlMjNjMjBmOWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0zMzUsMTUgKzMzNSwxMCBAQCBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNl
bmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsg
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
RihwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAg
ICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBv
cnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAg
ICAgICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbkNGUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
RihNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRleCAyYWMwMTQ0ZGFhOTM4Y2Qy
MzAyYzZiMmQ2N2RkYTMwMzUwMDg0N2QzLi40NGE4Y2Y2Mzk1MDJiNWUyZTE3YjhjNDNhYTczODg3
MmU3YjIxMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBXZWJDb3Jl
QVZDRlJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgor
ICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVy
Kik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CkBAIC01OCwxMCArNTks
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhcik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIEVuZ2luZSBzdXBwb3J0Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0
c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmMmI4ZTNiN2EyYWMwNTQ2
ODUzY2YzMzg5NjdmYjE0Yjg3MmE1ODQ2Li43ZTdkOTc3ZWZjMDc3NzhkN2ZjMTFkOGJiOTgxYmZl
ZWZmNmM1NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNz
IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewog
cHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMo
TWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKQEAgLTEzMSwxMCArMTMyLDcgQEAgcHVibGljOgogICAgIFdlYWtQdHI8
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOwotCiAgICAg
Ly8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggOWJkYThjODM3ODU4MjI3NmZiNDE1ZmNiNWEyYTVkNDQ3ZTdmN2M5Yy4uY2M3
MTNkZjUyYmJmY2FjMWE4YTgxMWM4YWYzMDdlOGE3YzYwNmRjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCkBAIC0zODMsMTUgKzM4MywxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9i
YWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNy
ZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0g
ICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUs
IDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFWRm91bmRh
dGlvbk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAs
IHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxh
eWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwNzdhYzJlMzJjMzhlYjdiZDI1MjM5
YTAyNGIzZjc3NTEwNjk1N2IxLi41NzVlZmE1ODM4NGIwNTQyZmU3ZTc1ZmU5YjJlZDc1NTQ4YmUw
MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTAsMTMgKzUwLDExIEBAIGNsYXNz
IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
cHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBs
YXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhcik7CiAKLSAgICAvLyBNZWRpYVBsYXllciBGYWN0b3J5IE1ldGhvZHMK
LSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0
ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAg
c3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRl
eCBmMGViNjFjYWE4ZTA0ZmU3N2I4YTc2ZGY1NWIwYzBhMTgwZTI2YjE4Li5jODk3OGUyMWVlNGIx
ZTAzZTQ2N2UyZTNiYTM2NWFkOGI5ODIxZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
CkBAIC0xOTYsMTIgKzE5Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyhwbGF5ZXIpKTsKKyAgICAgICAgcmVnaXN0cmFyKE1lZGlhU291cmNl
QVZGT2JqQ1BsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwg
MCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2
YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDhhYzhmY2NmYmFiM2ExNzU2ZDE5NzJlZDc0YzdkMDY4ZGUzZDk2OGYuLjBlMTEz
NmI1NjMwZWJiYzk0MDJhZmIxMDkzOTJhZTBlOTJhZGMyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xMzgsMTUgKzEzOCwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVz
KEdPYmplY3QqIG9iamVjdCkKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUg
YXMgJXMgYXQgJXMiLCByb2xlLCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lz
dHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDAp
OworICAgICAgICByZWdpc3RyYXIoR1N0cmVhbWVyUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBpbml0aWFsaXplR1N0cmVhbWVy
QW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFhMmYxZmZhOWMwZjgx
YzMxYmE3Ni4uNjY5ZmI1NmEzMWFhZTNhZTdmMTc0MjgyNzRmOTkxMmIyMzI3OGM0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTcsNyArNTcs
OSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihN
ZWRpYVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKKwogICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwog
ICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSopOwogICAgIHZvaWQgaGFuZGxl
UGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5zUmV0dXJuKTsKQEAgLTEyNiwx
MCArMTI4LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0
ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxh
eWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwotCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCA4MGMyY2VhNTkxM2E0MjUyYmUxYmRm
MmE3MzAwMTNlNmEzYTg0NmY1Li5lYzMxYTc3NDUwYTc0OGExMGY5MzNmMzMyYzM3MWI0ZTE1YWNm
NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVRVEtpdCA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgorICAgIGV4cGxpY2l0
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKQEAgLTYzLDEwICs2NCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGxheWVySG9zdENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVy
KTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciop
OwotCi0gICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2
b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2lu
ZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRl
eCBhZjY1OWU1ZDhjZDRkNGE5NjE4NzYzNmM0ZWM5NGY4MjY4Y2M2NDhlLi5jMzM2MDhlOTEwZGUy
MjQ1NDYyNWIyZmIwNDVjODg2OTQwZjMxNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Lm1tCkBAIC0xNjYsMTUgKzE2NiwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQot
eyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBsYXll
cikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFi
bGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRp
YUNhY2hlRm9yU2l0ZSwgMCk7CisgICAgICAgIHJlZ2lzdHJhcihRVEtpdFBsYXllciwgZ2V0U3Vw
cG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVk
aWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxheWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCA4
YTFjZWU2ZmIyMzZlYTNlOGE2ZmRkYTJmMTBiMTU3OWY1YjI2YzZlLi43ZjMyYTY0OWI4YjMwMGFj
NTc5ODMzNjcwMjdmMTg0MGM3NjVlYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtNDEsMTUgKzQxLDEwIEBAIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1l
ZGlhUGxheWVyCiB7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdp
c3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVh
dGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAg
ICByZWdpc3RyYXIoTWVkaWFGb3VuZGF0aW9uUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3Vw
cG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmlzQXZhaWxhYmxlKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVmYWVlYmZmZTQxMmE1YWZlMWJlNTRl
Nzk1MzhhMi4uYmJhNTM2YzZhMmZhY2ZjZmU4NGViODE2ZGQzZWY4NWMzMWFmYzgwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAtMzAsMTAgKzMw
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1Ymxp
YzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsK
KyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVk
VHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMmKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAppbmRleCBjNjYxNzhiOTY3N2NmODQ5NjVkOThiZjg4
YmUzYTM5ODZmN2UzOGRhLi45ZmE2NGQ5M2ZiYzJjYjNmY2U0MzI2N2Y4MjExMGZiYmE3NWZhOTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcApAQCAtNDEs
MTIgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gTWVkaWFQbGF5ZXIgRW5pZ25lIFN1
cHBvcnQKIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdp
bmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdHJhcihjcmVh
dGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2U6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UocGxheWVyKSk7CisgICAgcmVnaXN0
cmFyKE1vY2tNZWRpYVNvdXJjZVBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlw
ZSwgMCwgMCwgMCwgMCk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNo
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXggYjY2OTRk
OGVkODczNzk4OWViMGJmNmVlZjk2MzkwNjM2NWZmYjk3Zi4uZTZhYjQ3NzAxMTk3ZGJiMTY3MDdj
MWE3OGNkYzhkMmI3OGZkMjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2UuaApAQCAtMzgsMTQgKzM4LDE0IEBAIGNsYXNzIE1vY2tNZWRpYVNvdXJjZVByaXZhdGU7
CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQg
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFsIH5N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOworCiAgICAgLy8gTWVkaWFQbGF5ZXIgRW5naW5l
IFN1cHBvcnQKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5l
UmVnaXN0cmFyKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzJik7CiAKLSAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOwotCiAg
ICAgdm9pZCBhZHZhbmNlQ3VycmVudFRpbWUoKTsKICAgICB2b2lkIHVwZGF0ZUR1cmF0aW9uKGNv
bnN0IE1lZGlhVGltZSYpOwogCkBAIC01Niw4ICs1Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
ZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJj
ZShNZWRpYVBsYXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRlcwog
ICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xp
ZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240327</attachid>
            <date>2014-10-22 21:49:01 -0700</date>
            <delta_ts>2014-10-22 22:57:43 -0700</delta_ts>
            <desc>Patch for win</desc>
            <filename>bug-137765-20141023134906.patch</filename>
            <type>text/plain</type>
            <size>42577</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlYzY0NjA2MDRhMzU2
YjNkMGU1NjM1YjhjNjI1ODczZjVjMGNiOC4uZjg5NTFjZGNkZDQwMGZjMDk0NjYwNTY4NmE4NjVk
NjAxNjlhNWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMg
aW4gcmVuZGVyaW5nLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkODdlYjAwMzI4ODRhOGU4ZDcz
MjNiNTU0NmI2Yjk3OTAwZGI4ZGYyLi5jMGZjYThmNzI1ZDlmODI0YjVhOWQ0ZDI4NTIxNTAzZGM5
ZWY4M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE3MCwxMiArMjE3MCwxOSBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9NZWRpYUNvbnN0cmFpbnRzTW9jay5jcHAKICAgICBwbGF0
Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ0RUTUZTZW5kZXJI
YW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ05vdGlmaWVyc01vY2suY3BwCiAg
ICAgcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcAogICAgIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAogCisgICAgcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrVHJhY2tzLmNwcAorCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTMxMjUsMTQg
KzMxMzIsNiBAQCBzZXQoV2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxFUwogKQogCiBzZXQoV2Vi
Q29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKLSAgICBwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmNwcAotCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3Vy
Y2VQcml2YXRlLmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrVHJhY2tz
LmNwcAotCiAgICAgdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAogICAgIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI3ZGE5MGQwNTk2NDk3NjQzYTFi
ZjVmNzM0NGZhYzVjY2E3YTA2ZDUuLjgyZmVjYjRhZDIzZWY3MzgwMDA5ZjQ1MTZkZTY3NjQyMzcw
NjI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjMzLDcgKzMyMzMsNyBAQCBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxM2dldFRvdWNoUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVM
bTBFTlMxXzE1Q3Jhc2hPbgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiBfX1pON1dlYkNvcmUx
MlNvdXJjZUJ1ZmZlcjI1YnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJREVSS04zV1RGMTJBdG9taWNT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNEpTU291cmNlQnVmZmVyOXRvV3JhcHBlZEVOM0pTQzdKU1Zh
bHVlRQotX19aTjdXZWJDb3JlMjZNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJN
ZWRpYUVuZ2luZUVQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJp
bmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBw
b3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZl
Y3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hf
U1hfRUUKK19fWk43V2ViQ29yZTI2TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UxOXJlZ2lzdGVy
TWVkaWFFbmdpbmVFUEZ2TlNfMjFNZWRpYUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hT
ZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3RyaW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVF
UEZOU18xMU1lZGlhUGxheWVyMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZlY3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1NfU1NfRUUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKQEAgLTM0MTEsNyArMzQxMSw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDIyY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTE2SFRNTE1lZGlhRWxlbWVudDRwbGF5RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVu
dDVwYXVzZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19a
TjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZUVQRnZQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdF
TlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0
c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3Rv
cklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hf
RUVFCitfX1pON1dlYkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rl
ck1lZGlhRW5naW5lRVBGdlBGdk5TXzIxTWVkaWFFbmdpbmVQbGF5ZXJUeXBlRVBGdlJOM1dURjdI
YXNoU2V0SU5TMl82U3RyaW5nRU5TMl8xMFN0cmluZ0hhc2hFTlMyXzEwSGFzaFRyYWl0c0lTNF9F
RUVFRVBGTlNfMTFNZWRpYVBsYXllcjEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMyXzZWZWN0b3JJUzRfTG0wRU5TMl8xNUNyYXNoT25PdmVy
Zmxvd0VFRUVQRnZ2RVBGdlJLUzRfRVBGYlNTX1NTX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4z
SlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQog
X19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMzhmMTZiMWQ5NTk0ZTMyMjFmMWQ1YzQy
ODcxN2M4M2IwODU4ODQ0Li44MjYxZTNjMDY2MTNjOTgwZWJhNTc0N2Q4YWQ3Y2QxNjBjYTczYzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01NTk5LDYgKzU1OTksNyBAQAogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyog
U2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAv
KiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0
NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggKi87IH07CisJCUNCQjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVu
Z2luZVBsYXllclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDQ0My
QjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTEx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDQ0MyQjUx
NjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTMwNDQsNiArMTMwNDUsNyBAQAogCQlDQTNCRjY3RDEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5
MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Fz
cGVjdFJhdGlvVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0JCNzQ1RkYx
OUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxheWVyVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZVBsYXllclR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNDQzJC
NTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwNTUyLDYgKzIwNTU0LDcgQEAKIAkJCQkxNDFEQzA0QzE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi8sCiAJCQkJMTQxREMwNEQxNjQ4MzRCOTAwMzcxRTVB
IC8qIExheW91dFJlY3QuaCAqLywKIAkJCQkxNDFEQzA0RTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5
b3V0U2l6ZS5oICovLAorCQkJCUNCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2lu
ZVBsYXllclR5cGUuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQ
bGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXll
ci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZh
dGUuaCAqLywKQEAgLTI0NTM3LDYgKzI0NTQwLDcgQEAKIAkJCQlBOEQyMjNGRTE2QjUyRTRFMDAx
NTcyODggLyogSFRNTFJlc291cmNlUHJlbG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcx
REMyNTBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3N0IzODc1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVubmVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDQkI3NDYwMDE5RjczREE4MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQ
bGF5ZXJUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg3NjEyMjg4M0U5MDBCODFGRjgg
LyogSFRNTFNjcmlwdFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3
Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTQ0NjEzQTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEzN2Rl
YTc3YTMyYzAzOGNiMDM3OWZmNmExNjkwODFkZmY3ODg2NDYuLjg4N2Q0ODA5MDU1NmM1MzE0ODky
ZmI0NDBkZWE0Yjg5NzFiNzNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDY0Niw3ICs0NjQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVh
ck1lZGlhUGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYK
IAotICAgIG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAg
c3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDY5Myw3
ICs0NjkzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFu
IGFjdGl2ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0
ZWQsIHNvIHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5v
dGUgdGhhdCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBw
bGF5ZXIKICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFu
ZGxlcyBhbGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXll
ciA9IG51bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTMzNCw3
ICs1MzM0LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3Mo
KTsKICNlbmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgbV9wbGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxN
ZWRpYVBsYXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAg
IGlmIChtX2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCBiM2FmMDA3MDRlMzEyMGEyOWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi5lN2Mw
YzhiY2M4N2VhZjEyNDM2Y2E4NDExNDNhMmQwMTYxM2YxY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDcgKzc3MCw3IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYK
IAotICAgIE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJl
bG9hZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYUVuZ2luZVBsYXllclR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTc1NjgxODA3MDVjMDRkZmY5YjRl
ZmJkZDUzNTRkMTBkZDI2YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KworI2lmbmRlZiBNZWRpYUVuZ2luZVBsYXllclR5cGVfaAorI2RlZmluZSBNZWRpYUVuZ2luZVBs
YXllclR5cGVfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0eXBlZGVmIGVudW0geworICAgIE51
bGxNZWRpYVBsYXllciwKKyAgICBBVkZvdW5kYXRpb25DRlBsYXllciwKKyAgICBBVkZvdW5kYXRp
b25PYmpDUGxheWVyLAorICAgIE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwKKyAgICBHU3RyZWFt
ZXJQbGF5ZXIsCisgICAgUVRLaXRQbGF5ZXIsCisgICAgTWVkaWFGb3VuZGF0aW9uUGxheWVyLAor
ICAgIE1vY2tNZWRpYVNvdXJjZVBsYXllcgorfSAgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlOworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAppbmRleCBlZDlkODgzMzY0MWQ1M2M5OGM3M2E2NjRlZGM0YzUxOWVlZmI5ZjExLi5h
NDg4YjQxYzc4N2VmODZlNGZlM2I0YzE5OTE2NmY1YjRlZWExMmVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgiCiAj
ZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCkBAIC03OCw3ICs3OSw3IEBAIGNvbnN0IFBsYXRm
b3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhID0geyBQbGF0Zm9ybU1lZGlhOjpOb25lLCB7MH0gfTsK
IAogY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE51bGxNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQ
bGF5ZXIqKSB7IH0KKyAgICBleHBsaWNpdCBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxh
eWVyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTQ0LDM5ICsxNDUsNzMgQEAgcHVibGljOgogI2Vu
ZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAKLX0KLQog
CiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZhY3RvcnkpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllckZhY3RvcnkoQ3JlYXRlTWVkaWFFbmdp
bmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywK
KyAgICBNZWRpYVBsYXllckZhY3RvcnkoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUs
IE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywKICAgICAgICAgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZv
clNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3Rl
bSBzdXBwb3J0c0tleVN5c3RlbSkKLSAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikK
LSAgICAgICAgLCBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKLSAgICAgICAg
LCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQotICAgICAgICAs
IGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQotICAgICAgICAsIGNs
ZWFyTWVkaWFDYWNoZShjbGVhck1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQotICAgICAgICAsIHN1cHBvcnRzS2V5U3lz
dGVtKHN1cHBvcnRzS2V5U3lzdGVtKQorICAgICAgICAgICAgOiBwbGF5ZXJUeXBlKHBsYXllclR5
cGUpCisgICAgICAgICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNz
KQorICAgICAgICAgICAgLCBnZXRTaXRlc0luTWVkaWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNo
ZSkKKyAgICAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkKKyAgICAg
ICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c0tleVN5c3RlbShzdXBwb3J0c0tleVN5c3RlbSkKICAgICB7
CiAgICAgfQogCi0gICAgQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CisgICAg
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlczsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGVBbmRDb2RlY3M7CiAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSBnZXRTaXRlc0luTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBj
bGVhck1lZGlhQ2FjaGU7CiAgICAgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNs
ZWFyTWVkaWFDYWNoZUZvclNpdGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSBz
dXBwb3J0c0tleVN5c3RlbTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHBsYXllclR5cGUpIHsKKyAgICAgICAgY2FzZSBOdWxsTWVkaWFQ
bGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlPihwbGF5ZXIpOworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaWYgUExBVEZPUk0o
V0lOKQorICAgICAgICBjYXNlIEFWRm91bmRhdGlvbkNGUGxheWVyOgorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y+KHBs
YXllcik7CisjZW5kaWYKKyAgICAgICAgY2FzZSBBVkZvdW5kYXRpb25PYmpDUGxheWVyOgorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQz4ocGxheWVyKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCisgICAgICAgIGNhc2UgTWVkaWFTb3VyY2VBVkZPYmpDUGxheWVyOgorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDPihwbGF5ZXIpOworI2VuZGlmCisjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKKyNp
ZiBVU0UoR1NUUkVBTUVSKQorICAgICAgICBjYXNlIEdTdHJlYW1lclBsYXllcjoKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4o
cGxheWVyKTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBjYXNlIFFUS2l0
UGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ+KHBsYXllcik7CisjZW5kaWYKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShN
RURJQV9GT1VOREFUSU9OKQorICAgICAgICBjYXNlIE1lZGlhRm91bmRhdGlvblBsYXllcjoKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbj4ocGxheWVyKTsKKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisg
ICAgICAgIGNhc2UgTW9ja01lZGlhU291cmNlUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U+KHBsYXllcik7CisjZW5k
aWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0
ZT4ocGxheWVyKTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKLXN0YXRpYyB2b2lkIGFkZE1lZGlh
RW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVz
LCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSk7CitzdGF0aWMgdm9pZCBhZGRN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlw
ZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLCBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNh
Y2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIAogc3RhdGljIE1lZGlh
UGxheWVyRmFjdG9yeSogYmVzdE1lZGlhRW5naW5lRm9yU3VwcG9ydFBhcmFtZXRlcnMoY29uc3Qg
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVu
dCA9IDApOwogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlh
UGxheWVyRmFjdG9yeSogY3VycmVudCk7CkBAIC0yMjMsMTQgKzI1OCwxNCBAQCBzdGF0aWMgVmVj
dG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVu
Z2luZU9wdGlvbnMgcgogICAgIHJldHVybiBpbnN0YWxsZWRFbmdpbmVzOwogfQogCi1zdGF0aWMg
dm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3Rvciwg
TWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVT
dXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlLAorc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMg
Z2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwK
ICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hl
LCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5l
Q2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBvcnRzS2V5U3lzdGVtKQogewotICAgIEFTU0VSVChjb25z
dHJ1Y3Rvcik7CisgICAgQVNTRVJUKHBsYXllclR5cGUpOwogICAgIEFTU0VSVChnZXRTdXBwb3J0
ZWRUeXBlcyk7CiAgICAgQVNTRVJUKHN1cHBvcnRzVHlwZSk7CiAKLSAgICBpbnN0YWxsZWRNZWRp
YUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9yeShjb25zdHJ1Y3RvciwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsK
KyAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9y
eShwbGF5ZXJUeXBlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0lu
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBzdXBw
b3J0c0tleVN5c3RlbSkpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcHBsaWNh
dGlvbk9jdGV0U3RyZWFtKCkKQEAgLTMwOCw3ICszNDMsNyBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJG
YWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogTWVk
aWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKHRoaXMsICZNZWRpYVBsYXllcjo6
cmVsb2FkVGltZXJGaXJlZCkKLSAgICAsIG1fcHJpdmF0ZShjcmVhdGVOdWxsTWVkaWFQbGF5ZXIo
dGhpcykpCisgICAgLCBtX3ByaXZhdGUoc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlPih0aGlzKSkKICAgICAsIG1fY3VycmVudE1lZGlhRW5naW5lKDApCiAgICAgLCBtX3By
ZWxvYWQoQXV0bykKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKQEAgLTQwOSw3ICs0NDQsNyBAQCB2
b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3Rv
cnkqIGN1cnJlbnQpCiAgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIGlm
IChtX2N1cnJlbnRNZWRpYUVuZ2luZSAhPSBlbmdpbmUpIHsKICAgICAgICAgbV9jdXJyZW50TWVk
aWFFbmdpbmUgPSBlbmdpbmU7Ci0gICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y29uc3RydWN0
b3IodGhpcyk7CisgICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y3JlYXRlTWVkaWFQbGF5ZXIo
dGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsK
ICAgICAgICAgbV9wcml2YXRlLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1fcHJpdmF0ZUJyb3dz
aW5nKTsKICAgICAgICAgbV9wcml2YXRlLT5zZXRQcmVsb2FkKG1fcHJlbG9hZCk7CkBAIC00MjYs
NyArNDYxLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVk
aWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogI2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9h
ZChtX3VybC5zdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3Jl
YXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpOworICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5t
ZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxh
eWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggZTJiMjQyNmQ5MTZjZWEzZWQ2
ZDM1YTE0N2JhNGNmMmZjNzY4ODk3Ny4uYzk5MGI5ZWZmMmNkMmRjODdiNGQzMjQ3NWViMzRiZmU3
NjAwYjIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYUVuZ2luZVBs
YXllclR5cGUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZVB0ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTQ2LDggKzQ3LDYgQEAK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQpAQCAtMjc3LDExICsyNzYsNyBAQCBwdWJsaWM6
CiBjbGFzcyBNZWRpYVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNz
T3duUHRyPE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7Ci0g
ICAgfQorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAg
dmlydHVhbCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpA
QCAtNTc3LDcgKzU3Miw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5
ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRCZXN0TWVkaWFFbmdpbmUo
TWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVu
Z2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lkIHJlbG9hZFRpbWVyRmlyZWQoVGlt
ZXI8TWVkaWFQbGF5ZXI+Jik7CkBAIC01ODYsNyArNTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIE1l
ZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxv
YWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZh
dGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9w
cml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CiAg
ICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKQEAgLTYwOCw3ICs2
MDIsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBs
YXllciopOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpN
ZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYgcGFyYW1ldGVycyk7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRp
YUNhY2hlKShWZWN0b3I8U3RyaW5nPiYpOwpAQCAtNjE2LDcgKzYwOSw3IEBAIHR5cGVkZWYgdm9p
ZCAoKk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFF
bmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIHR5cGVkZWYgYm9v
bCAoKk1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAotdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVS
ZWdpc3RyYXIpKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5
cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
UmVnaXN0cmFyKShNZWRpYUVuZ2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlw
ZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlLAogICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVk
aWFDYWNoZUZvclNpdGUsIE1lZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogdHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RlcikoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5k
ZXggNjYwYjBjMDAyNWQxYjdkZTdjNWQ3NWFhMWJjNzViODg4YmMxZmU4NS4uZDg5Mzk4N2I1MzI0
NGE4NTUxNGUyMTNlMjFkNjZiY2VkNTU5OTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtNDYsNiArNDYsNyBAQCBjbGFz
cyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFj
a1BhcmVudAogewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbihNZWRpYVBsYXllciopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQoKTsKQEAgLTE0NCw3ICsxNDUsNiBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbigpOwogCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMjc1ZDllMTI1ZDI3MGEyYWI1MDQ4ZmZlZmRmZDVj
YTkxNTEwNjAyNi4uZWQ5YzBlYWNkN2I3MjI5ZTNjNmIxZTE2Mzk3NTNlMjNjMjBmOWEyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwCkBAIC0zMzUsMTUgKzMzNSwxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVl
dWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIpKTsKLX0KLQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFW
Rm91bmRhdGlvbkNGUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciogcGxh
eWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaAppbmRleCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUw
MDg0N2QzLi40NGE4Y2Y2Mzk1MDJiNWUyZTE3YjhjNDNhYTczODg3MmU3YjIxMGUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVy
OwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB0
cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CkBAIC01OCwxMCArNTksNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAK
IHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5
ZXIqKTsKLQogICAgIC8vIEVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lz
dGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAppbmRleCBmMmI4ZTNiN2EyYWMwNTQ2ODUzY2YzMzg5NjdmYjE0Yjg3
MmE1ODQ2Li43ZTdkOTc3ZWZjMDc3NzhkN2ZjMTFkOGJiOTgxYmZlZWZmNmM1NjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQzsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBz
dGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAg
LTEzMSwxMCArMTMyLDcgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQK
LSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0
ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNjczNjVl
ZWYxNTIyZDc2MzI3ODQ2NjNmNWIzM2NmMjBhZTU3ZDA4My4uYjI0NGY2ZGUzNzBiMmVhOGRlZTY3
Yjc4MTM2YjM3YmY4ZTU0MmJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zODMsMTUg
KzM4MywxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1
ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciBy
ZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihj
cmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRz
S2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbk9iakNQbGF5ZXIsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVt
KTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaAppbmRleCAwNzdhYzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2Ix
Li41NzVlZmE1ODM4NGIwNTQyZmU3ZTc1ZmU5YjJlZDc1NTQ4YmUwMzU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaApAQCAtNTAsMTMgKzUwLDExIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwog
ICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAg
ICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7
CiAKLSAgICAvLyBNZWRpYVBsYXllciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBmMGViNjFjYWE4ZTA0ZmU3
N2I4YTc2ZGY1NWIwYzBhMTgwZTI2YjE4Li5jODk3OGUyMWVlNGIxZTAzZTQ2N2UyZTNiYTM2NWFk
OGI5ODIxZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xOTYsMTIgKzE5Niw3
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdp
c3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVh
dGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhw
bGF5ZXIpKTsKKyAgICAgICAgcmVnaXN0cmFyKE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDhhYzhmY2Nm
YmFiM2ExNzU2ZDE5NzJlZDc0YzdkMDY4ZGUzZDk2OGYuLjBlMTEzNmI1NjMwZWJiYzk0MDJhZmIx
MDkzOTJhZTBlOTJhZGMyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCkBAIC0xMzgsMTUgKzEzOCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkK
ICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xl
LCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXll
ciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7
CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1
cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3Ry
YXIoR1N0cmVhbWVyUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAw
LCAwLCAwKTsKIH0KIAogYm9vbCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRF
bGVtZW50cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
aW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFhMmYxZmZhOWMwZjgxYzMxYmE3Ni4uNjY5ZmI1NmEz
MWFhZTNhZTdmMTc0MjgyNzRmOTkxMmIyMzI3OGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTcsNyArNTcsOSBAQCBjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAg
IGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogICAg
IH5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogICAgIGdib29sZWFuIGhhbmRs
ZU1lc3NhZ2UoR3N0TWVzc2FnZSopOwogICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVz
dWx0KEdzdEluc3RhbGxQbHVnaW5zUmV0dXJuKTsKQEAgLTEyNiwxMCArMTI4LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0g
ICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwotCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
KGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQuaAppbmRleCA4MGMyY2VhNTkxM2E0MjUyYmUxYmRmMmE3MzAwMTNlNmEzYTg0NmY1
Li5lYzMxYTc3NDUwYTc0OGExMGY5MzNmMzMyYzM3MWI0ZTE1YWNmNDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVRVEtpdCA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0KE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhcik7CiAKQEAgLTYzLDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxh
eWVySG9zdENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVyKTsKIAogcHJpdmF0ZToKLSAg
ICBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciopOwotCi0gICAgLy8gZW5naW5l
IHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBhZjY1OWU1ZDhjZDRkNGE5
NjE4NzYzNmM0ZWM5NGY4MjY4Y2M2NDhlLi5jMzM2MDhlOTEwZGUyMjQ1NDYyNWIyZmIwNDVjODg2
OTQwZjMxNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNjYsMTUgKzE2
NiwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBsYXllcikpOwotfQotCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVn
aXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVn
aXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7
CisgICAgICAgIHJlZ2lzdHJhcihRVEtpdFBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRp
YUNhY2hlRm9yU2l0ZSwgMCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAppbmRleCA4YTFjZWU2ZmIyMzZlYTNlOGE2
ZmRkYTJmMTBiMTU3OWY1YjI2YzZlLi43ZjMyYTY0OWI4YjMwMGFjNTc5ODMzNjcwMjdmMTg0MGM3
NjVlYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmNwcApAQCAtNDEsMTUgKzQxLDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bjo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyCiB7CiB9CiAK
LVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXll
cikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoTWVkaWFG
b3VuZGF0aW9uUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAw
LCAwKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmlzQXZh
aWxhYmxlKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgK
aW5kZXggYjlhZTBjNTVkNTVmYWVlYmZmZTQxMmE1YWZlMWJlNTRlNzk1MzhhMi4uYmJhNTM2YzZh
MmZhY2ZjZmU4NGViODE2ZGQzZWY4NWMzMWFmYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAtMzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMg
dm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlh
UGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmNwcAppbmRleCBjNjYxNzhiOTY3N2NmODQ5NjVkOThiZjg4YmUzYTM5ODZmN2UzOGRhLi45
ZmE2NGQ5M2ZiYzJjYjNmY2U0MzI2N2Y4MjExMGZiYmE3NWZhOTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcApAQCAtNDEsMTIgKzQxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLy8gTWVkaWFQbGF5ZXIgRW5pZ25lIFN1cHBvcnQKIHZvaWQgTW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UocGxheWVyKSk7CisgICAgcmVnaXN0cmFyKE1vY2tNZWRpYVNvdXJj
ZVBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9
CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXggYjY2OTRkOGVkODczNzk4OWViMGJmNmVl
Zjk2MzkwNjM2NWZmYjk3Zi4uZTZhYjQ3NzAxMTk3ZGJiMTY3MDdjMWE3OGNkYzhkMmI3OGZkMjE3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaApAQCAtMzgsMTQg
KzM4LDE0IEBAIGNsYXNzIE1vY2tNZWRpYVNvdXJjZVByaXZhdGU7CiAKIGNsYXNzIE1vY2tNZWRp
YVBsYXllck1lZGlhU291cmNlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CiBwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZSgpOworCiAgICAgLy8gTWVkaWFQbGF5ZXIgRW5naW5lIFN1cHBvcnQKICAgICBzdGF0
aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKLSAgICBz
dGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRp
YVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3Ry
aW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKLSAgICB2aXJ0
dWFsIH5Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOwotCiAgICAgdm9pZCBhZHZhbmNlQ3Vy
cmVudFRpbWUoKTsKICAgICB2b2lkIHVwZGF0ZUR1cmF0aW9uKGNvbnN0IE1lZGlhVGltZSYpOwog
CkBAIC01Niw4ICs1Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlZWtDb21wbGV0ZWQoKTsKIAog
cHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBsYXllciopOwot
CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRlcwogICAgIHZpcnR1YWwgdm9pZCBs
b2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240331</attachid>
            <date>2014-10-22 22:57:54 -0700</date>
            <delta_ts>2014-10-22 23:08:03 -0700</delta_ts>
            <desc>Patch for win</desc>
            <filename>bug-137765-20141023145759.patch</filename>
            <type>text/plain</type>
            <size>42559</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlYzY0NjA2MDRhMzU2
YjNkMGU1NjM1YjhjNjI1ODczZjVjMGNiOC4uZjg5NTFjZGNkZDQwMGZjMDk0NjYwNTY4NmE4NjVk
NjAxNjlhNWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMg
aW4gcmVuZGVyaW5nLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkODdlYjAwMzI4ODRhOGU4ZDcz
MjNiNTU0NmI2Yjk3OTAwZGI4ZGYyLi5jMGZjYThmNzI1ZDlmODI0YjVhOWQ0ZDI4NTIxNTAzZGM5
ZWY4M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE3MCwxMiArMjE3MCwxOSBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9NZWRpYUNvbnN0cmFpbnRzTW9jay5jcHAKICAgICBwbGF0
Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ0RUTUZTZW5kZXJI
YW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ05vdGlmaWVyc01vY2suY3BwCiAg
ICAgcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcAogICAgIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAogCisgICAgcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrVHJhY2tzLmNwcAorCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTMxMjUsMTQg
KzMxMzIsNiBAQCBzZXQoV2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxFUwogKQogCiBzZXQoV2Vi
Q29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKLSAgICBwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmNwcAotCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3Vy
Y2VQcml2YXRlLmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrVHJhY2tz
LmNwcAotCiAgICAgdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAogICAgIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI3ZGE5MGQwNTk2NDk3NjQzYTFi
ZjVmNzM0NGZhYzVjY2E3YTA2ZDUuLjgyZmVjYjRhZDIzZWY3MzgwMDA5ZjQ1MTZkZTY3NjQyMzcw
NjI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjMzLDcgKzMyMzMsNyBAQCBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxM2dldFRvdWNoUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVM
bTBFTlMxXzE1Q3Jhc2hPbgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiBfX1pON1dlYkNvcmUx
MlNvdXJjZUJ1ZmZlcjI1YnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJREVSS04zV1RGMTJBdG9taWNT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNEpTU291cmNlQnVmZmVyOXRvV3JhcHBlZEVOM0pTQzdKU1Zh
bHVlRQotX19aTjdXZWJDb3JlMjZNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJN
ZWRpYUVuZ2luZUVQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJp
bmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBw
b3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZl
Y3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hf
U1hfRUUKK19fWk43V2ViQ29yZTI2TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UxOXJlZ2lzdGVy
TWVkaWFFbmdpbmVFUEZ2TlNfMjFNZWRpYUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hT
ZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3RyaW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVF
UEZOU18xMU1lZGlhUGxheWVyMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZlY3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1NfU1NfRUUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKQEAgLTM0MTEsNyArMzQxMSw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDIyY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTE2SFRNTE1lZGlhRWxlbWVudDRwbGF5RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVu
dDVwYXVzZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19a
TjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZUVQRnZQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdF
TlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0
c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3Rv
cklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hf
RUVFCitfX1pON1dlYkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rl
ck1lZGlhRW5naW5lRVBGdlBGdk5TXzIxTWVkaWFFbmdpbmVQbGF5ZXJUeXBlRVBGdlJOM1dURjdI
YXNoU2V0SU5TMl82U3RyaW5nRU5TMl8xMFN0cmluZ0hhc2hFTlMyXzEwSGFzaFRyYWl0c0lTNF9F
RUVFRVBGTlNfMTFNZWRpYVBsYXllcjEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMyXzZWZWN0b3JJUzRfTG0wRU5TMl8xNUNyYXNoT25PdmVy
Zmxvd0VFRUVQRnZ2RVBGdlJLUzRfRVBGYlNTX1NTX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4z
SlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQog
X19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMzhmMTZiMWQ5NTk0ZTMyMjFmMWQ1YzQy
ODcxN2M4M2IwODU4ODQ0Li44MjYxZTNjMDY2MTNjOTgwZWJhNTc0N2Q4YWQ3Y2QxNjBjYTczYzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01NTk5LDYgKzU1OTksNyBAQAogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyog
U2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAv
KiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0
NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggKi87IH07CisJCUNCQjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVu
Z2luZVBsYXllclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDQ0My
QjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTEx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDQ0MyQjUx
NjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTMwNDQsNiArMTMwNDUsNyBAQAogCQlDQTNCRjY3RDEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5
MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Fz
cGVjdFJhdGlvVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0JCNzQ1RkYx
OUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxheWVyVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZVBsYXllclR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNDQzJC
NTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwNTUyLDYgKzIwNTU0LDcgQEAKIAkJCQkxNDFEQzA0QzE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi8sCiAJCQkJMTQxREMwNEQxNjQ4MzRCOTAwMzcxRTVB
IC8qIExheW91dFJlY3QuaCAqLywKIAkJCQkxNDFEQzA0RTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5
b3V0U2l6ZS5oICovLAorCQkJCUNCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2lu
ZVBsYXllclR5cGUuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQ
bGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXll
ci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZh
dGUuaCAqLywKQEAgLTI0NTM3LDYgKzI0NTQwLDcgQEAKIAkJCQlBOEQyMjNGRTE2QjUyRTRFMDAx
NTcyODggLyogSFRNTFJlc291cmNlUHJlbG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcx
REMyNTBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3N0IzODc1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVubmVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDQkI3NDYwMDE5RjczREE4MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQ
bGF5ZXJUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg3NjEyMjg4M0U5MDBCODFGRjgg
LyogSFRNTFNjcmlwdFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3
Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTQ0NjEzQTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEzN2Rl
YTc3YTMyYzAzOGNiMDM3OWZmNmExNjkwODFkZmY3ODg2NDYuLjg4N2Q0ODA5MDU1NmM1MzE0ODky
ZmI0NDBkZWE0Yjg5NzFiNzNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDY0Niw3ICs0NjQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVh
ck1lZGlhUGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYK
IAotICAgIG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAg
c3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDY5Myw3
ICs0NjkzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFu
IGFjdGl2ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0
ZWQsIHNvIHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5v
dGUgdGhhdCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBw
bGF5ZXIKICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFu
ZGxlcyBhbGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXll
ciA9IG51bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTMzNCw3
ICs1MzM0LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3Mo
KTsKICNlbmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgbV9wbGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxN
ZWRpYVBsYXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAg
IGlmIChtX2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCBiM2FmMDA3MDRlMzEyMGEyOWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi5lN2Mw
YzhiY2M4N2VhZjEyNDM2Y2E4NDExNDNhMmQwMTYxM2YxY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDcgKzc3MCw3IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYK
IAotICAgIE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJl
bG9hZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYUVuZ2luZVBsYXllclR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTc1NjgxODA3MDVjMDRkZmY5YjRl
ZmJkZDUzNTRkMTBkZDI2YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KworI2lmbmRlZiBNZWRpYUVuZ2luZVBsYXllclR5cGVfaAorI2RlZmluZSBNZWRpYUVuZ2luZVBs
YXllclR5cGVfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0eXBlZGVmIGVudW0geworICAgIE51
bGxNZWRpYVBsYXllciwKKyAgICBBVkZvdW5kYXRpb25DRlBsYXllciwKKyAgICBBVkZvdW5kYXRp
b25PYmpDUGxheWVyLAorICAgIE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwKKyAgICBHU3RyZWFt
ZXJQbGF5ZXIsCisgICAgUVRLaXRQbGF5ZXIsCisgICAgTWVkaWFGb3VuZGF0aW9uUGxheWVyLAor
ICAgIE1vY2tNZWRpYVNvdXJjZVBsYXllcgorfSAgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlOworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAppbmRleCBlZDlkODgzMzY0MWQ1M2M5OGM3M2E2NjRlZGM0YzUxOWVlZmI5ZjExLi4z
Nzg3MmE0OGMzM2JhNDUyNTMyNmU5NWExZDM5NDUwMTc2ZDM4MTUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgiCiAj
ZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCkBAIC03OCw3ICs3OSw3IEBAIGNvbnN0IFBsYXRm
b3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhID0geyBQbGF0Zm9ybU1lZGlhOjpOb25lLCB7MH0gfTsK
IAogY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE51bGxNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQ
bGF5ZXIqKSB7IH0KKyAgICBleHBsaWNpdCBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxh
eWVyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTQ0LDM5ICsxNDUsNzMgQEAgcHVibGljOgogI2Vu
ZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAKLX0KLQog
CiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZhY3RvcnkpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllckZhY3RvcnkoQ3JlYXRlTWVkaWFFbmdp
bmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywK
KyAgICBNZWRpYVBsYXllckZhY3RvcnkoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUs
IE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywKICAgICAgICAgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZv
clNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3Rl
bSBzdXBwb3J0c0tleVN5c3RlbSkKLSAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikK
LSAgICAgICAgLCBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKLSAgICAgICAg
LCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQotICAgICAgICAs
IGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQotICAgICAgICAsIGNs
ZWFyTWVkaWFDYWNoZShjbGVhck1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQotICAgICAgICAsIHN1cHBvcnRzS2V5U3lz
dGVtKHN1cHBvcnRzS2V5U3lzdGVtKQorICAgICAgICAgICAgOiBwbGF5ZXJUeXBlKHBsYXllclR5
cGUpCisgICAgICAgICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNz
KQorICAgICAgICAgICAgLCBnZXRTaXRlc0luTWVkaWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNo
ZSkKKyAgICAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkKKyAgICAg
ICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c0tleVN5c3RlbShzdXBwb3J0c0tleVN5c3RlbSkKICAgICB7
CiAgICAgfQogCi0gICAgQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CisgICAg
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlczsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGVBbmRDb2RlY3M7CiAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSBnZXRTaXRlc0luTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBj
bGVhck1lZGlhQ2FjaGU7CiAgICAgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNs
ZWFyTWVkaWFDYWNoZUZvclNpdGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSBz
dXBwb3J0c0tleVN5c3RlbTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHBsYXllclR5cGUpIHsKKyAgICAgICAgY2FzZSBOdWxsTWVkaWFQ
bGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlPihwbGF5ZXIpOworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIGNhc2UgQVZGb3VuZGF0aW9uT2JqQ1BsYXllcjoKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM+KHBsYXllcik7CisgICAgICAgIGNhc2UgUVRLaXRQbGF5ZXI6CisgICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKQorI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTWVkaWFTb3VyY2VBVkZPYmpDUGxh
eWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIpOworI2VuZGlmCisjZW5kaWYKKyNpZiBQTEFU
Rk9STShXSU4pCisgICAgICAgIGNhc2UgQVZGb3VuZGF0aW9uQ0ZQbGF5ZXI6CisgICAgICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Rj4ocGxheWVyKTsKKyNlbmRpZgorI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCisjaWYgVVNF
KEdTVFJFQU1FUikKKyAgICAgICAgY2FzZSBHU3RyZWFtZXJQbGF5ZXI6CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KHBsYXll
cik7CisjZW5kaWYKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShNRURJQV9GT1VOREFUSU9OKQor
ICAgICAgICBjYXNlIE1lZGlhRm91bmRhdGlvblBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbj4ocGxheWVy
KTsKKyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTW9ja01l
ZGlhU291cmNlUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2U+KHBsYXllcik7CisjZW5kaWYKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKKyAgICAg
ICAgfQorICAgIH0KIH07CiAKLXN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlh
RW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBv
cnRzVHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdp
bmVTdXBwb3J0c0tleVN5c3RlbSk7CitzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3Vw
cG9ydHNUeXBlLCBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVu
Z2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIAogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVz
dE1lZGlhRW5naW5lRm9yU3VwcG9ydFBhcmFtZXRlcnMoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCA9IDApOwogc3RhdGljIE1l
ZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3Vy
cmVudCk7CkBAIC0yMjMsMTQgKzI1OCwxNCBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFj
dG9yeSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVuZ2luZU9wdGlvbnMgcgogICAg
IHJldHVybiBpbnN0YWxsZWRFbmdpbmVzOwogfQogCi1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2lu
ZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlLAorc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVQbGF5ZXJUeXBl
IHBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMs
IE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwKICAgICBNZWRpYUVuZ2luZUdl
dFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFy
TWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9y
U2l0ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVt
IHN1cHBvcnRzS2V5U3lzdGVtKQogewotICAgIEFTU0VSVChjb25zdHJ1Y3Rvcik7CisgICAgQVNT
RVJUKHBsYXllclR5cGUpOwogICAgIEFTU0VSVChnZXRTdXBwb3J0ZWRUeXBlcyk7CiAgICAgQVNT
RVJUKHN1cHBvcnRzVHlwZSk7CiAKLSAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQo
bmV3IE1lZGlhUGxheWVyRmFjdG9yeShjb25zdHJ1Y3RvciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1
cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsKKyAgICBpbnN0YWxsZWRNZWRp
YUVuZ2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9yeShwbGF5ZXJUeXBlLCBnZXRT
dXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0luTWVkaWFDYWNoZSwgY2xlYXJN
ZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBzdXBwb3J0c0tleVN5c3RlbSkpOwog
fQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkK
QEAgLTMwOCw3ICszNDMsNyBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFF
bmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogTWVkaWFQbGF5ZXI6Ok1lZGlhUGxh
eWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAg
ICAgLCBtX3JlbG9hZFRpbWVyKHRoaXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJGaXJlZCkK
LSAgICAsIG1fcHJpdmF0ZShjcmVhdGVOdWxsTWVkaWFQbGF5ZXIodGhpcykpCisgICAgLCBtX3By
aXZhdGUoc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKSkKICAg
ICAsIG1fY3VycmVudE1lZGlhRW5naW5lKDApCiAgICAgLCBtX3ByZWxvYWQoQXV0bykKICAgICAs
IG1fdmlzaWJsZShmYWxzZSkKQEAgLTQwOSw3ICs0NDQsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjps
b2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAg
ICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnRNZWRpYUVu
Z2luZSAhPSBlbmdpbmUpIHsKICAgICAgICAgbV9jdXJyZW50TWVkaWFFbmdpbmUgPSBlbmdpbmU7
Ci0gICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y29uc3RydWN0b3IodGhpcyk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y3JlYXRlTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIG1f
Y2xpZW50Lm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsKICAgICAgICAgbV9wcml2YXRl
LT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1fcHJpdmF0ZUJyb3dzaW5nKTsKICAgICAgICAgbV9w
cml2YXRlLT5zZXRQcmVsb2FkKG1fcHJlbG9hZCk7CkBAIC00MjYsNyArNDYxLDcgQEAgdm9pZCBN
ZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBj
dXJyZW50KQogI2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybC5zdHJpbmcoKSk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVsbE1lZGlhUGxheWVy
KHRoaXMpOworICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBs
YXllclByaXZhdGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVw
ZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBw
b3J0ZWQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKaW5kZXggZTJiMjQyNmQ5MTZjZWEzZWQ2ZDM1YTE0N2JhNGNmMmZjNzY4
ODk3Ny4uYzk5MGI5ZWZmMmNkMmRjODdiNGQzMjQ3NWViMzRiZmU3NjAwYjIzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUg
IkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYUVuZ2luZVBsYXllclR5cGUuaCIKICNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTQ2LDggKzQ3LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBFTkFCTEUoQVZG
X0NBUFRJT05TKQpAQCAtMjc3LDExICsyNzYsNyBAQCBwdWJsaWM6CiBjbGFzcyBNZWRpYVBsYXll
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXIpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVy
PiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7Ci0gICAgfQorICAgIGV4cGxpY2l0
IE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5
ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3LDcgKzU3Miw2IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7
CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIG5leHRCZXN0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5
KikgY29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZh
Y3RvcnkqKTsKICAgICB2b2lkIHJlbG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7
CkBAIC01ODYsNyArNTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50JiBt
X2NsaWVudDsKICAgICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKLSAgICBPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlh
UGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAg
IFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKQEAgLTYwOCw3ICs2MDIsNiBAQCBwcml2YXRlOgog
I2VuZGlmCiB9OwogCi10eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7
CiB0eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRz
VHlwZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycyk7CiB0
eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlKShWZWN0b3I8U3Ry
aW5nPiYpOwpAQCAtNjE2LDcgKzYwOSw3IEBAIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIHR5cGVkZWYgYm9vbCAoKk1lZGlhRW5naW5lU3Vw
cG9ydHNLZXlTeXN0ZW0pKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKIAotdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1l
ZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1
cHBvcnRzVHlwZSwKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShNZWRpYUVu
Z2luZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3Vw
cG9ydHNUeXBlLAogICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5n
aW5lQ2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1l
ZGlhRW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVS
ZWdpc3RlcikoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNjYwYjBjMDAyNWQxYjdk
ZTdjNWQ3NWFhMWJjNzViODg4YmMxZmU4NS4uZDg5Mzk4N2I1MzI0NGE4NTUxNGUyMTNlMjFkNjZi
Y2VkNTU5OTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsK
IGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGlj
OgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXll
ciopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0
YWRhdGFMb2FkZWQoKTsKQEAgLTE0NCw3ICsxNDUsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJv
dGVjdGVkOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciop
OwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwogCiAgICAg
V2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5j
cHAKaW5kZXggMjc1ZDllMTI1ZDI3MGEyYWI1MDQ4ZmZlZmRmZDVjYTkxNTEwNjAyNi4uZWQ5YzBl
YWNkN2I3MjI5ZTNjNmIxZTE2Mzk3NTNlMjNjMjBmOWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBA
IC0zMzUsMTUgKzMzNSwxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJE
ZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lz
dHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1
cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbkNGUGxheWVy
LCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5
c3RlbSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApp
bmRleCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUwMDg0N2QzLi40NGE4Y2Y2Mzk1
MDJiNWUyZTE3YjhjNDNhYTczODg3MmU3YjIxMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDEsNiAr
NDEsNyBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCkgb3Zl
cnJpZGU7CkBAIC01OCwxMCArNTksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIEVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCBmMmI4ZTNiN2EyYWMwNTQ2ODUzY2YzMzg5NjdmYjE0Yjg3MmE1ODQ2Li43ZTdkOTc3ZWZj
MDc3NzhkN2ZjMTFkOGJiOTgxYmZlZWZmNmM1NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMSwxMCArMTMyLDcgQEAg
cHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNjczNjVlZWYxNTIyZDc2MzI3ODQ2NjNm
NWIzM2NmMjBhZTU3ZDA4My4uYjI0NGY2ZGUzNzBiMmVhOGRlZTY3Yjc4MTM2YjM3YmY4ZTU0MmJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zODMsMTUgKzM4MywxMCBAQCBzdGF0aWMg
ZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAot
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMocGxh
eWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAg
aWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRl
ZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAg
ICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQyhNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAw
NzdhYzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2IxLi41NzVlZmE1ODM4NGIwNTQy
ZmU3ZTc1ZmU5YjJlZDc1NTQ4YmUwMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAt
NTAsMTMgKzUwLDExIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKLSAgICAvLyBNZWRpYVBs
YXllciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyBib29sIGlz
QXZhaWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQppbmRleCBmMGViNjFjYWE4ZTA0ZmU3N2I4YTc2ZGY1NWIwYzBhMTgw
ZTI2YjE4Li5jODk3OGUyMWVlNGIxZTAzZTQ2N2UyZTNiYTM2NWFkOGI5ODIxZDAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xOTYsMTIgKzE5Niw3IEBAIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhwbGF5ZXIpKTsKKyAgICAgICAg
cmVnaXN0cmFyKE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1
cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDhhYzhmY2NmYmFiM2ExNzU2ZDE5NzJlZDc0
YzdkMDY4ZGUzZDk2OGYuLjBlMTEzNmI1NjMwZWJiYzk0MDJhZmIxMDkzOTJhZTBlOTJhZGMyODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBA
IC0xMzgsMTUgKzEzOCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0
QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKICAgICBMT0dfTUVESUFfTUVT
U0FHRSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xlLCBlbGVtZW50TmFtZS5nZXQo
KSk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikp
OwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxh
YmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBw
b3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoR1N0cmVhbWVyUGxheWVy
LCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9v
bCBpbml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2
MTg0MzJhMWFhMmYxZmZhOWMwZjgxYzMxYmE3Ni4uNjY5ZmI1NmEzMWFhZTNhZTdmMTc0MjgyNzRm
OTkxMmIyMzI3OGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaApAQCAtNTcsNyArNTcsOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
cjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIpOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2Fn
ZSopOwogICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVn
aW5zUmV0dXJuKTsKQEAgLTEyNiwxMCArMTI4LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdl
UGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwotCiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGlj
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCA4
MGMyY2VhNTkxM2E0MjUyYmUxYmRmMmE3MzAwMTNlNmEzYTg0NmY1Li5lYzMxYTc3NDUwYTc0OGEx
MGY5MzNmMzMyYzM3MWI0ZTE1YWNmNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApA
QCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVRVEtpdCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
cHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVy
Kik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAK
QEAgLTYzLDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxheWVySG9zdENoYW5nZWQoUGxh
dGZvcm1MYXllciogcm9vdExheWVyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZh
dGVRVEtpdChNZWRpYVBsYXllciopOwotCi0gICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbQppbmRleCBhZjY1OWU1ZDhjZDRkNGE5NjE4NzYzNmM0ZWM5NGY4MjY4
Y2M2NDhlLi5jMzM2MDhlOTEwZGUyMjQ1NDYyNWIyZmIwNDVjODg2OTQwZjMxNDM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNjYsMTUgKzE2NiwxMCBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0KHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikK
IHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CisgICAgICAgIHJlZ2lzdHJh
cihRVEtpdFBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7
CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChN
ZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAppbmRleCA4YTFjZWU2ZmIyMzZlYTNlOGE2ZmRkYTJmMTBiMTU3OWY1YjI2
YzZlLi43ZjMyYTY0OWI4YjMwMGFjNTc5ODMzNjcwMjdmMTg0MGM3NjVlYTM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtNDEsMTUgKzQx
LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyCiB7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246
OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwotfQotCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0g
ICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUs
IDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoTWVkaWFGb3VuZGF0aW9uUGxheWVyLCBn
ZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmlzQXZhaWxhYmxlKCkgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVm
YWVlYmZmZTQxMmE1YWZlMWJlNTRlNzk1MzhhMi4uYmJhNTM2YzZhMmZhY2ZjZmU4NGViODE2ZGQz
ZWY4NWMzMWFmYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uaApAQCAtMzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAg
c3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAppbmRleCBjNjYx
NzhiOTY3N2NmODQ5NjVkOThiZjg4YmUzYTM5ODZmN2UzOGRhLi45ZmE2NGQ5M2ZiYzJjYjNmY2U0
MzI2N2Y4MjExMGZiYmE3NWZhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmNwcApAQCAtNDEsMTIgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8g
TWVkaWFQbGF5ZXIgRW5pZ25lIFN1cHBvcnQKIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQog
ewotICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUs
IDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVy
KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Uo
cGxheWVyKSk7CisgICAgcmVnaXN0cmFyKE1vY2tNZWRpYVNvdXJjZVBsYXllciwgZ2V0U3VwcG9y
dGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0
PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmgKaW5kZXggYjY2OTRkOGVkODczNzk4OWViMGJmNmVlZjk2MzkwNjM2NWZmYjk3Zi4u
ZTZhYjQ3NzAxMTk3ZGJiMTY3MDdjMWE3OGNkYzhkMmI3OGZkMjE3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaApAQCAtMzgsMTQgKzM4LDE0IEBAIGNsYXNzIE1v
Y2tNZWRpYVNvdXJjZVByaXZhdGU7CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgV0VC
Q09SRV9FWFBPUlQgZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5
ZXIqKTsKKyAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOworCiAgICAg
Ly8gTWVkaWFQbGF5ZXIgRW5naW5lIFN1cHBvcnQKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1l
ZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKLSAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZSgpOwotCiAgICAgdm9pZCBhZHZhbmNlQ3VycmVudFRpbWUoKTsKICAgICB2
b2lkIHVwZGF0ZUR1cmF0aW9uKGNvbnN0IE1lZGlhVGltZSYpOwogCkBAIC01Niw4ICs1Niw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNlZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBsYXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5
ZXJQcml2YXRlIE92ZXJyaWRlcwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYg
dXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwg
TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240333</attachid>
            <date>2014-10-22 23:08:15 -0700</date>
            <delta_ts>2014-10-23 00:46:41 -0700</delta_ts>
            <desc>Patch for win</desc>
            <filename>bug-137765-20141023150820.patch</filename>
            <type>text/plain</type>
            <size>42560</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlYzY0NjA2MDRhMzU2
YjNkMGU1NjM1YjhjNjI1ODczZjVjMGNiOC4uZjg5NTFjZGNkZDQwMGZjMDk0NjYwNTY4NmE4NjVk
NjAxNjlhNWVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTEwLTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8bWFrZV91bmlxdWU8PiwgdGhpcyBwYXRjaCBjaGFu
Z2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjw+fG1ha2VfdW5pcXVlPD4uIEhvd2V2ZXIgd2UgaGF2ZSB0byBzZXQgY29uc3RydWN0b3IgdG8g
cHVibGljIGluIG9yZGVyIHRvIHVzZQorICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPD4uIFRoaXMg
Y2hhbmdlIHdpbGwgY29uZmxpY3Qgd2l0aCBNZWRpYVBsYXllckZvbydzIGNyZWF0ZSgpIGZhY3Rv
cnkgZnVuY3Rpb24KKyAgICAgICAgYmVjYXVzZSB0aGVyZSBhcmUgdHdvIG9iamVjdCBjcmVhdGlv
biBtZXRob2RzLiBUaHVzIHRoaXMgcGF0Y2ggcmVtb3ZlcyBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0
aW9uCisgICAgICAgIGluIE1lZGlhUGxheWVyRm9vIGNsYXNzZXMgYW5kIGFsc28gbGV0cyBNZWRp
YVBsYXllckZhY3RvcnkgY3JlYXRlIE1lZGlhUGxheWVyRm9vIHVzaW5nIHN0ZDo6bWFrZV91bmlx
dWU8PgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9ucy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhRW5naW5lUGxheWVyVHlwZS5o
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6TWVkaWFQbGF5
ZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyRmFjdG9yeTo6Y3JlYXRl
TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWVkaWFFbmdpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpy
ZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0
ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE0LTEwLTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMg
aW4gcmVuZGVyaW5nLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkODdlYjAwMzI4ODRhOGU4ZDcz
MjNiNTU0NmI2Yjk3OTAwZGI4ZGYyLi5jMGZjYThmNzI1ZDlmODI0YjVhOWQ0ZDI4NTIxNTAzZGM5
ZWY4M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE3MCwxMiArMjE3MCwxOSBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9NZWRpYUNvbnN0cmFpbnRzTW9jay5jcHAKICAgICBwbGF0
Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ0RUTUZTZW5kZXJI
YW5kbGVyTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1JUQ05vdGlmaWVyc01vY2suY3BwCiAg
ICAgcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcAogICAgIHBs
YXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcAogCisgICAgcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmNwcAorICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrVHJhY2tzLmNwcAorCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUJhc2UuY3BwCiAgICAgcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAKICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTMxMjUsMTQg
KzMxMzIsNiBAQCBzZXQoV2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxFUwogKQogCiBzZXQoV2Vi
Q29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKLSAgICBwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmNwcAotCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
Qm94LmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3Vy
Y2VQcml2YXRlLmNwcAotICAgIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrVHJhY2tz
LmNwcAotCiAgICAgdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAogICAgIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDI3ZGE5MGQwNTk2NDk3NjQzYTFi
ZjVmNzM0NGZhYzVjY2E3YTA2ZDUuLjgyZmVjYjRhZDIzZWY3MzgwMDA5ZjQ1MTZkZTY3NjQyMzcw
NjI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjMzLDcgKzMyMzMsNyBAQCBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxM2dldFRvdWNoUmVjdHNFUk4zV1RGNlZlY3RvcklOU183SW50UmVjdEVM
bTBFTlMxXzE1Q3Jhc2hPbgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiBfX1pON1dlYkNvcmUx
MlNvdXJjZUJ1ZmZlcjI1YnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJREVSS04zV1RGMTJBdG9taWNT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNEpTU291cmNlQnVmZmVyOXRvV3JhcHBlZEVOM0pTQzdKU1Zh
bHVlRQotX19aTjdXZWJDb3JlMjZNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJN
ZWRpYUVuZ2luZUVQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJp
bmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBw
b3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZl
Y3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hf
U1hfRUUKK19fWk43V2ViQ29yZTI2TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UxOXJlZ2lzdGVy
TWVkaWFFbmdpbmVFUEZ2TlNfMjFNZWRpYUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hT
ZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3RyaW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVF
UEZOU18xMU1lZGlhUGxheWVyMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZlY3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1NfU1NfRUUKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKQEAgLTM0MTEsNyArMzQxMSw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDIyY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTE2SFRNTE1lZGlhRWxlbWVudDRwbGF5RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVu
dDVwYXVzZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19a
TjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZUVQRnZQRnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdF
TlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0
c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3Rv
cklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hf
RUVFCitfX1pON1dlYkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rl
ck1lZGlhRW5naW5lRVBGdlBGdk5TXzIxTWVkaWFFbmdpbmVQbGF5ZXJUeXBlRVBGdlJOM1dURjdI
YXNoU2V0SU5TMl82U3RyaW5nRU5TMl8xMFN0cmluZ0hhc2hFTlMyXzEwSGFzaFRyYWl0c0lTNF9F
RUVFRVBGTlNfMTFNZWRpYVBsYXllcjEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzRUVQRnZSTlMyXzZWZWN0b3JJUzRfTG0wRU5TMl8xNUNyYXNoT25PdmVy
Zmxvd0VFRUVQRnZ2RVBGdlJLUzRfRVBGYlNTX1NTX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4z
SlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQog
X19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMzhmMTZiMWQ5NTk0ZTMyMjFmMWQ1YzQy
ODcxN2M4M2IwODU4ODQ0Li44MjYxZTNjMDY2MTNjOTgwZWJhNTc0N2Q4YWQ3Y2QxNjBjYTczYzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01NTk5LDYgKzU1OTksNyBAQAogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyog
U2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAv
KiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0
NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggKi87IH07CisJCUNCQjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVu
Z2luZVBsYXllclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXllclR5cGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDQ0My
QjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTEx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlDQ0MyQjUx
NjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTMwNDQsNiArMTMwNDUsNyBAQAogCQlDQTNCRjY3RDEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5
MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0Fz
cGVjdFJhdGlvVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0JCNzQ1RkYx
OUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxheWVyVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZVBsYXllclR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNDQzJC
NTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwNTUyLDYgKzIwNTU0LDcgQEAKIAkJCQkxNDFEQzA0QzE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi8sCiAJCQkJMTQxREMwNEQxNjQ4MzRCOTAwMzcxRTVB
IC8qIExheW91dFJlY3QuaCAqLywKIAkJCQkxNDFEQzA0RTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5
b3V0U2l6ZS5oICovLAorCQkJCUNCQjc0NUZGMTlGNzNDMjYwMDUyMDU0MyAvKiBNZWRpYUVuZ2lu
ZVBsYXllclR5cGUuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQ
bGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXll
ci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZh
dGUuaCAqLywKQEAgLTI0NTM3LDYgKzI0NTQwLDcgQEAKIAkJCQlBOEQyMjNGRTE2QjUyRTRFMDAx
NTcyODggLyogSFRNTFJlc291cmNlUHJlbG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcx
REMyNTBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3N0IzODc1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVubmVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDQkI3NDYwMDE5RjczREE4MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQ
bGF5ZXJUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzg3NjEyMjg4M0U5MDBCODFGRjgg
LyogSFRNTFNjcmlwdFJ1bm5lckhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3
Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTQ0NjEzQTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGEzN2Rl
YTc3YTMyYzAzOGNiMDM3OWZmNmExNjkwODFkZmY3ODg2NDYuLjg4N2Q0ODA5MDU1NmM1MzE0ODky
ZmI0NDBkZWE0Yjg5NzFiNzNiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDY0Niw3ICs0NjQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVh
ck1lZGlhUGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYK
IAotICAgIG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAg
c3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDY5Myw3
ICs0NjkzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFu
IGFjdGl2ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0
ZWQsIHNvIHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5v
dGUgdGhhdCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBw
bGF5ZXIKICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFu
ZGxlcyBhbGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXll
ciA9IG51bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTMzNCw3
ICs1MzM0LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3Mo
KTsKICNlbmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgbV9wbGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxN
ZWRpYVBsYXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAg
IGlmIChtX2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCBiM2FmMDA3MDRlMzEyMGEyOWUyNTNlYzMyN2VkZGZmNzRiZDlhOTcyLi5lN2Mw
YzhiY2M4N2VhZjEyNDM2Y2E4NDExNDNhMmQwMTYxM2YxY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDcgKzc3MCw3IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYK
IAotICAgIE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJl
bG9hZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFFbmdpbmVQbGF5ZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYUVuZ2luZVBsYXllclR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTc1NjgxODA3MDVjMDRkZmY5YjRl
ZmJkZDUzNTRkMTBkZDI2YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KworI2lmbmRlZiBNZWRpYUVuZ2luZVBsYXllclR5cGVfaAorI2RlZmluZSBNZWRpYUVuZ2luZVBs
YXllclR5cGVfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0eXBlZGVmIGVudW0geworICAgIE51
bGxNZWRpYVBsYXllciwKKyAgICBBVkZvdW5kYXRpb25DRlBsYXllciwKKyAgICBBVkZvdW5kYXRp
b25PYmpDUGxheWVyLAorICAgIE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwKKyAgICBHU3RyZWFt
ZXJQbGF5ZXIsCisgICAgUVRLaXRQbGF5ZXIsCisgICAgTWVkaWFGb3VuZGF0aW9uUGxheWVyLAor
ICAgIE1vY2tNZWRpYVNvdXJjZVBsYXllcgorfSAgTWVkaWFFbmdpbmVQbGF5ZXJUeXBlOworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAppbmRleCBlZDlkODgzMzY0MWQ1M2M5OGM3M2E2NjRlZGM0YzUxOWVlZmI5ZjExLi5h
NDE0YzBiMjM1NzExMThjNzY0NThkODNlM2Q4YzNkMWE0OTM4YmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC00NCw2ICs0NCw3
IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgiCiAj
ZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpCkBAIC03OCw3ICs3OSw3IEBAIGNvbnN0IFBsYXRm
b3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhID0geyBQbGF0Zm9ybU1lZGlhOjpOb25lLCB7MH0gfTsK
IAogY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE51bGxNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQ
bGF5ZXIqKSB7IH0KKyAgICBleHBsaWNpdCBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxh
eWVyKikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTQ0LDM5ICsxNDUsNzMgQEAgcHVibGljOgogI2Vu
ZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+
IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAKLX0KLQog
CiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllckZhY3RvcnkpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllckZhY3RvcnkoQ3JlYXRlTWVkaWFFbmdp
bmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9y
dGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywK
KyAgICBNZWRpYVBsYXllckZhY3RvcnkoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGUs
IE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5l
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcywKICAgICAgICAgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZv
clNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3Rl
bSBzdXBwb3J0c0tleVN5c3RlbSkKLSAgICAgICAgOiBjb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikK
LSAgICAgICAgLCBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlcykKLSAgICAgICAg
LCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNzKQotICAgICAgICAs
IGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQotICAgICAgICAsIGNs
ZWFyTWVkaWFDYWNoZShjbGVhck1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQotICAgICAgICAsIHN1cHBvcnRzS2V5U3lz
dGVtKHN1cHBvcnRzS2V5U3lzdGVtKQorICAgICAgICAgICAgOiBwbGF5ZXJUeXBlKHBsYXllclR5
cGUpCisgICAgICAgICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c1R5cGVBbmRDb2RlY3Moc3VwcG9ydHNUeXBlQW5kQ29kZWNz
KQorICAgICAgICAgICAgLCBnZXRTaXRlc0luTWVkaWFDYWNoZShnZXRTaXRlc0luTWVkaWFDYWNo
ZSkKKyAgICAgICAgICAgICwgY2xlYXJNZWRpYUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkKKyAgICAg
ICAgICAgICwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKQor
ICAgICAgICAgICAgLCBzdXBwb3J0c0tleVN5c3RlbShzdXBwb3J0c0tleVN5c3RlbSkKICAgICB7
CiAgICAgfQogCi0gICAgQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CisgICAg
TWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBsYXllclR5cGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0
ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlczsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGVBbmRDb2RlY3M7CiAgICAgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSBnZXRTaXRlc0luTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSBj
bGVhck1lZGlhQ2FjaGU7CiAgICAgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNs
ZWFyTWVkaWFDYWNoZUZvclNpdGU7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSBz
dXBwb3J0c0tleVN5c3RlbTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHBsYXllclR5cGUpIHsKKyAgICAgICAgY2FzZSBOdWxsTWVkaWFQ
bGF5ZXI6CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlPihwbGF5ZXIpOworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIGNhc2UgQVZGb3VuZGF0aW9uT2JqQ1BsYXllcjoKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM+KHBsYXllcik7CisgICAgICAgIGNhc2UgUVRLaXRQbGF5ZXI6CisgICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgICAgICBjYXNlIE1lZGlhU291cmNlQVZGT2JqQ1Bs
YXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQz4ocGxheWVyKTsKKyNlbmRpZgorI2VuZGlmCisjaWYgUExB
VEZPUk0oV0lOKQorICAgICAgICBjYXNlIEFWRm91bmRhdGlvbkNGUGxheWVyOgorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y+KHBsYXllcik7CisjZW5kaWYKKyNlbmRpZiAvLyBVU0UoQVZGT1VOREFUSU9OKQorI2lmIFVT
RShHU1RSRUFNRVIpCisgICAgICAgIGNhc2UgR1N0cmVhbWVyUGxheWVyOgorICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPihwbGF5
ZXIpOworI2VuZGlmCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoTUVESUFfRk9VTkRBVElPTikK
KyAgICAgICAgY2FzZSBNZWRpYUZvdW5kYXRpb25QbGF5ZXI6CisgICAgICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24+KHBsYXll
cik7CisjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgICAgICBjYXNlIE1vY2tN
ZWRpYVNvdXJjZVBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlPihwbGF5ZXIpOworI2VuZGlmCisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CisgICAg
ICAgIH0KKyAgICB9CiB9OwogCi1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRp
YUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBw
b3J0c1R5cGUsIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1lZGlhRW5n
aW5lU3VwcG9ydHNLZXlTeXN0ZW0pOworc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVQbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1
cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFF
bmdpbmVTdXBwb3J0c0tleVN5c3RlbSk7CiAKIHN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIGJl
c3RNZWRpYUVuZ2luZUZvclN1cHBvcnRQYXJhbWV0ZXJzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmLCBNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQgPSAwKTsKIHN0YXRpYyBN
ZWRpYVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1
cnJlbnQpOwpAQCAtMjIzLDE0ICsyNTgsMTQgQEAgc3RhdGljIFZlY3RvcjxNZWRpYVBsYXllckZh
Y3RvcnkqPiYgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKFJlcXVlcnlFbmdpbmVPcHRpb25zIHIKICAg
ICByZXR1cm4gaW5zdGFsbGVkRW5naW5lczsKIH0KIAotc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdp
bmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZSwKK3N0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKE1lZGlhRW5naW5lUGxheWVyVHlw
ZSBwbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzIGdldFN1cHBvcnRlZFR5cGVz
LCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUsCiAgICAgTWVkaWFFbmdpbmVH
ZXRTaXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVh
ck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZv
clNpdGUgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3Rl
bSBzdXBwb3J0c0tleVN5c3RlbSkKIHsKLSAgICBBU1NFUlQoY29uc3RydWN0b3IpOworICAgIEFT
U0VSVChwbGF5ZXJUeXBlKTsKICAgICBBU1NFUlQoZ2V0U3VwcG9ydGVkVHlwZXMpOwogICAgIEFT
U0VSVChzdXBwb3J0c1R5cGUpOwogCi0gICAgaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkuYXBwZW5k
KG5ldyBNZWRpYVBsYXllckZhY3RvcnkoY29uc3RydWN0b3IsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZUZvclNpdGUsIHN1cHBvcnRzS2V5U3lzdGVtKSk7CisgICAgaW5zdGFsbGVkTWVk
aWFFbmdpbmVzKCkuYXBwZW5kKG5ldyBNZWRpYVBsYXllckZhY3RvcnkocGxheWVyVHlwZSwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFy
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsK
IH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgp
CkBAIC0zMDgsNyArMzQzLDcgQEAgc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dE1lZGlh
RW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCkKIE1lZGlhUGxheWVyOjpNZWRpYVBs
YXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQog
ICAgICwgbV9yZWxvYWRUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQp
Ci0gICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpKQorICAgICwgbV9w
cml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCiAg
ICAgLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgwKQogICAgICwgbV9wcmVsb2FkKEF1dG8pCiAgICAg
LCBtX3Zpc2libGUoZmFsc2UpCkBAIC00MDksNyArNDQ0LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6
bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAg
ICAgICBtX3ByaXZhdGUgPSBudWxscHRyOwogICAgIH0gZWxzZSBpZiAobV9jdXJyZW50TWVkaWFF
bmdpbmUgIT0gZW5naW5lKSB7CiAgICAgICAgIG1fY3VycmVudE1lZGlhRW5naW5lID0gZW5naW5l
OwotICAgICAgICBtX3ByaXZhdGUgPSBlbmdpbmUtPmNvbnN0cnVjdG9yKHRoaXMpOworICAgICAg
ICBtX3ByaXZhdGUgPSBlbmdpbmUtPmNyZWF0ZU1lZGlhUGxheWVyKHRoaXMpOwogICAgICAgICBt
X2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fcHJpdmF0
ZS0+c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShtX3ByaXZhdGVCcm93c2luZyk7CiAgICAgICAgIG1f
cHJpdmF0ZS0+c2V0UHJlbG9hZChtX3ByZWxvYWQpOwpAQCAtNDI2LDcgKzQ2MSw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSog
Y3VycmVudCkKICNlbmRpZgogICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwuc3RyaW5nKCkp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU51bGxNZWRpYVBsYXll
cih0aGlzKTsKKyAgICAgICAgbV9wcml2YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQ
bGF5ZXJQcml2YXRlPih0aGlzKTsKICAgICAgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJFbmdpbmVV
cGRhdGVkKHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlc291cmNlTm90U3Vw
cG9ydGVkKHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCmluZGV4IGUyYjI0MjZkOTE2Y2VhM2VkNmQzNWExNDdiYTRjZjJmYzc2
ODg5NzcuLmM5OTBiOWVmZjJjZDJkYzg3YjRkMzI0NzVlYjM0YmZlNzYwMGIyM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmgiCiAjaW5j
bHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUxheWVyLmgiCkBAIC00Niw4ICs0Nyw2IEBACiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKEFW
Rl9DQVBUSU9OUykKQEAgLTI3NywxMSArMjc2LDcgQEAgcHVibGljOgogY2xhc3MgTWVkaWFQbGF5
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXll
cj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBleHBsaWNp
dCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU3Nyw3ICs1NzIsNiBA
QCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9y
eSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJG
YWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyPiYp
OwpAQCAtNTg2LDcgKzU4MCw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVudCYg
bV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0gICAgT3du
UHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAgICBNZWRp
YVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3VybDsKICAg
ICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjAyLDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYg
dm9pZCAoKk1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwogdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0
c1R5cGUpKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwog
dHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0
cmluZz4mKTsKQEAgLTYxNiw3ICs2MDksNyBAQCB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZSkoKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiB0eXBlZGVmIGJvb2wgKCpNZWRpYUVuZ2luZVN1
cHBvcnRzS2V5U3lzdGVtKShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk7CiAKLXR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVT
dXBwb3J0c1R5cGUsCit0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVJlZ2lzdHJhcikoTWVkaWFF
bmdpbmVQbGF5ZXJUeXBlLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1
cHBvcnRzVHlwZSwKICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBN
ZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5l
UmVnaXN0ZXIpKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDY2MGIwYzAwMjVkMWI3
ZGU3YzVkNzVhYTFiYzc1Yjg4OGJjMWZlODUuLmQ4OTM5ODdiNTMyNDRhODU1MTRlMjEzZTIxZDY2
YmNlZDU1OTkwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgR2VuZXJpY0N1ZURhdGE7
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQVZGSW5iYW5kVHJhY2tQYXJlbnQKIHsKIHB1Ymxp
YzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5
ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KCk7CiAgICAgdmlydHVhbCB2b2lkIG1l
dGFkYXRhTG9hZGVkKCk7CkBAIC0xNDQsNyArMTQ1LDYgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
b3RlY3RlZDoKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIq
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAogICAg
IFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwCmluZGV4IDI3NWQ5ZTEyNWQyNzBhMmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYuLmVkOWMw
ZWFjZDdiNzIyOWUzYzZiMWUxNjM5NzUzZTIzYzIwZjlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApA
QCAtMzM1LDE1ICszMzUsMTAgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsTG9hZGVy
RGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVk
aWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdp
c3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBz
dXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lzdHJhcihBVkZvdW5kYXRpb25DRlBsYXll
ciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlT
eXN0ZW0pOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgK
aW5kZXggMmFjMDE0NGRhYTkzOGNkMjMwMmM2YjJkNjdkZGEzMDM1MDA4NDdkMy4uNDRhOGNmNjM5
NTAyYjVlMmUxN2I4YzQzYWE3Mzg4NzJlN2IyMTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQxLDYg
KzQxLDcgQEAgY2xhc3MgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92
ZXJyaWRlOwpAQCAtNTgsMTAgKzU5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgotICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBF
bmdpbmUgc3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
aW5kZXggZjJiOGUzYjdhMmFjMDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uN2U3ZDk3N2Vm
YzA3Nzc4ZDdmYzExZDhiYjk4MWJmZWVmZjZjNTY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApA
QCAtNjksNiArNjksNyBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CkBAIC0xMzEsMTAgKzEzMiw3IEBA
IHB1YmxpYzoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIo
KTsgfQogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMo
TWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsK
ICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVz
KTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29u
c3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDY3MzY1ZWVmMTUyMmQ3NjMyNzg0NjYz
ZjViMzNjZjIwYWU1N2QwODMuLmIyNDRmNmRlMzcwYjJlYThkZWU2N2I3ODEzNmIzN2JmOGU1NDJi
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzgzLDE1ICszODMsMTAgQEAgc3RhdGlj
IGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogfQogI2VuZGlmCiAK
LVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsgCi0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKHBs
YXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJl
Z2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAg
IGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0
ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAg
ICAgIHJlZ2lzdHJhcihBVkZvdW5kYXRpb25PYmpDUGxheWVyLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXgg
MDc3YWMyZTMyYzM4ZWI3YmQyNTIzOWEwMjRiM2Y3NzUxMDY5NTdiMS4uNTc1ZWZhNTgzODRiMDU0
MmZlN2U3NWZlOWIyZWQ3NTU0OGJlMDM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAg
LTUwLDEzICs1MCwxMSBAQCBjbGFzcyBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOwogCiBjbGFz
cyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoKTsKIAogICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCi0gICAgLy8gTWVkaWFQ
bGF5ZXIgRmFjdG9yeSBNZXRob2RzCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgYm9vbCBp
c0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8
U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjBlYjYxY2FhOGUwNGZlNzdiOGE3NmRmNTViMGMwYTE4
MGUyNmIxOC4uYzg5NzhlMjFlZTRiMWUwM2U0NjdlMmUzYmEzNjVhZDhiOTgyMWQwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTk2LDEyICsxOTYsNyBAQCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMoKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlm
IChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRU
eXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKLX0KLQotUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7CisgICAgICAg
IHJlZ2lzdHJhcihNZWRpYVNvdXJjZUFWRk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4YWM4ZmNjZmJhYjNhMTc1NmQxOTcyZWQ3
NGM3ZDA2OGRlM2Q5NjhmLi4wZTExMzZiNTYzMGViYmM5NDAyYWZiMTA5MzkyYWUwZTkyYWRjMjgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtMTM4LDE1ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNl
dEF1ZGlvU3RyZWFtUHJvcGVydGllcyhHT2JqZWN0KiBvYmplY3QpCiAgICAgTE9HX01FRElBX01F
U1NBR0UoIlNldCBtZWRpYS5yb2xlIGFzICVzIGF0ICVzIiwgcm9sZSwgZWxlbWVudE5hbWUuZ2V0
KCkpOwogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihwbGF5ZXIp
KTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWls
YWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3Vw
cG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKEdTdHJlYW1lclBsYXll
ciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJv
b2wgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVudHMoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDUwODQ5MjE5ODJj
NjE4NDMyYTFhYTJmMWZmYTljMGY4MWMzMWJhNzYuLjY2OWZiNTZhMzFhYWUzYWU3ZjE3NDI4Mjc0
Zjk5MTJiMjMyNzhjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKQEAgLTU3LDcgKzU3LDkgQEAgY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1l
ZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3Nh
Z2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1
Z2luc1JldHVybik7CkBAIC0xMjYsMTAgKzEyOCw2IEBAIHB1YmxpYzoKICAgICBib29sIGNoYW5n
ZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKLQogICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRp
YyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2lu
ZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXgg
ODBjMmNlYTU5MTNhNDI1MmJlMWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uZWMzMWE3NzQ1MGE3NDhh
MTBmOTMzZjMzMmMzNzFiNGUxNWFjZjQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgK
QEAgLTUwLDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsK
IHB1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXll
ciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVRVEtpdCgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwog
CkBAIC02MywxMCArNjQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXllckhvc3RDaGFuZ2VkKFBs
YXRmb3JtTGF5ZXIqIHJvb3RMYXllcik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKLQotICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0
c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggYWY2NTllNWQ4Y2Q0ZDRhOTYxODc2MzZjNGVjOTRmODI2
OGNjNjQ4ZS4uYzMzNjA4ZTkxMGRlMjI0NTQ2MjViMmZiMDQ1Yzg4Njk0MGYzMTQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTY2LDE1ICsxNjYsMTAgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUo
TWVkaWFQbGF5ZXIqIHBsYXllcikKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBs
YXllclByaXZhdGVRVEtpdChwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIp
CiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBjbGVh
ck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIDApOworICAgICAgICByZWdpc3Ry
YXIoUVRLaXRQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIGdldFNpdGVz
SW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIDAp
OwogfQogCiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQo
TWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5jcHAKaW5kZXggOGExY2VlNmZiMjM2ZWEzZThhNmZkZGEyZjEwYjE1NzlmNWIy
NmM2ZS4uN2YzMmE2NDliOGIzMDBhYzU3OTgzMzY3MDI3ZjE4NDBjNzY1ZWEzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQxLDE1ICs0
MSwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllcgogewogfQogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihwbGF5ZXIpKTsKLX0KLQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQot
ICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBl
LCAwLCAwLCAwLCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKE1lZGlhRm91bmRhdGlvblBsYXllciwg
Z2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjppc0F2YWlsYWJsZSgpIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCmluZGV4IGI5YWUwYzU1ZDU1
ZmFlZWJmZmU0MTJhNWFmZTFiZTU0ZTc5NTM4YTIuLmJiYTUzNmM2YTJmYWNmY2ZlODRlYjgxNmRk
M2VmODVjMzFhZmM4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmgKQEAgLTMwLDEwICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0
YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKaW5kZXggYzY2
MTc4Yjk2NzdjZjg0OTY1ZDk4YmY4OGJlM2EzOTg2ZjdlMzhkYS4uOWZhNjRkOTNmYmMyY2IzZmNl
NDMyNjdmODIxMTBmYmJhNzVmYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJN
ZWRpYVNvdXJjZS5jcHAKQEAgLTQxLDEyICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8v
IE1lZGlhUGxheWVyIEVuaWduZSBTdXBwb3J0CiB2b2lkIE1vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikK
IHsKLSAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBl
LCAwLCAwLCAwLCAwKTsKLX0KLQotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXll
cikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
KHBsYXllcikpOworICAgIHJlZ2lzdHJhcihNb2NrTWVkaWFTb3VyY2VQbGF5ZXIsIGdldFN1cHBv
cnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBzdGF0aWMgSGFzaFNl
dDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oCmluZGV4IGI2Njk0ZDhlZDg3Mzc5ODllYjBiZjZlZWY5NjM5MDYzNjVmZmI5N2Yu
LmU2YWI0NzcwMTE5N2RiYjE2NzA3YzFhNzhjZGM4ZDJiNzhmZDIxNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKQEAgLTM4LDE0ICszOCwxNCBAQCBjbGFzcyBN
b2NrTWVkaWFTb3VyY2VQcml2YXRlOwogCiBjbGFzcyBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJj
ZSA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxh
eWVyKik7CisgICAgdmlydHVhbCB+TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoKTsKKwogICAg
IC8vIE1lZGlhUGxheWVyIEVuZ2luZSBTdXBwb3J0CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCi0gICAgdmlydHVhbCB+TW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UoKTsKLQogICAgIHZvaWQgYWR2YW5jZUN1cnJlbnRUaW1lKCk7CiAgICAg
dm9pZCB1cGRhdGVEdXJhdGlvbihjb25zdCBNZWRpYVRpbWUmKTsKIApAQCAtNTYsOCArNTYsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZWVrQ29tcGxldGVkKCk7CiAKIHByaXZhdGU6Ci0gICAgTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIE1lZGlhUGxh
eWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmws
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240335</attachid>
            <date>2014-10-23 00:46:52 -0700</date>
            <delta_ts>2014-10-28 19:13:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141023164658.patch</filename>
            <type>text/plain</type>
            <size>42655</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlYzY0NjA2MDRhMzU2
YjNkMGU1NjM1YjhjNjI1ODczZjVjMGNiOC4uMWQxMmFiMTgyY2ZlZmQ0NGQzNTY5MDRkYmVhN2Y1
MTkwNjYzZDBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE0LTEwLTIzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHIgaW4gTWVkaWFQbGF5ZXJGb28gY2xhc3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBz
dGVwIHRvIHVzZSBzdGQ6OnVuaXF1ZV9wdHJ8c3RkOjptYWtlX3VuaXF1ZTw+LCB0aGlzIHBhdGNo
IGNoYW5nZXMgdXNlIG9mIE93blB0cnxQYXNzT3duUHRyIHdpdGgKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPD58c3RkOjptYWtlX3VuaXF1ZTw+LiBIb3dldmVyIHdlIGhhdmUgdG8gc2V0IGNvbnN0
cnVjdG9yIHRvIHB1YmxpYyBpbiBvcmRlciB0byB1c2UKKyAgICAgICAgc3RkOjptYWtlX3VuaXF1
ZTw+LiBUaGlzIGNoYW5nZSB3aWxsIGNvbmZsaWN0IHdpdGggTWVkaWFQbGF5ZXJGb28ncyBjcmVh
dGUoKSBmYWN0b3J5IGZ1bmN0aW9uCisgICAgICAgIGJlY2F1c2UgdGhlcmUgYXJlIHR3byBvYmpl
Y3QgY3JlYXRpb24gbWV0aG9kcy4gVGh1cyB0aGlzIHBhdGNoIHJlbW92ZXMgY3JlYXRlKCkgZmFj
dG9yeSBmdW5jdGlvbgorICAgICAgICBpbiBNZWRpYVBsYXllckZvbyBjbGFzc2VzIGFuZCBhbHNv
IGxldHMgTWVkaWFQbGF5ZXJGYWN0b3J5IGNyZWF0ZSBNZWRpYVBsYXllckZvbyB1c2luZyBzdGQ6
Om1ha2VfdW5pcXVlPD4KKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBm
dW5jdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6Ok51bGxNZWRpYVBsYXllclByaXZh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJGYWN0b3J5OjpNZWRpYVBsYXllckZh
Y3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJGYWN0b3J5OjpjcmVhdGVNZWRp
YVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjphZGRNZWRpYUVuZ2luZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZU51bGxNZWRpYVBsYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lz
dGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZWdp
c3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5l
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVu
Z2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVBsYXllck1lZGlhU291cmNlLmg6CisKIDIwMTQtMTAtMjIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCB2aXJ0dWFsIGZ1bmN0aW9ucyBpbiBy
ZW5kZXJpbmcvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ4N2ViMDAzMjg4NGE4ZThkNzMyM2I1
NTQ2YjZiOTc5MDBkYjhkZjIuLmMwZmNhOGY3MjVkOWY4MjRiNWE5ZDRkMjg1MjE1MDNkYzllZjgz
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTcwLDEyICsyMTcwLDE5IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAK
ICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhQ29uc3RyYWludHNNb2NrLmNwcAogICAgIHBsYXRmb3Jt
L21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAorICAgIHBsYXRmb3JtL21vY2svUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCiAgICAgcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hh
bm5lbEhhbmRsZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDRFRNRlNlbmRlckhhbmRs
ZXJNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svUlRDTm90aWZpZXJzTW9jay5jcHAKICAgICBw
bGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCiAgICAgcGxhdGZv
cm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCiAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tCb3guY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVNvdXJjZVByaXZhdGUuY3BwCisgICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tUcmFja3MuY3BwCisKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcAogICAgIHBs
YXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcApAQCAtMzEyNSwxNCArMzEz
Miw2IEBAIHNldChXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCiApCiAKIHNldChXZWJDb3Jl
VGVzdFN1cHBvcnRfU09VUkNFUwotICAgIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwCi0KLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3gu
Y3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZS5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVBy
aXZhdGUuY3BwCi0gICAgcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tUcmFja3MuY3Bw
Ci0KICAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCiAgICAgdGVzdGluZy9JbnRlcm5h
bHMuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMjdkYTkwZDA1OTY0OTc2NDNhMWJmNWY3
MzQ0ZmFjNWNjYTdhMDZkNS4uODJmZWNiNGFkMjNlZjczODAwMDlmNDUxNmRlNjc2NDIzNzA2MjU0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMyMzMsNyArMzIzMyw3IEBAIF9fWk43V2ViQ29y
ZThEb2N1bWVudDEzZ2V0VG91Y2hSZWN0c0VSTjNXVEY2VmVjdG9ySU5TXzdJbnRSZWN0RUxtMEVO
UzFfMTVDcmFzaE9uCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIF9fWk43V2ViQ29yZTEyU291
cmNlQnVmZmVyMjVidWZmZXJlZFNhbXBsZXNGb3JUcmFja0lERVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0UKIF9fWk43V2ViQ29yZTE0SlNTb3VyY2VCdWZmZXI5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVF
Ci1fX1pON1dlYkNvcmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlMTlyZWdpc3Rlck1lZGlh
RW5naW5lRVBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNldElOUzFfNlN0cmluZ0VO
UzFfMTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQRk5TNV8xMlN1cHBvcnRz
VHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TMV82VmVjdG9y
SVNBX0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NBX0VQRmJTWF9TWF9F
RQorX19aTjdXZWJDb3JlMjZNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTE5cmVnaXN0ZXJNZWRp
YUVuZ2luZUVQRnZOU18yMU1lZGlhRW5naW5lUGxheWVyVHlwZUVQRnZSTjNXVEY3SGFzaFNldElO
UzJfNlN0cmluZ0VOUzJfMTBTdHJpbmdIYXNoRU5TMl8xMEhhc2hUcmFpdHNJUzRfRUVFRUVQRk5T
XzExTWVkaWFQbGF5ZXIxMlN1cHBvcnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVyc0VFUEZ2Uk5TMl82VmVjdG9ySVM0X0xtMEVOUzJfMTVDcmFzaE9uT3ZlcmZsb3dFRUVF
UEZ2dkVQRnZSS1M0X0VQRmJTU19TU19FRQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQpAQCAtMzQxMSw3ICszNDExLDcgQEAgX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MjJjbGVhck1lZGlhQ2FjaGVGb3JTaXRlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50NHBsYXlFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NXBh
dXNlRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDhzZXRNdXRlZEViCi1fX1pON1dl
YkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rlck1lZGlhRW5naW5l
RVBGdlBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNldElOUzFfNlN0cmluZ0VOUzFf
MTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQRk5TNV8xMlN1cHBvcnRzVHlw
ZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TMV82VmVjdG9ySVNB
X0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NBX0VQRmJTWF9TWF9FRUUK
K19fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDIzY2FsbFJlZ2lzdGVyTWVk
aWFFbmdpbmVFUEZ2UEZ2TlNfMjFNZWRpYUVuZ2luZVBsYXllclR5cGVFUEZ2Uk4zV1RGN0hhc2hT
ZXRJTlMyXzZTdHJpbmdFTlMyXzEwU3RyaW5nSGFzaEVOUzJfMTBIYXNoVHJhaXRzSVM0X0VFRUVF
UEZOU18xMU1lZGlhUGxheWVyMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnNFRVBGdlJOUzJfNlZlY3RvcklTNF9MbTBFTlMyXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFRVBGdnZFUEZ2UktTNF9FUEZiU1NfU1NfRUVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5
RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCiBfX1pO
SzdXZWJDb3JlMTBUaW1lUmFuZ2VzN25lYXJlc3RFZAogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlh
RWxlbWVudDExY3VycmVudFRpbWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEzOGYxNmIxZDk1OTRlMzIyMWYxZDVjNDI4NzE3
YzgzYjA4NTg4NDQuLjgyNjFlM2MwNjYxM2M5ODBlYmE1NzQ3ZDhhZDdjZDE2MGNhNzNjMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU1OTksNiArNTU5OSw3IEBACiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0NDFG
MDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENT
U0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjAg
LyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuaCAqLzsgfTsKKwkJQ0JCNzQ2MDAxOUY3M0RBODAwNTIwNTQzIC8qIE1lZGlhRW5naW5l
UGxheWVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0JCNzQ1RkYxOUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxheWVyVHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNDQzJCNTE0
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDQ0MyQjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMTE1RjYx
MzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNDQzJCNTE2MTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2
aWNlQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMzA0NCw2ICsxMzA0NSw3IEBACiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1
MyAvKiBTY3JvbGxBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JvbGxBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVj
dFJhdGlvVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQkI3NDVGRjE5Rjcz
QzI2MDA1MjA1NDMgLyogTWVkaWFFbmdpbmVQbGF5ZXJUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhRW5naW5lUGxheWVyVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDQ0MyQjUxMTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZp
Y2VDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0NDMkI1MTIx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA1NTIsNiArMjA1NTQsNyBAQAogCQkJCTE0MURDMDRDMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmNwcCAqLywKIAkJCQkxNDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyog
TGF5b3V0UmVjdC5oICovLAogCQkJCTE0MURDMDRFMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRT
aXplLmggKi8sCisJCQkJQ0JCNzQ1RkYxOUY3M0MyNjAwNTIwNTQzIC8qIE1lZGlhRW5naW5lUGxh
eWVyVHlwZS5oICovLAogCQkJCUU0QjQxRTBDMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXll
ci5jcHAgKi8sCiAJCQkJRTRCNDFFMEQwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlhUGxheWVyLmgg
Ki8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5o
ICovLApAQCAtMjQ1MzcsNiArMjQ1NDAsNyBAQAogCQkJCUE4RDIyM0ZFMTZCNTJFNEUwMDE1NzI4
OCAvKiBIVE1MUmVzb3VyY2VQcmVsb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzI1
MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTc3QjM4NzUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNCQjc0NjAwMTlGNzNEQTgwMDUyMDU0MyAvKiBNZWRpYUVuZ2luZVBsYXll
clR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODc2MTIyODgzRTkwMEI4MUZGOCAvKiBI
VE1MU2NyaXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RDgwOTczNzRG
NjAwRDc0NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2
MTNBODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTM3ZGVhNzdh
MzJjMDM4Y2IwMzc5ZmY2YTE2OTA4MWRmZjc4ODY0Ni4uODg3ZDQ4MDkwNTU2YzUzMTQ4OTJmYjQ0
MGRlYTRiODk3MWI3M2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC00NjQ2LDcgKzQ2NDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVk
aWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0g
ICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9w
UGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2
OTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0
aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwg
c28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0
aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXll
cgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVz
IGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0g
bnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01MzM0LDcgKzUz
MzQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwog
I2VuZGlmCi0gICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBt
X3BsYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0PE1lZGlh
UGxheWVyQ2xpZW50Jj4oKnRoaXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYg
KG1fYXVkaW9Tb3VyY2VOb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IGIzYWYwMDcwNGUzMTIwYTI5ZTI1M2VjMzI3ZWRkZmY3NGJkOWE5NzIuLmU3YzBjOGJj
Yzg3ZWFmMTI0MzZjYTg0MTE0M2EyZDAxNjEzZjFjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC03NzAsNyArNzcwLDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBs
YXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0g
ICAgT3duUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXI+IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2Fk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYUVu
Z2luZVBsYXllclR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
RW5naW5lUGxheWVyVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NzU2ODE4MDcwNWMwNGRmZjliNGVmYmRk
NTM1NGQxMGRkMjZhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYUVuZ2luZVBsYXllclR5cGUuaApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisj
aWZuZGVmIE1lZGlhRW5naW5lUGxheWVyVHlwZV9oCisjZGVmaW5lIE1lZGlhRW5naW5lUGxheWVy
VHlwZV9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3R5cGVkZWYgZW51bSB7CisgICAgTnVsbE1l
ZGlhUGxheWVyLAorICAgIEFWRm91bmRhdGlvbkNGUGxheWVyLAorICAgIEFWRm91bmRhdGlvbk9i
akNQbGF5ZXIsCisgICAgTWVkaWFTb3VyY2VBVkZPYmpDUGxheWVyLAorICAgIEdTdHJlYW1lclBs
YXllciwKKyAgICBRVEtpdFBsYXllciwKKyAgICBNZWRpYUZvdW5kYXRpb25QbGF5ZXIsCisgICAg
TW9ja01lZGlhU291cmNlUGxheWVyCit9ICBNZWRpYUVuZ2luZVBsYXllclR5cGU7Cit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCmluZGV4IGVkOWQ4ODMzNjQxZDUzYzk4YzczYTY2NGVkYzRjNTE5ZWVmYjlmMTEuLmE0MTRj
MGIyMzU3MTExOGM3NjQ1OGQ4M2UzZDhjM2QxYTQ5MzhiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50LmgiCisjaW5jbHVkZSAiTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaCIKICNlbmRp
ZgogCiAjaWYgVVNFKEdTVFJFQU1FUikKQEAgLTc4LDcgKzc5LDcgQEAgY29uc3QgUGxhdGZvcm1N
ZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRmb3JtTWVkaWE6Ok5vbmUsIHswfSB9OwogCiBj
bGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXll
ciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIq
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIHsgfQogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDQsMzkgKzE0NSw3MyBAQCBwdWJsaWM6CiAjZW5kaWYK
IH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3Jl
YXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAoteyAKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7IAotfQotCiAKIC8v
IGVuZ2luZSBzdXBwb3J0CiAKIHN0cnVjdCBNZWRpYVBsYXllckZhY3RvcnkgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyRmFjdG9yeSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIE1lZGlhUGxheWVyRmFjdG9yeShDcmVhdGVNZWRpYUVuZ2luZVBs
YXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRU
eXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzLAorICAg
IE1lZGlhUGxheWVyRmFjdG9yeShNZWRpYUVuZ2luZVBsYXllclR5cGUgcGxheWVyVHlwZSwgTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzLAogICAgICAgICBNZWRpYUVuZ2luZUdldFNp
dGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVk
aWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1
cHBvcnRzS2V5U3lzdGVtKQotICAgICAgICA6IGNvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQotICAg
ICAgICAsIGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzKQotICAgICAgICAsIHN1
cHBvcnRzVHlwZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCi0gICAgICAgICwgZ2V0
U2l0ZXNJbk1lZGlhQ2FjaGUoZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUpCi0gICAgICAgICwgY2xlYXJN
ZWRpYUNhY2hlKGNsZWFyTWVkaWFDYWNoZSkKLSAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JT
aXRlKGNsZWFyTWVkaWFDYWNoZUZvclNpdGUpCi0gICAgICAgICwgc3VwcG9ydHNLZXlTeXN0ZW0o
c3VwcG9ydHNLZXlTeXN0ZW0pCisgICAgICAgICAgICA6IHBsYXllclR5cGUocGxheWVyVHlwZSkK
KyAgICAgICAgICAgICwgZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXMpCisgICAg
ICAgICAgICAsIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhzdXBwb3J0c1R5cGVBbmRDb2RlY3MpCisg
ICAgICAgICAgICAsIGdldFNpdGVzSW5NZWRpYUNhY2hlKGdldFNpdGVzSW5NZWRpYUNhY2hlKQor
ICAgICAgICAgICAgLCBjbGVhck1lZGlhQ2FjaGUoY2xlYXJNZWRpYUNhY2hlKQorICAgICAgICAg
ICAgLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKGNsZWFyTWVkaWFDYWNoZUZvclNpdGUpCisgICAg
ICAgICAgICAsIHN1cHBvcnRzS2V5U3lzdGVtKHN1cHBvcnRzS2V5U3lzdGVtKQogICAgIHsKICAg
ICB9CiAKLSAgICBDcmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvcjsKKyAgICBNZWRp
YUVuZ2luZVBsYXllclR5cGUgcGxheWVyVHlwZTsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5
cGVzIGdldFN1cHBvcnRlZFR5cGVzOwogICAgIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBv
cnRzVHlwZUFuZENvZGVjczsKICAgICBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdl
dFNpdGVzSW5NZWRpYUNhY2hlOwogICAgIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlIGNsZWFy
TWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUgY2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZTsKICAgICBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1cHBv
cnRzS2V5U3lzdGVtOworCisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAocGxheWVyVHlwZSkgeworICAgICAgICBjYXNlIE51bGxNZWRpYVBsYXll
cjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclBy
aXZhdGU+KHBsYXllcik7CisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgY2FzZSBBVkZvdW5kYXRpb25PYmpDUGxheWVyOgorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4o
cGxheWVyKTsKKyAgICAgICAgY2FzZSBRVEtpdFBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0PihwbGF5ZXIpOworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTWVkaWFTb3VyY2VBVkZPYmpDUGxheWVy
OgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIpOworI2VuZGlmCisjZW5kaWYKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgICAgIGNhc2UgQVZGb3VuZGF0aW9uQ0ZQbGF5ZXI6CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRj4o
cGxheWVyKTsKKyNlbmRpZgorI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCisjaWYgVVNFKEdT
VFJFQU1FUikKKyAgICAgICAgY2FzZSBHU3RyZWFtZXJQbGF5ZXI6CisgICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KHBsYXllcik7
CisjZW5kaWYKKyNpZiBQTEFURk9STShXSU4pICYmIFVTRShNRURJQV9GT1VOREFUSU9OKQorICAg
ICAgICBjYXNlIE1lZGlhRm91bmRhdGlvblBsYXllcjoKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbj4ocGxheWVyKTsK
KyNlbmRpZgorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgICAgIGNhc2UgTW9ja01lZGlh
U291cmNlUGxheWVyOgorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2U+KHBsYXllcik7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4ocGxheWVyKTsKKyAgICAgICAg
fQorICAgIH0KIH07CiAKLXN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5n
aW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRz
VHlwZSwgTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1l
ZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVT
dXBwb3J0c0tleVN5c3RlbSk7CitzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9y
dHNUeXBlLCBNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFy
TWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRzS2V5U3lzdGVtKTsKIAogc3RhdGljIE1lZGlhUGxheWVyRmFjdG9yeSogYmVzdE1l
ZGlhRW5naW5lRm9yU3VwcG9ydFBhcmFtZXRlcnMoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyYsIE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVudCA9IDApOwogc3RhdGljIE1lZGlh
UGxheWVyRmFjdG9yeSogbmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSogY3VycmVu
dCk7CkBAIC0yMjMsMTQgKzI1OCwxNCBAQCBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9y
eSo+JiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVuZ2luZU9wdGlvbnMgcgogICAgIHJl
dHVybiBpbnN0YWxsZWRFbmdpbmVzOwogfQogCi1zdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRU
eXBlcyBnZXRTdXBwb3J0ZWRUeXBlcywgTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlLAorc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVQbGF5ZXJUeXBlIHBs
YXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMgZ2V0U3VwcG9ydGVkVHlwZXMsIE1l
ZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwKICAgICBNZWRpYUVuZ2luZUdldFNp
dGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVk
aWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtIHN1
cHBvcnRzS2V5U3lzdGVtKQogewotICAgIEFTU0VSVChjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJU
KHBsYXllclR5cGUpOwogICAgIEFTU0VSVChnZXRTdXBwb3J0ZWRUeXBlcyk7CiAgICAgQVNTRVJU
KHN1cHBvcnRzVHlwZSk7CiAKLSAgICBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKS5hcHBlbmQobmV3
IE1lZGlhUGxheWVyRmFjdG9yeShjb25zdHJ1Y3RvciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRp
YUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0pKTsKKyAgICBpbnN0YWxsZWRNZWRpYUVu
Z2luZXMoKS5hcHBlbmQobmV3IE1lZGlhUGxheWVyRmFjdG9yeShwbGF5ZXJUeXBlLCBnZXRTdXBw
b3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0luTWVkaWFDYWNoZSwgY2xlYXJNZWRp
YUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBzdXBwb3J0c0tleVN5c3RlbSkpOwogfQog
CiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkKQEAg
LTMwOCw3ICszNDMsNyBAQCBzdGF0aWMgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdp
bmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVy
KE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAg
LCBtX3JlbG9hZFRpbWVyKHRoaXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJGaXJlZCkKLSAg
ICAsIG1fcHJpdmF0ZShjcmVhdGVOdWxsTWVkaWFQbGF5ZXIodGhpcykpCisgICAgLCBtX3ByaXZh
dGUoc3RkOjptYWtlX3VuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKSkKICAgICAs
IG1fY3VycmVudE1lZGlhRW5naW5lKDApCiAgICAgLCBtX3ByZWxvYWQoQXV0bykKICAgICAsIG1f
dmlzaWJsZShmYWxzZSkKQEAgLTQwOSw3ICs0NDQsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2Fk
V2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnRNZWRpYUVuZ2lu
ZSAhPSBlbmdpbmUpIHsKICAgICAgICAgbV9jdXJyZW50TWVkaWFFbmdpbmUgPSBlbmdpbmU7Ci0g
ICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y29uc3RydWN0b3IodGhpcyk7CisgICAgICAgIG1f
cHJpdmF0ZSA9IGVuZ2luZS0+Y3JlYXRlTWVkaWFQbGF5ZXIodGhpcyk7CiAgICAgICAgIG1fY2xp
ZW50Lm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsKICAgICAgICAgbV9wcml2YXRlLT5z
ZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1fcHJpdmF0ZUJyb3dzaW5nKTsKICAgICAgICAgbV9wcml2
YXRlLT5zZXRQcmVsb2FkKG1fcHJlbG9hZCk7CkBAIC00MjYsNyArNDYxLDcgQEAgdm9pZCBNZWRp
YVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJy
ZW50KQogI2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybC5zdHJpbmcoKSk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRo
aXMpOworICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXll
clByaXZhdGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0
ZWQodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0
ZWQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggZTJiMjQyNmQ5MTZjZWEzZWQ2ZDM1YTE0N2JhNGNmMmZjNzY4ODk3
Ny4uYzk5MGI5ZWZmMmNkMmRjODdiNGQzMjQ3NWViMzRiZmU3NjAwYjIzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIkxh
eW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYUVuZ2luZVBsYXllclR5cGUuaCIKICNpbmNsdWRl
ICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTGF5ZXIuaCIKQEAgLTQ2LDggKzQ3LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBFTkFCTEUoQVZGX0NB
UFRJT05TKQpAQCAtMjc3LDExICsyNzYsNyBAQCBwdWJsaWM6CiBjbGFzcyBNZWRpYVBsYXllciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFQbGF5ZXIpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyPiBj
cmVhdGUoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7Ci0gICAgfQorICAgIGV4cGxpY2l0IE1l
ZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXIo
KTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3LDcgKzU3Miw2IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRp
YVBsYXllckZhY3RvcnkqIG5leHRCZXN0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5Kikg
Y29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3Rv
cnkqKTsKICAgICB2b2lkIHJlbG9hZFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7CkBA
IC01ODYsNyArNTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xpZW50JiBtX2Ns
aWVudDsKICAgICBUaW1lcjxNZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKLSAgICBPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxh
eWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAgIFN0
cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKQEAgLTYwOCw3ICs2MDIsNiBAQCBwcml2YXRlOgogI2Vu
ZGlmCiB9OwogCi10eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwogdHlwZWRlZiB2b2lk
ICgqTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcykoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiB0
eXBlZGVmIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlw
ZSkoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycyk7CiB0eXBl
ZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUdldFNpdGVzSW5NZWRpYUNhY2hlKShWZWN0b3I8U3RyaW5n
PiYpOwpAQCAtNjE2LDcgKzYwOSw3IEBAIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJN
ZWRpYUNhY2hlKSgpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKShjb25zdCBTdHJpbmcmKTsKIHR5cGVkZWYgYm9vbCAoKk1lZGlhRW5naW5lU3VwcG9y
dHNLZXlTeXN0ZW0pKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKIAotdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVSZWdpc3RyYXIpKENyZWF0ZU1lZGlh
RW5naW5lUGxheWVyLCBNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBv
cnRzVHlwZSwKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShNZWRpYUVuZ2lu
ZVBsYXllclR5cGUsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9y
dHNUeXBlLAogICAgIE1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5l
Q2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvclNpdGUsIE1lZGlh
RW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVSZWdp
c3RlcikoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNjYwYjBjMDAyNWQxYjdkZTdj
NWQ3NWFhMWJjNzViODg4YmMxZmU4NS4uZDg5Mzk4N2I1MzI0NGE4NTUxNGUyMTNlMjFkNjZiY2Vk
NTU5OTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGljOgor
ICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciop
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRh
dGFMb2FkZWQoKTsKQEAgLTE0NCw3ICsxNDUsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVj
dGVkOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciopOwog
ICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwogCiAgICAgV2Vh
a1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
aW5kZXggMjc1ZDllMTI1ZDI3MGEyYWI1MDQ4ZmZlZmRmZDVjYTkxNTEwNjAyNi4uZWQ5YzBlYWNk
N2I3MjI5ZTNjNmIxZTE2Mzk3NTNlMjNjMjBmOWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0z
MzUsMTUgKzMzNSwxMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJEZWxl
Z2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBs
YXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJh
cihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBv
cnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKEFWRm91bmRhdGlvbkNGUGxheWVyLCBn
ZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3Rl
bSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRl
eCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUwMDg0N2QzLi40NGE4Y2Y2Mzk1MDJi
NWUyZTE3YjhjNDNhYTczODg3MmU3YjIxMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDEsNiArNDEs
NyBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CkBAIC01OCwxMCArNTksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqKTsKLQogICAgIC8vIEVuZ2lu
ZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRl
eCBmMmI4ZTNiN2EyYWMwNTQ2ODUzY2YzMzg5NjdmYjE0Yjg3MmE1ODQ2Li43ZTdkOTc3ZWZjMDc3
NzhkN2ZjMTFkOGJiOTgxYmZlZWZmNmM1NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC02
OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3MgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1l
ZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMSwxMCArMTMyLDcgQEAgcHVi
bGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9
CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRp
YVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwog
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNL
ZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNjczNjVlZWYxNTIyZDc2MzI3ODQ2NjNmNWIz
M2NmMjBhZTU3ZDA4My4uYjI0NGY2ZGUzNzBiMmVhOGRlZTY3Yjc4MTM2YjM3YmY4ZTU0MmJjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zODMsMTUgKzM4MywxMCBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMocGxheWVy
KSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICAgICAg
cmVnaXN0cmFyKEFWRm91bmRhdGlvbk9iakNQbGF5ZXIsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBw
b3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
QyhNZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwNzdh
YzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2IxLi41NzVlZmE1ODM4NGIwNTQyZmU3
ZTc1ZmU5YjJlZDc1NTQ4YmUwMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTAs
MTMgKzUwLDExIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKLSAgICAvLyBNZWRpYVBsYXll
ciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyBib29sIGlzQXZh
aWxhYmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQppbmRleCBmMGViNjFjYWE4ZTA0ZmU3N2I4YTc2ZGY1NWIwYzBhMTgwZTI2
YjE4Li5jODk3OGUyMWVlNGIxZTAzZTQ2N2UyZTNiYTM2NWFkOGI5ODIxZDAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xOTYsMTIgKzE5Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlz
QXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVz
LCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpj
cmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhwbGF5ZXIpKTsKKyAgICAgICAgcmVn
aXN0cmFyKE1lZGlhU291cmNlQVZGT2JqQ1BsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDhhYzhmY2NmYmFiM2ExNzU2ZDE5NzJlZDc0Yzdk
MDY4ZGUzZDk2OGYuLjBlMTEzNmI1NjMwZWJiYzk0MDJhZmIxMDkzOTJhZTBlOTJhZGMyODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0x
MzgsMTUgKzEzOCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVk
aW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKICAgICBMT0dfTUVESUFfTUVTU0FH
RSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMiLCByb2xlLCBlbGVtZW50TmFtZS5nZXQoKSk7
CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwot
fQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoR1N0cmVhbWVyUGxheWVyLCBn
ZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBp
bml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2MTg0
MzJhMWFhMmYxZmZhOWMwZjgxYzMxYmE3Ni4uNjY5ZmI1NmEzMWFhZTNhZTdmMTc0MjgyNzRmOTkx
MmIyMzI3OGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaApAQCAtNTcsNyArNTcsOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsK
IAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSop
OwogICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5z
UmV0dXJuKTsKQEAgLTEyNiwxMCArMTI4LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdlUGlw
ZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwotCiAgICAgc3RhdGlj
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCA4MGMy
Y2VhNTkxM2E0MjUyYmUxYmRmMmE3MzAwMTNlNmEzYTg0NmY1Li5lYzMxYTc3NDUwYTc0OGExMGY5
MzNmMzMyYzM3MWI0ZTE1YWNmNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAt
NTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVRVEtpdCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVi
bGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7
CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKQEAg
LTYzLDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGxheWVySG9zdENoYW5nZWQoUGxhdGZv
cm1MYXllciogcm9vdExheWVyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVR
VEtpdChNZWRpYVBsYXllciopOwotCi0gICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5tbQppbmRleCBhZjY1OWU1ZDhjZDRkNGE5NjE4NzYzNmM0ZWM5NGY4MjY4Y2M2
NDhlLi5jMzM2MDhlOTEwZGUyMjQ1NDYyNWIyZmIwNDVjODg2OTQwZjMxNDM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNjYsMTUgKzE2NiwxMCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsK
ICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3Vw
cG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVk
aWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CisgICAgICAgIHJlZ2lzdHJhcihR
VEtpdFBsYXllciwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1l
ZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CiB9
CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRp
YVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmNwcAppbmRleCA4YTFjZWU2ZmIyMzZlYTNlOGE2ZmRkYTJmMTBiMTU3OWY1YjI2YzZl
Li43ZjMyYTY0OWI4YjMwMGFjNTc5ODMzNjcwMjdmMTg0MGM3NjVlYTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtNDEsMTUgKzQxLDEw
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyCiB7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNy
ZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoTWVkaWFGb3VuZGF0aW9uUGxheWVyLCBnZXRT
dXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmlzQXZhaWxhYmxlKCkgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVmYWVl
YmZmZTQxMmE1YWZlMWJlNTRlNzk1MzhhMi4uYmJhNTM2YzZhMmZhY2ZjZmU4NGViODE2ZGQzZWY4
NWMzMWFmYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b24uaApAQCAtMzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZv
dW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGlj
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
TWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAppbmRleCBjNjYxNzhi
OTY3N2NmODQ5NjVkOThiZjg4YmUzYTM5ODZmN2UzOGRhLi45ZmE2NGQ5M2ZiYzJjYjNmY2U0MzI2
N2Y4MjExMGZiYmE3NWZhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcApAQCAtNDEsMTIgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gTWVk
aWFQbGF5ZXIgRW5pZ25lIFN1cHBvcnQKIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewot
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQot
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UocGxh
eWVyKSk7CisgICAgcmVnaXN0cmFyKE1vY2tNZWRpYVNvdXJjZVBsYXllciwgZ2V0U3VwcG9ydGVk
VHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0
cmluZz4gbWltZVR5cGVDYWNoZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmgKaW5kZXggYjY2OTRkOGVkODczNzk4OWViMGJmNmVlZjk2MzkwNjM2NWZmYjk3Zi4uNmY3
ZDQyNzgxNzYzYWEyNDI3ODg5NDhiNTFiNGJlMTk2MjJjMzZlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaApAQCAtMzgsMTQgKzM4LDE0IEBAIGNsYXNzIE1vY2tN
ZWRpYVNvdXJjZVByaXZhdGU7CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDog
cHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGlj
aXQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKyAgICB2aXJ0dWFs
IH5Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOworCiAgICAgLy8gTWVkaWFQbGF5ZXIgRW5n
aW5lIFN1cHBvcnQKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBv
cnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzJik7CiAKLSAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSgpOwot
CiAgICAgdm9pZCBhZHZhbmNlQ3VycmVudFRpbWUoKTsKICAgICB2b2lkIHVwZGF0ZUR1cmF0aW9u
KGNvbnN0IE1lZGlhVGltZSYpOwogCkBAIC01Niw4ICs1Niw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZShNZWRpYVBsYXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRl
cwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240588</attachid>
            <date>2014-10-28 19:14:05 -0700</date>
            <delta_ts>2014-10-28 20:34:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141029111412.patch</filename>
            <type>text/plain</type>
            <size>24811</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Mjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ3Njk1ZmZhNDM4NjI0
OGU3ZGUyNzQwODM5Mzg2OTVmNmU5NzAyOC4uYzc5Y2E2OGFkMDYxMTI4YmY4MDBjMDhhY2RiZTA2
ZDBjOTc4NDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE0LTEwLTI4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRp
YVBsYXllclByaXZhdGU6Ok51bGxNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTnVsbE1lZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmg6
CisKIDIwMTQtMTAtMjggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0VNRV1bTWFjXSBBZG9wdCBuZXcgQVZTdHJlYW1TZXNzaW9uIEFQSTogcGFzcyBzdG9yYWdl
RGlyZWN0b3J5QXRVUkwgYXQgY3JlYXRpb24tdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggNDc0NDE5OTgzZTMyODA4NDI4ODQxYmZmYWMxMzU1NzEzMzcw
NWM4ZS4uYjIyYTJkNWFmZGZhNzg2NDI1M2U1ZDMxZjU5NGRlYzY1ZGVmY2Q3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NjQ2LDcgKzQ2NDYsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAg
ICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5l
cnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBt
X3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xv
YWRUaW1lci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3Rv
cHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAv
LyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwg
YWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMg
bm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3Bs
YXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVw
RGlzYWJsaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IDhkOTNjZjNmYTEyOWJkMzliNTMyZDE4NTU5YTk5MDQ3NDJlN2M1MGYuLjNlZDJlYWI3NDlmODAy
MWI4MDRkYTM5ZDM4NzU2ZTRhNGFkOWQ0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC03NzgsNyArNzc4LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6
VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3du
UHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5
ZXI+IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5k
ZXggZWQ5ZDg4MzM2NDFkNTNjOThjNzNhNjY0ZWRjNGM1MTllZWZiOWYxMS4uMDdjZjUwNGQ1ZmM1
YTc4Y2JkNjlmZDUxZjc1MDhjNjc1YjI5NTkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzgsNyArNzgsNyBAQCBjb25zdCBQ
bGF0Zm9ybU1lZGlhIE5vUGxhdGZvcm1NZWRpYSA9IHsgUGxhdGZvcm1NZWRpYTo6Tm9uZSwgezB9
IH07CiAKIGNsYXNzIE51bGxNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1l
ZGlhUGxheWVyKikgeyB9CisgICAgZXhwbGljaXQgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRp
YVBsYXllciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE0NCwxMiArMTQ0LDExIEBAIHB1YmxpYzoK
ICNlbmRpZgogfTsKIAotc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGVOdWxsTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShwbGF5ZXIpKTsgCitz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRl
TnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCit7CisgICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPihuZXcgTnVsbE1lZGlhUGxheWVyUHJp
dmF0ZShwbGF5ZXIpKTsKIH0KIAotCiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQ
bGF5ZXJGYWN0b3J5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oCmluZGV4IGUyYjI0MjZkOTE2Y2VhM2VkNmQzNWExNDdiYTRjZjJmYzc2ODg5Nzcu
LjM4OThiZmI2NDUxMTgzMWFlYjRmYmEwYzZlMjFhNDY4ZTgxZTI3NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc3LDExICsyNzcs
MTEgQEAgcHVibGljOgogY2xhc3MgTWVkaWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE1lZGlhUGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAg
ICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50
JiBjbGllbnQpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllcj4gY3JlYXRl
KE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyPihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7CiAgICAgfQorCiAgICAg
dmlydHVhbCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpA
QCAtNTc3LDcgKzU3Nyw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5
ZXJDbGllbnQmKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYp
OworCiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxh
eWVyRmFjdG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVk
aWFQbGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlh
UGxheWVyPiYpOwpAQCAtNTg2LDcgKzU4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXll
ckNsaWVudCYgbV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7
Ci0gICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsK
ICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBt
X3VybDsKICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjA5LDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsK
K3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpD
cmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1l
ZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRl
ZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNv
bnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2
b2lkICgqTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggMDM4N2E3ZDE1MjhjNGQ1OGViNDM1NjY3NWIxZDg1N2VmNTZlNjBhYS4u
NDMxZTAxYjg3NmVjOTM1YjcyZGEzNzdlNzk2MmIxYTEwMzI2YjkwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA2NjBiMGMwMDI1ZDFi
N2RlN2M1ZDc1YWExYmM3NWI4ODhiYzFmZTg1Li5kMTMzZWZjMWI4ZjU1M2QzMzExMjZkMTU5MWE2
MzU0ODQwZGU5OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIEdlbmVyaWNDdWVEYXRh
OwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50CiB7CiBwdWJs
aWM6Ci0KICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpOwogICAgIHZpcnR1YWwgdm9pZCBtZXRh
ZGF0YUxvYWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5YWJpbGl0eUtub3duKCk7CkBAIC0x
NDQsNyArMTQzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAogICAgIFdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDI3NWQ5ZTEy
NWQyNzBhMmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYuLjM2MTk1OTY0OGE0OTEyMGEwMTc0ZTA5
MGZmZTEwYzhjOTQ5MDMwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtMzM1LDkgKzMzNSw5IEBA
IHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbExvYWRlckRlbGVnYXRlUXVldWUoKQogfQog
I2VuZGlmCiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAor
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKIHsgCi0g
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihw
bGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVy
KSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApp
bmRleCAyYWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUwMDg0N2QzLi44OWE1MDQzMTk4
MTdhYzZkYWM1N2YzM2JhODEzNTM5YmE2YTI5ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDEsNiAr
NDEsOCBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24gewogcHVibGljOgorICAgIC8vIEVuZ2luZSBzdXBwb3J0CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwpAQCAtNTgsMTAg
KzYwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgZXhwbGljaU1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAKLSAgICAvLyBFbmdpbmUg
c3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlw
ZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMm
KTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXgg
ZjJiOGUzYjdhMmFjMDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uZTRiYWM4NzFiZmZhZmUz
NzkwMWVjMTQwNzFmMzM3ZjE4ZDc0MTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTMx
LDEwICsxMzEsMTAgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIGVuZ2luZSBzdXBw
b3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGUoTWVkaWFQbGF5ZXIqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZv
aWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGlj
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQppbmRleCA2Y2VlNmE3NDg3YmQzMDQxYTk1MGNjMDQ0M2ZiOWJjZGZhODJi
ZWUzLi40ZmM1MWJiYzgxZWEzYTI2ZGMyZDA2MTM4YWVmMjY1MTViYTI1NTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KQEAgLTM4Myw5ICszODMsOSBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVf
dCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKKyAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KG5ldyBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKHBsYXllcikpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRl
eCAwNzdhYzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2IxLi4zNGFlOTAzOTVmODA0
YjA1YjU1YWY1NzdmOGRkZjk4ZWIwYTA0MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApA
QCAtNTAsMTMgKzUwLDEyIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKICAgICAvLyBNZWRpYVBsYXllciBG
YWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzJik7CkBAIC05Myw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CisgICAgZXhwbGljaXQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CisKICAg
ICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3Qg
U3RyaW5nJiB1cmwsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDdhMTJlODE2NTdmYzJiOWEwMGIxNmM0ZDQyZmNkNGUx
M2YyNjc0OGIuLmFhYjA5ZDE4ZjgzOWE1ZDRkNmJhMTZhMTMyZmM0ZjhiYTMzM2U1M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTIwNiw5ICsyMDYsOSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdAogICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0
ZShNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOwogfQogCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4YWM4ZmNj
ZmJhYjNhMTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi4wOTNhZmY5MzljN2JkNzVhOWUzNmZh
ZTgyYWEzOGViMjQ5MDBjMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM4LDkgKzEzOCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0KQog
ICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJvbGUs
IGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQog
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBs
YXllcikpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwogfQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFhMmYxZmZhOWMwZjgx
YzMxYmE3Ni4uYmUxYWFlODQ2ZGYzN2QwNWE0Y2M1MzM0MDEwMzdhMTY1MWVmZjY2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTcsNyArNTcs
OSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UgewogcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1l
ZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3Nh
Z2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1
Z2luc1JldHVybik7CkBAIC0xMjYsOSArMTI4LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdl
UGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogCiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGlj
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggODBj
MmNlYTU5MTNhNDI1MmJlMWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uODg2M2ZkNjA5N2Y0NjhlNWQz
NjkzNDIyMmRhM2IzMDk0NTNjMjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAg
LTUwLDYgKzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1
YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5l
KE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIApAQCAtNjMsMTAgKzY1LDkgQEAgcHVibGljOgogICAg
IHZvaWQgbGF5ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2
YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAgZXhw
bGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIGVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggOTBhZmMxMGZjMzRl
MzllN2M5YjE5MTBkM2NiZjYwYWZiODI3ZTJiMS4uMWE5OTVmM2QxOTdlMjY3YzdkYzYwMDFhMjlm
Y2ZjOGZjNjk1NWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTY2LDkg
KzE2Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4obmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBs
YXllcikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZv
dW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOGExY2VlNmZiMjM2ZWEzZThh
NmZkZGEyZjEwYjE1NzlmNWIyNmM2ZS4uYWY4OGJhYzcxN2MwMWU3MzhhMDA2NWViZjJiYzQwN2U2
OGUwMjkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bi5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIKIHsKIH0KIAot
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhRm91bmRhdGlvbjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb246OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwor
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVmYWVlYmZmZTQxMmE1
YWZlMWJlNTRlNzk1MzhhMi4uMTAzYjQwMjIxZjYxZmU3NjlkN2E0ZDhmZWJjMjI1N2NkYmY0NDNk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAt
MzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
IHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQ
bGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5l
UmVnaXN0cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwog
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFi
bGUoKTsKQEAgLTY3LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByaXZhdGU6Ci0KKyAgICBleHBs
aWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAg
ICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IGM2NjE3OGI5Njc3Y2Y4NDk2NWQ5OGJmODhiZTNhMzk4
NmY3ZTM4ZGEuLmYxYTNmN2U0M2ZhMTk1Njg5ZGZhODFmODA2MTNlZjBiNTE5NjdiZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC00NCw5ICs0NCw5
IEBAIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0CiAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3Vw
cG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKLVBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6
Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZShwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4obmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBs
YXllcikpOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGI2Njk0ZDhlZDg3Mzc5
ODllYjBiZjZlZWY5NjM5MDYzNjVmZmI5N2YuLjFhNWYwMWZlNmQyMmUyOTI5MmRmYjQ5MTM1OTFh
ZTJiMTU5ZjVkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgK
QEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UgOiBwdWJs
aWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKICAgICAvLyBNZWRpYVBs
YXllciBFbmdpbmUgU3VwcG9ydAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUo
TWVkaWFFbmdpbmVSZWdpc3RyYXIpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKQEAgLTU2LDcgKzU2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2Vla0NvbXBsZXRlZCgpOwogCiBwcml2YXRlOgotICAgIE1v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIE1lZGlhUGxh
eWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240590</attachid>
            <date>2014-10-28 20:34:18 -0700</date>
            <delta_ts>2014-10-28 21:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141029123427.patch</filename>
            <type>text/plain</type>
            <size>26401</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ3Njk1ZmZhNDM4NjI0
OGU3ZGUyNzQwODM5Mzg2OTVmNmU5NzAyOC4uYzFiM2JiMDY2OTgzMjRlYzU0ZmUyNDhjZDJlMDc3
YzA4NDUwYmQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTEwLTI4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gSG93ZXZlciBNZWRpYVBsYXllciBo
YXMgdXNlZCBmYWN0b3J5IHBhdHRlcm4sIHRodXMgY3JlYXRlKCkgZmFjdG9yeQorICAgICAgICBm
dW5jdGlvbiBzaG91bGQgYmUga2VwdCB0byB1c2UgZmFjdG9yeSBwYXR0ZXJuLiBUaHVzIHRoaXMg
cGF0Y2ggc2V0cyBjb250cnVjdG9yIHRvIHByaXZhdGUsIGFuZCB1c2VzIHN0ZDo6dW5pcXVlX3B0
cgorICAgICAgICBpbiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorCiAyMDE0LTEwLTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFtFTUVdW01hY10gQWRvcHQgbmV3IEFWU3RyZWFtU2Vzc2lvbiBBUEk6IHBh
c3Mgc3RvcmFnZURpcmVjdG9yeUF0VVJMIGF0IGNyZWF0aW9uLXRpbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggZTJkODUyODU2ZjE2YTc5ZTMwZGZkOWFiYzA2YTVjOGQ2ZTliNDQ3OC4uYjE4N2Y3
Yjc2M2UwOWYyZjE5NTRlZjI5ZGFkZWVkMWU1MmZhMDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTM0MTQsNyArMzQxNCw3IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIyY2xl
YXJNZWRpYUNhY2hlRm9yU2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2SFRNTE1l
ZGlhRWxlbWVudDRwbGF5RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVwYXVzZUV2
CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19aTjdXZWJDb3Jl
MjVNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQ
RnZQRk4zV1RGMTBQYXNzT3duUHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlRUVF
UE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdFTlMxXzEwU3Ry
aW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0c1R5cGVFUktO
U18yOE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3RvcklTQV9MbTBF
TlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hfRUVFCitfX1pO
N1dlYkNvcmUyNU1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rlck1lZGlhRW5n
aW5lRVBGdlBGdlBGTlN0M19fMTEwdW5pcXVlX3B0cklOU18yN01lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZUVOUzFfMTRkZWZhdWx0X2RlbGV0ZUlTM19FRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBG
dlJOM1dURjdIYXNoU2V0SU5TQl82U3RyaW5nRU5TQl8xMFN0cmluZ0hhc2hFTlNCXzEwSGFzaFRy
YWl0c0lTRF9FRUVFRVBGTlM3XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBv
cnRQYXJhbWV0ZXJzRUVQRnZSTlNCXzZWZWN0b3JJU0RfTG0wRU5TQl8xNUNyYXNoT25PdmVyZmxv
d0VFRUVQRnZ2RVBGdlJLU0RfRVBGYlMxMF9TMTBfRUVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNK
U0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCiBf
X1pOSzdXZWJDb3JlMTBUaW1lUmFuZ2VzN25lYXJlc3RFZAogX19aTks3V2ViQ29yZTE2SFRNTE1l
ZGlhRWxlbWVudDExY3VycmVudFRpbWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggNDc0NDE5OTgzZTMyODA4NDI4ODQxYmZmYWMxMzU1NzEzMzcwNWM4ZS4u
YjIyYTJkNWFmZGZhNzg2NDI1M2U1ZDMxZjU5NGRlYzY1ZGVmY2Q3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NjQ2LDcgKzQ2NDYsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAgICBtX21l
ZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRo
aXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXll
ciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1l
ci5zdG9wKCk7CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0
b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3RvcHBlZCBp
dCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAvLyB0aGUg
bWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFk
eSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1
bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3BsYXllci5j
bGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJs
aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDhkOTNj
ZjNmYTEyOWJkMzliNTMyZDE4NTU5YTk5MDQ3NDJlN2M1MGYuLjNlZDJlYWI3NDlmODAyMWI4MDRk
YTM5ZDM4NzU2ZTRhNGFkOWQ0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCkBAIC03NzgsNyArNzc4LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6VmlkZW9H
cmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3duUHRyPE1l
ZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXI+IG1f
cGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZWQ5
ZDg4MzM2NDFkNTNjOThjNzNhNjY0ZWRjNGM1MTllZWZiOWYxMS4uMDdjZjUwNGQ1ZmM1YTc4Y2Jk
NjlmZDUxZjc1MDhjNjc1YjI5NTkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzgsNyArNzgsNyBAQCBjb25zdCBQbGF0Zm9y
bU1lZGlhIE5vUGxhdGZvcm1NZWRpYSA9IHsgUGxhdGZvcm1NZWRpYTo6Tm9uZSwgezB9IH07CiAK
IGNsYXNzIE51bGxNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxh
eWVyKikgeyB9CisgICAgZXhwbGljaXQgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXll
ciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE0NCwxMiArMTQ0LDExIEBAIHB1YmxpYzoKICNlbmRp
ZgogfTsKIAotc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGVOdWxsTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShwbGF5ZXIpKTsgCitzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlTnVsbE1l
ZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCit7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPihuZXcgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShw
bGF5ZXIpKTsKIH0KIAotCiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJG
YWN0b3J5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCmluZGV4IGUyYjI0MjZkOTE2Y2VhM2VkNmQzNWExNDdiYTRjZjJmYzc2ODg5NzcuLjM4OThi
ZmI2NDUxMTgzMWFlYjRmYmEwYzZlMjFhNDY4ZTgxZTI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjc3LDExICsyNzcsMTEgQEAg
cHVibGljOgogY2xhc3MgTWVkaWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1l
ZGlhUGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0
aWMgUGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGll
bnQpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1lZGlh
UGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUGxheWVyKGNsaWVudCkpOworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhUGxheWVyPihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7CiAgICAgfQorCiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXIoKTsKIAogICAgIC8vIE1lZGlhIGVuZ2luZSBzdXBwb3J0LgpAQCAtNTc3
LDcgKzU3Nyw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlm
aWVyKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGll
bnQmKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOworCiAg
ICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFj
dG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5
ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVy
PiYpOwpAQCAtNTg2LDcgKzU4Nyw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVu
dCYgbV9jbGllbnQ7CiAgICAgVGltZXI8TWVkaWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7Ci0gICAg
T3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKICAgICBN
ZWRpYVBsYXllckZhY3RvcnkqIG1fY3VycmVudE1lZGlhRW5naW5lOwogICAgIFVSTCBtX3VybDsK
ICAgICBTdHJpbmcgbV9jb250ZW50TUlNRVR5cGU7CkBAIC02MDgsNyArNjA5LDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogfTsKIAotdHlwZWRlZiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gKCpDcmVhdGVNZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKK3R5cGVk
ZWYgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gKCpDcmVhdGVN
ZWRpYUVuZ2luZVBsYXllcikoTWVkaWFQbGF5ZXIqKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5n
aW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1l
ZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgq
TWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKaW5kZXggMDM4N2E3ZDE1MjhjNGQ1OGViNDM1NjY3NWIxZDg1N2VmNTZlNjBhYS4uNDMxZTAx
Yjg3NmVjOTM1YjcyZGEzNzdlNzk2MmIxYTEwMzI2YjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMxLDcg
KzMxLDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGlt
ZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA2NjBiMGMwMDI1ZDFiN2RlN2M1
ZDc1YWExYmM3NWI4ODhiYzFmZTg1Li5kMTMzZWZjMWI4ZjU1M2QzMzExMjZkMTU5MWE2MzU0ODQw
ZGU5OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIEdlbmVyaWNDdWVEYXRhOwogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50CiB7CiBwdWJsaWM6Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpOwogICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUxv
YWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5YWJpbGl0eUtub3duKCk7CkBAIC0xNDQsNyAr
MTQzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IDI3NWQ5ZTEyNWQyNzBh
MmFiNTA0OGZmZWZkZmQ1Y2E5MTUxMDYwMjYuLjM2MTk1OTY0OGE0OTEyMGEwMTc0ZTA5MGZmZTEw
YzhjOTQ5MDMwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtMzM1LDkgKzMzNSw5IEBAIHN0YXRp
YyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbExvYWRlckRlbGVnYXRlUXVldWUoKQogfQogI2VuZGlm
CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAorc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKIHsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIp
KTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRleCAy
YWMwMTQ0ZGFhOTM4Y2QyMzAyYzZiMmQ2N2RkYTMwMzUwMDg0N2QzLi44OWE1MDQzMTk4MTdhYzZk
YWM1N2YzM2JhODEzNTM5YmE2YTI5ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDEsNiArNDEsOCBA
QCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24gewogcHVibGljOgorICAgIC8vIEVuZ2luZSBzdXBwb3J0CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciop
OwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwpAQCAtNTgsMTAgKzYwLDgg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdp
bmVSZWdpc3RyYXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgZXhwbGljaU1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAKLSAgICAvLyBFbmdpbmUgc3VwcG9y
dAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3Jl
YXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFz
aFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggZjJiOGUz
YjdhMmFjMDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uZTRiYWM4NzFiZmZhZmUzNzkwMWVj
MTQwNzFmMzM3ZjE4ZDc0MTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTMxLDEwICsx
MzEsMTAgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUo
TWVkaWFQbGF5ZXIqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQppbmRleCA2Y2VlNmE3NDg3YmQzMDQxYTk1MGNjMDQ0M2ZiOWJjZGZhODJiZWUzLi40
ZmM1MWJiYzgxZWEzYTI2ZGMyZDA2MTM4YWVmMjY1MTViYTI1NTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTM4Myw5ICszODMsOSBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9i
YWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNy
ZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KG5ldyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKHBsYXllcikpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdp
bmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAwNzdh
YzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2IxLi4zNGFlOTAzOTVmODA0YjA1YjU1
YWY1NzdmOGRkZjk4ZWIwYTA0MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTAs
MTMgKzUwLDEyIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKICAgICAvLyBNZWRpYVBsYXllciBGYWN0b3J5
IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0
aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7
CkBAIC05Myw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CisKICAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIHVybCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5n
JiB1cmwsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCmluZGV4IDdhMTJlODE2NTdmYzJiOWEwMGIxNmM0ZDQyZmNkNGUxM2YyNjc0
OGIuLmFhYjA5ZDE4ZjgzOWE1ZDRkNmJhMTZhMTMyZmM0ZjhiYTMzM2U1M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KQEAgLTIwNiw5ICsyMDYsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJl
Z2lzdAogICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihuZXcgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOwogfQogCiBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA4YWM4ZmNjZmJhYjNh
MTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi4wOTNhZmY5MzljN2JkNzVhOWUzNmZhZTgyYWEz
OGViMjQ5MDBjMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMTM4LDkgKzEzOCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0KQogICAgIExP
R19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJvbGUsIGVsZW1l
bnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5
ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikp
OworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
PihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFhMmYxZmZhOWMwZjgxYzMxYmE3
Ni4uYmUxYWFlODQ2ZGYzN2QwNWE0Y2M1MzM0MDEwMzdhMTY1MWVmZjY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTcsNyArNTcsOSBAQCBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Ugewog
cHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsK
ICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChHc3RJbnN0YWxsUGx1Z2luc1Jl
dHVybik7CkBAIC0xMjYsOSArMTI4LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2hhbmdlUGlwZWxp
bmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogCiAgICAgc3RhdGljIHZv
aWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7CiAgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggODBjMmNlYTU5
MTNhNDI1MmJlMWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uODg2M2ZkNjA5N2Y0NjhlNWQzNjkzNDIy
MmRhM2IzMDk0NTNjMjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAgLTUwLDYg
KzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
Y3JlYXRlKE1lZGlhUGxheWVyKik7CisKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlh
RW5naW5lUmVnaXN0cmFyKTsKIApAQCAtNjMsMTAgKzY1LDkgQEAgcHVibGljOgogICAgIHZvaWQg
bGF5ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2YXRlOgot
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIGVuZ2luZSBz
dXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggOTBhZmMxMGZjMzRlMzllN2M5
YjE5MTBkM2NiZjYwYWZiODI3ZTJiMS4uMWE5OTVmM2QxOTdlMjY3YzdkYzYwMDFhMjlmY2ZjOGZj
Njk1NWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMTY2LDkgKzE2Niw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVRVEtpdD4obmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBsYXllcikp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5naW5l
KE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOGExY2VlNmZiMjM2ZWEzZThhNmZkZGEy
ZjEwYjE1NzlmNWIyNmM2ZS4uYWY4OGJhYzcxN2MwMWU3MzhhMDA2NWViZjJiYzQwN2U2OGUwMjkx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAK
QEAgLTQxLDkgKzQxLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIKIHsKIH0KIAotUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb246OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOworICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uPihu
ZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShN
ZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVmYWVlYmZmZTQxMmE1YWZlMWJl
NTRlNzk1MzhhMi4uMTAzYjQwMjIxZjYxZmU3NjlkN2E0ZDhmZWJjMjI1N2NkYmY0NDNkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAtMzAsMTAg
KzMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1
YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIq
KTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0
cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRp
YyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0
YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsK
QEAgLTY3LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByaXZhdGU6Ci0KKyAgICBleHBsaWNpdCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBNZWRp
YVBsYXllciogbV9wbGF5ZXI7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UuY3BwCmluZGV4IGM2NjE3OGI5Njc3Y2Y4NDk2NWQ5OGJmODhiZTNhMzk4NmY3ZTM4
ZGEuLmYxYTNmN2U0M2ZhMTk1Njg5ZGZhODFmODA2MTNlZjBiNTE5NjdiZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVy
TWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHZv
aWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIgcmVnaXN0CiAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVk
VHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZShwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4obmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBsYXllcikp
OwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGI2Njk0ZDhlZDg3Mzc5ODllYjBi
ZjZlZWY5NjM5MDYzNjVmZmI5N2YuLjFhNWYwMWZlNmQyMmUyOTI5MmRmYjQ5MTM1OTFhZTJiMTU5
ZjVkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKQEAgLTQw
LDcgKzQwLDcgQEAgY2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKICAgICAvLyBNZWRpYVBsYXllciBF
bmdpbmUgU3VwcG9ydAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2Vla0NvbXBsZXRlZCgpOwogCiBwcml2YXRlOgotICAgIE1vY2tNZWRp
YVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIE1lZGlhUGxheWVyUHJp
dmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkg
b3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240593</attachid>
            <date>2014-10-28 21:38:08 -0700</date>
            <delta_ts>2015-02-16 18:30:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20141029133816.patch</filename>
            <type>text/plain</type>
            <size>26362</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYwY2I4ODI3N2I1MmVi
Yzc1NjE2YjM2NzhjYjk4YmExY2JhMTA3Ni4uOWEyMDJmOThhZTVjMjgyN2M0MjBiNjM5MThmODA2
YTFmYjZlYTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTEwLTI4ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gSG93ZXZlciBNZWRpYVBsYXllciBo
YXMgdXNlZCBmYWN0b3J5IHBhdHRlcm4sIHRodXMgY3JlYXRlKCkgZmFjdG9yeQorICAgICAgICBm
dW5jdGlvbiBzaG91bGQgYmUga2VwdCB0byB1c2UgZmFjdG9yeSBwYXR0ZXJuLiBUaHVzIHRoaXMg
cGF0Y2ggc2V0cyBjb250cnVjdG9yIHRvIHByaXZhdGUsIGFuZCB1c2VzIHN0ZDo6dW5pcXVlX3B0
cgorICAgICAgICBpbiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorCiAyMDE0LTEwLTI4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBDU1M0IFNlbGVjdG9yczogQWRkIHRoZSBwc2V1ZG8gY2xhc3Mg
OmFueS1saW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGUyZDg1Mjg1NmYxNmE3OWUzMGRmZDlh
YmMwNmE1YzhkNmU5YjQ0NzguLmIxODdmN2I3NjNlMDlmMmYxOTU0ZWYyOWRhZGVlZDFlNTJmYTA1
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zNDE0LDcgKzM0MTQsNyBAQCBfX1pON1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVkaWFDYWNoZUZvclNpdGVFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ0cGxheUV2CiBfX1pON1dlYkNvcmUx
NkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
OHNldE11dGVkRWIKLV9fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDIzY2Fs
bFJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2UEZ2UEZOM1dURjEwUGFzc093blB0cklOU18yN01lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMxXzdIYXNo
U2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTQV9FRUVF
RVBGTlM1XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
RUVQRnZSTlMxXzZWZWN0b3JJU0FfTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2RVBG
dlJLU0FfRVBGYlNYX1NYX0VFRQorX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3RvcnlTdXBw
b3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk5TdDNfXzExMHVuaXF1ZV9wdHJJ
TlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2VFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzNf
RUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTjNXVEY3SGFzaFNldElOU0JfNlN0cmluZ0VOU0Jf
MTBTdHJpbmdIYXNoRU5TQl8xMEhhc2hUcmFpdHNJU0RfRUVFRUVQRk5TN18xMlN1cHBvcnRzVHlw
ZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TQl82VmVjdG9ySVNE
X0xtMEVOU0JfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NEX0VQRmJTMTBfUzEwX0VF
RQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9i
amVjdEVQTlNfMTBUaW1lUmFuZ2VzRQogX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0
RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDQ3NDQxOTk4M2UzMjgwODQy
ODg0MWJmZmFjMTM1NTcxMzM3MDVjOGUuLmIyMmEyZDVhZmRmYTc4NjQyNTNlNWQzMWY1OTRkZWM2
NWRlZmNkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
NDY0Niw3ICs0NjQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVy
KGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1BsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYKIAotICAgIG1fcGxh
eWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDY5Myw3ICs0NjkzLDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFuIGFjdGl2ZSBET00g
b2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0ZWQsIHNvIHdlIGNh
biBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5vdGUgdGhhdCB1c2Vy
Q2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBwbGF5ZXIKICAgICAv
LyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFuZGxlcyBhbGwgb3Ro
ZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7
CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCA4ZDkzY2YzZmExMjliZDM5YjUzMmQxODU1OWE5OTA0NzQyZTdj
NTBmLi4zZWQyZWFiNzQ5ZjgwMjFiODA0ZGEzOWQzODc1NmU0YTRhZDlkNDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzc4LDcgKzc3OCw3IEBAIHByaXZhdGU6
CiAgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7
CiAjZW5kaWYKIAotICAgIE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVs
b2FkIG1fcHJlbG9hZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCmluZGV4IGVkOWQ4ODMzNjQxZDUzYzk4YzczYTY2NGVkYzRjNTE5ZWVm
YjlmMTEuLjA3Y2Y1MDRkNWZjNWE3OGNiZDY5ZmQ1MWY3NTA4YzY3NWIyOTU5MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc4
LDcgKzc4LDcgQEAgY29uc3QgUGxhdGZvcm1NZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRm
b3JtTWVkaWE6Ok5vbmUsIHswfSB9OwogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDog
cHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1l
ZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRp
YVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYpIHsgfQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDQsMTIg
KzE0NCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVy
KiBwbGF5ZXIpIAoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclBy
aXZhdGUocGxheWVyKSk7IAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKQor
eworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4obmV3
IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7CiB9CiAKLQogLy8gZW5naW5lIHN1cHBv
cnQKIAogc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlMmIyNDI2ZDkxNmNlYTNlZDZkMzVh
MTQ3YmE0Y2YyZmM3Njg4OTc3Li4zODk4YmZiNjQ1MTE4MzFhZWI0ZmJhMGM2ZTIxYTQ2OGU4MWUy
NzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKQEAgLTI3NywxMSArMjc3LDExIEBAIHB1YmxpYzoKIGNsYXNzIE1lZGlhUGxheWVyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXI+IGNyZWF0
ZShNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXI+IGNyZWF0ZShNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllcihjbGllbnQpKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllcj4obmV3IE1lZGlhUGxheWVyKGNsaWVu
dCkpOwogICAgIH0KKwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyKCk7CiAKICAgICAvLyBNZWRp
YSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU3Nyw3ICs1NzcsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1l
ZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmKTsKKwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dEJlc3RN
ZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKSBjb25zdDsKICAgICB2b2lkIGxvYWRXaXRo
TmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSopOwogICAgIHZvaWQgcmVsb2FkVGlt
ZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllcj4mKTsKQEAgLTU4Niw3ICs1ODcsNyBAQCBwcml2YXRl
OgogCiAgICAgTWVkaWFQbGF5ZXJDbGllbnQmIG1fY2xpZW50OwogICAgIFRpbWVyPE1lZGlhUGxh
eWVyPiBtX3JlbG9hZFRpbWVyOwotICAgIE93blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRNZWRp
YUVuZ2luZTsKICAgICBVUkwgbV91cmw7CiAgICAgU3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwpA
QCAtNjA4LDcgKzYwOSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLXR5cGVkZWYgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRlTWVkaWFFbmdpbmVQbGF5
ZXIpKE1lZGlhUGxheWVyKik7Cit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7
CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVN1cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmlu
Zz4mIHR5cGVzKTsKIHR5cGVkZWYgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5n
aW5lU3VwcG9ydHNUeXBlKShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUp
KFZlY3RvcjxTdHJpbmc+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDAzODdhN2QxNTI4YzRkNThlYjQzNTY2
NzViMWQ4NTdlZjU2ZTYwYWEuLjQzMWUwMWI4NzZlYzkzNWI3MmRhMzc3ZTc5NjJiMWExMDMyNmI5
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
aW5kZXggNjYwYjBjMDAyNWQxYjdkZTdjNWQ3NWFhMWJjNzViODg4YmMxZmU4NS4uZDEzM2VmYzFi
OGY1NTNkMzMxMTI2ZDE1OTFhNjM1NDg0MGRlOThmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtNDYsNyArNDYsNiBAQCBj
bGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
biA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRU
cmFja1BhcmVudAogewogcHVibGljOgotCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGxheWFi
aWxpdHlLbm93bigpOwpAQCAtMTQ0LDcgKzE0Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90
ZWN0ZWQ6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7
CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVy
Kik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKCk7CiAKICAg
ICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNG
LmNwcAppbmRleCAyNzVkOWUxMjVkMjcwYTJhYjUwNDhmZmVmZGZkNWNhOTE1MTA2MDI2Li4zNjE5
NTk2NDhhNDkxMjBhMDE3NGUwOTBmZmUxMGM4Yzk0OTAzMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
QEAgLTMzNSw5ICszMzUsOSBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJE
ZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyKSAKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5
ZXIqIHBsYXllcikgCiB7IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRj4obmV3IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGKHBsYXllcikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lz
dHJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggMmFjMDE0NGRhYTkzOGNkMjMwMmM2YjJkNjdkZGEzMDM1
MDA4NDdkMy4uMmJkYWQxOTI5YzY1MjczOTc1NDJlYzIxYjFhOTQzNjdhY2JkYzEyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRl
cjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAgICAvLyBFbmdpbmUgc3Vw
cG9ydAorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRigpOwogCiAgICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBv
dmVycmlkZTsKQEAgLTU4LDEwICs2MCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdp
c3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogcHJpdmF0ZToKLSAgICBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihNZWRpYVBsYXllciopOworICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAKLSAg
ICAvLyBFbmdpbmUgc3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKaW5kZXggZjJiOGUzYjdhMmFjMDU0Njg1M2NmMzM4OTY3ZmIxNGI4NzJhNTg0Ni4uZTRi
YWM4NzFiZmZhZmUzNzkwMWVjMTQwNzFmMzM3ZjE4ZDc0MTQzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaApAQCAtMTMxLDEwICsxMzEsMTAgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8v
IGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAg
ICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7
CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA2Y2VlNmE3NDg3YmQzMDQxYTk1MGNjMDQ0
M2ZiOWJjZGZhODJiZWUzLi40ZmM1MWJiYzgxZWEzYTI2ZGMyZDA2MTM4YWVmMjY1MTViYTI1NTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTM4Myw5ICszODMsOSBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQorc3RkOjp1bmlxdWVf
cHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsK
KyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM+KG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKHBsYXllcikpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaAppbmRleCAwNzdhYzJlMzJjMzhlYjdiZDI1MjM5YTAyNGIzZjc3NTEwNjk1N2IxLi4z
NGFlOTAzOTVmODA0YjA1YjU1YWY1NzdmOGRkZjk4ZWIwYTA0MWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaApAQCAtNTAsMTMgKzUwLDEyIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakM7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1
YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwg
fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZv
aWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKICAgICAvLyBN
ZWRpYVBsYXllciBGYWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQ
bGF5ZXIqKTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lk
IGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJik7CkBAIC05Myw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICBXZWFrUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Cisg
ICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxh
eWVyKik7CisKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDdhMTJlODE2NTdmYzJiOWEwMGIx
NmM0ZDQyZmNkNGUxM2YyNjc0OGIuLmFhYjA5ZDE4ZjgzOWE1ZDRkNmJhMTZhMTMyZmM0ZjhiYTMz
M2U1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTIwNiw5ICsyMDYsOSBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdAogICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBw
b3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOworICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOwog
fQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFpbGFi
bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCA4YWM4ZmNjZmJhYjNhMTc1NmQxOTcyZWQ3NGM3ZDA2OGRlM2Q5NjhmLi4wOTNhZmY5Mzlj
N2JkNzVhOWUzNmZhZTgyYWEzOGViMjQ5MDBjMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTM4LDkgKzEzOCw5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVj
dCogb2JqZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBh
dCAlcyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBsYXll
ciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKHBsYXll
cikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTA4NDkyMTk4MmM2MTg0MzJhMWFh
MmYxZmZhOWMwZjgxYzMxYmE3Ni4uYmUxYWFlODQ2ZGYzN2QwNWE0Y2M1MzM0MDEwMzdhMTY1MWVm
ZjY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtNTcsNyArNTcsOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1l
ZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5kbGVNZXNz
YWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJlc3VsdChH
c3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMjYsOSArMTI4LDcgQEAgcHVibGljOgogICAg
IGJvb2wgY2hhbmdlUGlwZWxpbmVTdGF0ZShHc3RTdGF0ZSk7CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciop
OworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciop
OwogCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+Jik7
CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
LmgKaW5kZXggODBjMmNlYTU5MTNhNDI1MmJlMWJkZjJhNzMwMDEzZTZhM2E4NDZmNS4uODg2M2Zk
NjA5N2Y0NjhlNWQzNjkzNDIyMmRhM2IzMDk0NTNjMjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0LmgKQEAgLTUwLDYgKzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisKICAgICB+TWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIApAQCAtNjMsMTAgKzY1LDkgQEAg
cHVibGljOgogICAgIHZvaWQgbGF5ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxheWVyKiByb290TGF5
ZXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVy
Kik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsK
IAogICAgIC8vIGVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9p
ZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVT
dXBwb3J0UGFyYW1ldGVycyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXgg
OTBhZmMxMGZjMzRlMzllN2M5YjE5MTBkM2NiZjYwYWZiODI3ZTJiMS4uMWE5OTVmM2QxOTdlMjY3
YzdkYzYwMDFhMjlmY2ZjOGZjNjk1NWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5t
bQpAQCAtMTY2LDkgKzE2Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7IAotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQocGxheWVyKSk7CisgICAgcmV0dXJuIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4obmV3IE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0KHBsYXllcikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojpy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKaW5kZXggOGExY2Vl
NmZiMjM2ZWEzZThhNmZkZGEyZjEwYjE1NzlmNWIyNmM2ZS4uYWY4OGJhYzcxN2MwMWU3MzhhMDA2
NWViZjJiYzQwN2U2OGUwMjkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbi5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQbGF5
ZXIKIHsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIp
CitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
KHBsYXllcikpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFGb3VuZGF0aW9uPihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBs
YXllcikpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggYjlhZTBjNTVkNTVm
YWVlYmZmZTQxMmE1YWZlMWJlNTRlNzk1MzhhMi4uMTAzYjQwMjIxZjYxZmU3NjlkN2E0ZDhmZWJj
MjI1N2NkYmY0NDNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uaApAQCAtMzAsMTAgKzMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5l
KE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBs
YXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5n
PiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJv
b2wgaXNBdmFpbGFibGUoKTsKQEAgLTY3LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByaXZhdGU6
Ci0KKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oTWVkaWFQ
bGF5ZXIqKTsKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IGM2NjE3OGI5Njc3Y2Y4NDk2NWQ5
OGJmODhiZTNhMzk4NmY3ZTM4ZGEuLmYxYTNmN2U0M2ZhMTk1Njg5ZGZhODFmODA2MTNlZjBiNTE5
NjdiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBA
IC00NCw5ICs0NCw5IEBAIHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0CiAgICAgcmVnaXN0cmFyKGNy
ZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAK
LVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJN
ZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6
Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBN
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4obmV3IE1vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlKHBsYXllcikpOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBl
Q2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGI2
Njk0ZDhlZDg3Mzc5ODllYjBiZjZlZWY5NjM5MDYzNjVmZmI5N2YuLjFhNWYwMWZlNmQyMmUyOTI5
MmRmYjQ5MTM1OTFhZTJiMTU5ZjVkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1l
ZGlhU291cmNlLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKICAg
ICAvLyBNZWRpYVBsYXllciBFbmdpbmUgU3VwcG9ydAogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwotICAgIHN0YXRpYyBQYXNzT3duUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0
ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hT
ZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Vla0NvbXBsZXRlZCgpOwogCiBwcml2
YXRlOgotICAgIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVyKik7CisgICAg
ZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKIAogICAg
IC8vIE1lZGlhUGxheWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246713</attachid>
            <date>2015-02-16 18:30:29 -0800</date>
            <delta_ts>2015-02-16 20:30:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20150217113025.patch</filename>
            <type>text/plain</type>
            <size>27956</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRiZmFiNjQ4ODFlMDE4
ZGVhMDM3MTdmYTYyNDhlOTI2ZTZhZjkyNC4uY2E4ZDVjYThkOGY4OWYwNTBhMmIyMWEwMjM4NzZm
NzkxMzZkMjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAyLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gSG93ZXZlciBNZWRpYVBsYXllciBo
YXMgdXNlZCBmYWN0b3J5IHBhdHRlcm4sIHRodXMgY3JlYXRlKCkgZmFjdG9yeQorICAgICAgICBm
dW5jdGlvbiBzaG91bGQgYmUga2VwdCB0byB1c2UgZmFjdG9yeSBwYXR0ZXJuLiBUaHVzIHRoaXMg
cGF0Y2ggc2V0cyBjb250cnVjdG9yIHRvIHByaXZhdGUsIGFuZCB1c2VzIHN0ZDo6dW5pcXVlX3B0
cgorICAgICAgICBpbiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorCiAyMDE1LTAyLTE2ICBNaWxhbiBDcmhhICA8bWNyaGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBMb2FkaW5nIHBhZ2UgaW50byBXZWJWaWV3IHNob3dzIGdfY2xvc3Vy
ZV91bnJlZiB3YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU2MjgxN2RjNTdmODhlMTg3
MDE0Nzc5OWQ3NTQ1Y2I3ZDBkMDYyMTAuLjcwMWIwY2UwMDQ5NWJjNTRlZTA1Y2VjOTQ4ZjZjMzIx
OTE0MDYzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zNDM4LDcgKzM0MzgsNyBAQCBfX1pO
N1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVkaWFDYWNoZUZvclNpdGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ0cGxheUV2CiBfX1pON1dl
YkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50OHNldE11dGVkRWIKLV9fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9y
dDIzY2FsbFJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2UEZ2UEZOM1dURjEwUGFzc093blB0cklOU18y
N01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMx
XzdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lT
QV9FRUVFRVBGTlM1XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzRUVQRnZSTlMxXzZWZWN0b3JJU0FfTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQ
RnZ2RVBGdlJLU0FfRVBGYlNYX1NYX0VFRQorX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3Rv
cnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk5TdDNfXzExMHVuaXF1
ZV9wdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2VFTlMxXzE0ZGVmYXVsdF9kZWxl
dGVJUzNfRUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTjNXVEY3SGFzaFNldElOU0JfNlN0cmlu
Z0VOU0JfMTBTdHJpbmdIYXNoRU5TQl8xMEhhc2hUcmFpdHNJU0RfRUVFRUVQRk5TN18xMlN1cHBv
cnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TQl82VmVj
dG9ySVNEX0xtMEVOU0JfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NEX0VQRmJTMTBf
UzEwX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQogX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczdu
ZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY3ZWI4ZmRiMTUx
OTJjYTliNDE3NDdlODI1NmIzYTgwMDExNjA4MzcuLjlkYWIxN2U2MTY2YTJkMWE4NTJiODhhM2Ex
MWZlOGViNWViMDk2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDY5Miw3ICs0NjkyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlh
UGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYKIAotICAg
IG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgc3RvcFBl
cmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDczOSw3ICs0NzM5
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFuIGFjdGl2
ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0ZWQsIHNv
IHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5vdGUgdGhh
dCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBwbGF5ZXIK
ICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFuZGxlcyBh
bGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51
bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTQwNiw3ICs1NDA2
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKICNl
bmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgbV9w
bGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxNZWRpYVBs
YXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGlmICht
X2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCA0YWI0NzYwNTA0ZjhmOTljZDNhYTVlNGYwMWU2OWFkYjQyYjk4NDkyLi4xZmVhNDJlMWVk
OGZiZTZlOWNmZjM3OGMxNzJiMjRlNDM4M2YwMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtODA1LDcgKzgwNSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYKIAotICAg
IE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CmluZGV4IDcyZjRmNWEyZTQ2NWMzZjA4ZGFmZTJjMGE2ZGYzN2FlZjkxOTJkOWMuLjU2NjkxYWM0
MTkyYmYxZmRjNGQ3NzYzOTZjZjZkNTM5NDlkZjBhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgY29u
c3QgUGxhdGZvcm1NZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRmb3JtTWVkaWE6Ok5vbmUs
IHswfSB9OwogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1lZGlhUGxheWVyUHJpdmF0
ZShNZWRpYVBsYXllciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRpYVBsYXllclByaXZhdGUo
TWVkaWFQbGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYp
IHsgfQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDUsMTIgKzE0NSwxMSBAQCBwdWJs
aWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAoteyAK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7
IAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CiB9CiAKLQog
Ly8gZW5naW5lIHN1cHBvcnQKIAogc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA2OWIzY2Y5
MzRjNTNlM2E1OTQzNjEzMWEzZmFjMmQxYTcwNTNjNDlmLi42N2QyNmQxYjg2ODIwOGRjOGVhYWQx
ZTQ3ZjYwZTQ0YmExYWNiMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTI4MCwxMSArMjgwLDcgQEAgcHVibGljOgogY2xhc3MgTWVk
aWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBl
eHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhUGxheWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU4NSw3ICs1
ODEsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7
CiAgICAgY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKGNvbnN0
IE1lZGlhUGxheWVyRmFjdG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZp
cmVkKCk7CkBAIC01OTQsNyArNTg5LDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xp
ZW50JiBtX2NsaWVudDsKICAgICBUaW1lciBtX3JlbG9hZFRpbWVyOwotICAgIE93blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgY29uc3QgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKICAgICBVUkwgbV91cmw7CiAgICAg
U3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwpAQCAtNjE1LDcgKzYxMCw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIH07CiAKLXR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+ICgqQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7Cit0eXBlZGVmIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRlTWVkaWFF
bmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVN1
cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKIHR5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlh
RW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmlu
ZGV4IGMwNmFjYjQ3M2U1ZmNkYTBjMzVkN2E1NTMwOTNkZTIzMWI0OWIxZWEuLmUwYjUzZDE2YzFk
ZTEyZmQ2MzkyY2NhYjUwZWU5YWNhYjNjNTdjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw2
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggN2I1NTg0NjViZjNjYjExYjJjMmMyYjVk
ZDk3Zjg1MTYzMWYzZDEzYy4uYTY5ODA3ODk1Y2NlNDliZWFmOTI1NWNkZjJhMTE0ZjQxNDliYTMy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaApAQCAtNDYsNyArNDYsNiBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGljOgotCiAgICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGxheWFiaWxpdHlLbm93bigpOwpAQCAtMTQ0LDcgKzE0Myw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKCk7CiAKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBhMzRmMGQ0NjdkZDhkNWRkZDQz
YzQyZDNlMmJiODc4MzA1MDAxZmEzLi5hNTdlYzNlNWI0ZmUyZGM5MDE1NjFmMTU4ODkzNWFjNmM1
ZDQ4ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTMzNSw5ICszMzUsOSBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIp
KTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaAppbmRleCBiMWNkY2QwMGQ5ZjAyYTBjY2E0YWM4YjEzOTVkOWU5YTZmMGZmYjg3
Li4yN2UwMDMzNTI3NGI1ZmUzOWExOTdhMmYyYjg2MzE0MDcyNWYzN2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIC8vIEVuZ2luZSBzdXBwb3J0Cisg
ICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIq
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRigpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBvdmVycmlkZTsKQEAgLTU4LDEwICs2MCw4
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRihNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAotICAgIC8vIEVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCAwMDA2YzA0ZTZiNjExMjcyMWNmMDAyYjhhNWUzYmRjZDQwYTI3ZmEyLi5iZWU1NDc0Yzg2
YTJmZDM4NTFhMDVjZjFkYmJlZjk1MDU1MWMzZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMiwxMCArMTMzLDggQEAg
cHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDhh
NGQ1MmUyMWE3MDI4MTQ1OTQ2ZmE1NWZiYzdjMzQ1NWU5Y2JjMmEuLmIzNzI0OGE2MTI5MjVkMTI3
NjlmZGIwMTk1MDk4OTVjZTcyZGM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzg3
LDkgKzM4Nyw5IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1
ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZShNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4
IGU2MDE3NmRiNWZlZDg2ZGEwMGQzNzhlMGY5MDFmNjI1ZjE2OGM5ZTUuLjhhNmU4ZDBkYzEyZThk
ZTdmMzVhOTI0YWIwNjExNDVlN2IyMWEyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBA
IC01MCwxMyArNTAsMTIgQEAgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCBy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogICAgIC8vIE1lZGlh
UGxheWVyIEZhY3RvcnkgTWV0aG9kcwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIGJvb2wg
aXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpAQCAtOTMs
NiArOTIsOCBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKwogICAg
IC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjhiYTIzMzRkZGNhODNhY2YzZTY2YTVkMmE1ZDBlOTcy
M2M5ZDQyYi4uM2M4NmVmMWYxODdkNmM2MjZkYmUzNTY0MWE0MjM0ZWFhMjAyYWVhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0CiAgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIp
OwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFp
bGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA5NDNhMmU3ODYzM2EzMjM1MDM3OWU0YWIzZTNhOGRlZDJkN2MzOTMzLi5lNDkwYmQ3
NjI0MGZjZDE0ZTRhNDZmNzZkNjgyMWNjMDVhZWQzZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTQyLDkgKzE0Miw5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09i
amVjdCogb2JqZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAl
cyBhdCAlcyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBs
YXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIg
cmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IDM5MWY4ZWE2MzJlYzJmYzNhZjUxMjc1MjEyODlkYTgwNGQzYjE0ZDUuLmNlNmRhZGQ4
ZDE5MTRjMzY3M2YxMzBkY2Y3YWQyYzA5M2VlMmFiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTYyLDcgKzYyLDkgQEAgY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAg
ICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdp
c3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5k
bGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJl
c3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMzYsOSArMTM4LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmlu
ZGV4IGU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYuLjMxN2QzZjVkYjM0
YTkwNDRkNzY2NGNmYWE5NzFmYzQwMTcyMmI1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQ
bGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
KTsKIApAQCAtNjMsMTAgKzY0LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGF5ZXJIb3N0Q2hhbmdl
ZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAg
Ly8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA2YjJiYTQ4
ODBiMzk2YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5Li5kN2U4OGYxNzNhYjRmMGQ5NjVlNWZk
MjNmMDBlNmQ0NDlkMGYxYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0x
NjgsOSArMTY4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNZWRpYVBsYXllclByaXZhdGVRVEtpdChwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwCmluZGV4IGNlOGUzM2VlZjE5Yjc0YmI5OThlMjc4MTEwZDllNzA5NGY5MDQ1YWQu
LmZjN2NlOWNlMjk5M2NkYzljYzgyYjgyMzhkMzkwYmI0OWUyZTgxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC02NSw5ICs2NSw5IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbigpCiAgICAgZW5kU2Vzc2lvbigpOwogfQogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24ocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uPihwbGF5ZXIpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggZWVkODk4MWE3M2ZhZDJiOTk0MWY2
YWY5ZDMwYmY5ZmMwOWEzMmFlZi4uYTQ5NjQ5ZDAzMGMwY2EzYmVhMzQ0NjFmNjMyNzBlODk5YWMz
NGMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApA
QCAtMzUsMTEgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1l
ZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uKE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bigpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CkBAIC05MSw2ICs5MCw4IEBAIHBy
aXZhdGU6CiAgICAgQ09NUHRyPElNRlByZXNlbnRhdGlvbkRlc2NyaXB0b3I+IG1fc291cmNlUEQ7
CiAgICAgQ09NUHRyPElNRlZpZGVvRGlzcGxheUNvbnRyb2w+IG1fdmlkZW9EaXNwbGF5OwogCisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZShNZWRpYVBsYXllciopOworCiAgICAgYm9vbCBjcmVhdGVTZXNzaW9uKCk7CiAgICAgYm9v
bCBlbmRTZXNzaW9uKCk7CiAgICAgYm9vbCBzdGFydENyZWF0ZU1lZGlhU291cmNlKGNvbnN0IFN0
cmluZyYgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAK
aW5kZXggZGIxOTg5ODlhNWI5MGQ2NjI2ZjgwNWJhZDhkY2MxODBlN2RjY2EwMi4uOGYzYjE4MDgz
Njg0NDJmNzBmM2Q3MjJiYTA5NmMxYmUzYjA5YTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgdm9pZCBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3QKICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBsYXll
cikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4ocGxheWVyKTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAppbmRleCBmOTNjOGM4
YTVjNDQ0YjhmYTE4MjIzOGU1MjViMDIwZjkyZmE3ZjE2Li4xMGYzZjhmNmI2ZjI1Njg4YWMyZGMz
MjQ5ZmVlOTFlZmE4NTBkYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgLy8g
TWVkaWFQbGF5ZXIgRW5naW5lIFN1cHBvcnQKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9p
ZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKLSAgICBzdGF0aWMg
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXll
ciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwogCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlZWtDb21wbGV0ZWQo
KTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShNZWRpYVBsYXll
ciopOworICAgIGV4cGxpY2l0IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVy
Kik7CiAKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGUgT3ZlcnJpZGVzCiAgICAgdmlydHVhbCB2
b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpp
bmRleCA0MGJhODVlNzQ4OGE1MTQ1OGI2YzFmYzQwYTU1MDE1YmI1MTljMThlLi4wZTZlMmU2ZjBk
YzRiN2E4NGJjZDZlNWNkZjA5NzQ5N2U1YWJjYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAt
Mjk0LDUgKzI5NCw1IEBAIGVuZGlmICgpCiBhZGRfZGVmaW5pdGlvbnMoLURXRUJLSVRfRVhFQ19Q
QVRIPVwiJHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9XCIpCiAKIGlmIChFTkFCTEVf
U1VCVExFX0NSWVBUTykKLSAgICBmaW5kX3BhY2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQor
ICAgIGZpbmRfcGFja2FnZShHbnVUTFMgMi4wLjAgUkVRVUlSRUQpCiBlbmRpZiAoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEhlbHBlcnMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2Vi
S2l0SGVscGVycy5jbWFrZQppbmRleCA0MjBlYmUxMDg0ODFkZTQxMjAyMzU4NTAwYWFkODA3MjJj
YmM5YTAwLi5hMGRmZDZlZWQ4ZjFmNWZjYzc0NWIwYzZjZmExZWQzMmRiYmNiYTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0SGVscGVycy5jbWFrZQpAQCAtMTcsNyArMTcsNyBAQCBtYWNybyhXRUJLSVRfU0VUX0VY
VFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQpCiAKICAgICAgICAgIyBFbmFibGUgd2FybmluZ3Mg
YnkgZGVmYXVsdAogICAgICAgICBpZiAoTk9UICR7T1BUSU9OX0lHTk9SRUNYWF9XQVJOSU5HU30p
Ci0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XYWxsIC1XZXh0cmEgLVdjYXN0
LWFsaWduIC1XZm9ybWF0LXNlY3VyaXR5IC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XcG9p
bnRlci1hcml0aCAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAke09MRF9DT01QSUxFX0ZMQUdTfSIp
CisgICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XYWxsIC1Xbm8tZXJyb3I9bGl0
ZXJhbC1zdWZmaXggLVdleHRyYSAtV2Nhc3QtYWxpZ24gLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNz
aW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdwb2ludGVyLWFyaXRoIC1XdW5kZWYgLVd3cml0ZS1zdHJp
bmdzICR7T0xEX0NPTVBJTEVfRkxBR1N9IikKICAgICAgICAgZW5kaWYgKCkKIAogICAgICAgICAj
IEVuYWJsZSBlcnJvcnMgb24gd2FybmluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246720</attachid>
            <date>2015-02-16 20:30:18 -0800</date>
            <delta_ts>2015-02-16 22:20:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20150217133014.patch</filename>
            <type>text/plain</type>
            <size>26656</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRiZmFiNjQ4ODFlMDE4
ZGVhMDM3MTdmYTYyNDhlOTI2ZTZhZjkyNC4uY2E4ZDVjYThkOGY4OWYwNTBhMmIyMWEwMjM4NzZm
NzkxMzZkMjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAyLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gSG93ZXZlciBNZWRpYVBsYXllciBo
YXMgdXNlZCBmYWN0b3J5IHBhdHRlcm4sIHRodXMgY3JlYXRlKCkgZmFjdG9yeQorICAgICAgICBm
dW5jdGlvbiBzaG91bGQgYmUga2VwdCB0byB1c2UgZmFjdG9yeSBwYXR0ZXJuLiBUaHVzIHRoaXMg
cGF0Y2ggc2V0cyBjb250cnVjdG9yIHRvIHByaXZhdGUsIGFuZCB1c2VzIHN0ZDo6dW5pcXVlX3B0
cgorICAgICAgICBpbiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorCiAyMDE1LTAyLTE2ICBNaWxhbiBDcmhhICA8bWNyaGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBMb2FkaW5nIHBhZ2UgaW50byBXZWJWaWV3IHNob3dzIGdfY2xvc3Vy
ZV91bnJlZiB3YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU2MjgxN2RjNTdmODhlMTg3
MDE0Nzc5OWQ3NTQ1Y2I3ZDBkMDYyMTAuLjcwMWIwY2UwMDQ5NWJjNTRlZTA1Y2VjOTQ4ZjZjMzIx
OTE0MDYzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zNDM4LDcgKzM0MzgsNyBAQCBfX1pO
N1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVkaWFDYWNoZUZvclNpdGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ0cGxheUV2CiBfX1pON1dl
YkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50OHNldE11dGVkRWIKLV9fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9y
dDIzY2FsbFJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2UEZ2UEZOM1dURjEwUGFzc093blB0cklOU18y
N01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMx
XzdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lT
QV9FRUVFRVBGTlM1XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzRUVQRnZSTlMxXzZWZWN0b3JJU0FfTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQ
RnZ2RVBGdlJLU0FfRVBGYlNYX1NYX0VFRQorX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3Rv
cnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk5TdDNfXzExMHVuaXF1
ZV9wdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2VFTlMxXzE0ZGVmYXVsdF9kZWxl
dGVJUzNfRUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTjNXVEY3SGFzaFNldElOU0JfNlN0cmlu
Z0VOU0JfMTBTdHJpbmdIYXNoRU5TQl8xMEhhc2hUcmFpdHNJU0RfRUVFRUVQRk5TN18xMlN1cHBv
cnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TQl82VmVj
dG9ySVNEX0xtMEVOU0JfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NEX0VQRmJTMTBf
UzEwX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQogX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczdu
ZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY3ZWI4ZmRiMTUx
OTJjYTliNDE3NDdlODI1NmIzYTgwMDExNjA4MzcuLjlkYWIxN2U2MTY2YTJkMWE4NTJiODhhM2Ex
MWZlOGViNWViMDk2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDY5Miw3ICs0NjkyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlh
UGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYKIAotICAg
IG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgc3RvcFBl
cmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDczOSw3ICs0NzM5
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFuIGFjdGl2
ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0ZWQsIHNv
IHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5vdGUgdGhh
dCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBwbGF5ZXIK
ICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFuZGxlcyBh
bGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51
bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTQwNiw3ICs1NDA2
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKICNl
bmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgbV9w
bGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxNZWRpYVBs
YXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGlmICht
X2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCA0YWI0NzYwNTA0ZjhmOTljZDNhYTVlNGYwMWU2OWFkYjQyYjk4NDkyLi4xZmVhNDJlMWVk
OGZiZTZlOWNmZjM3OGMxNzJiMjRlNDM4M2YwMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtODA1LDcgKzgwNSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYKIAotICAg
IE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CmluZGV4IDcyZjRmNWEyZTQ2NWMzZjA4ZGFmZTJjMGE2ZGYzN2FlZjkxOTJkOWMuLjU2NjkxYWM0
MTkyYmYxZmRjNGQ3NzYzOTZjZjZkNTM5NDlkZjBhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgY29u
c3QgUGxhdGZvcm1NZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRmb3JtTWVkaWE6Ok5vbmUs
IHswfSB9OwogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1lZGlhUGxheWVyUHJpdmF0
ZShNZWRpYVBsYXllciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRpYVBsYXllclByaXZhdGUo
TWVkaWFQbGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYp
IHsgfQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDUsMTIgKzE0NSwxMSBAQCBwdWJs
aWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAoteyAK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7
IAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CiB9CiAKLQog
Ly8gZW5naW5lIHN1cHBvcnQKIAogc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA2OWIzY2Y5
MzRjNTNlM2E1OTQzNjEzMWEzZmFjMmQxYTcwNTNjNDlmLi42N2QyNmQxYjg2ODIwOGRjOGVhYWQx
ZTQ3ZjYwZTQ0YmExYWNiMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTI4MCwxMSArMjgwLDcgQEAgcHVibGljOgogY2xhc3MgTWVk
aWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBl
eHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhUGxheWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU4NSw3ICs1
ODEsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7
CiAgICAgY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKGNvbnN0
IE1lZGlhUGxheWVyRmFjdG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZp
cmVkKCk7CkBAIC01OTQsNyArNTg5LDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xp
ZW50JiBtX2NsaWVudDsKICAgICBUaW1lciBtX3JlbG9hZFRpbWVyOwotICAgIE93blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgY29uc3QgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKICAgICBVUkwgbV91cmw7CiAgICAg
U3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwpAQCAtNjE1LDcgKzYxMCw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIH07CiAKLXR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+ICgqQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7Cit0eXBlZGVmIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRlTWVkaWFF
bmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVN1
cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKIHR5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlh
RW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmlu
ZGV4IGMwNmFjYjQ3M2U1ZmNkYTBjMzVkN2E1NTMwOTNkZTIzMWI0OWIxZWEuLmUwYjUzZDE2YzFk
ZTEyZmQ2MzkyY2NhYjUwZWU5YWNhYjNjNTdjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw2
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggN2I1NTg0NjViZjNjYjExYjJjMmMyYjVk
ZDk3Zjg1MTYzMWYzZDEzYy4uYTY5ODA3ODk1Y2NlNDliZWFmOTI1NWNkZjJhMTE0ZjQxNDliYTMy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaApAQCAtNDYsNyArNDYsNiBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGljOgotCiAgICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGxheWFiaWxpdHlLbm93bigpOwpAQCAtMTQ0LDcgKzE0Myw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKCk7CiAKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBhMzRmMGQ0NjdkZDhkNWRkZDQz
YzQyZDNlMmJiODc4MzA1MDAxZmEzLi5hNTdlYzNlNWI0ZmUyZGM5MDE1NjFmMTU4ODkzNWFjNmM1
ZDQ4ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTMzNSw5ICszMzUsOSBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIp
KTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaAppbmRleCBiMWNkY2QwMGQ5ZjAyYTBjY2E0YWM4YjEzOTVkOWU5YTZmMGZmYjg3
Li4yN2UwMDMzNTI3NGI1ZmUzOWExOTdhMmYyYjg2MzE0MDcyNWYzN2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIC8vIEVuZ2luZSBzdXBwb3J0Cisg
ICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIq
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRigpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBvdmVycmlkZTsKQEAgLTU4LDEwICs2MCw4
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRihNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAotICAgIC8vIEVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCAwMDA2YzA0ZTZiNjExMjcyMWNmMDAyYjhhNWUzYmRjZDQwYTI3ZmEyLi5iZWU1NDc0Yzg2
YTJmZDM4NTFhMDVjZjFkYmJlZjk1MDU1MWMzZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMiwxMCArMTMzLDggQEAg
cHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDhh
NGQ1MmUyMWE3MDI4MTQ1OTQ2ZmE1NWZiYzdjMzQ1NWU5Y2JjMmEuLmIzNzI0OGE2MTI5MjVkMTI3
NjlmZGIwMTk1MDk4OTVjZTcyZGM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzg3
LDkgKzM4Nyw5IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1
ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZShNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4
IGU2MDE3NmRiNWZlZDg2ZGEwMGQzNzhlMGY5MDFmNjI1ZjE2OGM5ZTUuLjhhNmU4ZDBkYzEyZThk
ZTdmMzVhOTI0YWIwNjExNDVlN2IyMWEyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBA
IC01MCwxMyArNTAsMTIgQEAgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCBy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogICAgIC8vIE1lZGlh
UGxheWVyIEZhY3RvcnkgTWV0aG9kcwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIGJvb2wg
aXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpAQCAtOTMs
NiArOTIsOCBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKwogICAg
IC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjhiYTIzMzRkZGNhODNhY2YzZTY2YTVkMmE1ZDBlOTcy
M2M5ZDQyYi4uM2M4NmVmMWYxODdkNmM2MjZkYmUzNTY0MWE0MjM0ZWFhMjAyYWVhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0CiAgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIp
OwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFp
bGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA5NDNhMmU3ODYzM2EzMjM1MDM3OWU0YWIzZTNhOGRlZDJkN2MzOTMzLi5lNDkwYmQ3
NjI0MGZjZDE0ZTRhNDZmNzZkNjgyMWNjMDVhZWQzZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTQyLDkgKzE0Miw5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09i
amVjdCogb2JqZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAl
cyBhdCAlcyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBs
YXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIg
cmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IDM5MWY4ZWE2MzJlYzJmYzNhZjUxMjc1MjEyODlkYTgwNGQzYjE0ZDUuLmNlNmRhZGQ4
ZDE5MTRjMzY3M2YxMzBkY2Y3YWQyYzA5M2VlMmFiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTYyLDcgKzYyLDkgQEAgY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAg
ICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdp
c3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5k
bGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJl
c3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMzYsOSArMTM4LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmlu
ZGV4IGU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYuLjMxN2QzZjVkYjM0
YTkwNDRkNzY2NGNmYWE5NzFmYzQwMTcyMmI1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQ
bGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
KTsKIApAQCAtNjMsMTAgKzY0LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGF5ZXJIb3N0Q2hhbmdl
ZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAg
Ly8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA2YjJiYTQ4
ODBiMzk2YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5Li5kN2U4OGYxNzNhYjRmMGQ5NjVlNWZk
MjNmMDBlNmQ0NDlkMGYxYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0x
NjgsOSArMTY4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNZWRpYVBsYXllclByaXZhdGVRVEtpdChwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwCmluZGV4IGNlOGUzM2VlZjE5Yjc0YmI5OThlMjc4MTEwZDllNzA5NGY5MDQ1YWQu
LmZjN2NlOWNlMjk5M2NkYzljYzgyYjgyMzhkMzkwYmI0OWUyZTgxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC02NSw5ICs2NSw5IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbigpCiAgICAgZW5kU2Vzc2lvbigpOwogfQogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24ocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uPihwbGF5ZXIpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggZWVkODk4MWE3M2ZhZDJiOTk0MWY2
YWY5ZDMwYmY5ZmMwOWEzMmFlZi4uYTQ5NjQ5ZDAzMGMwY2EzYmVhMzQ0NjFmNjMyNzBlODk5YWMz
NGMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApA
QCAtMzUsMTEgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1l
ZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uKE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bigpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CkBAIC05MSw2ICs5MCw4IEBAIHBy
aXZhdGU6CiAgICAgQ09NUHRyPElNRlByZXNlbnRhdGlvbkRlc2NyaXB0b3I+IG1fc291cmNlUEQ7
CiAgICAgQ09NUHRyPElNRlZpZGVvRGlzcGxheUNvbnRyb2w+IG1fdmlkZW9EaXNwbGF5OwogCisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZShNZWRpYVBsYXllciopOworCiAgICAgYm9vbCBjcmVhdGVTZXNzaW9uKCk7CiAgICAgYm9v
bCBlbmRTZXNzaW9uKCk7CiAgICAgYm9vbCBzdGFydENyZWF0ZU1lZGlhU291cmNlKGNvbnN0IFN0
cmluZyYgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAK
aW5kZXggZGIxOTg5ODlhNWI5MGQ2NjI2ZjgwNWJhZDhkY2MxODBlN2RjY2EwMi4uMmNiZGNkMjZl
NGU3ODg4YzQ3OTc5ZDU5MWI2NTI0YjA1MDIwZWZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgdm9pZCBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3QKICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBsYXll
cikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlPihwbGF5ZXIpOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGY5M2M4Yzhh
NWM0NDRiOGZhMTgyMjM4ZTUyNWIwMjBmOTJmYTdmMTYuLjEwZjNmOGY2YjZmMjU2ODhhYzJkYzMy
NDlmZWU5MWVmYTg1MGRhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Ug
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKICAgICAvLyBN
ZWRpYVBsYXllciBFbmdpbmUgU3VwcG9ydAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVy
Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
Jik7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Vla0NvbXBsZXRlZCgp
OwogCiBwcml2YXRlOgotICAgIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKE1lZGlhUGxheWVy
Kik7CisgICAgZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIq
KTsKIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246728</attachid>
            <date>2015-02-16 22:20:24 -0800</date>
            <delta_ts>2015-02-17 01:13:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20150217152020.patch</filename>
            <type>text/plain</type>
            <size>26692</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRiZmFiNjQ4ODFlMDE4
ZGVhMDM3MTdmYTYyNDhlOTI2ZTZhZjkyNC4uY2E4ZDVjYThkOGY4OWYwNTBhMmIyMWEwMjM4NzZm
NzkxMzZkMjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAyLTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0ciB3aXRoCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gSG93ZXZlciBNZWRpYVBsYXllciBo
YXMgdXNlZCBmYWN0b3J5IHBhdHRlcm4sIHRodXMgY3JlYXRlKCkgZmFjdG9yeQorICAgICAgICBm
dW5jdGlvbiBzaG91bGQgYmUga2VwdCB0byB1c2UgZmFjdG9yeSBwYXR0ZXJuLiBUaHVzIHRoaXMg
cGF0Y2ggc2V0cyBjb250cnVjdG9yIHRvIHByaXZhdGUsIGFuZCB1c2VzIHN0ZDo6dW5pcXVlX3B0
cgorICAgICAgICBpbiB0aGUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU51bGxNZWRpYVBsYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorCiAyMDE1LTAyLTE2ICBNaWxhbiBDcmhhICA8bWNyaGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBMb2FkaW5nIHBhZ2UgaW50byBXZWJWaWV3IHNob3dzIGdfY2xvc3Vy
ZV91bnJlZiB3YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU2MjgxN2RjNTdmODhlMTg3
MDE0Nzc5OWQ3NTQ1Y2I3ZDBkMDYyMTAuLjcwMWIwY2UwMDQ5NWJjNTRlZTA1Y2VjOTQ4ZjZjMzIx
OTE0MDYzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zNDM4LDcgKzM0MzgsNyBAQCBfX1pO
N1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVkaWFDYWNoZUZvclNpdGVFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ0cGxheUV2CiBfX1pON1dl
YkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50OHNldE11dGVkRWIKLV9fWk43V2ViQ29yZTI1TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9y
dDIzY2FsbFJlZ2lzdGVyTWVkaWFFbmdpbmVFUEZ2UEZ2UEZOM1dURjEwUGFzc093blB0cklOU18y
N01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTlMx
XzdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lT
QV9FRUVFRVBGTlM1XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJh
bWV0ZXJzRUVQRnZSTlMxXzZWZWN0b3JJU0FfTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRUVQ
RnZ2RVBGdlJLU0FfRVBGYlNYX1NYX0VFRQorX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3Rv
cnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk5TdDNfXzExMHVuaXF1
ZV9wdHJJTlNfMjdNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2VFTlMxXzE0ZGVmYXVsdF9kZWxl
dGVJUzNfRUVFRVBOU18xMU1lZGlhUGxheWVyRUVQRnZSTjNXVEY3SGFzaFNldElOU0JfNlN0cmlu
Z0VOU0JfMTBTdHJpbmdIYXNoRU5TQl8xMEhhc2hUcmFpdHNJU0RfRUVFRUVQRk5TN18xMlN1cHBv
cnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VFUEZ2Uk5TQl82VmVj
dG9ySVNEX0xtMEVOU0JfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZSS1NEX0VQRmJTMTBf
UzEwX0VFRQogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQTlNfMTBUaW1lUmFuZ2VzRQogX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczdu
ZWFyZXN0RWQKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGY3ZWI4ZmRiMTUx
OTJjYTliNDE3NDdlODI1NmIzYTgwMDExNjA4MzcuLjlkYWIxN2U2MTY2YTJkMWE4NTJiODhhM2Ex
MWZlOGViNWViMDk2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDY5Miw3ICs0NjkyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlh
UGxheWVyKGludCBmbGFncykKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPnNldEhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKCp0aGlzLCBmYWxzZSk7CiAjZW5kaWYKIAotICAg
IG1fcGxheWVyLmNsZWFyKCk7CisgICAgbV9wbGF5ZXIgPSBudWxscHRyOwogCiAgICAgc3RvcFBl
cmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkVGltZXIuc3RvcCgpOwpAQCAtNDczOSw3ICs0NzM5
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzdG9wKCkKICAgICAvLyBPbmNlIGFuIGFjdGl2
ZSBET00gb2JqZWN0IGhhcyBiZWVuIHN0b3BwZWQgaXQgY2FuIG5vdCBiZSByZXN0YXJ0ZWQsIHNv
IHdlIGNhbiBkZWFsbG9jYXRlCiAgICAgLy8gdGhlIG1lZGlhIHBsYXllciBub3cuIE5vdGUgdGhh
dCB1c2VyQ2FuY2VsbGVkTG9hZCB3aWxsIGFscmVhZHkgaGF2ZSBjbGVhcmVkIHRoZSBwbGF5ZXIK
ICAgICAvLyBpZiB0aGUgbWVkaWEgd2FzIG5vdCBmdWxseSBsb2FkZWQuIFRoaXMgaGFuZGxlcyBh
bGwgb3RoZXIgY2FzZXMuCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51
bGxwdHI7CiAKICAgICB1cGRhdGVTbGVlcERpc2FibGluZygpOwogfQpAQCAtNTQwNiw3ICs1NDA2
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgIGZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKTsKICNl
bmRpZgotICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgbV9w
bGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyPihzdGF0aWNfY2FzdDxNZWRpYVBs
YXllckNsaWVudCY+KCp0aGlzKSk7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGlmICht
X2F1ZGlvU291cmNlTm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApp
bmRleCA0YWI0NzYwNTA0ZjhmOTljZDNhYTVlNGYwMWU2OWFkYjQyYjk4NDkyLi4xZmVhNDJlMWVk
OGZiZTZlOWNmZjM3OGMxNzJiMjRlNDM4M2YwMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaApAQCAtODA1LDcgKzgwNSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CiAjZW5kaWYKIAotICAg
IE93blB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UGxheWVyPiBtX3BsYXllcjsKIAogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CmluZGV4IDcyZjRmNWEyZTQ2NWMzZjA4ZGFmZTJjMGE2ZGYzN2FlZjkxOTJkOWMuLjU2NjkxYWM0
MTkyYmYxZmRjNGQ3NzYzOTZjZjZkNTM5NDlkZjBhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgY29u
c3QgUGxhdGZvcm1NZWRpYSBOb1BsYXRmb3JtTWVkaWEgPSB7IFBsYXRmb3JtTWVkaWE6Ok5vbmUs
IHswfSB9OwogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTnVsbE1lZGlhUGxheWVyUHJpdmF0
ZShNZWRpYVBsYXllciopIHsgfQorICAgIGV4cGxpY2l0IE51bGxNZWRpYVBsYXllclByaXZhdGUo
TWVkaWFQbGF5ZXIqKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYp
IHsgfQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNDUsMTIgKzE0NSwxMSBAQCBwdWJs
aWM6CiAjZW5kaWYKIH07CiAKLXN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gY3JlYXRlTnVsbE1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpIAoteyAK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bGxNZWRpYVBsYXllclByaXZhdGUocGxheWVyKSk7
IAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHBsYXllcik7CiB9CiAKLQog
Ly8gZW5naW5lIHN1cHBvcnQKIAogc3RydWN0IE1lZGlhUGxheWVyRmFjdG9yeSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA2OWIzY2Y5
MzRjNTNlM2E1OTQzNjEzMWEzZmFjMmQxYTcwNTNjNDlmLi42N2QyNmQxYjg2ODIwOGRjOGVhYWQx
ZTQ3ZjYwZTQ0YmExYWNiMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTI4MCwxMSArMjgwLDcgQEAgcHVibGljOgogY2xhc3MgTWVk
aWFQbGF5ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxheWVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRp
YVBsYXllcj4gY3JlYXRlKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwotICAgIH0KKyAgICBl
eHBsaWNpdCBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfk1l
ZGlhUGxheWVyKCk7CiAKICAgICAvLyBNZWRpYSBlbmdpbmUgc3VwcG9ydC4KQEAgLTU4NSw3ICs1
ODEsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0OwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7
CiAgICAgY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0QmVzdE1lZGlhRW5naW5lKGNvbnN0
IE1lZGlhUGxheWVyRmFjdG9yeSopIGNvbnN0OwogICAgIHZvaWQgbG9hZFdpdGhOZXh0TWVkaWFF
bmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5Kik7CiAgICAgdm9pZCByZWxvYWRUaW1lckZp
cmVkKCk7CkBAIC01OTQsNyArNTg5LDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyQ2xp
ZW50JiBtX2NsaWVudDsKICAgICBUaW1lciBtX3JlbG9hZFRpbWVyOwotICAgIE93blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgY29uc3QgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKICAgICBVUkwgbV91cmw7CiAgICAg
U3RyaW5nIG1fY29udGVudE1JTUVUeXBlOwpAQCAtNjE1LDcgKzYxMCw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIH07CiAKLXR5cGVkZWYgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+ICgqQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7Cit0eXBlZGVmIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+ICgqQ3JlYXRlTWVkaWFF
bmdpbmVQbGF5ZXIpKE1lZGlhUGxheWVyKik7CiB0eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZVN1
cHBvcnRlZFR5cGVzKShIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKIHR5cGVkZWYgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSAoKk1lZGlhRW5naW5lU3VwcG9ydHNUeXBlKShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKTsKIHR5cGVkZWYgdm9pZCAoKk1lZGlh
RW5naW5lR2V0U2l0ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmlu
ZGV4IGMwNmFjYjQ3M2U1ZmNkYTBjMzVkN2E1NTMwOTNkZTIzMWI0OWIxZWEuLmUwYjUzZDE2YzFk
ZTEyZmQ2MzkyY2NhYjUwZWU5YWNhYjNjNTdjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMSw3ICszMSw2
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggN2I1NTg0NjViZjNjYjExYjJjMmMyYjVk
ZDk3Zjg1MTYzMWYzZDEzYy4uYTY5ODA3ODk1Y2NlNDliZWFmOTI1NWNkZjJhMTE0ZjQxNDliYTMy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaApAQCAtNDYsNyArNDYsNiBAQCBjbGFzcyBHZW5lcmljQ3VlRGF0YTsKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UsIHB1YmxpYyBBVkZJbmJhbmRUcmFja1BhcmVudAogewogcHVibGljOgotCiAgICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgbWV0YWRhdGFMb2FkZWQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGxheWFiaWxpdHlLbm93bigpOwpAQCAtMTQ0LDcgKzE0Myw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKCk7CiAKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBhMzRmMGQ0NjdkZDhkNWRkZDQz
YzQyZDNlMmJiODc4MzA1MDAxZmEzLi5hNTdlYzNlNWI0ZmUyZGM5MDE1NjFmMTU4ODkzNWFjNmM1
ZDQ4ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTMzNSw5ICszMzUsOSBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxMb2FkZXJEZWxlZ2F0ZVF1ZXVlKCkKIH0KICNlbmRpZgogCi1Q
YXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRihwbGF5ZXIp
KTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuaAppbmRleCBiMWNkY2QwMGQ5ZjAyYTBjY2E0YWM4YjEzOTVkOWU5YTZmMGZmYjg3
Li4yN2UwMDMzNTI3NGI1ZmUzOWExOTdhMmYyYjg2MzE0MDcyNWYzN2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
aApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOwogCiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIC8vIEVuZ2luZSBzdXBwb3J0Cisg
ICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIq
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRigpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBvdmVycmlkZTsKQEAgLTU4LDEwICs2MCw4
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRihNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAotICAgIC8vIEVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCAwMDA2YzA0ZTZiNjExMjcyMWNmMDAyYjhhNWUzYmRjZDQwYTI3ZmEyLi5iZWU1NDc0Yzg2
YTJmZDM4NTFhMDVjZjFkYmJlZjk1MDU1MWMzZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMiwxMCArMTMzLDggQEAg
cHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBj
cmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDhh
NGQ1MmUyMWE3MDI4MTQ1OTQ2ZmE1NWZiYzdjMzQ1NWU5Y2JjMmEuLmIzNzI0OGE2MTI5MjVkMTI3
NjlmZGIwMTk1MDk4OTVjZTcyZGM1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzg3
LDkgKzM4Nyw5IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1
ZXVlKCkKIH0KICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0
ZShNZWRpYVBsYXllciogcGxheWVyKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM+KHBsYXllcik7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4
IGU2MDE3NmRiNWZlZDg2ZGEwMGQzNzhlMGY5MDFmNjI1ZjE2OGM5ZTUuLjhhNmU4ZDBkYzEyZThk
ZTdmMzVhOTI0YWIwNjExNDVlN2IyMWEyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBA
IC01MCwxMyArNTAsMTIgQEAgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIDogcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCBy
ZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogICAgIC8vIE1lZGlh
UGxheWVyIEZhY3RvcnkgTWV0aG9kcwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIGJvb2wg
aXNBdmFpbGFibGUoKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpAQCAtOTMs
NiArOTIsOCBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNy
ZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKKwogICAg
IC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZjhiYTIzMzRkZGNhODNhY2YzZTY2YTVkMmE1ZDBlOTcy
M2M5ZDQyYi4uM2M4NmVmMWYxODdkNmM2MjZkYmUzNTY0MWE0MjM0ZWFhMjAyYWVhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0CiAgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRl
KE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIp
OwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aXNBdmFp
bGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA5NDNhMmU3ODYzM2EzMjM1MDM3OWU0YWIzZTNhOGRlZDJkN2MzOTMzLi5lNDkwYmQ3
NjI0MGZjZDE0ZTRhNDZmNzZkNjgyMWNjMDVhZWQzZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTQyLDkgKzE0Miw5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09i
amVjdCogb2JqZWN0KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAl
cyBhdCAlcyIsIHJvbGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRpYVBs
YXllciogcGxheWVyKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKHBsYXllcikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIg
cmVnaXN0cmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CmluZGV4IDM5MWY4ZWE2MzJlYzJmYzNhZjUxMjc1MjEyODlkYTgwNGQzYjE0ZDUuLmNlNmRhZGQ4
ZDE5MTRjMzY3M2YxMzBkY2Y3YWQyYzA5M2VlMmFiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTYyLDcgKzYyLDkgQEAgY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVHU3RyZWFtZXI7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIHsKIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKICAg
ICB+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCk7CisKICAgICBzdGF0aWMgdm9pZCByZWdp
c3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKICAgICBnYm9vbGVhbiBoYW5k
bGVNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZVBsdWdpbkluc3RhbGxlclJl
c3VsdChHc3RJbnN0YWxsUGx1Z2luc1JldHVybik7CkBAIC0xMzYsOSArMTM4LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1l
ZGlhUGxheWVyKik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYpOwogICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmlu
ZGV4IGU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYuLjMxN2QzZjVkYjM0
YTkwNDRkNzY2NGNmYWE5NzFmYzQwMTcyMmI1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQ
bGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFy
KTsKIApAQCAtNjMsMTAgKzY0LDkgQEAgcHVibGljOgogICAgIHZvaWQgbGF5ZXJIb3N0Q2hhbmdl
ZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogCiAgICAg
Ly8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1
cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA2YjJiYTQ4
ODBiMzk2YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5Li5kN2U4OGYxNzNhYjRmMGQ5NjVlNWZk
MjNmMDBlNmQ0NDlkMGYxYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0x
NjgsOSArMTY4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVl
X3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBNZWRpYVBsYXllclByaXZhdGVRVEtpdChwbGF5ZXIpKTsKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVRVEtpdD4ocGxheWVyKTsKIH0KIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lz
dHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwCmluZGV4IGNlOGUzM2VlZjE5Yjc0YmI5OThlMjc4MTEwZDllNzA5NGY5MDQ1YWQu
LmZjN2NlOWNlMjk5M2NkYzljYzgyYjgyMzhkMzkwYmI0OWUyZTgxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC02NSw5ICs2NSw5IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbigpCiAgICAgZW5kU2Vzc2lvbigpOwogfQogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6Y3Jl
YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24ocGxheWVyKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uPihwbGF5ZXIpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKaW5kZXggZWVkODk4MWE3M2ZhZDJiOTk0MWY2
YWY5ZDMwYmY5ZmMwOWEzMmFlZi4uYTQ5NjQ5ZDAzMGMwY2EzYmVhMzQ0NjFmNjMyNzBlODk5YWMz
NGMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApA
QCAtMzUsMTEgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1l
ZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uKE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bigpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CkBAIC05MSw2ICs5MCw4IEBAIHBy
aXZhdGU6CiAgICAgQ09NUHRyPElNRlByZXNlbnRhdGlvbkRlc2NyaXB0b3I+IG1fc291cmNlUEQ7
CiAgICAgQ09NUHRyPElNRlZpZGVvRGlzcGxheUNvbnRyb2w+IG1fdmlkZW9EaXNwbGF5OwogCisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZShNZWRpYVBsYXllciopOworCiAgICAgYm9vbCBjcmVhdGVTZXNzaW9uKCk7CiAgICAgYm9v
bCBlbmRTZXNzaW9uKCk7CiAgICAgYm9vbCBzdGFydENyZWF0ZU1lZGlhU291cmNlKGNvbnN0IFN0
cmluZyYgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAK
aW5kZXggZGIxOTg5ODlhNWI5MGQ2NjI2ZjgwNWJhZDhkY2MxODBlN2RjY2EwMi4uMmNiZGNkMjZl
NGU3ODg4YzQ3OTc5ZDU5MWI2NTI0YjA1MDIwZWZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVk
aWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgdm9pZCBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3QKICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllcikKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlKHBsYXll
cikpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlPihwbGF5ZXIpOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGY5M2M4Yzhh
NWM0NDRiOGZhMTgyMjM4ZTUyNWIwMjBmOTJmYTdmMTYuLjMwNjJkMzc0OTBiNzcyMmE4MWEzMzcy
MzRhMDAxZjMwNzkxNGUxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmgKQEAgLTM4LDkgKzM4LDEwIEBAIGNsYXNzIE1vY2tNZWRpYVNvdXJjZVByaXZhdGU7CiAK
IGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTW9ja01lZGlhUGxheWVyTWVk
aWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKwogICAgIC8vIE1lZGlhUGxheWVyIEVuZ2luZSBTdXBw
b3J0CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShN
ZWRpYUVuZ2luZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBn
ZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycyYpOwogCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
ZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJj
ZShNZWRpYVBsYXllciopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKIAogICAgIC8vIE1lZGlhUGxh
eWVyUHJpdmF0ZSBPdmVycmlkZXMKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246736</attachid>
            <date>2015-02-17 01:13:12 -0800</date>
            <delta_ts>2015-02-20 01:20:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137765-20150217181307.patch</filename>
            <type>text/plain</type>
            <size>28120</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRiZmFiNjQ4ODFlMDE4
ZGVhMDM3MTdmYTYyNDhlOTI2ZTZhZjkyNC4uMGVkMTQzMmU5ZDRmYjc3YzI2Nzc0MjUwYWVlYzA1
MWE1Y2E2MjAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE1LTAyLTE3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzIGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyfHN0ZDo6bWFrZV91bmlxdWU8PiwgdGhp
cyBwYXRjaCBjaGFuZ2VzIHVzZSBvZiBPd25QdHJ8UGFzc093blB0cgorICAgICAgICB3aXRoIHN0
ZDo6dW5pcXVlX3B0cjw+fHN0ZDo6bWFrZV91bmlxdWU8Pi4gVG8gcmVtb3ZlIGFsbCBjcmVhdGUo
KSBmYWN0b3J5IGZ1bmN0aW9uLCBsYW1iZGFzIGlzCisgICAgICAgIHVzZWQgaW4gcmVnaXN0ZXJN
ZWRpYUVuZ2luZSgpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdl
cy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVs
bE1lZGlhUGxheWVyUHJpdmF0ZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZU51bGxNZWRpYVBsYXllcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0Y6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZWdpc3Rlck1l
ZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpyZWdpc3Rlck1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpyZWdpc3Rlck1lZGlhRW5n
aW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlv
bjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBs
YXllck1lZGlhU291cmNlLmg6CisKIDIwMTUtMDItMTYgIE1pbGFuIENyaGEgIDxtY3JoYUByZWRo
YXQuY29tPgogCiAgICAgICAgIFtHVEtdIExvYWRpbmcgcGFnZSBpbnRvIFdlYlZpZXcgc2hvd3Mg
Z19jbG9zdXJlX3VucmVmIHdhcm5pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTYyODE3ZGM1
N2Y4OGUxODcwMTQ3Nzk5ZDc1NDVjYjdkMGQwNjIxMC4uNzAxYjBjZTAwNDk1YmM1NGVlMDVjZWM5
NDhmNmMzMjE5MTQwNjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0MzgsNyArMzQzOCw3
IEBAIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIyY2xlYXJNZWRpYUNhY2hlRm9yU2l0
ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDRwbGF5RXYK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVwYXVzZUV2CiBfX1pON1dlYkNvcmUxNkhU
TUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgotX19aTjdXZWJDb3JlMjVNZWRpYVBsYXllckZhY3Rv
cnlTdXBwb3J0MjNjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZUVQRnZQRnZQRk4zV1RGMTBQYXNzT3du
UHRySU5TXzI3TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlRUVFUE5TXzExTWVkaWFQbGF5ZXJF
RVBGdlJOUzFfN0hhc2hTZXRJTlMxXzZTdHJpbmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNo
VHJhaXRzSVNBX0VFRUVFUEZOUzVfMTJTdXBwb3J0c1R5cGVFUktOU18yOE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnNFRVBGdlJOUzFfNlZlY3RvcklTQV9MbTBFTlMxXzE1Q3Jhc2hPbk92ZXJm
bG93RUVFRVBGdnZFUEZ2UktTQV9FUEZiU1hfU1hfRUVFCitfX1pON1dlYkNvcmUyNU1lZGlhUGxh
eWVyRmFjdG9yeVN1cHBvcnQyM2NhbGxSZWdpc3Rlck1lZGlhRW5naW5lRVBGdlBGdlBGTlN0M19f
MTEwdW5pcXVlX3B0cklOU18yN01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZUVOUzFfMTRkZWZh
dWx0X2RlbGV0ZUlTM19FRUVFUE5TXzExTWVkaWFQbGF5ZXJFRVBGdlJOM1dURjdIYXNoU2V0SU5T
Ql82U3RyaW5nRU5TQl8xMFN0cmluZ0hhc2hFTlNCXzEwSGFzaFRyYWl0c0lTRF9FRUVFRVBGTlM3
XzEyU3VwcG9ydHNUeXBlRVJLTlNfMjhNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzRUVQRnZS
TlNCXzZWZWN0b3JJU0RfTG0wRU5TQl8xNUNyYXNoT25PdmVyZmxvd0VFRUVQRnZ2RVBGdlJLU0Rf
RVBGYlMxMF9TMTBfRUVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18x
N0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCiBfX1pOSzdXZWJDb3JlMTBUaW1l
UmFuZ2VzN25lYXJlc3RFZAogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDExY3VycmVu
dFRpbWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZjdl
YjhmZGIxNTE5MmNhOWI0MTc0N2U4MjU2YjNhODAwMTE2MDgzNy4uOWRhYjE3ZTYxNjZhMmQxYTg1
MmI4OGEzYTExZmU4ZWI1ZWIwOTYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC00NjkyLDcgKzQ2OTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFz
UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRp
ZgogCi0gICAgbV9wbGF5ZXIuY2xlYXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAg
ICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NzM5
LDcgKzQ3MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2Ug
YW4gYWN0aXZlIERPTSBvYmplY3QgaGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3Rh
cnRlZCwgc28gd2UgY2FuIGRlYWxsb2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4g
Tm90ZSB0aGF0IHVzZXJDYW5jZWxsZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhl
IHBsYXllcgogICAgIC8vIGlmIHRoZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBo
YW5kbGVzIGFsbCBvdGhlciBjYXNlcy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxh
eWVyID0gbnVsbHB0cjsKIAogICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01NDA2
LDcgKzU0MDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkK
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNr
cygpOwogI2VuZGlmCi0gICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsK
KyAgICBtX3BsYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0
PE1lZGlhUGxheWVyQ2xpZW50Jj4oKnRoaXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAg
ICAgaWYgKG1fYXVkaW9Tb3VyY2VOb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCmluZGV4IDRhYjQ3NjA1MDRmOGY5OWNkM2FhNWU0ZjAxZTY5YWRiNDJiOTg0OTIuLjFm
ZWE0MmUxZWQ4ZmJlNmU5Y2ZmMzc4YzE3MmIyNGU0MzgzZjAxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC04MDUsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRp
ZgogCi0gICAgT3duUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9w
cmVsb2FkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKaW5kZXggNzJmNGY1YTJlNDY1YzNmMDhkYWZlMmMwYTZkZjM3YWVmOTE5MmQ5Yy4u
NDhhZmZjMmVhZGUyZGUyN2U4Y2M0ODI3NWQxZTQ5OTQzYzU3Y2M5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzksNyArNzks
NyBAQCBjb25zdCBQbGF0Zm9ybU1lZGlhIE5vUGxhdGZvcm1NZWRpYSA9IHsgUGxhdGZvcm1NZWRp
YTo6Tm9uZSwgezB9IH07CiAKIGNsYXNzIE51bGxNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMg
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlKE1lZGlhUGxheWVyKikgeyB9CisgICAgZXhwbGljaXQgTnVsbE1lZGlhUGxheWVy
UHJpdmF0ZShNZWRpYVBsYXllciopIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3Qg
U3RyaW5nJikgeyB9CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE0NSwxMiArMTQ1LDYg
QEAgcHVibGljOgogI2VuZGlmCiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IGNyZWF0ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVy
KSAKLXsgCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBs
YXllcikpOyAKLX0KLQotCiAvLyBlbmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJG
YWN0b3J5IHsKQEAgLTI4Nyw3ICsyODEsNyBAQCBzdGF0aWMgY29uc3QgTWVkaWFQbGF5ZXJGYWN0
b3J5KiBuZXh0TWVkaWFFbmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZQogTWVk
aWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6
OnJlbG9hZFRpbWVyRmlyZWQpCi0gICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVy
KHRoaXMpKQorICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVy
UHJpdmF0ZT4odGhpcykpCiAgICAgLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgwKQogICAgICwgbV9w
cmVsb2FkKEF1dG8pCiAgICAgLCBtX3Zpc2libGUoZmFsc2UpCkBAIC00MDQsNyArMzk4LDcgQEAg
dm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoY29uc3QgTWVkaWFQbGF5
ZXJGYWN0b3J5KiBjdXJyZW50KQogI2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3Vy
bC5zdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVs
bE1lZGlhUGxheWVyKHRoaXMpOworICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2VfdW5pcXVl
PE51bGxNZWRpYVBsYXllclByaXZhdGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBs
YXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVz
b3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNjliM2NmOTM0YzUzZTNhNTk0MzYxMzFh
M2ZhYzJkMWE3MDUzYzQ5Zi4uYTY1NmQ1NzNmOWNiNmU1ZGNjNmE5ZDVlNjk1YTZiZTBjNWU1NjY0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CkBAIC0yODAsMTEgKzI4MCw3IEBAIHB1YmxpYzoKIGNsYXNzIE1lZGlhUGxheWVyIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShNZWRpYVBsYXllcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXI+IGNyZWF0ZShN
ZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBNZWRpYVBsYXllcihjbGllbnQpKTsKLSAgICB9CisgICAgZXhwbGljaXQgTWVkaWFQbGF5
ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllcigpOwogCiAg
ICAgLy8gTWVkaWEgZW5naW5lIHN1cHBvcnQuCkBAIC01ODUsNyArNTgxLDYgQEAgcHVibGljOgog
ICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIGNvbnN0IE1lZGlh
UGxheWVyRmFjdG9yeSogbmV4dEJlc3RNZWRpYUVuZ2luZShjb25zdCBNZWRpYVBsYXllckZhY3Rv
cnkqKSBjb25zdDsKICAgICB2b2lkIGxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKGNvbnN0IE1lZGlh
UGxheWVyRmFjdG9yeSopOwogICAgIHZvaWQgcmVsb2FkVGltZXJGaXJlZCgpOwpAQCAtNTk0LDcg
KzU4OSw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllckNsaWVudCYgbV9jbGllbnQ7CiAg
ICAgVGltZXIgbV9yZWxvYWRUaW1lcjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZT4gbV9wcml2YXRlOwogICAgIGNvbnN0IE1lZGlhUGxheWVyRmFjdG9yeSogbV9j
dXJyZW50TWVkaWFFbmdpbmU7CiAgICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRN
SU1FVHlwZTsKQEAgLTYxNSw3ICs2MTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBl
ZGVmIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlh
RW5naW5lUGxheWVyKShNZWRpYVBsYXllciopOwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IChNZWRpYVBsYXllciopPiBD
cmVhdGVNZWRpYUVuZ2luZVBsYXllcjsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lU3VwcG9y
dGVkVHlwZXMpKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlICgqTWVkaWFFbmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSkoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXgg
YzA2YWNiNDczZTVmY2RhMGMzNWQ3YTU1MzA5M2RlMjMxYjQ5YjFlYS4uZTBiNTNkMTZjMWRlMTJm
ZDYzOTJjY2FiNTBlZTlhY2FiM2M1N2MxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA3YjU1ODQ2NWJmM2NiMTFiMmMyYzJiNWRkOTdm
ODUxNjMxZjNkMTNjLi5hNjk4MDc4OTVjY2U0OWJlYWY5MjU1Y2RmMmExMTRmNDE0OWJhMzIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCkBAIC00Niw3ICs0Niw2IEBAIGNsYXNzIEdlbmVyaWNDdWVEYXRhOwogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZSwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50CiB7CiBwdWJsaWM6Ci0KICAgICB2aXJ0
dWFsIHZvaWQgcmVwYWludCgpOwogICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUxvYWRlZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YWJpbGl0eUtub3duKCk7CkBAIC0xNDQsNyArMTQzLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24oKTsKIAogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IGEzNGYwZDQ2N2RkOGQ1ZGRkNDNjNDJk
M2UyYmI4NzgzMDUwMDFmYTMuLjliMmYzOGQ4ODU1MDg5NzBkNDY4ODljY2JjZjI3NDM1M2ExNzBj
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtMzM1LDE1ICszMzUsMTEgQEAgc3RhdGljIGRpc3Bh
dGNoX3F1ZXVlX3QgZ2xvYmFsTG9hZGVyRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFz
c093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7
Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVk
aWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2
YWlsYWJsZSgpKQotICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lz
dHJhcihbXShNZWRpYVBsYXllciogcGxheWVyKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGPihwbGF5ZXIpOyB9LAorICAgICAgICAgICAg
Z2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0
ZW0pOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5k
ZXggYjFjZGNkMDBkOWYwMmEwY2NhNGFjOGIxMzk1ZDllOWE2ZjBmZmI4Ny4uZGVhNTkzMzVmMWI0
N2E0Mzk3ZjIzYjkwZTVlMzAzY2ZlYTA4ZTBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQxLDYgKzQx
LDggQEAgY2xhc3MgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uIHsKIHB1YmxpYzoKKyAgICAvLyBFbmdpbmUgc3VwcG9ydAorICAgIGV4cGxpY2l0IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCB0cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CkBAIC01OCwxMCArNjAsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7
CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQ
bGF5ZXIqKTsKLQotICAgIC8vIEVuZ2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBz
dGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAwMDA2YzA0ZTZiNjExMjcyMWNmMDAyYjhhNWUzYmRj
ZDQwYTI3ZmEyLi40NTNkZjhlMTkzMDRhZmExOGVjNDAzYTQxMjBkOGJkNmY0MDY1NjBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQzsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4
cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsK
ICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAg
ICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsK
QEAgLTEzMiwxMCArMTMzLDcgQEAgcHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZh
Y3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBv
cnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNy
ZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhh
c2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0s
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOGE0
ZDUyZTIxYTcwMjgxNDU5NDZmYTU1ZmJjN2MzNDU1ZTljYmMyYS4uYjJhZTUwMDdjOGM5YzhkMDEx
ZGMyZWM1OGQ5ZjU5ODI5MzExYmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0zODcs
MTUgKzM4NywxMSBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVR
dWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZShNZWRpYVBsYXll
ciogcGxheWVyKQoteyAKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJh
cihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBv
cnRzS2V5U3lzdGVtKTsKKyAgICAgICAgcmVnaXN0cmFyKFtdKE1lZGlhUGxheWVyKiBwbGF5ZXIp
IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQz4ocGxheWVyKTsgfSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0
c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBlNjAxNzZk
YjVmZWQ4NmRhMDBkMzc4ZTBmOTAxZjYyNWYxNjhjOWU1Li44NmRmZDA1ZjI1Y2RhNTc4M2NiZjBj
ZTA2Y2FmZTlhNDg3ZTBhODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTAsMTMg
KzUwLDEyIEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogcHVibGljOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQyhNZWRpYVBsYXllciopOworICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQyhNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
ZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKICAgICAvLyBNZWRpYVBsYXllciBG
YWN0b3J5IE1ldGhvZHMKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxh
YmxlKCk7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+
JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCBmOGJhMjMzNGRkY2E4M2FjZjNlNjZhNWQyYTVkMGU5NzIzYzlkNDJi
Li42NDcyMzE5Yjg1ZDBmMTNlYzQ4YzViMDcwZDc0MjI1ZmRkNzRhZTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0yMDQsMTIgKzIwNCw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygp
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRp
YUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZh
aWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBz
dXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVh
dGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhwbGF5ZXIpKTsKKyAgICAgICAgcmVnaXN0
cmFyKFtdKE1lZGlhUGxheWVyKiBwbGF5ZXIpIHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPihwbGF5ZXIpOyB9LCBnZXRTdXBwb3J0
ZWRUeXBlcywKKyAgICAgICAgICAgIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0F2YWlsYWJsZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDk0
M2EyZTc4NjMzYTMyMzUwMzc5ZTRhYjNlM2E4ZGVkMmQ3YzM5MzMuLmEzY2YxMDdiOTc3YzdjYzA4
NjMwODUxYjA3MjI0NWQ1ZTcyNDhiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNDIsMTUgKzE0MiwxMSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9i
amVjdCkKICAgICBMT0dfTUVESUFfTUVTU0FHRSgiU2V0IG1lZGlhLnJvbGUgYXMgJXMgYXQgJXMi
LCByb2xlLCBlbGVtZW50TmFtZS5nZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3Ry
YXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUs
IGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICBy
ZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+KHBsYXllcik7IH0sCisgICAgICAgICAgICBn
ZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBp
bml0aWFsaXplR1N0cmVhbWVyQW5kUmVnaXN0ZXJXZWJLaXRFbGVtZW50cygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMzkxZjhlYTYzMmVjMmZj
M2FmNTEyNzUyMTI4OWRhODA0ZDNiMTRkNS4uNjI0NzQ2NzEwNzViMDgwNDM4ZjVkNjhmM2M3NDlh
Y2VmMTJhZGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaApAQCAtNjIsNyArNjIsOSBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjsK
IAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwogICAgIH5NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIoKTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFF
bmdpbmVSZWdpc3RyYXIpOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSop
OwogICAgIHZvaWQgaGFuZGxlUGx1Z2luSW5zdGFsbGVyUmVzdWx0KEdzdEluc3RhbGxQbHVnaW5z
UmV0dXJuKTsKQEAgLTEzNiwxMCArMTM4LDYgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6
Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7Ci0KLSAgICBz
dGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRp
YVBsYXllciopOwotCiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxT
dHJpbmc+Jik7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNU
eXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQuaAppbmRleCBlNzY3MDQ1MGRjODc1NWIxYmY2Njc4NzQyNmZkYjk0NzgxMWMz
MWJmLi44ZmNhODdmYjEwNWI3MGFhOTVmNWM1MmRkYmJiYWFiNzRmMWVjMTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVRVEtpdCA6IHB1YmxpYyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRp
YUVuZ2luZVJlZ2lzdHJhcik7CiAKQEAgLTYzLDEwICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGxheWVySG9zdENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVyKTsKIAogcHJpdmF0ZToK
LSAgICBNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5n
aW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRl
cmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA2YjJiYTQ4ODBiMzk2
YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5Li5lODgxMjcxZjg2NWNmMjM0NDUyOTFkNmVmYWEy
OTRiYjI5OWY0YzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNjgsMTUg
KzE2OCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQoteyAKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KHBsYXllcikpOwotfQotCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5l
UmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAg
cmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0
ZXNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwg
MCk7CisgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxheWVyKSB7IHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0PihwbGF5ZXIpOyB9LCBnZXRT
dXBwb3J0ZWRUeXBlcywKKyAgICAgICAgICAgIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlh
Q2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CiB9CiAK
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBs
YXllciogcGxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uLmNwcAppbmRleCBjZThlMzNlZWYxOWI3NGJiOTk4ZTI3ODExMGQ5ZTcwOTRmOTA0NWFkLi4z
MTJkZTU1OGZiN2YxY2M4MmJjN2U1NjVjMjQ3YmZhMTM0ZDA1Njk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcApAQCAtNjUsMTUgKzY1LDExIEBA
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbigpCiAgICAgZW5kU2Vzc2lvbigpOwogfQogCi1QYXNzT3duUHRyPE1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9u
OjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihwbGF5ZXIpKTsKLX0KLQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVk
aWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQot
ICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBl
LCAwLCAwLCAwLCAwKTsKKyAgICAgICAgcmVnaXN0cmFyKFtdKE1lZGlhUGxheWVyKiBwbGF5ZXIp
IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uPihwbGF5ZXIpOyB9LAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRz
VHlwZSwgMCwgMCwgMCwgMCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjppc0F2YWlsYWJsZSgpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5oCmluZGV4IGVlZDg5ODFhNzNmYWQyYjk5NDFmNmFmOWQzMGJmOWZjMDlhMzJh
ZWYuLmFmMGY2MjNhMmMwMGM3Y2Y4NTg3MDBmMjQyMDYzYzk4ODllYjRhODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYUZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmgKQEAgLTM1LDExICszNSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbiA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgot
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllciopOworICAg
IGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbihNZWRpYVBsYXllciop
OwogICAgIH5NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24oKTsKICAgICBzdGF0aWMg
dm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlh
UGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291
cmNlLmNwcAppbmRleCBkYjE5ODk4OWE1YjkwZDY2MjZmODA1YmFkOGRjYzE4MGU3ZGNjYTAyLi5i
YTJiZmRkYmJkZTZjOGRkZjJmNjgwZDU1ODg1NTM3MjljYjQxNjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcApAQCAtNDAsMTIgKzQwLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLy8gTWVkaWFQbGF5ZXIgRW5pZ25lIFN1cHBvcnQKIHZvaWQgTW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5
cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwotfQotCi1QYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja01lZGlh
UGxheWVyTWVkaWFTb3VyY2UocGxheWVyKSk7CisgICAgcmVnaXN0cmFyKFtdKE1lZGlhUGxheWVy
KiBwbGF5ZXIpIHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TW9ja01lZGlhUGxheWVyTWVkaWFT
b3VyY2U+KHBsYXllcik7IH0sIGdldFN1cHBvcnRlZFR5cGVzLAorICAgICAgICBzdXBwb3J0c1R5
cGUsIDAsIDAsIDAsIDApOwogfQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2Fj
aGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCmluZGV4IGY5M2M4
YzhhNWM0NDRiOGZhMTgyMjM4ZTUyNWIwMjBmOTJmYTdmMTYuLmNkZTY1NjY3ZDU0ZTAyMDVhOGJh
MWY2N2FiNDU3MzAzYzdmYzA5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmgKQEAgLTM4LDkgKzM4LDEwIEBAIGNsYXNzIE1vY2tNZWRpYVNvdXJjZVByaXZhdGU7
CiAKIGNsYXNzIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlIDogcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTW9ja01lZGlhUGxheWVy
TWVkaWFTb3VyY2UoTWVkaWFQbGF5ZXIqKTsKKwogICAgIC8vIE1lZGlhUGxheWVyIEVuZ2luZSBT
dXBwb3J0CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9p
ZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVT
dXBwb3J0UGFyYW1ldGVycyYpOwogCkBAIC01Niw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlZWtDb21wbGV0ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNv
dXJjZShNZWRpYVBsYXllciopOwotCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRl
cwogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50Kikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246944</attachid>
            <date>2015-02-20 01:20:24 -0800</date>
            <delta_ts>2015-02-20 02:10:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-137765-20150220182017.patch</filename>
            <type>text/plain</type>
            <size>26748</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2N2NkY2RmOGIyYzk2
NDMyYzliMzMzYTQ0MWZjMjk2NmVmYWYxZi4uODgwMmVmOTlkYWMyZjI0Y2Q3ZTQ5YTIzN2U5ZTcy
NTNjODRiZGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE1LTAyLTIwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6
dW5pcXVlX3B0ciBpbnN0ZWFkIG9mIFBhc3NPd25QdHJ8T3duUHRyIGluIE1lZGlhUGxheWVyRm9v
IGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc2NQorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBB
cyBhIHN0ZXAgdG8gdXNlIHN0ZDo6dW5pcXVlX3B0cnxzdGQ6Om1ha2VfdW5pcXVlPD4sIHRoaXMg
cGF0Y2ggY2hhbmdlcyB1c2Ugb2YgT3duUHRyfFBhc3NPd25QdHIKKyAgICAgICAgd2l0aCBzdGQ6
OnVuaXF1ZV9wdHI8PnxzdGQ6Om1ha2VfdW5pcXVlPD4uIFRvIHJlbW92ZSBhbGwgY3JlYXRlKCkg
ZmFjdG9yeSBmdW5jdGlvbiwgbGFtYmRhcyBpcworICAgICAgICB1c2VkIGluIHJlZ2lzdGVyTWVk
aWFFbmdpbmUoKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMu
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bGxN
ZWRpYVBsYXllclByaXZhdGU6Ok51bGxNZWRpYVBsYXllclByaXZhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVOdWxsTWVkaWFQbGF5ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3JlYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlh
RW5naW5lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVnaXN0ZXJNZWRp
YUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0
ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
cmVnaXN0ZXJNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2lu
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246
OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OmNyZWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZS5oOgorCiAyMDE1LTAyLTE5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFNPRlRfTElOS19GVU5DVElPTl97REVDTCxJTVBM
fSgpIHRvIFNPRlRfTElOS19GVU5DVElPTl97SEVBREVSLFNPVVJDRX0oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZjdlYjhmZGIxNTE5MmNhOWI0MTc0N2U4
MjU2YjNhODAwMTE2MDgzNy4uOWRhYjE3ZTYxNjZhMmQxYTg1MmI4OGEzYTExZmU4ZWI1ZWIwOTYz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NjkyLDcg
KzQ2OTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZs
YWdzKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlMaXN0ZW5lcnMoKnRoaXMsIGZhbHNlKTsKICNlbmRpZgogCi0gICAgbV9wbGF5ZXIuY2xl
YXIoKTsKKyAgICBtX3BsYXllciA9IG51bGxwdHI7CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMo
KTsKICAgICBtX2xvYWRUaW1lci5zdG9wKCk7CkBAIC00NzM5LDcgKzQ3MzksNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnN0b3AoKQogICAgIC8vIE9uY2UgYW4gYWN0aXZlIERPTSBvYmplY3Qg
aGFzIGJlZW4gc3RvcHBlZCBpdCBjYW4gbm90IGJlIHJlc3RhcnRlZCwgc28gd2UgY2FuIGRlYWxs
b2NhdGUKICAgICAvLyB0aGUgbWVkaWEgcGxheWVyIG5vdy4gTm90ZSB0aGF0IHVzZXJDYW5jZWxs
ZWRMb2FkIHdpbGwgYWxyZWFkeSBoYXZlIGNsZWFyZWQgdGhlIHBsYXllcgogICAgIC8vIGlmIHRo
ZSBtZWRpYSB3YXMgbm90IGZ1bGx5IGxvYWRlZC4gVGhpcyBoYW5kbGVzIGFsbCBvdGhlciBjYXNl
cy4KLSAgICBtX3BsYXllci5jbGVhcigpOworICAgIG1fcGxheWVyID0gbnVsbHB0cjsKIAogICAg
IHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CiB9CkBAIC01NDA2LDcgKzU0MDYsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhUGxheWVyKCkKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgZm9yZ2V0UmVzb3VyY2VTcGVjaWZpY1RyYWNrcygpOwogI2VuZGlmCi0gICAgbV9w
bGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBtX3BsYXllciA9IHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXI+KHN0YXRpY19jYXN0PE1lZGlhUGxheWVyQ2xpZW50Jj4o
KnRoaXMpKTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VO
b2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDRhYjQ3NjA1
MDRmOGY5OWNkM2FhNWU0ZjAxZTY5YWRiNDJiOTg0OTIuLjFmZWE0MmUxZWQ4ZmJlNmU5Y2ZmMzc4
YzE3MmIyNGU0MzgzZjAxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CkBAIC04MDUsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6VmlkZW9HcmF2
aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCi0gICAgT3duUHRyPE1lZGlh
UGxheWVyPiBtX3BsYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXI+IG1fcGxh
eWVyOwogCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNzJmNGY1
YTJlNDY1YzNmMDhkYWZlMmMwYTZkZjM3YWVmOTE5MmQ5Yy4uNDhhZmZjMmVhZGUyZGUyN2U4Y2M0
ODI3NWQxZTQ5OTQzYzU3Y2M5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNzksNyArNzksNyBAQCBjb25zdCBQbGF0Zm9ybU1l
ZGlhIE5vUGxhdGZvcm1NZWRpYSA9IHsgUGxhdGZvcm1NZWRpYTo6Tm9uZSwgezB9IH07CiAKIGNs
YXNzIE51bGxNZWRpYVBsYXllclByaXZhdGUgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVy
KikgeyB9CisgICAgZXhwbGljaXQgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciop
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKQEAgLTE0NSwxMiArMTQ1LDYgQEAgcHVibGljOgogI2VuZGlmCiB9
OwogCi1zdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0
ZU51bGxNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyKSAKLXsgCi0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlKHBsYXllcikpOyAKLX0KLQotCiAvLyBl
bmdpbmUgc3VwcG9ydAogCiBzdHJ1Y3QgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKQEAgLTI4Nyw3ICsy
ODEsNyBAQCBzdGF0aWMgY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUo
Y29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZQogTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVy
KE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAg
LCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpCi0g
ICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpKQorICAgICwgbV9wcml2
YXRlKHN0ZDo6bWFrZV91bmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCiAgICAg
LCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgwKQogICAgICwgbV9wcmVsb2FkKEF1dG8pCiAgICAgLCBt
X3Zpc2libGUoZmFsc2UpCkBAIC00MDQsNyArMzk4LDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9h
ZFdpdGhOZXh0TWVkaWFFbmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQog
I2VuZGlmCiAgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybC5zdHJpbmcoKSk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpOwor
ICAgICAgICBtX3ByaXZhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZh
dGU+KHRoaXMpOwogICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhp
cyk7CiAgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhp
cyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggNjliM2NmOTM0YzUzZTNhNTk0MzYxMzFhM2ZhYzJkMWE3MDUzYzQ5Zi4uYTY1
NmQ1NzNmOWNiNmU1ZGNjNmE5ZDVlNjk1YTZiZTBjNWU1NjY0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yODAsMTEgKzI4MCw3IEBA
IHB1YmxpYzoKIGNsYXNzIE1lZGlhUGxheWVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShN
ZWRpYVBsYXllcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotCi0gICAgc3Rh
dGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXI+IGNyZWF0ZShNZWRpYVBsYXllckNsaWVudCYgY2xp
ZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllcihjbGll
bnQpKTsKLSAgICB9CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQm
KTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllcigpOwogCiAgICAgLy8gTWVkaWEgZW5naW5lIHN1
cHBvcnQuCkBAIC01ODUsNyArNTgxLDYgQEAgcHVibGljOgogICAgIFN0cmluZyBzb3VyY2VBcHBs
aWNhdGlvbklkZW50aWZpZXIoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllcihN
ZWRpYVBsYXllckNsaWVudCYpOwogICAgIGNvbnN0IE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dEJl
c3RNZWRpYUVuZ2luZShjb25zdCBNZWRpYVBsYXllckZhY3RvcnkqKSBjb25zdDsKICAgICB2b2lk
IGxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKGNvbnN0IE1lZGlhUGxheWVyRmFjdG9yeSopOwogICAg
IHZvaWQgcmVsb2FkVGltZXJGaXJlZCgpOwpAQCAtNTk0LDcgKzU4OSw3IEBAIHByaXZhdGU6CiAK
ICAgICBNZWRpYVBsYXllckNsaWVudCYgbV9jbGllbnQ7CiAgICAgVGltZXIgbV9yZWxvYWRUaW1l
cjsKLSAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBtX3ByaXZhdGU7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRl
OwogICAgIGNvbnN0IE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVkaWFFbmdpbmU7CiAg
ICAgVVJMIG1fdXJsOwogICAgIFN0cmluZyBtX2NvbnRlbnRNSU1FVHlwZTsKQEAgLTYxNSw3ICs2
MTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi10eXBlZGVmIFBhc3NPd25QdHI8TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlPiAoKkNyZWF0ZU1lZGlhRW5naW5lUGxheWVyKShNZWRpYVBs
YXllciopOwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IChNZWRpYVBsYXllciopPiBDcmVhdGVNZWRpYUVuZ2luZVBsYXll
cjsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3Ry
aW5nPiYgdHlwZXMpOwogdHlwZWRlZiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlICgqTWVkaWFF
bmdpbmVTdXBwb3J0c1R5cGUpKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpOwogdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVHZXRTaXRlc0luTWVkaWFDYWNo
ZSkoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggYzA2YWNiNDczZTVmY2RhMGMzNWQ3
YTU1MzA5M2RlMjMxYjQ5YjFlYS4uZTBiNTNkMTZjMWRlMTJmZDYzOTJjY2FiNTBlZTlhY2FiM2M1
N2MxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJNZWRpYVBsYXll
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAppbmRleCA3YjU1ODQ2NWJmM2NiMTFiMmMyYzJiNWRkOTdmODUxNjMxZjNkMTNjLi5hNjk4MDc4
OTVjY2U0OWJlYWY5MjU1Y2RmMmExMTRmNDE0OWJhMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC00Niw3ICs0Niw2IEBA
IGNsYXNzIEdlbmVyaWNDdWVEYXRhOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEFWRkluYmFu
ZFRyYWNrUGFyZW50CiB7CiBwdWJsaWM6Ci0KICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBtZXRhZGF0YUxvYWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5
YWJpbGl0eUtub3duKCk7CkBAIC0xNDQsNyArMTQzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
b3RlY3RlZDoKLSAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIq
KTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5
ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKTsKIAog
ICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCmluZGV4IDM2OThiNGUwOTUzYTIwNjdkZTRkOWE5ZTlmYzNkYTczNWM4NmE2NjcuLjky
MTYwNThlOGY0OGZlYTYwYjU3MzY1OTQ1NjJiZTE3NGYzNzMyMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cApAQCAtMzM1LDE1ICszMzUsMTEgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsTG9h
ZGVyRGVsZWdhdGVRdWV1ZSgpCiB9CiAjZW5kaWYKIAotUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjcmVhdGUo
TWVkaWFQbGF5ZXIqIHBsYXllcikgCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVS
ZWdpc3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICBy
ZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAw
LCBzdXBwb3J0c0tleVN5c3RlbSk7CisgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciog
cGxheWVyKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGPihwbGF5ZXIpOyB9LAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1
cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0ZW0pOwogfQogCiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yo
TWVkaWFQbGF5ZXIqIHBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggYjFjZGNkMDBkOWYwMmEwY2Nh
NGFjOGIxMzk1ZDllOWE2ZjBmZmI4Ny4uZGVhNTkzMzVmMWI0N2E0Mzk3ZjIzYjkwZTVlMzAzY2Zl
YTA4ZTBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQxLDYgKzQxLDggQEAgY2xhc3MgV2ViQ29yZUFW
Q0ZSZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1YmxpYzoKKyAg
ICAvLyBFbmdpbmUgc3VwcG9ydAorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCkgb3Zl
cnJpZGU7CkBAIC01OCwxMCArNjAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXIqKTsKLQotICAgIC8vIEVu
Z2luZSBzdXBwb3J0Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCAwMDA2YzA0ZTZiNjExMjcyMWNmMDAyYjhhNWUzYmRjZDQwYTI3ZmEyLi40NTNkZjhlMTkz
MDRhZmExOGVjNDAzYTQxMjBkOGJkNmY0MDY1NjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC02OSw2ICs2OSw3IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzsKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24gewogcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKQEAgLTEzMiwxMCArMTMzLDcgQEAg
cHVibGljOgogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhN
ZWRpYVBsYXllciopOwotCiAgICAgLy8gZW5naW5lIHN1cHBvcnQKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwog
ICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMp
OwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNTVmNjE3ZGY2NjM3MTVjZGU2YzM4MWNj
YWM5ZGNhYzQ0YWE3NDVhNy4uMzY3MjZjMTdjNzFiNjA2NDQ0Y2ZlMTIwNmU1NTAzM2Y4NTdlZjIy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC00MzgsMTUgKzQzOCwxMSBAQCBwcml2YXRl
OgogfTsKICNlbmRpZgogCi1QYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBw
bGF5ZXIpCi17IAotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQyhwbGF5ZXIpKTsKLX0KLQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJl
Z2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNy
ZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgc3VwcG9ydHNL
ZXlTeXN0ZW0pOworICAgICAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
PihwbGF5ZXIpOyB9LAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlw
ZSwgMCwgMCwgMCwgc3VwcG9ydHNLZXlTeXN0ZW0pOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGU2MDE3NmRiNWZl
ZDg2ZGEwMGQzNzhlMGY5MDFmNjI1ZjE2OGM5ZTUuLjg2ZGZkMDVmMjVjZGE1NzgzY2JmMGNlMDZj
YWZlOWE0ODdlMGE4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01MCwxMyArNTAs
MTIgQEAgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDKE1lZGlhUGxheWVyKik7CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCk7CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAogICAgIC8vIE1lZGlhUGxheWVyIEZhY3Rv
cnkgTWV0aG9kcwotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUo
KTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5
cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUo
Y29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDNlOTQ4NDRlYjgwOTM3Y2NiZDE4M2JiNmQzMGM3NDU1OWFlZTA0MzIuLmFm
Y2RmNDZlY2ZkNWVjYjhlN2FiMzQxNGE3YmYwNjY1ZDk5MzFlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTE5NiwxMiArMTk2LDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCkKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5n
aW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFi
bGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBv
cnRzVHlwZSwgMCwgMCwgMCwgMCk7Ci19Ci0KLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKHBsYXllcikpOworICAgICAgICByZWdpc3RyYXIo
W10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+KHBsYXllcik7IH0sIGdldFN1cHBvcnRlZFR5
cGVzLAorICAgICAgICAgICAgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggOTQzYTJl
Nzg2MzNhMzIzNTAzNzllNGFiM2UzYThkZWQyZDdjMzkzMy4uYTNjZjEwN2I5NzdjN2NjMDg2MzA4
NTFiMDcyMjQ1ZDVlNzI0OGI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE0MiwxNSArMTQyLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0
KQogICAgIExPR19NRURJQV9NRVNTQUdFKCJTZXQgbWVkaWEucm9sZSBhcyAlcyBhdCAlcyIsIHJv
bGUsIGVsZW1lbnROYW1lLmdldCgpKTsKIH0KIAotUGFzc093blB0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKE1lZGlhUGxh
eWVyKiBwbGF5ZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhcikK
IHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0
U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7CisgICAgICAgIHJlZ2lz
dHJhcihbXShNZWRpYVBsYXllciogcGxheWVyKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4ocGxheWVyKTsgfSwKKyAgICAgICAgICAgIGdldFN1
cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOwogfQogCiBib29sIGluaXRp
YWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzOTFmOGVhNjMyZWMyZmMzYWY1
MTI3NTIxMjg5ZGE4MDRkM2IxNGQ1Li42MjQ3NDY3MTA3NWIwODA0MzhmNWQ2OGYzYzc0OWFjZWYx
MmFkYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CkBAIC02Miw3ICs2Miw5IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOwogCiBj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CiAgICAgfk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcigpOworCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2lu
ZVJlZ2lzdHJhcik7CiAgICAgZ2Jvb2xlYW4gaGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKik7CiAg
ICAgdm9pZCBoYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1bHQoR3N0SW5zdGFsbFBsdWdpbnNSZXR1
cm4pOwpAQCAtMTM2LDEwICsxMzgsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqKTsKLQotICAgIHN0YXRp
YyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKE1lZGlhUGxh
eWVyKik7Ci0KICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
Zz4mKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUo
Y29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCmluZGV4IGU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYu
LjhmY2E4N2ZiMTA1YjcwYWE5NWY1YzUyZGRiYmJhYWI3NGYxZWMxMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5oCkBAIC01MCw2ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0IDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQoTWVkaWFQbGF5ZXIqKTsKICAgICB+TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5n
aW5lUmVnaXN0cmFyKTsKIApAQCAtNjMsMTAgKzY0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbGF5
ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwogCiBwcml2YXRlOgotICAg
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBlbmdpbmUg
c3VwcG9ydAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gY3JlYXRlKE1lZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlw
ZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDZiMmJhNDg4MGIzOTZjNWNj
YmQ4YjQwM2EzYjc5MzZjMTZhYTZlMjkuLmU4ODEyNzFmODY1Y2YyMzQ0NTI5MWQ2ZWZhYTI5NGJi
Mjk5ZjRjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTE2OCwxNSArMTY4
LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCi17IAotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQocGxheWVyKSk7Ci19Ci0KIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewogICAgIGlmIChpc0F2YWlsYWJsZSgpKQotICAgICAgICByZWdp
c3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0lu
TWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCAwKTsK
KyAgICAgICAgcmVnaXN0cmFyKFtdKE1lZGlhUGxheWVyKiBwbGF5ZXIpIHsgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ+KHBsYXllcik7IH0sIGdldFN1cHBv
cnRlZFR5cGVzLAorICAgICAgICAgICAgc3VwcG9ydHNUeXBlLCBnZXRTaXRlc0luTWVkaWFDYWNo
ZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCAwKTsKIH0KIAogTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlhUGxheWVy
KiBwbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24u
Y3BwCmluZGV4IGNlOGUzM2VlZjE5Yjc0YmI5OThlMjc4MTEwZDllNzA5NGY5MDQ1YWQuLjMxMmRl
NTU4ZmI3ZjFjYzgyYmM3ZTU2NWMyNDdiZmExMzRkMDU2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC02NSwxNSArNjUsMTEgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFG
b3VuZGF0aW9uKCkKICAgICBlbmRTZXNzaW9uKCk7CiB9CiAKLVBhc3NPd25QdHI8TWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb246OmNy
ZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKHBsYXllcikpOwotfQotCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBsYXllcikgeyBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24+
KHBsYXllcik7IH0sCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBl
LCAwLCAwLCAwLCAwKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRp
b246OmlzQXZhaWxhYmxlKCkgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uLmgKaW5kZXggZWVkODk4MWE3M2ZhZDJiOTk0MWY2YWY5ZDMwYmY5ZmMwOWEzMmFlZi4u
YWYwZjYyM2EyYzAwYzdjZjg1ODcwMGYyNDIwNjNjOTg4OWViNGE4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
Rm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uaApAQCAtMzUsMTEgKzM1LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0
aW9uIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CisgICAgZXhw
bGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uKE1lZGlhUGxheWVyKik7CiAg
ICAgfk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbigpOwogICAgIHN0YXRpYyB2b2lk
IHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCi0gICAgc3RhdGlj
IFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBjcmVhdGUoTWVkaWFQbGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
IHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5
cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29s
IGlzQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Uu
Y3BwCmluZGV4IGRiMTk4OTg5YTViOTBkNjYyNmY4MDViYWQ4ZGNjMTgwZTdkY2NhMDIuLmJhMmJm
ZGRiYmRlNmM4ZGRmMmY2ODBkNTU4ODU1MzcyOWNiNDE2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC00MCwxMiArNDAsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAvLyBNZWRpYVBsYXllciBFbmlnbmUgU3VwcG9ydAogdm9pZCBNb2NrTWVkaWFQ
bGF5ZXJNZWRpYVNvdXJjZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3RyYXIpCiB7Ci0gICAgcmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMs
IHN1cHBvcnRzVHlwZSwgMCwgMCwgMCwgMCk7Ci19Ci0KLVBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlh
UGxheWVyKiBwbGF5ZXIpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrTWVkaWFQbGF5
ZXJNZWRpYVNvdXJjZShwbGF5ZXIpKTsKKyAgICByZWdpc3RyYXIoW10oTWVkaWFQbGF5ZXIqIHBs
YXllcikgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJj
ZT4ocGxheWVyKTsgfSwgZ2V0U3VwcG9ydGVkVHlwZXMsCisgICAgICAgIHN1cHBvcnRzVHlwZSwg
MCwgMCwgMCwgMCk7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXggZjkzYzhjOGE1
YzQ0NGI4ZmExODIyMzhlNTI1YjAyMGY5MmZhN2YxNi4uY2RlNjU2NjdkNTRlMDIwNWE4YmExZjY3
YWI0NTczMDNjN2ZjMDliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2UuaApAQCAtMzgsOSArMzgsMTAgQEAgY2xhc3MgTW9ja01lZGlhU291cmNlUHJpdmF0ZTsKIAog
Y2xhc3MgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKKyAgICBleHBsaWNpdCBNb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZShNZWRpYVBsYXllciopOworCiAgICAgLy8gTWVkaWFQbGF5ZXIgRW5naW5lIFN1cHBv
cnQKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5lKE1l
ZGlhRW5naW5lUmVnaXN0cmFyKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U+IGNyZWF0ZShNZWRpYVBsYXllciopOwogICAgIHN0YXRpYyB2b2lkIGdl
dFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBv
cnRQYXJhbWV0ZXJzJik7CiAKQEAgLTU2LDggKzU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2Vl
a0NvbXBsZXRlZCgpOwogCiBwcml2YXRlOgotICAgIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
KE1lZGlhUGxheWVyKik7Ci0KICAgICAvLyBNZWRpYVBsYXllclByaXZhdGUgT3ZlcnJpZGVzCiAg
ICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>