<?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>95303</bug_id>
          
          <creation_ts>2012-08-29 00:30:14 -0700</creation_ts>
          <short_desc>[Modern WebKit API] Text direction API for WK2</short_desc>
          <delta_ts>2026-03-03 13:19:01 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93470</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>707174</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-29 00:30:14 -0700</bug_when>
    <thetext>A new type representing WebCore::StringWithDirection is to be added to WK2 API.
The reason:
1) Have a few places where text direction should be considered (for example setting of web page title)
2) Necessary for bug93470 fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707254</commentid>
    <comment_count>1</comment_count>
      <attachid>161167</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-29 03:00:07 -0700</bug_when>
    <thetext>Created attachment 161167
preliminary patch.

A new WKStringWithDirection type wrapping WebCore::StringWithDirection was 
added to WK2 C API. The new type was used in WebFrameLoaderClient::dispatchDidReceiveTitle()
to provide both Bundle client and UI process with the text direction info (this is also needed 
for bug93470).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707269</commentid>
    <comment_count>2</comment_count>
      <attachid>161167</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-29 03:27:28 -0700</bug_when>
    <thetext>Comment on attachment 161167
preliminary patch.

Attachment 161167 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13687150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707272</commentid>
    <comment_count>3</comment_count>
      <attachid>161167</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-29 03:36:58 -0700</bug_when>
    <thetext>Comment on attachment 161167
preliminary patch.

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

&gt; Source/WebKit2/Shared/API/c/WKStringWithDirection.h:38
&gt; +};

Needs a new line ?

&gt; Source/WebKit2/Shared/WebStringWithDirection.h:31
&gt; +// #include &lt;wtf/OwnPtr.h&gt;

Unneeded code.

&gt; Source/WebKit2/Shared/WebStringWithDirection.h:32
&gt; +// #include &lt;wtf/PassOwnPtr.h&gt;

ditto.

&gt; Source/WebKit2/Shared/WebStringWithDirection.h:56
&gt; +    WebStringWithDirection(const WebCore::StringWithDirection&amp; string)

Missing explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707290</commentid>
    <comment_count>4</comment_count>
      <attachid>161167</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-29 04:13:38 -0700</bug_when>
    <thetext>Comment on attachment 161167
preliminary patch.

Attachment 161167 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13694164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707309</commentid>
    <comment_count>5</comment_count>
      <attachid>161167</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-29 04:28:57 -0700</bug_when>
    <thetext>Comment on attachment 161167
preliminary patch.

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

&gt; Source/WebKit2/Shared/API/c/WKStringWithDirection.cpp:48
&gt; +WKTextDirection WKStringWithDirectionTextDirection(WKStringWithDirectionRef string)

WKStringWithDirectionTextDirection -&gt; WKStringWithDirectionTextGetDirection ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707373</commentid>
    <comment_count>6</comment_count>
      <attachid>161202</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-29 05:44:34 -0700</bug_when>
    <thetext>Created attachment 161202
patch

Fixed win build. Improved ChangeLog record. Took comments from Gyuyoung and Chris into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707377</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-29 05:50:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 161167 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161167&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/API/c/WKStringWithDirection.h:38
&gt; &gt; +};
&gt; 
&gt; Needs a new line ?
Other enum declarations do not have it (WKFindOptions for example).
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebStringWithDirection.h:56
&gt; &gt; +    WebStringWithDirection(const WebCore::StringWithDirection&amp; string)
&gt; 
&gt; Missing explicit.
OK, however think it is not crucial for a private constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707398</commentid>
    <comment_count>8</comment_count>
      <attachid>161202</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-29 06:29:29 -0700</bug_when>
    <thetext>Comment on attachment 161202
patch

Attachment 161202 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13691202</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707454</commentid>
    <comment_count>9</comment_count>
      <attachid>161202</attachid>
    <who name="">mitz</who>
    <bug_when>2012-08-29 08:08:43 -0700</bug_when>
    <thetext>Comment on attachment 161202
patch

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

&gt; Source/WebKit2/Shared/API/c/WKStringWithDirection.cpp:35
&gt; +    return toAPI(WebURL::APIType);

This is not the right type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707455</commentid>
    <comment_count>10</comment_count>
      <attachid>161202</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-29 08:09:03 -0700</bug_when>
    <thetext>Comment on attachment 161202
patch

I don&apos;t think there is a good reason to expose this as API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707458</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-29 08:10:06 -0700</bug_when>
    <thetext>This is not API I think we should expose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708508</commentid>
    <comment_count>12</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 05:00:32 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This is not API I think we should expose

Despite all the arguments I still think we need to expose something to provide the client with the info about title direction.. another approach could be exposing TextDirection enum only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708518</commentid>
    <comment_count>13</comment_count>
      <attachid>161446</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 05:19:12 -0700</bug_when>
    <thetext>Created attachment 161446
patch v2

Exposing only TextDirection enum, passing it as an extra parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708521</commentid>
    <comment_count>14</comment_count>
      <attachid>161449</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 05:28:43 -0700</bug_when>
    <thetext>Created attachment 161449
patch v2

fixed mess with ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708568</commentid>
    <comment_count>15</comment_count>
      <attachid>161449</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-30 06:44:29 -0700</bug_when>
    <thetext>Comment on attachment 161449
patch v2

Attachment 161449 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13684698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708594</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 07:17:42 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 161449 [details])
&gt; Attachment 161449 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/13684698

error: WebKit2/WKTextDirection.h: No such file or directory
WKTextDirection.h is to be added to mac proj file but it is pretty hard to do without a machine with mac..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708751</commentid>
    <comment_count>17</comment_count>
      <attachid>161449</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-30 09:57:36 -0700</bug_when>
    <thetext>Comment on attachment 161449
patch v2

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:94
&gt; -typedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
&gt; +typedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKTextDirection titleDirection, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);

If you change existing API, WebKit nightlies will no longer work with Safari, which is unacceptable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708774</commentid>
    <comment_count>18</comment_count>
      <attachid>161449</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-30 10:11:04 -0700</bug_when>
    <thetext>Comment on attachment 161449
patch v2

The backward compatible way to add this is to add a new callback but keep the old one working as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708853</commentid>
    <comment_count>19</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 11:17:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 161449 [details])
&gt; The backward compatible way to add this is to add a new callback but keep the old one working as well.
Thanks for the hint! Could I maybe leave it for another patch? I would keep the client API unchanged yet and provide the title direction info for the Injected Bundle only. Is it acceptable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708884</commentid>
    <comment_count>20</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 12:00:42 -0700</bug_when>
    <thetext>Found quite good explanation of why the information about text direction is needed and how it can be used by browsers here: http://www.i18nguy.com/markup/right-to-left.html

The HTML DIR (http://www.w3.org/TR/html401/struct/dirlang.html) attribute specifies the base direction (LTR, RTL) of text, or sections of text. The base direction can influence the ordering of the display of runs of text of different directions, and the display of directionally neutral text (i.e., characters or sequences of characters that do not have inherent directionality, as defined in the Unicode Character Standard).

And this is the example of rendering by browser the same text with different directions http://www.i18nguy.com/markup/bidi.png .

So think we need to expose text direction API to the client eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708897</commentid>
    <comment_count>21</comment_count>
      <attachid>161530</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-30 12:21:55 -0700</bug_when>
    <thetext>Created attachment 161530
patch v3

Removed changes from the client API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709048</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-30 14:52:03 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I would keep the client API unchanged yet and provide the title direction info for the Injected Bundle only. Is it acceptable?

No. The injected bundle is also part of the API and would also break compatibility with Safari, which has an injected bundle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709049</commentid>
    <comment_count>23</comment_count>
      <attachid>161530</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-30 14:52:54 -0700</bug_when>
    <thetext>Comment on attachment 161530
patch v3

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:94
&gt; -typedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);
&gt; +typedef void (*WKBundlePageDidReceiveTitleForFrameCallback)(WKBundlePageRef page, WKStringRef title, WKTextDirection titleDirection, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo);

Same problem here as with the last patch, albeit in a different place. Changing the arguments here breaks the API. That’s why this header is in a directory named API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709293</commentid>
    <comment_count>24</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-30 21:03:44 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This is not API I think we should expose.

I talked to my local bidi expert, and he disagrees with me, and we should indeed expose this as API.  So, please add new callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709695</commentid>
    <comment_count>25</comment_count>
      <attachid>161717</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-31 09:10:53 -0700</bug_when>
    <thetext>Created attachment 161717
patch v4

Added new callback to WKBundlePage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709873</commentid>
    <comment_count>26</comment_count>
      <attachid>161717</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-31 12:08:08 -0700</bug_when>
    <thetext>Comment on attachment 161717
patch v4

I don’t understand why we are adding this for the injected bundle only and not the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710016</commentid>
    <comment_count>27</comment_count>
      <attachid>161782</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-31 14:58:44 -0700</bug_when>
    <thetext>Created attachment 161782
patch v5

Added also new WKPageDidReceiveTitleWithDirectionForFrameCallback to WKPage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710019</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-31 15:00:34 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710130</commentid>
    <comment_count>29</comment_count>
      <attachid>161782</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-31 19:24:08 -0700</bug_when>
    <thetext>Comment on attachment 161782
patch v5

Attachment 161782 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13720422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710860</commentid>
    <comment_count>30</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-04 00:32:23 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 161782 [details])
&gt; Attachment 161782 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/13720422

error: WebKit2/WKTextDirection.h: No such file or directory
would need a mac to include it to project file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713270</commentid>
    <comment_count>31</comment_count>
      <attachid>162504</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-06 07:33:15 -0700</bug_when>
    <thetext>Created attachment 162504
patch v6

Added new file to mac project. Removed trailing spaces in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713936</commentid>
    <comment_count>32</comment_count>
      <attachid>162504</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-06 17:55:11 -0700</bug_when>
    <thetext>Comment on attachment 162504
patch v6

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:134
&gt; +    WKPageDidReceiveTitleWithDirectionForFrameCallback                               didReceiveTitleWithDirectionForFrame;

Nit : It looks you need to follow existing indentation between WKPageDidReceiveTitleWithDirectionForFrameCallback and didReceiveTitleWithDirectionForFrame;

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2121
&gt; +

It looks this line is not needed. 

By the way, it seems to me that you send title to calling function though this comment says that we don&apos;t need to send title because it is already done. Is my understanding right ?

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:961
&gt; +    // FIXME : use direction of title.

Nit : FIXME : use -&gt; FIXME: Use ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714411</commentid>
    <comment_count>33</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-07 04:58:56 -0700</bug_when>
    <thetext>(In reply to comment #32)
 
&gt; By the way, it seems to me that you send title to calling function though this comment says that we don&apos;t need to send title because it is already done. Is my understanding right ?
&gt; 
First of all, thank you for review!

Did you mean this comment:
 &quot;Do not set title for frame as it is done already in didReceiveTitleForFrame().&quot; ?

this is about setting title which is done in didReceiveTitleForFrame() so there is no need to set it again in the added callback. 
And sending of the title has to be performed for both callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714419</commentid>
    <comment_count>34</comment_count>
      <attachid>162747</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-07 05:09:09 -0700</bug_when>
    <thetext>Created attachment 162747
patch v7

Took comment from Gyuyoung into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715677</commentid>
    <comment_count>35</comment_count>
      <attachid>162747</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-09 20:33:09 -0700</bug_when>
    <thetext>Comment on attachment 162747
patch v7

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

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:961
&gt; +    // FIXME : Use direction of title.

It looks this function doesn&apos;t test a title direction though this patch adds new functionality for title direction. This patch just changes function name, right ?  IMO, you have to support the title direction in order to land this patch. BTW, don&apos;t you need to keep didReceiveTitleForFrame for existing legacy system ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715786</commentid>
    <comment_count>36</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-10 00:49:35 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 162747 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162747&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:961
&gt; &gt; +    // FIXME : Use direction of title.
&gt; 
&gt; It looks this function doesn&apos;t test a title direction though this patch adds new functionality for title direction. This patch just changes function name, right ?  IMO, you have to support the title direction in order to land this patch.
This is client WTR code. The dependent bug93470 is targeted to use the text direction info so that layout tests can be unskipped.

&gt; BTW, don&apos;t you need to keep didReceiveTitleForFrame for existing legacy system ?
All the callbacks are kept in both UI process and bundle client API for legacy reasons, thing is that practically only one callback is needed for the client (we&apos;re not going to react on the same notification twice), that is why I substituted the old callback with the new one in WTR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715818</commentid>
    <comment_count>37</comment_count>
      <attachid>162747</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-10 01:24:00 -0700</bug_when>
    <thetext>Comment on attachment 162747
patch v7

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

&gt;&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:961
&gt;&gt;&gt; +    // FIXME : Use direction of title.
&gt;&gt; 
&gt;&gt; It looks this function doesn&apos;t test a title direction though this patch adds new functionality for title direction. This patch just changes function name, right ?  IMO, you have to support the title direction in order to land this patch. BTW, don&apos;t you need to keep didReceiveTitleForFrame for existing legacy system ?
&gt; 
&gt; This is client WTR code. The dependent bug93470 is targeted to use the text direction info so that layout tests can be unskipped.

I think new functionality have to be added with test cases at a time. I wonder how do other reviewers think about this. Looks fine except for test cases support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719776</commentid>
    <comment_count>38</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-09-13 12:19:37 -0700</bug_when>
    <thetext>Sam, Anders, could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758888</commentid>
    <comment_count>39</comment_count>
      <attachid>172403</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 14:14:08 -0800</bug_when>
    <thetext>Created attachment 172403
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759100</commentid>
    <comment_count>40</comment_count>
      <attachid>172403</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-05 17:54:11 -0800</bug_when>
    <thetext>Comment on attachment 172403
rebased

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

&gt; Source/WebKit2/Shared/API/c/WKSharedAPICast.h:860
&gt; +    case WebCore::RTL:

It would be good if you place this according to enum order.

enum TextDirection { RTL, LTR };

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:333
&gt; +        didReceiveTitleWithDirectionForFrame

IMO, it would be better if *didReceiveTitleWithDirectionForFrame* is placed next to *didReceiveTitleForFrame*.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:988
&gt; +    // FIXME : use direction of title.

use -&gt; Use ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759453</commentid>
    <comment_count>41</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 02:40:46 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 172403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/API/c/WKSharedAPICast.h:860
&gt; &gt; +    case WebCore::RTL:
&gt; 
&gt; It would be good if you place this according to enum order.
&gt; 
&gt; enum TextDirection { RTL, LTR };
ok

&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:333
&gt; &gt; +        didReceiveTitleWithDirectionForFrame
&gt; 
&gt; IMO, it would be better if *didReceiveTitleWithDirectionForFrame* is placed next to *didReceiveTitleForFrame*.
think, it would break ABI

&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:988
&gt; &gt; +    // FIXME : use direction of title.
&gt; 
&gt; use -&gt; Use ?
yep</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759490</commentid>
    <comment_count>42</comment_count>
      <attachid>172543</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 03:40:35 -0800</bug_when>
    <thetext>Created attachment 172543
patch v9

Took Gyuyoung&apos;s comments into consideration (including layout tests unskipping).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759933</commentid>
    <comment_count>43</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 11:45:48 -0800</bug_when>
    <thetext>Could please anyone review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976925</commentid>
    <comment_count>44</comment_count>
      <attachid>172543</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 11:08:14 -0800</bug_when>
    <thetext>Comment on attachment 172543
patch v9

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186688</commentid>
    <comment_count>45</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-03 13:19:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/171655644&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161167</attachid>
            <date>2012-08-29 03:00:07 -0700</date>
            <delta_ts>2012-08-29 04:28:57 -0700</delta_ts>
            <desc>preliminary patch.</desc>
            <filename>bug95303</filename>
            <type>text/plain</type>
            <size>33017</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDRhOTQ3ZTY2ZDkyY2Q3YjhmZDcyZWI0ZWIxNjlkZjIwM2JjYTFmNGMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAyOSAxMjo1NToyOSAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CmluZGV4IGM0M2RkNGEuLjRhZTQ0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0y
MDQsNiArMjA0LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9BUEkvYy9XS1Nl
Y3VyaXR5T3JpZ2luLmNwcAogICAgIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCisgICAgU2hhcmVkL0FQSS9jL1dL
U3RyaW5nV2l0aERpcmVjdGlvbi5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tUeXBlLmNwcAogICAg
IFNoYXJlZC9BUEkvYy9XS1VSTC5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGQ2ZmQzYjguLjQzM2U2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
NyBAQAorMjAxMi0wOC0yOSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292
QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgU3RyaW5nV2l0aERpcmVjdGlvbiB0eXBl
IHRvIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTUzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
IG5ldyBXS1N0cmluZ1dpdGhEaXJlY3Rpb24gdHlwZSB3cmFwcGluZyBXZWJDb3JlOjpTdHJpbmdX
aXRoRGlyZWN0aW9uIHdhcyAKKyAgICAgICAgYWRkZWQgdG8gV0syIEMgQVBJLiBUaGUgbmV3IHR5
cGUgd2FzIHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRp
dGxlKCkKKyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1bmRsZSBjbGllbnQgYW5kIFVJIHByb2Nl
c3Mgd2l0aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvVGV4dERpcmVjdGlvbik6Cisg
ICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV0tTdHJpbmdXaXRoRGlyZWN0aW9uR2V0VHlwZUlEKToKKyAgICAgICAgKFdLU3Ry
aW5nV2l0aERpcmVjdGlvbkNyZWF0ZVdpdGhVVEY4Q1N0cmluZyk6CisgICAgICAgIChXS1N0cmlu
Z1dpdGhEaXJlY3Rpb25Db3B5U3RyaW5nKToKKyAgICAgICAgKFdLU3RyaW5nV2l0aERpcmVjdGlv
blRleHREaXJlY3Rpb24pOgorICAgICAgICAoV0tTdHJpbmdXaXRoRGlyZWN0aW9uSXNFcXVhbCk6
CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5oOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAg
IChDb3JlSVBDKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViU3RyaW5nV2l0aERpcmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJTdHJpbmdXaXRoRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU3RyaW5nV2l0aERpcmVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3Ry
aW5nV2l0aERpcmVjdGlvbjo6c3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RyaW5nV2l0
aERpcmVjdGlvbjo6V2ViU3RyaW5nV2l0aERpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlN0cmluZ1dpdGhEaXJlY3Rpb246OnR5cGUpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
VGl0bGUpOgorCiAyMDEyLTA4LTI4ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbV0syXSBVc2UgZXhwbGljaXQgY29uc3RydWN0b3IgaW4gUGFnZUNsaWVu
dEltcGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkNDE3YjVmLi41ODA2ZWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4LDYgKzI4LDcgQEAgd2Via2l0
Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
XAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmggXAogCSQoV2ViS2l0MikvU2hh
cmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9X
S1N0cmluZ1dpdGhEaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tUeXBl
LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQoV2ViS2l0MikvU2hh
cmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsOCBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJlY3Rpb24uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS1R5cGUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUeXBl
LmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5jcHAgXApAQCAtNDk0LDYg
KzQ5Nyw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlNlY3VyaXR5T3JpZ2luLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZy5oIFwKKwlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nV2l0aERpcmVjdGlvbi5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJVUkwuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAwNmFhMjg2Li5jZmIyNGU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC03Myw2ICs3Myw3IEBAIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2VjdXJpdHlPcmlnaW4qIFdLU2VjdXJpdHlPcmlnaW5S
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1NpemVSZWYqIFdLU2l6ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3RyaW5n
KiBXS1N0cmluZ1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3RyaW5nV2l0aERp
cmVjdGlvbiogV0tTdHJpbmdXaXRoRGlyZWN0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tVSW50NjQqIFdLVUludDY0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tVUkwqIFdLVVJMUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVUkxSZXF1ZXN0
KiBXS1VSTFJlcXVlc3RSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFy
ZWRBUElDYXN0LmgKaW5kZXggOGE3M2EwMS4uNTM2MTU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMzUsMTEgKzM1LDEzIEBACiAjaW5j
bHVkZSAiV0tHZW9tZXRyeS5oIgogI2luY2x1ZGUgIldLSW1hZ2UuaCIKICNpbmNsdWRlICJXS1Bh
Z2VMb2FkVHlwZXMuaCIKKyNpbmNsdWRlICJXS1N0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNs
dWRlICJXZWJFcnJvci5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRmlu
ZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKKyNpbmNsdWRlICJXZWJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViVVJM
LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNl
LmgiCkBAIC05Niw2ICs5OCw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1NlY3VyaXR5T3JpZ2lu
UmVmLCBXZWJTZWN1cml0eU9yaWdpbikKIFdLX0FERF9BUElfTUFQUElORyhXS1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZVJlZiwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLU2l6ZVJlZiwgV2ViU2l6ZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1N0cmluZ1JlZiwg
V2ViU3RyaW5nKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiwg
V2ViU3RyaW5nV2l0aERpcmVjdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS1R5cGVSZWYsIEFQ
SU9iamVjdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VJbnQ2NFJlZiwgV2ViVUludDY0KQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLVVJMUmVmLCBXZWJVUkwpCkBAIC03ODIsNiArNzg1LDE5IEBAIGlu
bGluZSBTbmFwc2hvdE9wdGlvbnMgdG9TbmFwc2hvdE9wdGlvbnMoV0tTbmFwc2hvdE9wdGlvbnMg
d2tTbmFwc2hvdE9wdGlvbnMpCiAgICAgcmV0dXJuIHNuYXBzaG90T3B0aW9uczsKIH0KIAoraW5s
aW5lIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdG9UZXh0RGlyZWN0aW9uKGNvbnN0IFdLVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNl
IGtXS1RleHREaXJlY3Rpb25MVFI6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpMVFI7CisgICAg
Y2FzZSBrV0tUZXh0RGlyZWN0aW9uUlRMOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UlRMOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6TFRSOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hZWU5MzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5jcHAKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLU3Ry
aW5nV2l0aERpcmVjdGlvbi5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU3RyaW5nV2l0aERpcmVjdGlvbkdldFR5cGVJ
RCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYlVSTDo6QVBJVHlwZSk7Cit9CisKK1dLU3RyaW5n
V2l0aERpcmVjdGlvblJlZiBXS1N0cmluZ1dpdGhEaXJlY3Rpb25DcmVhdGVXaXRoVVRGOENTdHJp
bmcoY29uc3QgY2hhciogc3RyaW5nLCBXS1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAg
IHJldHVybiB0b0FQSShXZWJTdHJpbmdXaXRoRGlyZWN0aW9uOjpjcmVhdGUoU3RyaW5nOjpmcm9t
VVRGOChzdHJpbmcpLCB0b1RleHREaXJlY3Rpb24oZGlyZWN0aW9uKSkubGVha1JlZigpKTsKK30K
KworV0tTdHJpbmdSZWYgV0tTdHJpbmdXaXRoRGlyZWN0aW9uQ29weVN0cmluZyhXS1N0cmluZ1dp
dGhEaXJlY3Rpb25SZWYgc3RyaW5nKQoreworICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwo
c3RyaW5nKS0+c3RyaW5nKCkuc3RyaW5nKCkpOworfQorCitXS1RleHREaXJlY3Rpb24gV0tTdHJp
bmdXaXRoRGlyZWN0aW9uVGV4dERpcmVjdGlvbihXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgc3Ry
aW5nKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc3RyaW5nKS0+c3RyaW5nKCkuZGlyZWN0
aW9uKCkpOworfQorCitib29sIFdLU3RyaW5nV2l0aERpcmVjdGlvbklzRXF1YWwoV0tTdHJpbmdX
aXRoRGlyZWN0aW9uUmVmIGEsIFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiBiKQoreworICAgIHJl
dHVybiB0b0ltcGwoYSktPnN0cmluZygpID09IHRvSW1wbChiKS0+c3RyaW5nKCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFjZDg4NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJlY3Rpb24u
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLU3RyaW5n
V2l0aERpcmVjdGlvbl9oCisjZGVmaW5lIFdLU3RyaW5nV2l0aERpcmVjdGlvbl9oCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKK2VudW0geworICAgIGtXS1RleHREaXJlY3Rpb25SVEwgPSAgMCwKKyAgICBr
V0tUZXh0RGlyZWN0aW9uTFRSID0gIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVGV4dERpcmVj
dGlvbjsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLU3RyaW5nV2l0aERpcmVjdGlvbkdldFR5cGVJ
RCgpOworCitXS19FWFBPUlQgV0tTdHJpbmdXaXRoRGlyZWN0aW9uUmVmIFdLU3RyaW5nV2l0aERp
cmVjdGlvbkNyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcsIFdLVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24pOworCitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdXaXRo
RGlyZWN0aW9uQ29weVN0cmluZyhXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgc3RyaW5nKTsKK1dL
X0VYUE9SVCBXS1RleHREaXJlY3Rpb24gV0tTdHJpbmdXaXRoRGlyZWN0aW9uVGV4dERpcmVjdGlv
bihXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgc3RyaW5nKTsKKworV0tfRVhQT1JUIGJvb2wgV0tT
dHJpbmdXaXRoRGlyZWN0aW9uSXNFcXVhbChXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgYSwgV0tT
dHJpbmdXaXRoRGlyZWN0aW9uUmVmIGIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp
ZgorCisjZW5kaWYgLyogV0tTdHJpbmdXaXRoRGlyZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAppbmRleCA3MDhlZmZlLi43ZmQzNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZVNlY3VyaXR5T3Jp
Z2luLAogICAgICAgICBUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlLAogICAgICAgICBUeXBlU3Ry
aW5nLAorICAgICAgICBUeXBlU3RyaW5nV2l0aERpcmVjdGlvbiwKICAgICAgICAgVHlwZVVSTCwK
ICAgICAgICAgVHlwZVVSTFJlcXVlc3QsCiAgICAgICAgIFR5cGVVUkxSZXNwb25zZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggY2Jm
NjI0OS4uNDhmYWU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0tVUkwu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1By
b3RlY3Rpb25TcGFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3RyaW5nV2l0aERpcmVjdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJl
cy5oPgpAQCAtNzk3LDQgKzc5OCwyNSBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsCiAKICNlbmRp
ZgogCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbj46OmVu
Y29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhE
aXJlY3Rpb24mIHN0cmluZykKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHN0cmluZy5kaXJl
Y3Rpb24oKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmluZy5zdHJpbmcoKSk7Cit9CisKK2Jv
b2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYgcmVz
dWx0KQoreworICAgIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uOworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlRW51bShkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBTdHJpbmcgc3RyaW5nOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0cmluZykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc3VsdCA9IFdlYkNvcmU6OlN0cmluZ1dpdGhE
aXJlY3Rpb24oc3RyaW5nLCBkaXJlY3Rpb24pOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIENvcmVJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCBiMDhmMTE4Li5kNDI2YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291
cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNsYXNzIFN0cmlu
Z1dpdGhEaXJlY3Rpb247CiAgICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwogICAgIHN0
cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKICAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CkBAIC0y
NTMsNiArMjU0LDEwIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz4gewogI2VuZGlmCiAjZW5kaWYKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uPiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhE
aXJlY3Rpb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2Vi
Q29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYpOworfTsKIAogfSAvLyBuYW1lc3BhY2UgQ29yZUlQ
QwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nV2l0aERpcmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZ1dpdGhEaXJlY3Rpb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGYzMjlmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZ1dpdGhEaXJlY3Rpb24uaApAQCAt
MCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0cmluZ1dpdGhE
aXJlY3Rpb25faAorI2RlZmluZSBXZWJTdHJpbmdXaXRoRGlyZWN0aW9uX2gKKworI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3RyaW5nV2l0aERpcmVjdGlvbi5oPgor
Ly8gI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKy8vICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisv
LyBXZWJTdHJpbmdXaXRoRGlyZWN0aW9uIC0gQSB0eXBlIHN1aXRhYmxlIGZvciB2ZW5kaW5nIHRv
IGFuIEFQSS4KKworY2xhc3MgV2ViU3RyaW5nV2l0aERpcmVjdGlvbiA6IHB1YmxpYyBBUElPYmpl
Y3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU3RyaW5n
V2l0aERpcmVjdGlvbjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlN0cmluZ1dpdGhEaXJl
Y3Rpb24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHN0cmluZywgV2ViQ29yZTo6VGV4dERpcmVjdGlv
biBkaXJlY3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlN0cmlu
Z1dpdGhEaXJlY3Rpb24oV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbihzdHJpbmcsIGRpcmVj
dGlvbikpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTdHJpbmdXaXRoRGly
ZWN0aW9uPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYgc3RyaW5n
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTdHJpbmdXaXRoRGlyZWN0
aW9uKHN0cmluZykpOworICAgIH0KKworICAgIGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJl
Y3Rpb24mIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisKK3ByaXZhdGU6Cisg
ICAgV2ViU3RyaW5nV2l0aERpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0
aW9uJiBzdHJpbmcpCisgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgIHsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAg
IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24gbV9zdHJpbmc7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0cmluZ1dpdGhEaXJlY3Rpb25faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkKaW5kZXggMzczMzY1MC4uZDA5NjYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC01NSw2ICs1NSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IFwKICAgICBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggXAogICAgIFNoYXJlZC9BUEkv
Yy9XS1N0cmluZy5oIFwKKyAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmgg
XAogICAgIFNoYXJlZC9BUEkvYy9XS1N0cmluZ1ByaXZhdGUuaCBcCiAgICAgU2hhcmVkL0FQSS9j
L1dLVHlwZS5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tVUkwuaCBcCkBAIC00MDQsNiArNDA1LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW4uY3BwIFwK
ICAgICBTaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIFwKICAgICBTaGFy
ZWQvQVBJL2MvV0tTdHJpbmcuY3BwIFwKKyAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGly
ZWN0aW9uLmNwcCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAgXAogICAgIFNoYXJlZC9B
UEkvYy9XS1VSTC5jcHAgXAogICAgIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzg4YzY2NS4uYmUw
ODA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg0
LDYgKzg0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJF
bWJlZGRlZE9iamVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3RyaW5nV2l0aERpcmVjdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTIwOTEsNyArMjA5
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QKICAgICBtX2xvYWRlckNsaWVudC5kaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodGhpcywgZnJhbWUsIHN0YXRpY19jYXN0PFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlPihvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSks
IHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rp
b24mIHRpdGxlLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwpAQCAtMjEwMSw5
ICsyMTAyLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUKICAgICBXZWJGcmFtZVByb3h5KiBm
cmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhm
cmFtZSk7CiAKLSAgICBmcmFtZS0+ZGlkQ2hhbmdlVGl0bGUodGl0bGUpOworICAgIGZyYW1lLT5k
aWRDaGFuZ2VUaXRsZSh0aXRsZS5zdHJpbmcoKSk7CiAgICAgCi0gICAgbV9sb2FkZXJDbGllbnQu
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGhpcywgdGl0bGUsIGZyYW1lLCB1c2VyRGF0YS5nZXQo
KSk7CisgICAgbV9sb2FkZXJDbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGhpcywgdGl0
bGUuc3RyaW5nKCksIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDlhMTlhNTYuLmU3YjE1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTk5LDcgKzk5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFzcyBJbnRTaXplOwogICAgIGNsYXNzIFByb3RlY3Rp
b25TcGFjZTsKLSAgICBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsKKyAgICBjbGFzcyBTdHJp
bmdXaXRoRGlyZWN0aW9uOworICAgIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOyAgICAKICAg
ICBzdHJ1Y3QgVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlOwogICAgIHN0cnVjdCBUZXh0Q2hlY2tp
bmdSZXN1bHQ7CiAgICAgc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKQEAgLTc1MCw3ICs3NTEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmFpbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRo
RGlyZWN0aW9uJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRGaXJz
dExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA3ZmE4MWJlLi45MTQwOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEzMCw3ICsxMzAsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHVybCwgV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRS
ZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHVybCwgV1RGOjpT
dHJpbmcgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIgdXNlckRhdGEpCi0gICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV1RGOjpTdHJpbmcgdGl0bGUsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIgdXNlckRhdGEpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiB0aXRsZSwgV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRh
dGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA4YmM3NjcwLi4wOTkxMzc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTkwLDcgKzkwLDcgQEAgdHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5k
bGVQYWdlUmUKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZpbmlzaFByb2dyZXNzQ2Fs
bGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLRXJy
b3JSZWYgZXJyb3IsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiogdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
RGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2spKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZURpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5jcHAKaW5kZXggYTZhMDYxMi4uOGJkNjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldl
YkVycm9yLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nV2l0aERpcmVjdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQpAQCAtMTQ0
LDEzICsxNDUsMTQgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlKgogICAgIHVzZXJEYXRhID0gYWRv
cHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1
c2VyRGF0YSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0
aXRsZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7CiAg
ICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKLSAgICBtX2NsaWVudC5kaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9B
UEkoZnJhbWUpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIFJl
ZlB0cjxXZWJTdHJpbmdXaXRoRGlyZWN0aW9uPiB3ZWJUaXRsZSA9IFdlYlN0cmluZ1dpdGhEaXJl
Y3Rpb246OmNyZWF0ZSh0aXRsZSk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUodG9BUEkocGFnZSksIHRvQVBJKHdlYlRpdGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCAmdXNl
ckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOwogICAgIHVzZXJEYXRhID0gYWRvcHRS
ZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IDgxZDliZTQuLjg4YmE0YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtMzgsNiArMzgs
NyBAQCBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFN0cmluZ1dp
dGhEaXJlY3Rpb247CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjUsNyArNjYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXZWJQYWdlKik7CiAgICAgdm9pZCBk
aWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAg
IHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFt
ZSosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRh
dGEpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0
cmluZyYsIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2UqLCBjb25zdCBXZWJDb3JlOjpTdHJpbmdX
aXRoRGlyZWN0aW9uJiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwog
ICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdlYlBhZ2UqLCBXZWJGcmFtZSos
IFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4m
IHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBh
Z2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGEzYzBjYzEuLmEyN2NjM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00MzIsMTEgKzQzMiwxMCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdXaXRo
RGlyZWN0aW9uJiB0aQogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogCiAgICAgLy8g
Tm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgotICAgIC8vIEZJWE1FOiB1c2UgZGlyZWN0aW9uIG9m
IHRpdGxlLgotICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUod2ViUGFnZSwgdGl0bGUuc3RyaW5nKCksIG1fZnJhbWUsIHVzZXJE
YXRhKTsKKyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHdlYlBhZ2UsIHRpdGxlLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CiAKICAg
ICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwg
dGl0bGUuc3RyaW5nKCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRh
LmdldCgpKSkpOworICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCB0aXRsZSwgSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5
cGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MDA3NTFjYi4uMmI3NjM0MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA4LTI5ICBNaWtoYWlsIFBvemRueWFr
b3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBT
dHJpbmdXaXRoRGlyZWN0aW9uIHR5cGUgdG8gV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEEgbmV3IFdLU3RyaW5nV2l0aERpcmVjdGlvbiB0eXBlIHdy
YXBwaW5nIFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24gd2FzIAorICAgICAgICBhZGRlZCB0
byBXSzIgQyBBUEkuIFRoZSBuZXcgdHlwZSB3YXMgdXNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQorICAgICAgICB0byBwcm92aWRlIGJvdGggQnVu
ZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRoIHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgor
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKTogVXBkYXRlZCB0byBhY2NlcHQgV0tTdHJpbmdXaXRoRGlyZWN0aW9uLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvU3RyaW5nRnVuY3Rpb25zLmg6CisgICAgICAgIChXVFI6OnRvV1RGU3RyaW5nKTog
QSBmdW5jdGlvbiB0byBnZXQgV1RGOjpTdHJpbmcgZnJvbSBXS1N0cmluZ1dpdGhEaXJlY3Rpb25S
ZWYuCisgICAgICAgIChXVFIpOgorCiAyMDEyLTA4LTI4ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBjci1ld3MgYm90IGRvZXNuJ3Qgc2V0IENXRCBjb3JyZWN0bHkg
d2hlbiB6aXBwaW5nIGxheW91dCB0ZXN0IHJlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApp
bmRleCA3ZDJjYjk4Li5mNGQ5MTc1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC02MzEs
NyArNjMxLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKICAgICBzdGF0aWNfY2FzdDxJbmpl
Y3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZhaWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoZnJhbWUsIGVycm9yKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdXaXRoRGlyZWN0aW9u
UmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGl0
bGUsIGZyYW1lKTsKIH0KQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
SwogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5kb25lKCk7CiB9CiAKLXZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgdGl0bGUsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUpCiB7CiAgICAgaWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuaXNU
ZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAw
NzQzMTRlLi5hODQxNWQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRsZVBhZ2VS
ZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVSZWYqLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJl
ZiosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmLCBX
S1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgdGl0bGUs
IFdLQnVuZGxlRnJhbWVSZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFt
ZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2
b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1
bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwg
V0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlLCBjb25zdCB2b2lkKik7CkBA
IC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcygpOwogICAgIHZv
aWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0Vycm9y
UmVmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxl
LCBXS0J1bmRsZUZyYW1lUmVmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdL
U3RyaW5nV2l0aERpcmVjdGlvblJlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9p
ZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlU2NyaXB0
V29ybGRSZWYpOwogICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1
bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZShXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRh
dGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9TdHJpbmdGdW5jdGlvbnMu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvU3RyaW5nRnVuY3Rpb25zLmgKaW5kZXggMTI5ZTdi
ZS4uNWQ4YTQzMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9TdHJpbmdGdW5j
dGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1N0cmluZ0Z1bmN0aW9ucy5oCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5nUHJpdmF0
ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duQXJyYXlQdHIuaD4KQEAgLTkxLDYgKzkyLDEyIEBAIGlubGluZSBXVEY6
OlN0cmluZyB0b1dURlN0cmluZyhjb25zdCBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4mIHN0cmlu
ZykKICAgICByZXR1cm4gdG9XVEZTdHJpbmcoc3RyaW5nLmdldCgpKTsKIH0KIAoraW5saW5lIFdU
Rjo6U3RyaW5nIHRvV1RGU3RyaW5nKFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiBzdHJpbmcpCit7
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN0cmluZ1JlZiA9IGFkb3B0V0soV0tTdHJp
bmdXaXRoRGlyZWN0aW9uQ29weVN0cmluZyhzdHJpbmcpKTsKKyAgICByZXR1cm4gdG9XVEZTdHJp
bmcoc3RyaW5nUmVmKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCiAKICNlbmRpZiAvLyBTdHJp
bmdGdW5jdGlvbnNfaAo=
</data>
<flag name="commit-queue"
          id="171888"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161202</attachid>
            <date>2012-08-29 05:44:34 -0700</date>
            <delta_ts>2012-08-30 05:19:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug95303</filename>
            <type>text/plain</type>
            <size>35603</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGRlNjAwOTc5NTc1NjE2NzE1M2I0NGViNzY3YTVhZTVlYzIyM2VkNDMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEF1ZyAyOSAxMjo1NToyOSAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CmluZGV4IGM0M2RkNGEuLjRhZTQ0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0y
MDQsNiArMjA0LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9BUEkvYy9XS1Nl
Y3VyaXR5T3JpZ2luLmNwcAogICAgIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCisgICAgU2hhcmVkL0FQSS9jL1dL
U3RyaW5nV2l0aERpcmVjdGlvbi5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tUeXBlLmNwcAogICAg
IFNoYXJlZC9BUEkvYy9XS1VSTC5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGQ2ZmQzYjguLjYyMTQ3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2
NiBAQAorMjAxMi0wOC0yOSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292
QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgU3RyaW5nV2l0aERpcmVjdGlvbiB0eXBl
IHRvIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTUzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2UgYSBuZXcgV0tTdHJpbmdXaXRoRGlyZWN0aW9uIHR5cGUgdG8gV0syIEMgQVBJLiAK
KyAgICAgICAgV0tTdHJpbmdXaXRoRGlyZWN0aW9uIGlzIHdyYXBwaW5nIFdlYkNvcmU6OlN0cmlu
Z1dpdGhEaXJlY3Rpb24gb2JqZWN0IHRoYXQKKyAgICAgICAgY2FycmllcyBhIFN0cmluZyBhbG9u
ZyB3aXRoIHRoZSBUZXh0RGlyZWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgU3RyaW5nLgorICAg
ICAgICBXS1N0cmluZ1dpdGhEaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9jdW1lbnRzIHRp
dGxlcyAoaW4gSFRNTCAKKyAgICAgICAgdGhlIGRpcmVjdGlvbiBvZiBhIHRpdGxlIGNhbiBiZSBz
ZXQgd2l0aCB0aGUgJ2RpcicgYXR0cmlidXRlKS4KKyAgICAgICAgVGhlIFdLU3RyaW5nV2l0aERp
cmVjdGlvbiB0eXBlIHdhcyBmaXJzdCB1c2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVUaXRsZSgpCisgICAgICAgIHRvIHByb3ZpZGUgYm90aCBCdW5kbGUgY2xp
ZW50IGFuZCBVSSBwcm9jZXNzIHdpdGggdGhlIHRleHQgZGlyZWN0aW9uIGluZm8uCisgICAgICAg
IEFsc28gaGF2aW5nIHRleHQgZGlyZWN0aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5n
IG9mIHNldmVyYWwgdGVzdCBjYXNlcworICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVu
bmVyLnRpdGxlVGV4dERpcmVjdGlvbi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvVGV4dERpcmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0
aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXS1N0cmluZ1dpdGhEaXJlY3Rpb25HZXRUeXBlSUQp
OgorICAgICAgICAoV0tTdHJpbmdXaXRoRGlyZWN0aW9uQ3JlYXRlV2l0aFVURjhDU3RyaW5nKToK
KyAgICAgICAgKFdLU3RyaW5nV2l0aERpcmVjdGlvbkNvcHlTdHJpbmcpOgorICAgICAgICAoV0tT
dHJpbmdXaXRoRGlyZWN0aW9uR2V0RGlyZWN0aW9uKToKKyAgICAgICAgKFdLU3RyaW5nV2l0aERp
cmVjdGlvbklzRXF1YWwpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJl
Y3Rpb24uaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6Ojpl
bmNvZGUpOgorICAgICAgICAoQ29yZUlQQyk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogU2hhcmVkL1dlYlN0cmluZ1dpdGhEaXJlY3Rpb24uaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViU3RyaW5nV2l0aERpcmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlN0cmluZ1dpdGhEaXJlY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlN0cmluZ1dpdGhEaXJlY3Rpb246OnN0cmluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlN0cmluZ1dpdGhEaXJlY3Rpb246OldlYlN0cmluZ1dpdGhEaXJlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdHJpbmdXaXRoRGlyZWN0aW9uOjp0eXBlKToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6Cisg
ICAgICAgICogd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0wOC0yOCAgS2FuZ2ls
IEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1dLMl0gVXNlIGV4cGxp
Y2l0IGNvbnN0cnVjdG9yIGluIFBhZ2VDbGllbnRJbXBsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZDQxN2I1Zi4uNTgwNmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC0yOCw2ICsyOCw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvU2hh
cmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9X
S1N0cmluZy5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0cmluZ1ByaXZhdGUuaCBc
CisJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmggXAogCSQo
V2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVHlwZS5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkv
Yy9XS1VSTC5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaCBcCkBA
IC0zMzUsNiArMzM2LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTdHJpbmcuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0
ZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9u
LmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlv
bi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUeXBlLmNwcCBcCiAJU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVHlwZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tVUkwuY3BwIFwKQEAgLTQ5NCw2ICs0OTcsNyBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggXAogCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJTdHJpbmcuaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmlu
Z1dpdGhEaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNoRXZlbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVVJMLmggXAogCVNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggMDZhYTI4Ni4uY2ZiMjRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaApAQCAtNzMsNiArNzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NlY3Vy
aXR5T3JpZ2luKiBXS1NlY3VyaXR5T3JpZ2luUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUqIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTaXplUmVmKiBXS1NpemVSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1N0cmluZyogV0tTdHJpbmdSZWY7Cit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1N0cmluZ1dpdGhEaXJlY3Rpb24qIFdLU3RyaW5nV2l0aERpcmVjdGlv
blJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVUludDY0KiBXS1VJbnQ2NFJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJMKiBXS1VSTFJlZjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLVVJMUmVxdWVzdCogV0tVUkxSZXF1ZXN0UmVmOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDhhNzNhMDEuLjZh
MjE1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0
LmgKQEAgLTM1LDExICszNSwxMyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNsdWRl
ICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tT
dHJpbmdXaXRoRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJX
ZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViTnVt
YmVyLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nV2l0aERp
cmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgpAQCAtOTYsNiArOTgsNyBAQCBXS19BRERf
QVBJX01BUFBJTkcoV0tTZWN1cml0eU9yaWdpblJlZiwgV2ViU2VjdXJpdHlPcmlnaW4pCiBXS19B
RERfQVBJX01BUFBJTkcoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1NpemVSZWYsIFdlYlNpemUpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tTdHJpbmdSZWYsIFdlYlN0cmluZykKK1dLX0FERF9BUElfTUFQUElO
RyhXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYsIFdlYlN0cmluZ1dpdGhEaXJlY3Rpb24pCiBXS19B
RERfQVBJX01BUFBJTkcoV0tUeXBlUmVmLCBBUElPYmplY3QpCiBXS19BRERfQVBJX01BUFBJTkco
V0tVSW50NjRSZWYsIFdlYlVJbnQ2NCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlZiwgV2Vi
VVJMKQpAQCAtNzgyLDYgKzc4NSwzMiBAQCBpbmxpbmUgU25hcHNob3RPcHRpb25zIHRvU25hcHNo
b3RPcHRpb25zKFdLU25hcHNob3RPcHRpb25zIHdrU25hcHNob3RPcHRpb25zKQogICAgIHJldHVy
biBzbmFwc2hvdE9wdGlvbnM7CiB9CiAKK2lubGluZSBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIHRv
VGV4dERpcmVjdGlvbihjb25zdCBXS1RleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3
aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBrV0tUZXh0RGlyZWN0aW9uTFRSOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6TFRSOworICAgIGNhc2Uga1dLVGV4dERpcmVjdGlvblJUTDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkxUUjsKKyAgICB9Cit9CisK
K2lubGluZSBXS1RleHREaXJlY3Rpb24gdG9BUEkoY29uc3QgV2ViQ29yZTo6VGV4dERpcmVjdGlv
biBkaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIFdlYkNv
cmU6OkxUUjoKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgY2FzZSBX
ZWJDb3JlOjpSVEw6CisgICAgICAgIHJldHVybiBrV0tUZXh0RGlyZWN0aW9uUlRMOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4ga1dL
VGV4dERpcmVjdGlvbkxUUjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gV0tTaGFyZWRBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJlY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDU4YWE1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJlY3Rpb24uY3BwCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1N0
cmluZ1dpdGhEaXJlY3Rpb24uaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1N0cmluZ1dpdGhEaXJlY3Rpb25HZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJVUkw6OkFQSVR5cGUpOworfQorCitXS1N0cmlu
Z1dpdGhEaXJlY3Rpb25SZWYgV0tTdHJpbmdXaXRoRGlyZWN0aW9uQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGNvbnN0IGNoYXIqIHN0cmluZywgV0tUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAg
ICByZXR1cm4gdG9BUEkoV2ViU3RyaW5nV2l0aERpcmVjdGlvbjo6Y3JlYXRlKFN0cmluZzo6ZnJv
bVVURjgoc3RyaW5nKSwgdG9UZXh0RGlyZWN0aW9uKGRpcmVjdGlvbikpLmxlYWtSZWYoKSk7Cit9
CisKK1dLU3RyaW5nUmVmIFdLU3RyaW5nV2l0aERpcmVjdGlvbkNvcHlTdHJpbmcoV0tTdHJpbmdX
aXRoRGlyZWN0aW9uUmVmIHN0cmluZykKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBs
KHN0cmluZyktPnN0cmluZygpLnN0cmluZygpKTsKK30KKworV0tUZXh0RGlyZWN0aW9uIFdLU3Ry
aW5nV2l0aERpcmVjdGlvbkdldERpcmVjdGlvbihXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgc3Ry
aW5nKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc3RyaW5nKS0+c3RyaW5nKCkuZGlyZWN0
aW9uKCkpOworfQorCitib29sIFdLU3RyaW5nV2l0aERpcmVjdGlvbklzRXF1YWwoV0tTdHJpbmdX
aXRoRGlyZWN0aW9uUmVmIGEsIFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiBiKQoreworICAgIHJl
dHVybiB0b0ltcGwoYSktPnN0cmluZygpID09IHRvSW1wbChiKS0+c3RyaW5nKCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmZDI5MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZ1dpdGhEaXJlY3Rpb24u
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLU3RyaW5n
V2l0aERpcmVjdGlvbl9oCisjZGVmaW5lIFdLU3RyaW5nV2l0aERpcmVjdGlvbl9oCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKK2VudW0geworICAgIGtXS1RleHREaXJlY3Rpb25SVEwgPSAgMCwKKyAgICBr
V0tUZXh0RGlyZWN0aW9uTFRSID0gIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVGV4dERpcmVj
dGlvbjsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLU3RyaW5nV2l0aERpcmVjdGlvbkdldFR5cGVJ
RCgpOworCitXS19FWFBPUlQgV0tTdHJpbmdXaXRoRGlyZWN0aW9uUmVmIFdLU3RyaW5nV2l0aERp
cmVjdGlvbkNyZWF0ZVdpdGhVVEY4Q1N0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcsIFdLVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24pOworCitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tTdHJpbmdXaXRo
RGlyZWN0aW9uQ29weVN0cmluZyhXS1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYgc3RyaW5nKTsKK1dL
X0VYUE9SVCBXS1RleHREaXJlY3Rpb24gV0tTdHJpbmdXaXRoRGlyZWN0aW9uR2V0RGlyZWN0aW9u
KFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiBzdHJpbmcpOworCitXS19FWFBPUlQgYm9vbCBXS1N0
cmluZ1dpdGhEaXJlY3Rpb25Jc0VxdWFsKFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiBhLCBXS1N0
cmluZ1dpdGhEaXJlY3Rpb25SZWYgYik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvKiBXS1N0cmluZ1dpdGhEaXJlY3Rpb25faCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCmluZGV4IDcwOGVmZmUuLjdmZDM2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgICAgICBUeXBlU2VjdXJpdHlPcmln
aW4sCiAgICAgICAgIFR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWUsCiAgICAgICAgIFR5cGVTdHJp
bmcsCisgICAgICAgIFR5cGVTdHJpbmdXaXRoRGlyZWN0aW9uLAogICAgICAgICBUeXBlVVJMLAog
ICAgICAgICBUeXBlVVJMUmVxdWVzdCwKICAgICAgICAgVHlwZVVSTFJlc3BvbnNlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjYmY2
MjQ5Li40OGZhZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
dGVjdGlvblNwYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdHJpbmdXaXRoRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVz
Lmg+CkBAIC03OTcsNCArNzk4LDI1IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwKIAogI2VuZGlm
CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERp
cmVjdGlvbiYgc3RyaW5nKQoreworICAgIGVuY29kZXItPmVuY29kZUVudW0oc3RyaW5nLmRpcmVj
dGlvbigpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RyaW5nLnN0cmluZygpKTsKK30KKworYm9v
bCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiByZXN1
bHQpCit7CisgICAgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGVFbnVtKGRpcmVjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIFN0cmluZyBzdHJpbmc7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc3RyaW5nKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0ID0gV2ViQ29yZTo6U3RyaW5nV2l0aERp
cmVjdGlvbihzdHJpbmcsIGRpcmVjdGlvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgQ29yZUlQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IGIwOGYxMTguLmQ0MjZiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgU3RyaW5n
V2l0aERpcmVjdGlvbjsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiAgICAgc3Ry
dWN0IERpY3RhdGlvbkFsdGVybmF0aXZlOwogICAgIHN0cnVjdCBEcmFnU2Vzc2lvbjsKQEAgLTI1
Myw2ICsyNTQsMTAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
aWx0ZXJPcGVyYXRpb25zPiB7CiAjZW5kaWYKICNlbmRpZgogCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERp
cmVjdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJD
b3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdHJpbmdXaXRoRGlyZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nV2l0aERpcmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYTNiNjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RyaW5nV2l0aERpcmVjdGlvbi5oCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RyaW5nV2l0aERp
cmVjdGlvbl9oCisjZGVmaW5lIFdlYlN0cmluZ1dpdGhEaXJlY3Rpb25faAorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TdHJpbmdXaXRoRGlyZWN0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlN0cmluZ1dpdGhEaXJlY3Rpb24gOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVN0cmluZ1dpdGhEaXJlY3Rpb247CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTdHJpbmdXaXRoRGlyZWN0aW9uPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTdHJpbmdXaXRoRGlyZWN0aW9uKFdl
YkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24oc3RyaW5nLCBkaXJlY3Rpb24pKSk7CisgICAgfQor
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU3RyaW5nV2l0aERpcmVjdGlvbj4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mIHN0cmluZykKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViU3RyaW5nV2l0aERpcmVjdGlvbihzdHJpbmcpKTsKKyAg
ICB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiBzdHJpbmcoKSBj
b25zdCB7IHJldHVybiBtX3N0cmluZzsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlN0
cmluZ1dpdGhEaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYgc3Ry
aW5nKQorICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBXZWJDb3Jl
OjpTdHJpbmdXaXRoRGlyZWN0aW9uIG1fc3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJTdHJpbmdXaXRoRGlyZWN0aW9uX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4
IDM3MzM2NTAuLmQwOTY2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtNTUsNiArNTUsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBTaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBcCiAgICAg
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tTdHJp
bmcuaCBcCisgICAgU2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5oIFwKICAgICBT
aGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS1R5cGUu
aCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLVVJMLmggXApAQCAtNDA0LDYgKzQwNSw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIFNoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2luLmNwcCBcCiAgICAgU2hh
cmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBcCiAgICAgU2hhcmVkL0FQSS9j
L1dLU3RyaW5nLmNwcCBcCisgICAgU2hhcmVkL0FQSS9jL1dLU3RyaW5nV2l0aERpcmVjdGlvbi5j
cHAgXAogICAgIFNoYXJlZC9BUEkvYy9XS1R5cGUuY3BwIFwKICAgICBTaGFyZWQvQVBJL2MvV0tV
UkwuY3BwIFwKICAgICBTaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM4OGM2NjUuLmJlMDgwNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04NCw2ICs4NCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0cmluZ1dpdGhEaXJlY3Rpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5k
b3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yMDkxLDcgKzIwOTIsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQzMl90CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkU2FtZURvY3VtZW50
TmF2aWdhdGlvbkZvckZyYW1lKHRoaXMsIGZyYW1lLCBzdGF0aWNfY2FzdDxTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZT4ob3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpLCB1c2VyRGF0
YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRs
ZSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKQEAgLTIxMDEsOSArMjEwMiw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOwog
Ci0gICAgZnJhbWUtPmRpZENoYW5nZVRpdGxlKHRpdGxlKTsKKyAgICBmcmFtZS0+ZGlkQ2hhbmdl
VGl0bGUodGl0bGUuc3RyaW5nKCkpOwogICAgIAotICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOworICAg
IG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLnN0cmlu
ZygpLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Rmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA5YTE5YTU2Li5lN2IxNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC05OSw3ICs5OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBG
bG9hdFJlY3Q7CiAgICAgY2xhc3MgSW50U2l6ZTsKICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7
Ci0gICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CisgICAgY2xhc3MgU3RyaW5nV2l0aERp
cmVjdGlvbjsKKyAgICBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsgICAgCiAgICAgc3RydWN0
IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZTsKICAgICBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0
OwogICAgIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CkBAIC03NTAsNyArNzUxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlv
biYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAg
ICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
N2ZhODFiZS4uOTE0MDkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMzAsNyArMTMwLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVV
c2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHVu
cmVhY2hhYmxlVVJMLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKQotICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdU
Rjo6U3RyaW5nIHRpdGxlLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
IHVzZXJEYXRhKQorICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24gdGl0bGUsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkKICAgICBEaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggOGJjNzY3MC4uMDk5MTM3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCkBAIC05MCw3ICs5MCw3IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZURpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VEaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVy
cm9yLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdX
aXRoRGlyZWN0aW9uUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYq
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVu
ZGxlUGFnZURpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWREaXNw
bGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IGE2YTA2MTIuLjhiZDY2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJFcnJvci5o
IgorI2luY2x1ZGUgIldlYlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKQEAgLTE0NCwxMyArMTQ1
LDE0IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViUGFnZSoKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRv
SW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEp
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUsIFdl
YkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICgh
bV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IDA7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvQVBJKGZyYW1l
KSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBSZWZQdHI8V2Vi
U3RyaW5nV2l0aERpcmVjdGlvbj4gd2ViVGl0bGUgPSBXZWJTdHJpbmdXaXRoRGlyZWN0aW9uOjpj
cmVhdGUodGl0bGUpOworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRvQVBJ
KHBhZ2UpLCB0b0FQSSh3ZWJUaXRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwgJnVzZXJEYXRhVG9Q
YXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1w
bCh1c2VyRGF0YVRvUGFzcykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaAppbmRleCA4MWQ5YmU0Li44OGJhNGM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xh
c3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNl
UmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTdHJpbmdXaXRoRGlyZWN0
aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY1LDcgKzY2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoV2ViUGFnZSopOwogICAgIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBX
ZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9pZCBkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlKiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVj
dGlvbiYsIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lk
IGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8
QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0
YSk7CiAgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2Vi
RnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAppbmRleCBhM2MwY2MxLi5hMjdjYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNDMyLDExICs0MzIsMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGkKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKIAogICAgIC8vIE5vdGlmeSB0
aGUgYnVuZGxlIGNsaWVudC4KLSAgICAvLyBGSVhNRTogdXNlIGRpcmVjdGlvbiBvZiB0aXRsZS4K
LSAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7Cisg
ICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh3ZWJQYWdlLCB0aXRsZSwgbV9mcmFtZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90
aWZ5IHRoZSBVSVByb2Nlc3MuCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxlLnN0
cmluZygpLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkp
KTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgdGl0bGUsIEluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGFiNmVmZGMuLmE5MmFjMTAgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTEwMzgsNiArMTAzOCwxNCBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLU3Ry
aW5nV2l0aERpcmVjdGlvbi5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmdXaXRoRGlyZWN0aW9uLmgi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxT
aGFyZWRcQVBJXGNcV0tUeXBlLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCmluZGV4IGVlZTI2ODYuLmVmYTdkZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQpAQCAtMzksNiArMzksNyBAQCBh
bGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZVByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
ICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5nLmgiICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJl
ZFxBUElcY1xXS1N0cmluZ1ByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5nV2l0
aERpcmVjdGlvbi5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgog
ICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tUeXBlLmgiICIlQ29uZmlndXJhdGlv
bkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxB
UElcY1xXS1VSTC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgog
ICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVUkxSZXF1ZXN0LmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDA3NTFjYi4uMzQyMWU1MiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDEyLTA4LTI5ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50
ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBTdHJpbmdXaXRoRGlyZWN0aW9uIHR5cGUgdG8g
V0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBhIG5ldyBXS1N0cmluZ1dpdGhEaXJlY3Rpb24gdHlwZSB0byBXSzIgQyBBUEkuIAorICAg
ICAgICBXS1N0cmluZ1dpdGhEaXJlY3Rpb24gaXMgd3JhcHBpbmcgV2ViQ29yZTo6U3RyaW5nV2l0
aERpcmVjdGlvbiBvYmplY3QgdGhhdAorICAgICAgICBjYXJyaWVzIGEgU3RyaW5nIGFsb25nIHdp
dGggdGhlIFRleHREaXJlY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBTdHJpbmcuCisgICAgICAg
IFdLU3RyaW5nV2l0aERpcmVjdGlvbiBpcyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVz
IChpbiBIVE1MIAorICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3
aXRoIHRoZSAnZGlyJyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tTdHJpbmdXaXRoRGlyZWN0
aW9uIHR5cGUgd2FzIGZpcnN0IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkUmVjZWl2ZVRpdGxlKCkKKyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1bmRsZSBjbGllbnQg
YW5kIFVJIHByb2Nlc3Mgd2l0aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKyAgICAgICAgQWxz
byBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBhc3Npbmcgb2Yg
c2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRlc3RSdW5uZXIu
dGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKTogVXBkYXRlZCB0byBhY2NlcHQgV0tT
dHJpbmdXaXRoRGlyZWN0aW9uLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2Up
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvU3RyaW5nRnVuY3Rpb25zLmg6CisgICAgICAg
IChXVFI6OnRvV1RGU3RyaW5nKTogQSBmdW5jdGlvbiB0byBnZXQgV1RGOjpTdHJpbmcgZnJvbSBX
S1N0cmluZ1dpdGhEaXJlY3Rpb25SZWYuCisgICAgICAgIChXVFIpOgorCiAyMDEyLTA4LTI4ICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBjci1ld3MgYm90IGRvZXNu
J3Qgc2V0IENXRCBjb3JyZWN0bHkgd2hlbiB6aXBwaW5nIGxheW91dCB0ZXN0IHJlc3VsdHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCA3ZDJjYjk4Li5mNGQ5MTc1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUK
ICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSktPmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoZnJhbWUsIGVycm9yKTsK
IH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdXaXRoRGlyZWN0aW9uUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S1R5cGVSZWYqLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0PElu
amVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodGl0bGUsIGZyYW1lKTsKIH0KQEAgLTk0Miw3ICs5NDIsNyBAQCB2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5kb25l
KCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1dpdGhEaXJlY3Rp
b25SZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CiAgICAgaWYgKCFJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuaAppbmRleCAwNzQzMTRlLi5hODQxNWQwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQ
cm9ncmVzcyhXS0J1bmRsZVBhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYsICBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYs
IFdLRXJyb3JSZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBk
aWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxl
LCBXS0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1dp
dGhEaXJlY3Rpb25SZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYsIFdLVHlwZVJlZiosIGNvbnN0
IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiwgY29uc3Qg
dm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3Rh
dGljIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBk
YXRlLCBjb25zdCB2b2lkKik7CkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRGaW5p
c2hQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1
bmRsZUZyYW1lUmVmLCBXS0Vycm9yUmVmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nV2l0aERpcmVjdGlvblJlZiB0aXRsZSwgV0tCdW5k
bGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJh
bWVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIHdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRv
dWJsZSBkZWxheSwgZG91YmxlIGRhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9TdHJpbmdGdW5jdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvU3RyaW5nRnVu
Y3Rpb25zLmgKaW5kZXggMTI5ZTdiZS4uNWQ4YTQzMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9TdHJpbmdGdW5jdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1N0cmluZ0Z1bmN0aW9ucy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLU3RyaW5nUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmdXaXRo
RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9P
d25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duQXJyYXlQdHIuaD4KQEAgLTkxLDYg
KzkyLDEyIEBAIGlubGluZSBXVEY6OlN0cmluZyB0b1dURlN0cmluZyhjb25zdCBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4mIHN0cmluZykKICAgICByZXR1cm4gdG9XVEZTdHJpbmcoc3RyaW5nLmdl
dCgpKTsKIH0KIAoraW5saW5lIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nKFdLU3RyaW5nV2l0aERp
cmVjdGlvblJlZiBzdHJpbmcpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN0cmlu
Z1JlZiA9IGFkb3B0V0soV0tTdHJpbmdXaXRoRGlyZWN0aW9uQ29weVN0cmluZyhzdHJpbmcpKTsK
KyAgICByZXR1cm4gdG9XVEZTdHJpbmcoc3RyaW5nUmVmKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V1RSCiAKICNlbmRpZiAvLyBTdHJpbmdGdW5jdGlvbnNfaAo=
</data>
<flag name="review"
          id="171923"
          type_id="1"
          status="-"
          setter="mitz"
    />
    <flag name="commit-queue"
          id="171932"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161446</attachid>
            <date>2012-08-30 05:19:12 -0700</date>
            <delta_ts>2012-08-30 05:19:35 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug95303_v2</filename>
            <type>text/plain</type>
            <size>22623</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDY4NTgzNzliN2FkMTNiN2ZkZTk2Y2Q5OWM1NGYzZmFhNWI5ZTFmYTEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAzMCAxNDo1MzoyNSAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjIwYTdiZS4uNzA2OGQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwyMyArMSwzOCBAQAotMjAxMi0w
OC0yOSAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CisyMDEyLTA4LTMwICBN
aWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCi0gICAg
ICAgIFtFRkxdW1dLMl0gUmVwbGFjZSBQYWdlQ2xpZW50SW1wbCB3aXRoIGV3ayB2aWV3IGluIGNv
bnN0cnVjdG9yIG9mIEVmbFZpZXdwb3J0SGFuZGxlci4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDA4CisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0
aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NTMwMwogCi0gICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKLSAgICAgICAgVG8ga2VlcCBjb25zaXN0
ZW5jeSBvZiBpbXBsZW1lbnRhdGlvbiwgZGVyaXZlZCBjbGFzc2VzKGZyb20gZXdrIHZpZXcpIHNo
b3VsZCBoYXZlIHZpZXcgcmVmZXJlbmNlLgotICAgICAgICBGcm9tIHRoaXMsIGRlcml2ZWQgY2xh
c3NlcyB3b3VsZCBoYXZlIGxlc3MgaW50ZXJmZXJlbmNlIGZyb20gY2hhbmdlcyB0aGF0IHdvdWxk
IGhhcHBlbiBpbiBwb3J0IHNwZWNpZmljIGNsYXNzZXMsIGkuZS4gUGFnZUNsaWVudEltcGwuCisg
ICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHREaXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBD
IEFQSS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4
dERpcmVjdGlvbiBlbnVtLgorICAgICAgICBXS1RleHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBm
b3IgZG9jdW1lbnRzIHRpdGxlcyAoaW4gSFRNTAorICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEg
dGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGlyJyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUg
V0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkKKyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1
bmRsZSBjbGllbnQgYW5kIFVJIHByb2Nlc3Mgd2l0aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4K
KyAgICAgICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9y
IHBhc3Npbmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9u
IHRlc3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgogCi0gICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvRWZsVmlld3BvcnRIYW5kbGVyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWZsVmlld3Bv
cnRIYW5kbGVyOjpFZmxWaWV3cG9ydEhhbmRsZXIpOgotICAgICAgICAoV2ViS2l0OjpFZmxWaWV3
cG9ydEhhbmRsZXI6OmRyYXdpbmdBcmVhKToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdl
YktpdDo6dG9BUEkpOgogICAgICAgICAoV2ViS2l0KToKLSAgICAgICAgKFdlYktpdDo6RWZsVmll
d3BvcnRIYW5kbGVyOjp1cGRhdGVWaWV3cG9ydFNpemUpOgotICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL0VmbFZpZXdwb3J0SGFuZGxlci5oOgotICAgICAgICAoV2ViS2l0OjpFZmxWaWV3cG9y
dEhhbmRsZXI6OmNyZWF0ZSk6Ci0gICAgICAgIChFZmxWaWV3cG9ydEhhbmRsZXIpOgotICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKLSAgICAgICAgKF9ld2tfdmlld19p
bml0aWFsaXplKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAqIHdpbi9XZWJLaXQy
LnZjcHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgogCiAyMDEyLTA4
LTI5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ0MTdiNWYuLjkzZWRkYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjgsNiArMjgsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkk
KFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTdHJp
bmdQcml2YXRlLmggXAorCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlvbi5o
IFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1R5cGUuaCBcCiAJJChXZWJLaXQyKS9TaGFy
ZWQvQVBJL2MvV0tVUkwuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0
LmggXApAQCAtMzM1LDYgKzMzNiw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLU3RyaW5nLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmlu
Z1ByaXZhdGUuaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlv
bi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUeXBlLmNwcCBcCiAJU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVHlwZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tVUkwuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaAppbmRleCA4YTczYTAxLi42OGRjZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiV0tHZW9tZXRyeS5oIgogI2luY2x1ZGUgIldLSW1hZ2UuaCIKICNpbmNsdWRlICJXS1BhZ2VM
b2FkVHlwZXMuaCIKKyNpbmNsdWRlICJXS1RleHREaXJlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJF
cnJvci5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMu
aCIKQEAgLTQ3LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50
UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9UeXBlVHJhaXRzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzgyLDYgKzc4NCwxOSBA
QCBpbmxpbmUgU25hcHNob3RPcHRpb25zIHRvU25hcHNob3RPcHRpb25zKFdLU25hcHNob3RPcHRp
b25zIHdrU25hcHNob3RPcHRpb25zKQogICAgIHJldHVybiBzbmFwc2hvdE9wdGlvbnM7CiB9CiAK
K2lubGluZSBXS1RleHREaXJlY3Rpb24gdG9BUEkoV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24pCit7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIFdlYkNvcmU6OkxU
UjoKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgY2FzZSBXZWJDb3Jl
OjpSVEw6CisgICAgICAgIHJldHVybiBrV0tUZXh0RGlyZWN0aW9uUlRMOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4ga1dLVGV4dERp
cmVjdGlvbkxUUjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gV0tTaGFyZWRBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1RleHREaXJlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1Rl
eHREaXJlY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGYwNWU3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVGV4dERp
cmVjdGlvbi5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tUZXh0RGlyZWN0aW9uX2gKKyNkZWZpbmUgV0tUZXh0RGlyZWN0aW9uX2gKKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tUZXh0RGly
ZWN0aW9uUlRMID0gIDAsCisgICAga1dLVGV4dERpcmVjdGlvbkxUUiA9ICAxCit9OwordHlwZWRl
ZiB1aW50MzJfdCBXS1RleHREaXJlY3Rpb247CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2Vu
ZGlmCisKKyNlbmRpZiAvKiBXS1RleHREaXJlY3Rpb25faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ODgxZWIyLi5kYzcyODYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjA5MSw3ICsyMDkxLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRh
dGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgdWludDMyX3Qg
LypvcGFxdWVUaXRsZURpcmVjdGlvbiovLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwpAQCAtMjEwMCw3ICsyMTAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUKIAogICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKLQorICAgIC8vIEZJWE1FOiB1c2UgdGl0bGUgZGlyZWN0
aW9uLgogICAgIGZyYW1lLT5kaWRDaGFuZ2VUaXRsZSh0aXRsZSk7CiAgICAgCiAgICAgbV9sb2Fk
ZXJDbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGhpcywgdGl0bGUsIGZyYW1lLCB1c2Vy
RGF0YS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
OWExOWE1Ni4uMjg4YjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
Q2hlY2tpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgpAQCAtNzUwLDcgKzc1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAg
ICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYsIHVpbnQzMl90IHRpdGxlRGlyZWN0aW9uLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdmYTgxYmUuLjQxNGI5MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMTMwLDcgKzEzMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV1RGOjpTdHJpbmcgdXJsLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVz
ZXJEYXRhKQogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmluZyB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKLSAgICBEaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB0aXRsZSwgV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKKyAgICBEaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB0aXRsZSwg
dWludDMyX3QgdGl0bGVEaXJlY3Rpb24sIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29k
ZXIgdXNlckRhdGEpCiAgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0
YSkKICAgICBEaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmgKaW5kZXggOGJjNzY3MC4uNTQ0YmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0ZpbmRPcHRpb25zLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VM
b2FkVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlvbi5oPgogCiAjaWZu
ZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtOTAsNyArOTEsNyBAQCB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmlu
aXNoUHJvZ3Jlc3NDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmFpbExvYWRXaXRoRXJy
b3JGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSwgV0tU
eXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJl
Y3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVtb3Zl
RnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYTZhMDYxMi4uYjFl
MjFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcApAQCAtMTQ0LDEzICsxNDQsMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQ6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlKgogICAgIHVz
ZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAKLXZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQ
YWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0cjxB
UElPYmplY3Q+JiB1c2VyRGF0YSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXZWJGcmFtZSogZnJh
bWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIW1fY2xpZW50LmRp
ZFJlY2VpdmVUaXRsZUZvckZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBXS1R5cGVSZWYg
dXNlckRhdGFUb1Bhc3MgPSAwOwotICAgIG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KHRvQVBJKHBhZ2UpLCB0b0FQSSh0aXRsZS5pbXBsKCkpLCB0b0FQSShmcmFtZSksICZ1c2VyRGF0
YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvQVBJKHRpdGxl
RGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVu
dEluZm8pOwogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDgxZDliZTQuLjM3YTUyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RGlyZWN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NjUsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXZWJQYWdl
Kik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2UqLCBXZWJG
cmFtZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBSZWZQdHI8QVBJT2JqZWN0PiYg
dXNlckRhdGEpOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdl
YlBhZ2UqLCBXZWJGcmFtZSosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBSZWZQdHI8QVBJ
T2JqZWN0PiYgdXNlckRhdGEpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2Vi
UGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJE
YXRhKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2UqLCBjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmpl
Y3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2Vi
UGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lk
IGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBS
ZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJE
YXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYTNjMGNjMS4uNWZj
OGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQzMiwxMSArNDMy
LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxl
KGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNl
ckRhdGE7CiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCi0gICAgLy8gRklYTUU6
IHVzZSBkaXJlY3Rpb24gb2YgdGl0bGUuCi0gICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2Fk
ZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh3ZWJQYWdlLCB0aXRsZS5zdHJpbmco
KSwgbV9mcmFtZSwgdXNlckRhdGEpOworICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVy
Q2xpZW50KCkuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUod2ViUGFnZSwgdGl0bGUuc3RyaW5nKCks
IHRpdGxlLmRpcmVjdGlvbigpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CiAKICAgICAvLyBOb3RpZnkg
dGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgdGl0bGUuc3RyaW5n
KCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwor
ICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCB0aXRsZS5zdHJpbmcoKSwgdGl0bGUuZGlyZWN0
aW9uKCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkp
OwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZUljb25z
KFdlYkNvcmU6Okljb25UeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGFiNmVm
ZGMuLjA0YTBjOGQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTEwMzgsNiArMTAz
OCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXEFQSVxjXFdLVGV4dERpcmVjdGlvbi5oIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5j
cHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkdlbmVyYXRlZC5tYWtlIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0
ZWQubWFrZQppbmRleCA2MGQ0NmVlLi4zZGQzZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyR2VuZXJhdGVkLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9k
ICIuLlxTaGFyZWRcQVBJXGNcV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmgiICIlQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4u
XFNoYXJlZFxBUElcY1xXS1N0cmluZy5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVk
ZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmdQcml2
YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNv
cHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1RleHREaXJlY3Rpb24uaCIgIiVDb25maWd1cmF0
aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVk
XEFQSVxjXFdLVHlwZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQy
IgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVUkwuaCIgIiVDb25maWd1cmF0
aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVk
XEFQSVxjXFdLVVJMUmVxdWVzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxX
ZWJLaXQyIgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDgzODE1ZDIuLjY5ZDliZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0wOC0zMCAgTWlraGFpbCBQb3pk
bnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBU
ZXh0IGRpcmVjdGlvbiBBUEkgZm9yIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTUzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgV0tUZXh0RGlyZWN0aW9uIGVudW0gdHlw
ZSB0byBXSzIgQyBBUEkuIAorICAgICAgICBXS1RleHREaXJlY3Rpb24gaXMgc2ltaWxhciB0byBX
ZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4dERpcmVjdGlvbiBpcyB0
byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MIAorICAgICAgICB0aGUgZGly
ZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGlyJyBhdHRyaWJ1dGUpLgor
ICAgICAgICBUaGUgV0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0IHVzZWQgaW4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkKKyAgICAgICAgdG8gcHJv
dmlkZSBib3RoIEJ1bmRsZSBjbGllbnQgYW5kIFVJIHByb2Nlc3Mgd2l0aCB0aGUgdGV4dCBkaXJl
Y3Rpb24gaW5mby4KKyAgICAgICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBu
ZWNlc3NhcnkgZm9yIHBhc3Npbmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdU
UiByZWx5aW5nIG9uIHRlc3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlKToKKwogMjAxMi0wOC0yOSAg
WmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFJhbmRvbSB0
ZXN0LXdlYmtpdHB5IGZhaWx1cmVzIG9uIHRoZSBidWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCmluZGV4IDdkMmNiOTguLjlmYjZjYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAg
LTYzMSw5ICs2MzEsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdQogICAgIHN0YXRpY19jYXN0
PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShmcmFtZSwgZXJyb3IpOwogfQogCi12b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYq
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRs
ZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0
PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUodGl0bGUsIGZyYW1lKTsKKyAgICBzdGF0aWNfY2FzdDxJbmpl
Y3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHRpdGxlLCB0aXRsZURpcmVjdGlvbiwgZnJhbWUpOwogfQogCiB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3
b3JsZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKQEAgLTk0Miw4ICs5NDIsOSBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5kb25lKCk7CiB9
CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0
cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tUZXh0
RGlyZWN0aW9uIC8qdGl0bGVEaXJlY3Rpb24qLywgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKIHsK
KyAgICAvLyBGSVhNRSA6IHVzZSBkaXJlY3Rpb24gb2YgdGl0bGUuCiAgICAgaWYgKCFJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5oCmluZGV4IDA3NDMxNGUuLjk3ZjU2YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlz
aFByb2dyZXNzKFdLQnVuZGxlUGFnZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lk
IGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVG
cmFtZVJlZiwgIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJl
ZiwgV0tFcnJvclJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwotICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0
bGUsIFdLQnVuZGxlRnJhbWVSZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVS
ZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDbGVhcldp
bmRvd0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tCdW5kbGVT
Y3JpcHRXb3JsZFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENhbmNlbENs
aWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBk
b3VibGUgZGVsYXksIGRvdWJsZSBkYXRlLCBjb25zdCB2b2lkKik7CkBAIC04Nyw3ICs4Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
Zik7CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0Vycm9yUmVmKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1l
UmVmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxl
LCBXS1RleHREaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkQ2xlYXJX
aW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmKTsK
ICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
Zik7CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVG
cmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161449</attachid>
            <date>2012-08-30 05:28:43 -0700</date>
            <delta_ts>2012-08-30 12:21:55 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug95303_v2</filename>
            <type>text/plain</type>
            <size>21563</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGMzYTcwOGRhNzIwZDVkYjIyMzQ4MjJmOTUyZmVhMGQ4MzkxNDQ0OTYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAzMCAxNDo1MzoyNSAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjIwYTdiZS4uMGFjM2IxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA4
LTMwICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHRE
aXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9u
IGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBlbnVtLgorICAgICAgICBXS1Rl
eHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9jdW1lbnRzIHRpdGxlcyAoaW4gSFRNTAor
ICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGly
JyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0
IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkK
KyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1bmRsZSBjbGllbnQgYW5kIFVJIHByb2Nlc3Mgd2l0
aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKyAgICAgICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJl
Y3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBhc3Npbmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2Vz
CisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRlc3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9u
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52
Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0wOC0y
OSAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1b
V0syXSBSZXBsYWNlIFBhZ2VDbGllbnRJbXBsIHdpdGggZXdrIHZpZXcgaW4gY29uc3RydWN0b3Ig
b2YgRWZsVmlld3BvcnRIYW5kbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZDQxN2I1Zi4uOTNlZGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yOCw2
ICsyOCw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwK
IAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0cmluZ1ByaXZhdGUuaCBcCisJJChXZWJLaXQy
KS9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQ
SS9jL1dLVHlwZS5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1VSTC5oIFwKIAkkKFdl
YktpdDIpL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaCBcCkBAIC0zMzUsNiArMzM2LDcgQEAg
d2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJp
bmcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1R5cGUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tU
eXBlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDhhNzNhMDEu
LjY4ZGNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElD
YXN0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXS0dlb21ldHJ5LmgiCiAjaW5jbHVk
ZSAiV0tJbWFnZS5oIgogI2luY2x1ZGUgIldLUGFnZUxvYWRUeXBlcy5oIgorI2luY2x1ZGUgIldL
VGV4dERpcmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnQuaCIKICNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgpAQCAtNDcsNiArNDgsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
clR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC03ODIsNiArNzg0LDE5IEBAIGlubGluZSBTbmFwc2hvdE9wdGlvbnMg
dG9TbmFwc2hvdE9wdGlvbnMoV0tTbmFwc2hvdE9wdGlvbnMgd2tTbmFwc2hvdE9wdGlvbnMpCiAg
ICAgcmV0dXJuIHNuYXBzaG90T3B0aW9uczsKIH0KIAoraW5saW5lIFdLVGV4dERpcmVjdGlvbiB0
b0FQSShXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGRp
cmVjdGlvbikgeworICAgIGNhc2UgV2ViQ29yZTo6TFRSOgorICAgICAgICByZXR1cm4ga1dLVGV4
dERpcmVjdGlvbkxUUjsKKyAgICBjYXNlIFdlYkNvcmU6OlJUTDoKKyAgICAgICAgcmV0dXJuIGtX
S1RleHREaXJlY3Rpb25SVEw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBrV0tUZXh0RGlyZWN0aW9uTFRSOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZjA1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS1RleHREaXJlY3Rpb25faAorI2RlZmlu
ZSBXS1RleHREaXJlY3Rpb25faAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK2VudW0geworICAgIGtXS1RleHREaXJlY3Rpb25SVEwgPSAgMCwKKyAgICBrV0tU
ZXh0RGlyZWN0aW9uTFRSID0gIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVGV4dERpcmVjdGlv
bjsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLVGV4dERp
cmVjdGlvbl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDk4ODFlYjIuLmRjNzI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0yMDkxLDcgKzIwOTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90CiAg
ICAgbV9sb2FkZXJDbGllbnQuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHRoaXMs
IGZyYW1lLCBzdGF0aWNfY2FzdDxTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZT4ob3BhcXVlU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1aW50MzJfdCAvKm9wYXF1ZVRpdGxlRGlyZWN0aW9uKi8s
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CkBAIC0yMTAwLDcgKzIxMDAsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOwot
CisgICAgLy8gRklYTUU6IHVzZSB0aXRsZSBkaXJlY3Rpb24uCiAgICAgZnJhbWUtPmRpZENoYW5n
ZVRpdGxlKHRpdGxlKTsKICAgICAKICAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh0aGlzLCB0aXRsZSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5YTE5YTU2Li5kMGExYTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NTAsNyArNzUwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgdWludDMyX3QgdGl0bGVEaXJl
Y3Rpb24sIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
ICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggN2ZhODFiZS4uNDE0YjkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMzAsNyArMTMwLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkUmVtb3Zl
RnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5n
IHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
IHVzZXJEYXRhKQotICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFdURjo6U3RyaW5nIHRpdGxlLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyIHVzZXJEYXRhKQorICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIFdURjo6U3RyaW5nIHRpdGxlLCB1aW50MzJfdCB0aXRsZURpcmVjdGlvbiwgV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRSdW5JbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNl
ckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA4YmM3NjcwLi41NDRiZmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxX
ZWJLaXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLSW1hZ2UuaD4KICNp
bmNsdWRlIDxXZWJLaXQyL1dLUGFnZUxvYWRUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tU
ZXh0RGlyZWN0aW9uLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxzdGRib29s
Lmg+CkBAIC05MCw3ICs5MSw3IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlCiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRs
ZVBhZ2VEaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVS
ZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZUNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZSB0eXBlLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZy
YW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdL
VGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDYWxsYmFjaykoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
RGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcAppbmRleCBhNmEwNjEyLi5iMWUyMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0xNDQsMTMgKzE0NCwxMyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKFdlYlBhZ2UqCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFU
b1Bhc3MpKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdl
YkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQordm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2Uq
IHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdGl0bGVE
aXJlY3Rpb24sIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQog
ewogICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IDA7Ci0gICAgbV9jbGllbnQu
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSks
IHRvQVBJKGZyYW1lKSwgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAg
ICBtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0
bGUuaW1wbCgpKSwgdG9BUEkodGl0bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFtZSksICZ1c2VyRGF0
YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0
b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggODFkOWJlNC4uMzdhNTIyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXS0J1
bmRsZVBhZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZEZpbmlzaFByb2dyZXNzKFdlYlBhZ2UqKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqLCBS
ZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdl
YkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0
PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAg
dm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBS
ZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCBhM2MwY2MxLi41ZmM4Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtNDMyLDExICs0MzIsMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGkKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxl
IGNsaWVudC4KLSAgICAvLyBGSVhNRTogdXNlIGRpcmVjdGlvbiBvZiB0aXRsZS4KLSAgICB3ZWJQ
YWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CisgICAgd2ViUGFn
ZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh3
ZWJQYWdlLCB0aXRsZS5zdHJpbmcoKSwgdGl0bGUuZGlyZWN0aW9uKCksIG1fZnJhbWUsIHVzZXJE
YXRhKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUobV9mcmFtZS0+
ZnJhbWVJRCgpLCB0aXRsZS5zdHJpbmcoKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29k
ZXIodXNlckRhdGEuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxl
LnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKaW5kZXggYWI2ZWZkYy4uMDRhMGM4ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagpAQCAtMTAzOCw2ICsxMDM4LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tUZXh0RGlyZWN0aW9u
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcQVBJXGNcV0tUeXBlLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCmluZGV4IDYwZDQ2ZWUuLjNkZDNkNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKKysrIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQpAQCAtMzksNiArMzksNyBA
QCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZVByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0
MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5nLmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xXS1N0cmluZ1ByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVGV4dERp
cmVjdGlvbi5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tUeXBlLmgiICIlQ29uZmlndXJhdGlvbkJ1
aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElc
Y1xXS1VSTC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVUkxSZXF1ZXN0LmgiICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODM4MTVkMi4uNjlkOWJmMiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisy
MDEyLTA4LTMwICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgorCisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBX
S1RleHREaXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4gCisgICAgICAgIFdLVGV4dERp
cmVjdGlvbiBpcyBzaW1pbGFyIHRvIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZW51bS4KKyAgICAg
ICAgV0tUZXh0RGlyZWN0aW9uIGlzIHRvIGJlIHVzZWQgZm9yIGRvY3VtZW50cyB0aXRsZXMgKGlu
IEhUTUwgCisgICAgICAgIHRoZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGgg
dGhlICdkaXInIGF0dHJpYnV0ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3
YXMgZmlyc3QgdXNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
VGl0bGUoKQorICAgICAgICB0byBwcm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJv
Y2VzcyB3aXRoIHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBBbHNvIGhhdmluZyB0
ZXh0IGRpcmVjdGlvbiBpbmZvIGlzIG5lY2Vzc2FyeSBmb3IgcGFzc2luZyBvZiBzZXZlcmFsIHRl
c3QgY2FzZXMKKyAgICAgICAgaW4gV1RSIHJlbHlpbmcgb24gdGVzdFJ1bm5lci50aXRsZVRleHRE
aXJlY3Rpb24uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRs
ZVBhZ2UpOgorCiAyMDEyLTA4LTI5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5j
b20+CiAKICAgICAgICAgUmFuZG9tIHRlc3Qtd2Via2l0cHkgZmFpbHVyZXMgb24gdGhlIGJ1aWxk
Ym90CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggN2QyY2I5OC4uOWZiNmNiNCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtNjMxLDkgKzYzMSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKGZyYW1lLCBl
cnJvcik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24s
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJhbWUp
OworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGl0bGUsIHRpdGxlRGlyZWN0
aW9uLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGVhcldpbmRv
d0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQpAQCAt
OTQyLDggKzk0Miw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZFdpdGhF
cnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLCiAgICAgSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmRvbmUoKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdL
U3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gLyp0aXRsZURpcmVjdGlvbiovLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lKQogeworICAgIC8vIEZJWE1FIDogdXNlIGRpcmVjdGlvbiBvZiB0
aXRsZS4KICAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5pc1Rlc3RSdW5uaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggMDc0MzE0ZS4uOTdm
NTZhMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoV0tCdW5kbGVQYWdlUmVmLCBjb25zdCB2
b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCAgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCop
OwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0Vycm9yUmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2
b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwg
Y29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdL
QnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURp
cmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwogICAg
IHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1
bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2b2lkKik7CiAgICAg
c3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZy
YW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0IHZv
aWQqKTsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExvYWRG
b3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7
CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYs
IFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdS
ZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJl
Zik7CiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYsIFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYpOwogICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxh
eSwgZG91YmxlIGRhdGUpOwo=
</data>
<flag name="review"
          id="172262"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="172274"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161530</attachid>
            <date>2012-08-30 12:21:55 -0700</date>
            <delta_ts>2012-08-31 09:10:53 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug95303_v3</filename>
            <type>text/plain</type>
            <size>17576</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDc2NWE5OGI0MDUwMmFkMmRlZTM5ZTJiNmViNzJkOTBjMGViZGNjM2MKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAzMCAyMjoyMDoxMiAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYjljNTNkNy4uNmRmZDVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4
LTMwICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHRE
aXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9u
IGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBlbnVtLgorICAgICAgICBXS1Rl
eHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9jdW1lbnRzIHRpdGxlcyAoaW4gSFRNTAor
ICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGly
JyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0
IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkK
KyAgICAgICAgdG8gcHJvdmlkZSBCdW5kbGUgY2xpZW50IHdpdGggdGhlIHRleHQgZGlyZWN0aW9u
IGluZm8uCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0aW9uIGluZm8gaXMgbmVjZXNz
YXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcworICAgICAgICBpbiBXVFIgcmVs
eWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5o
OgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAqIHdpbi9XZWJLaXQy
LnZjcHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorCiAyMDEyLTA4
LTMwICBNaWtlIFNpZXJyYSAgPG1pa2Uuc2llcnJhQG5va2lhLmNvbT4KIAogICAgICAgICBbUVRd
W1dLMl0gd2VidmlldyBBUEkgZG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBk
NDE3YjVmLi45M2VkZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4LDYg
KzI4LDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmggXAog
CSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIp
L1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJ
L2MvV0tUeXBlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQoV2Vi
S2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsNyBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmlu
Zy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLVHlwZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5
cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggOGE3M2EwMS4u
NjhkY2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVk
QVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNsdWRl
ICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tU
ZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTc4Miw2ICs3ODQsMTkgQEAgaW5saW5lIFNuYXBzaG90T3B0aW9ucyB0
b1NuYXBzaG90T3B0aW9ucyhXS1NuYXBzaG90T3B0aW9ucyB3a1NuYXBzaG90T3B0aW9ucykKICAg
ICByZXR1cm4gc25hcHNob3RPcHRpb25zOwogfQogCitpbmxpbmUgV0tUZXh0RGlyZWN0aW9uIHRv
QVBJKFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tUZXh0
RGlyZWN0aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICByZXR1cm4ga1dL
VGV4dERpcmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9oCisjZGVmaW5l
IFdLVGV4dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAorICAgIGtXS1Rl
eHREaXJlY3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0RGlyZWN0aW9u
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tUZXh0RGly
ZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDhiYzc2NzAuLjU0NGJm
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPFdlYktpdDIvV0tGaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tJbWFnZS5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlTG9hZFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1RleHREaXJlY3Rpb24uaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1cwogI2luY2x1ZGUgPHN0
ZGJvb2wuaD4KQEAgLTkwLDcgKzkxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmUKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZpbmlzaFByb2dyZXNzQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZURpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxl
LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRs
ZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZURpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRs
ZVBhZ2VEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlk
UnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwCmluZGV4IGE2YTA2MTIuLmIxZTIxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTE0NCwxMyArMTQ0LDEzIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUoV2ViUGFnZSoKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1c2Vy
RGF0YVRvUGFzcykpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2Vi
UGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiB0
aXRsZURpcmVjdGlvbiwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRh
dGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKLSAgICBtX2Ns
aWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1w
bCgpKSwgdG9BUEkoZnJhbWUpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8p
OworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQ
SSh0aXRsZS5pbXBsKCkpLCB0b0FQSSh0aXRsZURpcmVjdGlvbiksIHRvQVBJKGZyYW1lKSwgJnVz
ZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFkb3B0
UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAppbmRleCA4MWQ5YmU0Li4zN2E1MjIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgogI2luY2x1ZGUg
IldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY1LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkRmluaXNoUHJvZ3Jlc3MoV2ViUGFnZSopOwogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFt
ZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlv
biwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlk
UmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElP
YmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsK
ICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFt
ZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCmluZGV4IGEzYzBjYzEuLmY4NDA5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC00MzIsOCArNDMyLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGkK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVu
ZGxlIGNsaWVudC4KLSAgICAvLyBGSVhNRTogdXNlIGRpcmVjdGlvbiBvZiB0aXRsZS4KLSAgICB3
ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CisgICAgd2Vi
UGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh3ZWJQYWdlLCB0aXRsZS5zdHJpbmcoKSwgdGl0bGUuZGlyZWN0aW9uKCksIG1fZnJhbWUsIHVz
ZXJEYXRhKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogICAgIHdlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUobV9mcmFt
ZS0+ZnJhbWVJRCgpLCB0aXRsZS5zdHJpbmcoKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXgg
YWI2ZWZkYy4uMDRhMGM4ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTAzOCw2
ICsxMDM4LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tUZXh0RGlyZWN0aW9uLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tU
eXBlLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mkdl
bmVyYXRlZC5tYWtlCmluZGV4IDYwZDQ2ZWUuLjNkZDNkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJHZW5lcmF0ZWQubWFrZQpAQCAtMzksNiArMzksNyBAQCBhbGw6CiAgICAgeGNvcHkg
L3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCIg
IiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAv
ZCAiLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5nLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxp
bmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1N0cmlu
Z1ByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAg
ICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVGV4dERpcmVjdGlvbi5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxT
aGFyZWRcQVBJXGNcV0tUeXBlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1VSTC5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxT
aGFyZWRcQVBJXGNcV0tVUkxSZXF1ZXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNs
dWRlXFdlYktpdDIiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMGQxMjI3My4uODc2ZmEyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEyLTA4LTMwICBNaWtoYWls
IFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCisgICAgICAgIFtX
SzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHREaXJlY3Rpb24gZW51
bSB0eXBlIHRvIFdLMiBDIEFQSS4gCisgICAgICAgIFdLVGV4dERpcmVjdGlvbiBpcyBzaW1pbGFy
IHRvIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZW51bS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9u
IGlzIHRvIGJlIHVzZWQgZm9yIGRvY3VtZW50cyB0aXRsZXMgKGluIEhUTUwgCisgICAgICAgIHRo
ZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXInIGF0dHJpYnV0
ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3QgdXNlZCBpbiBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQorICAgICAgICB0
byBwcm92aWRlIEJ1bmRsZSBjbGllbnQgd2l0aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKyAg
ICAgICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBh
c3Npbmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRl
c3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAg
ICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlKToKKworMjAxMi0wOC0zMCAgTWlraGFpbCBQb3pkbnlh
a292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKwogICAgICAgICBbV0syXVtXVFJd
IEFkZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSBk
dW1waW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTQ1NAogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggYzA3OWJmMi4uYjBmYWRjOCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtNjMxLDkgKzYzMSw5IEBAIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKGZyYW1l
LCBlcnJvcik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rp
b24sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJh
bWUpOworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGl0bGUsIHRpdGxlRGly
ZWN0aW9uLCBmcmFtZSk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGVhcldp
bmRvd0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQpA
QCAtOTUwLDggKzk1MCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZFdp
dGhFcnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLCiAgICAgSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmRvbmUoKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gLyp0aXRsZURpcmVjdGlvbiovLCBX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogeworICAgIC8vIEZJWE1FIDogdXNlIGRpcmVjdGlvbiBv
ZiB0aXRsZS4KICAgICBpZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5pc1Rlc3RSdW5uaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggMDc0MzE0ZS4u
OTdmNTZhMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoV0tCdW5kbGVQYWdlUmVmLCBjb25z
dCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCAgV0tUeXBlUmVmKiwgY29uc3Qgdm9p
ZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0Vycm9yUmVmLCBXS1R5cGVSZWYqLCBjb25z
dCB2b2lkKik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVm
KiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRs
ZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBX
S0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2b2lkKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRs
ZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0
IHZvaWQqKTsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExv
YWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNz
KCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVS
ZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJp
bmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiwgV0tCdW5kbGVGcmFt
ZVJlZik7CiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYs
IFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBk
ZWxheSwgZG91YmxlIGRhdGUpOwo=
</data>
<flag name="review"
          id="172370"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161717</attachid>
            <date>2012-08-31 09:10:53 -0700</date>
            <delta_ts>2012-08-31 14:58:44 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug95303_v4</filename>
            <type>text/plain</type>
            <size>20118</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDA2ODJiZDkxZDBlNTkwNjI3ZDAxY2U3YmI0ZDIyNTU3MGRlM2I5NzkKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIEF1ZyAzMSAxODo1MTozOCAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjIwYTdiZS4uY2M2ZWQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA4
LTMxICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHRE
aXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9u
IGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBlbnVtLgorICAgICAgICBXS1Rl
eHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9jdW1lbnRzIHRpdGxlcyAoaW4gSFRNTAor
ICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGly
JyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0
IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkK
KyAgICAgICAgdG8gcHJvdmlkZSBCdW5kbGUgY2xpZW50IHdpdGggdGhlIHRleHQgZGlyZWN0aW9u
IGluZm8uCisgICAgICAgIEEgbmV3IFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrIHdhcyBhZGRlZCB0byAKKyAgICAgICAgV0tC
dW5kbGVQYWdlIGludGVyZmFjZSwgaG93ZXZlciB0aGUgZXhpc3RpbmcgV0tCdW5kbGVQYWdlRGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjayAKKyAgICAgICAgY2FsbGJhY2sgd2FzIGtlcHQg
aW4gb3JkZXIgdG8ga2VlcCBjb21wYXRpYmlsaXR5LgorICAgICAgICBBbHNvIGhhdmluZyB0ZXh0
IGRpcmVjdGlvbiBpbmZvIGlzIG5lY2Vzc2FyeSBmb3IgcGFzc2luZyBvZiBzZXZlcmFsIHRlc3Qg
Y2FzZXMKKyAgICAgICAgaW4gV1RSIHJlbHlpbmcgb24gdGVzdFJ1bm5lci50aXRsZVRleHREaXJl
Y3Rpb24uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
cXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1
bmRsZVBhZ2U6OlF0QnVpbHRpbkJ1bmRsZVBhZ2UpOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZj
cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorCiAyMDEyLTA4LTI5
ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtX
SzJdIFJlcGxhY2UgUGFnZUNsaWVudEltcGwgd2l0aCBld2sgdmlldyBpbiBjb25zdHJ1Y3RvciBv
ZiBFZmxWaWV3cG9ydEhhbmRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBk
NDE3YjVmLi45M2VkZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4LDYg
KzI4LDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmggXAog
CSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIp
L1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJ
L2MvV0tUeXBlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQoV2Vi
S2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsNyBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmlu
Zy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLVHlwZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5
cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggOGE3M2EwMS4u
NjhkY2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVk
QVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNsdWRl
ICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tU
ZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTc4Miw2ICs3ODQsMTkgQEAgaW5saW5lIFNuYXBzaG90T3B0aW9ucyB0
b1NuYXBzaG90T3B0aW9ucyhXS1NuYXBzaG90T3B0aW9ucyB3a1NuYXBzaG90T3B0aW9ucykKICAg
ICByZXR1cm4gc25hcHNob3RPcHRpb25zOwogfQogCitpbmxpbmUgV0tUZXh0RGlyZWN0aW9uIHRv
QVBJKFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tUZXh0
RGlyZWN0aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICByZXR1cm4ga1dL
VGV4dERpcmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9oCisjZGVmaW5l
IFdLVGV4dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAorICAgIGtXS1Rl
eHREaXJlY3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0RGlyZWN0aW9u
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tUZXh0RGly
ZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDhiYzc2NzAuLmIwYzUy
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPFdlYktpdDIvV0tGaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tJbWFnZS5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlTG9hZFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1RleHREaXJlY3Rpb24uaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1cwogI2luY2x1ZGUgPHN0
ZGJvb2wuaD4KQEAgLTExMSw2ICsxMTIsOSBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VX
aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbkNhbGxiYWNrKQogdHlw
ZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9tTG9j
YWxVUkxDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lLCBXS0J1bmRsZUludGVudFJlcXVlc3RSZWYgaW50ZW50UmVxdWVzdCwgV0tUeXBl
UmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VSZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5m
b1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisvLyBTYW1lIGFzIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2Fs
bGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGlyZWN0aW9uIG9mIHRoZSB0aXRsZS4KKy8vIFdLQnVu
ZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgaXMga2VwdCBmb3IgbGVnYWN5
IHJlYXNvbnMuCit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
CiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwpAQCAtMTUzLDYgKzE1Nyw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQgewogICAgIC8vIFZlcnNpb24gMwogICAgIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVJbnRl
bnRGb3JGcmFtZTsKICAgICBXS0J1bmRsZVBhZ2VSZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlckludGVudFNlcnZpY2VGb3JG
cmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9y
RnJhbWU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IFdLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwCmluZGV4IGE2YTA2MTIuLjkzOWJlMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1NCw2ICsxNTQs
MTYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnMKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRv
SW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdGl0bGVEaXJl
Y3Rpb24sIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQorewor
ICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOworICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0b0FQSShwYWdl
KSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9BUEkodGl0bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFt
ZSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgdXNlckRhdGEg
PSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQYWdl
KiBwYWdlICwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAppbmRleCA4MWQ5YmU0Li4z
MjI3MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQmFzZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDYgKzY3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlKiwg
V2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgUmVmUHRy
PEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1
c2VyRGF0YSk7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUo
V2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdlYkZyYW1l
KiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlbW92ZUZyYW1l
RnJvbUhpZXJhcmNoeShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNl
ckRhdGEpOwogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBh
Z2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBk
aWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8
QVBJT2JqZWN0PiYgdXNlckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBhM2MwY2MxLi42YzY3ODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtNDMyLDExICs0MzIsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGkKICAgICBSZWZQ
dHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVu
dC4KLSAgICAvLyBGSVhNRTogdXNlIGRpcmVjdGlvbiBvZiB0aXRsZS4KICAgICB3ZWJQYWdlLT5p
bmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHdlYlBh
Z2UsIHRpdGxlLnN0cmluZygpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CiAKICAgICAvLyBOb3RpZnkg
dGhlIFVJUHJvY2Vzcy4KICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgdGl0bGUuc3RyaW5n
KCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwor
CisgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50IGluY2x1ZGluZyB0aXRsZSBkaXJlY3Rp
b24uCisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZl
VGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUod2ViUGFnZSwgdGl0bGUuc3RyaW5nKCksIHRpdGxl
LmRpcmVjdGlvbigpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNw
cAppbmRleCBkNWM2MGZjLi40ZDE2ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAgUXRC
dWlsdGluQnVuZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5kbGUqIGJ1
bmRsZSwgV0tCdW5kbGVQYWdlUmUKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxB
Y2Nlc3NGcm9tTG9jYWxVUkwKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
CiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIDAs
IC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tC
dW5kbGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGFiNmVmZGMuLjA0YTBjOGQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTEwMzgsNiArMTAzOCwxMCBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdL
VGV4dERpcmVjdGlvbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5jcHAiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtl
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQppbmRleCA2MGQ0NmVl
Li4zZGQzZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRl
ZC5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKQEAg
LTM5LDYgKzM5LDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxp
bmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1N0cmlu
Zy5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmdQcml2YXRlLmgiICIlQ29uZmlndXJhdGlv
bkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxB
UElcY1xXS1RleHREaXJlY3Rpb24uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxTaGFyZWRcQVBJXGNcV0tVUkwuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVVJMUmVxdWVzdC5o
IiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgzODE1ZDIuLjdjY2U1YzMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMi0wOC0zMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pk
bnlha292QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBUZXh0IGRpcmVjdGlvbiBBUEkgZm9y
IFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUz
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRy
b2R1Y2UgYSBuZXcgV0tUZXh0RGlyZWN0aW9uIGVudW0gdHlwZSB0byBXSzIgQyBBUEkuCisgICAg
ICAgIFdLVGV4dERpcmVjdGlvbiBpcyBzaW1pbGFyIHRvIFdlYkNvcmU6OlRleHREaXJlY3Rpb24g
ZW51bS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHRvIGJlIHVzZWQgZm9yIGRvY3VtZW50
cyB0aXRsZXMgKGluIEhUTUwKKyAgICAgICAgdGhlIGRpcmVjdGlvbiBvZiBhIHRpdGxlIGNhbiBi
ZSBzZXQgd2l0aCB0aGUgJ2RpcicgYXR0cmlidXRlKS4KKyAgICAgICAgVGhlIFdLVGV4dERpcmVj
dGlvbiB0eXBlIHdhcyBmaXJzdCB1c2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlY2VpdmVUaXRsZSgpCisgICAgICAgIHRvIHByb3ZpZGUgQnVuZGxlIGNsaWVudCB3aXRo
IHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBBIG5ldyBXS0J1bmRsZVBhZ2VEaWRS
ZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjayBjYWxsYmFjayB3YXMgYWRk
ZWQgdG8gCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UsIGhvd2V2ZXIgdGhlIGV4aXN0
aW5nIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgCisgICAgICAg
IGNhbGxiYWNrIHdhcyBrZXB0IGluIG9yZGVyIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4KKyAgICAg
ICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBhc3Np
bmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRlc3RS
dW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlKToKKwogMjAxMi0wOC0yOSAgWmFuIERv
YmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFJhbmRvbSB0ZXN0LXdl
YmtpdHB5IGZhaWx1cmVzIG9uIHRoZSBidWlsZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmlu
ZGV4IDdkMmNiOTguLmNkNzUwZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI4Myw3
ICsyODMsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAogICAgICAgICBk
aWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lLAogICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yRnJhbWUsCi0gICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAorICAgICAg
ICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJzdExh
eW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeQpAQCAt
MzA0LDcgKzMwNCw4IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywgLy8gZGlkRmlu
aXNoUHJvZ3Jlc3MKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9t
TG9jYWxVUkwKICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lLCAvLyBkaWRSZWNlaXZl
SW50ZW50Rm9yRnJhbWUKLSAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUgLy8g
cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2
aWNlRm9yRnJhbWUsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIGRp
ZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQ
YWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCkBAIC02MzEs
OSArNjMyLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKICAgICBzdGF0aWNfY2FzdDxJbmpl
Y3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZhaWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoZnJhbWUsIGVycm9yKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZl
VGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgc3Rh
dGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJhbWUpOworICAgIHN0YXRpY19j
YXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHRpdGxlLCB0aXRsZURpcmVjdGlv
biwgZnJhbWUpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tC
dW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKQEAgLTk0
Miw4ICs5NDMsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRoRXJy
b3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5kb25lKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFt
ZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9u
Rm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiAvKnRpdGxlRGlyZWN0
aW9uKi8sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CisgICAgLy8gRklYTUUgOiB1c2UgZGly
ZWN0aW9uIG9mIHRpdGxlLgogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlzVGVz
dFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAw
NzQzMTRlLi5kMTJiZGUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRsZVBhZ2VS
ZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVSZWYqLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJl
ZiosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmLCBX
S1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxl
V2l0aERpcmVjdGlvbkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUs
IFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBl
UmVmKiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJh
bWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxk
UmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQq
KTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxh
eSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQqKTsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2
b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZv
ckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5nUmVmIHRp
dGxlLCBXS1RleHREaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkQ2xl
YXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
KTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZik7CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161782</attachid>
            <date>2012-08-31 14:58:44 -0700</date>
            <delta_ts>2012-09-06 07:33:15 -0700</delta_ts>
            <desc>patch v5</desc>
            <filename>bug95303_v5</filename>
            <type>text/plain</type>
            <size>31041</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDRmNWZmNGQ3MjBkM2M1NThmZTQyOGZmMDI4OTQxMWI0YjNlYjE3NjgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIEF1ZyAzMSAxODo1MTozOCAyMDEyICswMzAwCgogICAgYnVnOTUzMDMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjIwYTdiZS4uM2Y1MzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA4
LTMxICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQSSBmb3IgV0syCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBXS1RleHRE
aXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9u
IGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4dERpcmVjdGlvbiBlbnVtLgorICAgICAgICBXS1Rl
eHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9jdW1lbnRzIHRpdGxlcyAoaW4gSFRNTAor
ICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUgY2FuIGJlIHNldCB3aXRoIHRoZSAnZGly
JyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tUZXh0RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0
IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkK
KyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1bmRsZSBjbGllbnQgYW5kIFVJIHByb2Nlc3Mgd2l0
aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKyAgICAgICAgTmV3IFdLQnVuZGxlUGFnZURpZFJl
Y2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGFuZCAKKyAgICAgICAgV0tQ
YWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgY2FsbGJhY2tz
IHdlcmUgYWRkZWQgdG8gCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFn
ZSBpbnRlcmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAg
ICAgJ1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBv
cmRlciB0byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGly
ZWN0aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNl
cworICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlv
bi4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2Fk
ZXJDbGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhE
aXJlY3Rpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkxvYWRlckNsaWVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2Vi
UGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRC
dWlsdGluQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1bmRsZVBh
Z2U6OlF0QnVpbHRpbkJ1bmRsZVBhZ2UpOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoK
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorCiAyMDEyLTA4LTI5ICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIFJl
cGxhY2UgUGFnZUNsaWVudEltcGwgd2l0aCBld2sgdmlldyBpbiBjb25zdHJ1Y3RvciBvZiBFZmxW
aWV3cG9ydEhhbmRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkNDE3YjVm
Li45M2VkZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4LDYgKzI4LDcg
QEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTaGFyZWRB
UElDYXN0LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmggXAogCSQoV2Vi
S2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIpL1NoYXJl
ZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tU
eXBlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQoV2ViS2l0Mikv
U2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsNyBAQCB3ZWJraXQy
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLVHlwZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5cGUuaCBc
CiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggOGE3M2EwMS4uNjhkY2Zi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNsdWRlICJXS0lt
YWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tUZXh0RGly
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRE
aXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTc4Miw2ICs3ODQsMTkgQEAgaW5saW5lIFNuYXBzaG90T3B0aW9ucyB0b1NuYXBz
aG90T3B0aW9ucyhXS1NuYXBzaG90T3B0aW9ucyB3a1NuYXBzaG90T3B0aW9ucykKICAgICByZXR1
cm4gc25hcHNob3RPcHRpb25zOwogfQogCitpbmxpbmUgV0tUZXh0RGlyZWN0aW9uIHRvQVBJKFdl
YkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAoZGlyZWN0aW9u
KSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tUZXh0RGlyZWN0
aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICByZXR1cm4ga1dLVGV4dERp
cmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgfQorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9oCisjZGVmaW5lIFdLVGV4
dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYK
KworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAorICAgIGtXS1RleHREaXJl
Y3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0RGlyZWN0aW9uOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tUZXh0RGlyZWN0aW9u
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBmNzk0NjA4
Li5iMjgwYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb21ldHJ5Lmg+CiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VMb2FkVHlw
ZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlvbi5oPgogCiAjaWZuZGVmIF9f
Y3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtNzUsNiArNzYsNyBAQCB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLQmFjawogdHlwZWRlZiB2b2lkICgqV0tQYWdlUGx1Z2luRGlkRmFpbENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tFcnJvckNvZGUgZXJyb3JDb2RlLCBXS1N0cmluZ1JlZiBt
aW1lVHlwZSwgV0tTdHJpbmdSZWYgcGx1Z2luSWRlbnRpZmllciwgV0tTdHJpbmdSZWYgcGx1Z2lu
VmVyc2lvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSZWdpc3RlckludGVu
dFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmIHVzZXJEYXRh
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2Vp
dmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAog
Ly8gRGVwcmVjYXRlZAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmFpbFRvSW5pdGlhbGl6ZVBs
dWdpbkNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBtaW1lVHlwZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xMjYsNiArMTI4
LDExIEBAIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgewogICAgIC8vIFZlcnNpb24gMgogICAg
IFdLUGFnZURpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lOwogICAgIFdLUGFnZVJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
aXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWU7CisKKyAgICAvLyBTYW1lIGFzIFdLUGFnZURpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGlyZWN0aW9uIG9m
IHRoZSB0aXRsZS4KKyAgICAvLyBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNr
IGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFzb25zLgorICAgIFdLUGFnZURpZFJlY2VpdmVUaXRsZVdp
dGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZTsKKwogfTsKIHR5cGVkZWYgc3Ry
dWN0IFdLUGFnZUxvYWRlckNsaWVudCBXS1BhZ2VMb2FkZXJDbGllbnQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDZjM2JmOTIuLmQwYjNkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMTUyLDYgKzE1Miw3
IEBAIHZvaWQgYXR0YWNoTG9hZGVyQ2xpZW50VG9WaWV3KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1l
CisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAg
IH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFn
ZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNldFBhZ2VMb2Fk
ZXJDbGllbnQod2tQYWdlLCAmd2tMb2FkZXJDbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0ZDNjNDU5Li4xM2VlM2Y4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcApAQCAtMTEyLDYgKzEx
MiwxNCBAQCB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2Vi
UGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmCiAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvQVBJKGZyYW1l
KSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBXZWJM
b2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdl
UHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24g
dGl0bGVEaXJlY3Rpb24sIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUElPYmplY3QqIHVzZXJEYXRh
KQoreworICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZy
YW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvQVBJ
KHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50
LmNsaWVudEluZm8pOworfQorCiB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkRmlyc3RMYXlvdXRG
b3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUElPYmpl
Y3QqIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGllbnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaAppbmRleCBmMTI5
MWEyLi5jY2U1MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVu
dC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02Niw2
ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
V2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JG
cmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUsIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2Vi
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2VQcm94
eSosIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdlYkZyYW1lUHJveHkq
LCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVBy
b3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdlYlBh
Z2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOTg4MWViMi4uOWY0OTdiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCkBAIC0yMTA2LDYgKzIx
MDcsMjEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUKICAgICBtX2xvYWRlckNsaWVudC5kaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSh0aGlzLCB0aXRsZSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsK
IH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1aW50MzJfdCBvcGFx
dWVUaXRsZURpcmVjdGlvbiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7
CisgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKKyAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgLy8gRG8gbm90IHNldCB0aXRs
ZSBmb3IgZnJhbWUgYXMgaXQgaXMgZG9uZSBhbHJlYWR5IGluIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKCkuCisKKyAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9u
Rm9yRnJhbWUodGhpcywgdGl0bGUsIHN0YXRpY19jYXN0PFdlYkNvcmU6OlRleHREaXJlY3Rpb24+
KG9wYXF1ZVRpdGxlRGlyZWN0aW9uKSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKK30KKwogdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9i
amVjdD4gdXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggOWExOWE1Ni4uZGY4NmQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtNzUxLDYgKzc1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVU
aXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
LCB1aW50MzJfdCB0aXRsZURpcmVjdGlvbiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAg
ICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CiAgICAgdm9pZCBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZmE4MWJlLi4yZGVjYTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEzMSw2ICsx
MzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFJlbW92ZUZyYW1lRnJv
bUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmluZyB1bnJlYWNo
YWJsZVVSTCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0
YSkKICAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0
cmluZyB0aXRsZSwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2Vy
RGF0YSkKKyAgICBEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV1RGOjpTdHJpbmcgdGl0bGUsIHVpbnQzMl90IHRpdGxlRGlyZWN0aW9uLCBXZWJL
aXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFJ1bkluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rl
ciB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDhiYzc2NzAuLmIwYzUy
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPFdlYktpdDIvV0tGaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tJbWFnZS5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlTG9hZFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1RleHREaXJlY3Rpb24uaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1cwogI2luY2x1ZGUgPHN0
ZGJvb2wuaD4KQEAgLTExMSw2ICsxMTIsOSBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VX
aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbkNhbGxiYWNrKQogdHlw
ZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9tTG9j
YWxVUkxDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiB1cmwsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lLCBXS0J1bmRsZUludGVudFJlcXVlc3RSZWYgaW50ZW50UmVxdWVzdCwgV0tUeXBl
UmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VSZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5m
b1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisvLyBTYW1lIGFzIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2Fs
bGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGlyZWN0aW9uIG9mIHRoZSB0aXRsZS4KKy8vIFdLQnVu
ZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgaXMga2VwdCBmb3IgbGVnYWN5
IHJlYXNvbnMuCit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
CiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwpAQCAtMTUzLDYgKzE1Nyw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQgewogICAgIC8vIFZlcnNpb24gMwogICAgIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVJbnRl
bnRGb3JGcmFtZTsKICAgICBXS0J1bmRsZVBhZ2VSZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlckludGVudFNlcnZpY2VGb3JG
cmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9y
RnJhbWU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IFdLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwCmluZGV4IGE2YTA2MTIuLjkzOWJlMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1NCw2ICsxNTQs
MTYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnMKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRv
SW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdGl0bGVEaXJl
Y3Rpb24sIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQorewor
ICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOworICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0b0FQSShwYWdl
KSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9BUEkodGl0bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFt
ZSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgdXNlckRhdGEg
PSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQYWdl
KiBwYWdlICwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAppbmRleCA4MWQ5YmU0Li4z
MjI3MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQmFzZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDYgKzY3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlKiwg
V2ViRnJhbWUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgUmVmUHRy
PEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1
c2VyRGF0YSk7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUo
V2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdlYkZyYW1l
KiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJlbW92ZUZyYW1l
RnJvbUhpZXJhcmNoeShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNl
ckRhdGEpOwogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBh
Z2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBk
aWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8
QVBJT2JqZWN0PiYgdXNlckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBhM2MwY2MxLi45ZDUzNjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtNDMwLDEzICs0MzAsMTkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CisgICAgLy8gSGF2ZSBk
b3VibGUgbm90aWZpY2F0aW9uIG9mIHRoZSBzYW1lIGV2ZW50IGluIG9yZGVyIHRvIHN1cHBvcnQg
bGVnYWN5IEFQSS4KIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KLSAgICAvLyBG
SVhNRTogdXNlIGRpcmVjdGlvbiBvZiB0aXRsZS4KICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRs
ZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHdlYlBhZ2UsIHRpdGxlLnN0
cmluZygpLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vz
cy4KICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgdGl0bGUuc3RyaW5nKCksIEluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOworCisgICAgLy8gTm90
aWZ5IHRoZSBidW5kbGUgY2xpZW50IGluY2x1ZGluZyB0aXRsZSBkaXJlY3Rpb24uCisgICAgd2Vi
UGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVXaXRoRGly
ZWN0aW9uRm9yRnJhbWUod2ViUGFnZSwgdGl0bGUuc3RyaW5nKCksIHRpdGxlLmRpcmVjdGlvbigp
LCBtX2ZyYW1lLCB1c2VyRGF0YSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2VzcyBpbmNs
dWRpbmcgdGl0bGUgZGlyZWN0aW9uLgorICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKG1fZnJhbWUtPmZy
YW1lSUQoKSwgdGl0bGUuc3RyaW5nKCksIHRpdGxlLmRpcmVjdGlvbigpLCBJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxl
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBh
Z2UuY3BwCmluZGV4IGQ1YzYwZmMuLjRkMTZlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcApAQCAtNzgsNiArNzgsNyBA
QCBRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5CdW5kbGVQYWdlKFF0QnVpbHRpbkJ1bmRs
ZSogYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZQogICAgICAgICAwLCAvLyBzaG91bGRGb3JjZVVuaXZl
cnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTAogICAgICAgICAwLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9y
RnJhbWUKICAgICAgICAgMCwgLy8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAg
ICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lCiAgICAgfTsKICAg
ICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwgJmxvYWRlckNsaWVudCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggYWI2ZWZkYy4uMDRhMGM4ZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTAzOCw2ICsxMDM4LDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJ
XGNcV0tUZXh0RGlyZWN0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tUeXBlLmNwcCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVk
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCmluZGV4IDYw
ZDQ2ZWUuLjNkZDNkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFr
ZQpAQCAtMzksNiArMzksNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElc
Y1xXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGRE
aXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdL
U3RyaW5nLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAg
eGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1N0cmluZ1ByaXZhdGUuaCIgIiVDb25maWd1
cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hh
cmVkXEFQSVxjXFdLVGV4dERpcmVjdGlvbi5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tUeXBlLmgi
ICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kg
L2QgIi4uXFNoYXJlZFxBUElcY1xXS1VSTC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVUkxSZXF1
ZXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODM4MTVkMi4uNjhm
M2NkMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTMxICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWls
LnBvemRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIFRleHQgZGlyZWN0aW9uIEFQ
SSBmb3IgV0syCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NTMwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEludHJvZHVjZSBhIG5ldyBXS1RleHREaXJlY3Rpb24gZW51bSB0eXBlIHRvIFdLMiBDIEFQSS4K
KyAgICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHNpbWlsYXIgdG8gV2ViQ29yZTo6VGV4dERpcmVj
dGlvbiBlbnVtLgorICAgICAgICBXS1RleHREaXJlY3Rpb24gaXMgdG8gYmUgdXNlZCBmb3IgZG9j
dW1lbnRzIHRpdGxlcyAoaW4gSFRNTAorICAgICAgICB0aGUgZGlyZWN0aW9uIG9mIGEgdGl0bGUg
Y2FuIGJlIHNldCB3aXRoIHRoZSAnZGlyJyBhdHRyaWJ1dGUpLgorICAgICAgICBUaGUgV0tUZXh0
RGlyZWN0aW9uIHR5cGUgd2FzIGZpcnN0IHVzZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlKCkKKyAgICAgICAgdG8gcHJvdmlkZSBib3RoIEJ1bmRsZSBj
bGllbnQgYW5kIFVJIHByb2Nlc3Mgd2l0aCB0aGUgdGV4dCBkaXJlY3Rpb24gaW5mby4KKyAgICAg
ICAgTmV3IFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNh
bGxiYWNrIGFuZCAKKyAgICAgICAgV0tQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZv
ckZyYW1lQ2FsbGJhY2sgY2FsbGJhY2tzIHdlcmUgYWRkZWQgdG8gCisgICAgICAgIFdLQnVuZGxl
UGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBpbnRlcmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93
ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAgJ1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScg
Y2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRlciB0byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAg
ICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNz
aW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcworICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0
UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9C
cm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtCcm93c2VyV2luZG93Q29udHJv
bGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6Cisg
ICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlh
bGl6ZSk6CisKIDIwMTItMDgtMjkgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNv
bT4KIAogICAgICAgICBSYW5kb20gdGVzdC13ZWJraXRweSBmYWlsdXJlcyBvbiB0aGUgYnVpbGRi
b3QKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJv
bGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0K
aW5kZXggZTZiNmY1NC4uNjFkMTU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTYzNSw2ICs2MzUsNyBAQCAtICh2b2lkKWF3YWtl
RnJvbU5pYgogICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsCiAgICAgICAgIDAsIC8vIGRpZFJl
Y2VpdmVJbnRlbnRGb3JGcmFtZQogICAgICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VG
b3JGcmFtZQorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJh
bWUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoX3dlYlZpZXcucGFnZVJl
ZiwgJmxvYWRDbGllbnQpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDdkMmNi
OTguLmNkNzUwZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI4Myw3ICsyODMsNyBA
QCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSkKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAogICAgICAgICBkaWRGYWlsTG9h
ZFdpdGhFcnJvckZvckZyYW1lLAogICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWUsCi0gICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAorICAgICAgICAwLCAvLyBk
aWRSZWNlaXZlVGl0bGVGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJzdExheW91dEZvckZy
YW1lCiAgICAgICAgIDAsIC8vIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1l
CiAgICAgICAgIDAsIC8vIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeQpAQCAtMzA0LDcgKzMw
NCw4IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlKQogICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywgLy8gZGlkRmluaXNoUHJvZ3Jl
c3MKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9tTG9jYWxVUkwK
ICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9y
RnJhbWUKLSAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUgLy8gcmVnaXN0ZXJJ
bnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWUsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIGRpZFJlY2VpdmVU
aXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFn
ZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCkBAIC02MzEsOSArNjMyLDkg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRs
ZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoZnJhbWUsIGVycm9yKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxl
LCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8
SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJhbWUpOworICAgIHN0YXRpY19jYXN0PEluamVj
dGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHRpdGxlLCB0aXRsZURpcmVjdGlvbiwgZnJhbWUp
OwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3Jp
cHRXb3JsZFJlZiB3b3JsZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKQEAgLTk0Miw4ICs5NDMs
OSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5kb25lKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUo
V0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiAvKnRpdGxlRGlyZWN0aW9uKi8sIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CisgICAgLy8gRklYTUUgOiB1c2UgZGlyZWN0aW9uIG9m
IHRpdGxlLgogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmco
KSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAwNzQzMTRlLi5k
MTJiZGUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRsZVBhZ2VSZWYsIGNvbnN0
IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVSZWYqLCBjb25zdCB2b2lk
Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRs
ZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJlZiosIGNvbnN0
IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRs
ZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYq
LCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVj
dGlvbkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERp
cmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29u
c3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25z
dCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBz
dGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91Ymxl
IGRhdGUsIGNvbnN0IHZvaWQqKTsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZEZp
bmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdL
QnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS1Rl
eHREaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dG
b3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmKTsKICAgICB2
b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CiAg
ICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
ZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMTZhMjNjMS4uYjM1NzM0ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQyOCw2ICs0Mjgs
NyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFy
KiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKICAgICAgICAgMCwgLy8gZGlk
UmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2Vydmlj
ZUZvckZyYW1lCisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JG
cmFtZQogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX21haW5XZWJWaWV3
LT5wYWdlKCksICZwYWdlTG9hZGVyQ2xpZW50KTsKIH0K
</data>
<flag name="commit-queue"
          id="172713"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162504</attachid>
            <date>2012-09-06 07:33:15 -0700</date>
            <delta_ts>2012-09-07 05:09:09 -0700</delta_ts>
            <desc>patch v6</desc>
            <filename>bug95303_v6</filename>
            <type>text/plain</type>
            <size>34587</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDg4ZjhiY2Y5MTE0NzVlYzQ1NDhjMDFmZWUwN2JkZjBjNTJmOTkyZGUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IFNlcCA2IDE3OjMwOjU3IDIwMTIgKzAzMDAKCiAgICBidWc5NTMwMwoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1OGE4MjMyLi40MTg4NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMDkt
MDYgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdLVGV4dERp
cmVjdGlvbiBlbnVtIHR5cGUgdG8gV0syIEMgQVBJLgorICAgICAgICBXS1RleHREaXJlY3Rpb24g
aXMgc2ltaWxhciB0byBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4
dERpcmVjdGlvbiBpcyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MCisg
ICAgICAgIHRoZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXIn
IGF0dHJpYnV0ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3Qg
dXNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQor
ICAgICAgICB0byBwcm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRo
IHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBOZXcgV0tCdW5kbGVQYWdlRGlkUmVj
ZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgYW5kCisgICAgICAgIFdLUGFn
ZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrcyB3
ZXJlIGFkZGVkIHRvCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBp
bnRlcmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAg
J1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRl
ciB0byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0
aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcwor
ICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2FkZXJD
bGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkxvYWRlckNsaWVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFn
ZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5C
dW5kbGVQYWdlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2lu
L1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0wOS0wNiAgU2ltb24gSGF1c21hbm4gIDxz
aW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBWYXJpb3VzIHNtYWxsIFdp
bmRvd3MgLyBNU1ZDIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBlZDE1ZDAzLi5mMmRiNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4
LDYgKzI4LDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgg
XAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktp
dDIpL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQv
QVBJL2MvV0tUeXBlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQo
V2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsNyBA
QCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0
cmluZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1R5cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggOGE3M2Ew
MS4uNjhkY2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNs
dWRlICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAi
V0tUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJF
dmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTc4Miw2ICs3ODQsMTkgQEAgaW5saW5lIFNuYXBzaG90T3B0aW9u
cyB0b1NuYXBzaG90T3B0aW9ucyhXS1NuYXBzaG90T3B0aW9ucyB3a1NuYXBzaG90T3B0aW9ucykK
ICAgICByZXR1cm4gc25hcHNob3RPcHRpb25zOwogfQogCitpbmxpbmUgV0tUZXh0RGlyZWN0aW9u
IHRvQVBJKFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAo
ZGlyZWN0aW9uKSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tU
ZXh0RGlyZWN0aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICByZXR1cm4g
a1dLVGV4dERpcmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgfQorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9oCisjZGVm
aW5lIFdLVGV4dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAorICAgIGtX
S1RleHREaXJlY3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0RGlyZWN0
aW9uOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tUZXh0
RGlyZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRl
eCBmNzk0NjA4Li5iMjgwYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb21ldHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1Bh
Z2VMb2FkVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlvbi5oPgogCiAj
aWZuZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtNzUsNiArNzYsNyBA
QCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFjawogdHlwZWRlZiB2b2lkICgqV0tQYWdlUGx1Z2luRGlk
RmFpbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tFcnJvckNvZGUgZXJyb3JDb2RlLCBXS1N0
cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgcGx1Z2luSWRlbnRpZmllciwgV0tTdHJpbmdS
ZWYgcGx1Z2luVmVyc2lvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSZWdp
c3RlckludGVudFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIAogLy8gRGVwcmVjYXRlZAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmFpbFRvSW5p
dGlhbGl6ZVBsdWdpbkNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0x
MjYsNiArMTI4LDExIEBAIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgewogICAgIC8vIFZlcnNp
b24gMgogICAgIFdLUGFnZURpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lOwogICAgIFdLUGFn
ZVJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWU7CisKKyAgICAvLyBTYW1lIGFzIFdL
UGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGly
ZWN0aW9uIG9mIHRoZSB0aXRsZS4KKyAgICAvLyBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFzb25zLgorICAgIFdLUGFnZURpZFJlY2Vp
dmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZTsKKwogfTsKIHR5
cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCBXS1BhZ2VMb2FkZXJDbGllbnQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJD
bGllbnQuY3BwCmluZGV4IDZjM2JmOTIuLmQwYjNkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMTUy
LDYgKzE1Miw3IEBAIHZvaWQgYXR0YWNoTG9hZGVyQ2xpZW50VG9WaWV3KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKICAgICAgICAgMCwgLy8gZGlk
UmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2Vydmlj
ZUZvckZyYW1lCisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JG
cmFtZQogICAgIH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHdlYmtpdFdlYlZpZXdC
YXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkpOwogICAgIFdLUGFnZVNl
dFBhZ2VMb2FkZXJDbGllbnQod2tQYWdlLCAmd2tMb2FkZXJDbGllbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0ZDNjNDU5Li4xM2VlM2Y4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcApAQCAt
MTEyLDYgKzExMiwxNCBAQCB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmCiAgICAgbV9jbGllbnQuZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRv
QVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAor
dm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFt
ZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHRE
aXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUElPYmplY3Qq
IHVzZXJEYXRhKQoreworICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVj
dGlvbkZvckZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZl
VGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwo
KSksIHRvQVBJKHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSks
IG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkRmly
c3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1l
LCBBUElPYmplY3QqIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGllbnQuZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaApp
bmRleCBmMTI5MWEyLi5jY2U1MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxv
YWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCiAj
aW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXS1BhZ2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgU2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUsIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIEFQSU9i
amVjdCopOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdlYkZy
YW1lUHJveHkqLCBBUElPYmplY3QqKTsKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
V2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJh
bWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFy
Y2h5KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNWFlY2E1OS4uMDQ2NjQ4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1LDYgKzg1
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hl
Y2tlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCkBAIC0y
MTA2LDYgKzIxMDcsMjEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUKICAgICBtX2xvYWRlckNs
aWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aGlzLCB0aXRsZSwgZnJhbWUsIHVzZXJEYXRh
LmdldCgpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1aW50
MzJfdCBvcGFxdWVUaXRsZURpcmVjdGlvbiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit7CisgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKKyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgLy8gRG8gbm90
IHNldCB0aXRsZSBmb3IgZnJhbWUgYXMgaXQgaXMgZG9uZSBhbHJlYWR5IGluIGRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKCkuCisKKyAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWUodGhpcywgdGl0bGUsIHN0YXRpY19jYXN0PFdlYkNvcmU6OlRleHRE
aXJlY3Rpb24+KG9wYXF1ZVRpdGxlRGlyZWN0aW9uKSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsK
K30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVm
UHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMjEwY2ZkMi4uZTg3YTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNzUyLDYgKzc1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRG
YWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmLCB1aW50MzJfdCB0aXRsZURpcmVjdGlvbiwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CiAgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7CiAgICAgdm9pZCBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZmE4MWJlLi4yZGVjYTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTEzMSw2ICsxMzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmlu
ZyB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rl
ciB1c2VyRGF0YSkKICAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXVEY6OlN0cmluZyB0aXRsZSwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlciB1c2VyRGF0YSkKKyAgICBEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgdGl0bGUsIHVpbnQzMl90IHRpdGxlRGlyZWN0
aW9uLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQog
ICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRGV0ZWN0WFNT
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2RlciB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZmNhMjQwLi5hYjM1YzM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjcsNiAr
MzI3LDcgQEAKIAkJM0Y4N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlC
QTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5
QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9OwogCQkzRjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIgLyog
V2ViQ29sb3JDaG9vc2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQ
cm94eS5oICovOyB9OworCQk0NDcyRDc2NjE1Rjg4Nzk1MDA0NzkwNjcgLyogV0tUZXh0RGlyZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDcy
RDc2NTE1Rjg4Nzk1MDA0NzkwNjcgLyogV0tUZXh0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZC
REUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jl
c3BvbnNlTWFwLmggKi87IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250
ZXh0TWVudUNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbSAqLzsgfTsKIAkJNTEwRkJCOUExMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEu
Y3BwICovOyB9OwpAQCAtMTM3OCw2ICsxMzc5LDcgQEAKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9v
c2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9v
c2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ3MkQ3NjUxNUY4ODc5
NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1RleHREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogV2ViUHJv
Y2Vzc1NoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBXZWJQcm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTkzLDYgKzM1
OTUsNyBAQAogCQkJCUJDNDA3NUU5MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5jcHAgKi8s
CiAJCQkJQkM0MDc1RUExMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggKi8sCiAJCQkJQkM5
MDk5N0YxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oICovLAorCQkJCTQ0NzJE
NzY1MTVGODg3OTUwMDQ3OTA2NyAvKiBXS1RleHREaXJlY3Rpb24uaCAqLywKIAkJCQlCQzQwNzVF
QjEyNEZGMDI3MDA2OEYyMEEgLyogV0tUeXBlLmNwcCAqLywKIAkJCQlCQzQwNzVFQzEyNEZGMDI3
MDA2OEYyMEEgLyogV0tUeXBlLmggKi8sCiAJCQkJQkM0MDc1RUQxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVVJMLmNwcCAqLywKQEAgLTQyMzksNiArNDI0Miw3IEBACiAJCQkJM0Y4N0I5QkUxNTg5NDAx
OTAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4N0I5
QzAxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzU5NTQ4OTE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDQ3MkQ3NjYxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA4YmM3NjcwLi5iMGM1
MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlIDxXZWJLaXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLSW1hZ2Uu
aD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUxvYWRUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tUZXh0RGlyZWN0aW9uLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxz
dGRib29sLmg+CkBAIC0xMTEsNiArMTEyLDkgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
V2lsbERlc3Ryb3lHbG9iYWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb25DYWxsYmFjaykKIHR5
cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxv
Y2FsVVJMQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVJ
bnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSwgV0tCdW5kbGVJbnRlbnRSZXF1ZXN0UmVmIGludGVudFJlcXVlc3QsIFdLVHlw
ZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlUmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50U2VydmljZUlu
Zm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOworLy8gU2FtZSBhcyBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNh
bGxiYWNrIGJ1dCBjb250YWlucyB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgdGl0bGUuCisvLyBXS0J1
bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2Fj
eSByZWFzb25zLgordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0
aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmlu
Z1JlZiB0aXRsZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
IAogc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKQEAgLTE1Myw2ICsxNTcsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50IHsKICAgICAvLyBWZXJzaW9uIDMKICAgICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlSW50ZW50
Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWU7CiAgICAgV0tCdW5kbGVQYWdlUmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9y
RnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZv
ckZyYW1lOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBXS0J1
bmRsZVBhZ2VMb2FkZXJDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmNwcAppbmRleCBhNmEwNjEyLi45MzliZTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTQsNiArMTU0
LDE2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0
b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdlKiBw
YWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIHRpdGxlRGly
ZWN0aW9uLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKK3sK
KyAgICBpZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAg
ICBtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFn
ZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvQVBJKHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJh
bWUpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHVzZXJEYXRh
ID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFn
ZSogcGFnZSAsIFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQog
ewogICAgIGlmICghbV9jbGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggODFkOWJlNC4u
MzIyNzFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Niw2ICs2Nyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZSos
IFdlYkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFJlZlB0cjxBUElPYmpl
Y3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFJlZlB0
cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYg
dXNlckRhdGEpOworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1l
KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBXZWJGcmFt
ZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHkoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVz
ZXJEYXRhKTsKICAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQ
YWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQg
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRy
PEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggNmE4MDE5My4uYWY0ODljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTQzMCwxMyArNDMwLDE5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIC8vIEhhdmUg
ZG91YmxlIG5vdGlmaWNhdGlvbiBvZiB0aGUgc2FtZSBldmVudCBpbiBvcmRlciB0byBzdXBwb3J0
IGxlZ2FjeSBBUEkuCiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCi0gICAgLy8g
RklYTUU6IHVzZSBkaXJlY3Rpb24gb2YgdGl0bGUuCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5k
bGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh3ZWJQYWdlLCB0aXRsZS5z
dHJpbmcoKSwgbV9mcmFtZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nl
c3MuCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxlLnN0cmluZygpLCBJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKKworICAgIC8vIE5v
dGlmeSB0aGUgYnVuZGxlIGNsaWVudCBpbmNsdWRpbmcgdGl0bGUgZGlyZWN0aW9uLgorICAgIHdl
YlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkUmVjZWl2ZVRpdGxlV2l0aERp
cmVjdGlvbkZvckZyYW1lKHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24o
KSwgbV9mcmFtZSwgdXNlckRhdGEpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MgaW5j
bHVkaW5nIHRpdGxlIGRpcmVjdGlvbi4KKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShtX2ZyYW1lLT5m
cmFtZUlEKCksIHRpdGxlLnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRs
ZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQ
YWdlLmNwcAppbmRleCBkNWM2MGZjLi40ZDE2ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKQEAgLTc4LDYgKzc4LDcg
QEAgUXRCdWlsdGluQnVuZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5k
bGUqIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmUKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2
ZXJzYWxBY2Nlc3NGcm9tTG9jYWxVUkwKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZv
ckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAg
ICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAg
ICAgV0tCdW5kbGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IGM2NTk1NTQuLjQxMDc0ZDggMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTEwMzgsNiArMTAzOCwxMCBAQAogCQkJCQk+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQ
SVxjXFdLVGV4dERpcmVjdGlvbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRl
ZC5tYWtlIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQppbmRleCBm
OTNmOGE5Li41MWI2OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mkdl
bmVyYXRlZC5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1h
a2UKQEAgLTM5LDYgKzM5LDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJ
XGNcV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxk
RGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xX
S1N0cmluZy5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmdQcml2YXRlLmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xXS1RleHREaXJlY3Rpb24uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5o
IiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95
IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVUkwuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVVJMUmVx
dWVzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI3OTBkY2UuLmJj
YjBjNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAxMi0wOS0wNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFp
bC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBUZXh0IGRpcmVjdGlvbiBB
UEkgZm9yIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTUzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbnRyb2R1Y2UgYSBuZXcgV0tUZXh0RGlyZWN0aW9uIGVudW0gdHlwZSB0byBXSzIgQyBBUEku
CisgICAgICAgIFdLVGV4dERpcmVjdGlvbiBpcyBzaW1pbGFyIHRvIFdlYkNvcmU6OlRleHREaXJl
Y3Rpb24gZW51bS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHRvIGJlIHVzZWQgZm9yIGRv
Y3VtZW50cyB0aXRsZXMgKGluIEhUTUwKKyAgICAgICAgdGhlIGRpcmVjdGlvbiBvZiBhIHRpdGxl
IGNhbiBiZSBzZXQgd2l0aCB0aGUgJ2RpcicgYXR0cmlidXRlKS4KKyAgICAgICAgVGhlIFdLVGV4
dERpcmVjdGlvbiB0eXBlIHdhcyBmaXJzdCB1c2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZFJlY2VpdmVUaXRsZSgpCisgICAgICAgIHRvIHByb3ZpZGUgYm90aCBCdW5kbGUg
Y2xpZW50IGFuZCBVSSBwcm9jZXNzIHdpdGggdGhlIHRleHQgZGlyZWN0aW9uIGluZm8uCisgICAg
ICAgIE5ldyBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWVD
YWxsYmFjayBhbmQKKyAgICAgICAgV0tQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZv
ckZyYW1lQ2FsbGJhY2sgY2FsbGJhY2tzIHdlcmUgYWRkZWQgdG8KKyAgICAgICAgV0tCdW5kbGVQ
YWdlIGludGVyZmFjZSBhbmQgV0tQYWdlIGludGVyZmFjZXMgY29ycmVzcG9uZGluZ2x5LCBob3dl
dmVyIHRoZSBleGlzdGluZworICAgICAgICAnUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lJyBj
YWxsYmFja3Mgd2VyZSBrZXB0IGluIG9yZGVyIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4KKyAgICAg
ICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBhc3Np
bmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRlc3RS
dW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyIGF3YWtlRnJvbU5pYl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKyAg
ICAgICAgKEluamVjdGVkQnVuZGxlUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFs
aXplKToKKwogMjAxMi0wOS0wNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFNhbml0aXplIFVSTHMgaW4gRVdlYkxhdW5jaGVy
IC8gTWluaWJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2Vy
V2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dD
b250cm9sbGVyLm0KaW5kZXggZTZiNmY1NC4uNjFkMTU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWlu
aUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTYzNSw2ICs2MzUsNyBAQCAt
ICh2b2lkKWF3YWtlRnJvbU5pYgogICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsCiAgICAgICAg
IDAsIC8vIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZQogICAgICAgICAwLCAvLyByZWdpc3Rlcklu
dGVudFNlcnZpY2VGb3JGcmFtZQorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVXaXRoRGly
ZWN0aW9uRm9yRnJhbWUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoX3dl
YlZpZXcucGFnZVJlZiwgJmxvYWRDbGllbnQpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CmluZGV4IDY3NDZhNzAuLmI5Y2E2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI4
Myw3ICsyODMsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAogICAgICAg
ICBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lLAogICAgICAgICBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yRnJhbWUsCi0gICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAorICAg
ICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJz
dExheW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeQpA
QCAtMzA0LDcgKzMwNCw4IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdl
KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywgLy8gZGlk
RmluaXNoUHJvZ3Jlc3MKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NG
cm9tTG9jYWxVUkwKICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lLCAvLyBkaWRSZWNl
aXZlSW50ZW50Rm9yRnJhbWUKLSAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUg
Ly8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAgICAgcmVnaXN0ZXJJbnRlbnRT
ZXJ2aWNlRm9yRnJhbWUsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAg
IGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5k
bGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCkBAIC02
MzEsOSArNjMyLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKICAgICBzdGF0aWNfY2FzdDxJ
bmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZh
aWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoZnJhbWUsIGVycm9yKTsKIH0KIAotdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNl
aXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAg
c3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpLT5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJhbWUpOworICAgIHN0YXRp
Y19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHRpdGxlLCB0aXRsZURpcmVj
dGlvbiwgZnJhbWUpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5k
b3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKQEAg
LTk1NSw4ICs5NTYsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5kb25lKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0
aW9uRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiAvKnRpdGxlRGly
ZWN0aW9uKi8sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CisgICAgLy8gRklYTUUgOiB1c2Ug
ZGlyZWN0aW9uIG9mIHRpdGxlLgogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlz
VGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRl
eCAzYWQyMDNkLi4yNjljYTkyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRsZVBh
Z2VSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVSZWYq
LCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlw
ZVJlZiosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVm
LCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRp
dGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0
bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tU
eXBlUmVmKiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9y
RnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBk
ZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQqKTsKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAg
ICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJv
ckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5nUmVm
IHRpdGxlLCBXS1RleHREaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlk
Q2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxk
UmVmKTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVG
cmFtZVJlZik7CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tC
dW5kbGVGcmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYzU0OWU4OC4u
MmE3YjY3MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTQyOSw2ICs0MjksNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdj
LCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKICAgICAg
ICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhE
aXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCht
X21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlTG9hZGVyQ2xpZW50KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162747</attachid>
            <date>2012-09-07 05:09:09 -0700</date>
            <delta_ts>2012-11-05 14:14:08 -0800</delta_ts>
            <desc>patch v7</desc>
            <filename>bug95303_v7</filename>
            <type>text/plain</type>
            <size>34572</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDg4ZjhiY2Y5MTE0NzVlYzQ1NDhjMDFmZWUwN2JkZjBjNTJmOTkyZGUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IFNlcCA2IDE3OjMwOjU3IDIwMTIgKzAzMDAKCiAgICBidWc5NTMwMwoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1OGE4MjMyLi40MTg4NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMDkt
MDYgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdLVGV4dERp
cmVjdGlvbiBlbnVtIHR5cGUgdG8gV0syIEMgQVBJLgorICAgICAgICBXS1RleHREaXJlY3Rpb24g
aXMgc2ltaWxhciB0byBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4
dERpcmVjdGlvbiBpcyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MCisg
ICAgICAgIHRoZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXIn
IGF0dHJpYnV0ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3Qg
dXNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQor
ICAgICAgICB0byBwcm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRo
IHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBOZXcgV0tCdW5kbGVQYWdlRGlkUmVj
ZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgYW5kCisgICAgICAgIFdLUGFn
ZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrcyB3
ZXJlIGFkZGVkIHRvCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBp
bnRlcmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAg
J1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRl
ciB0byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0
aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcwor
ICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2FkZXJD
bGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkxvYWRlckNsaWVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFn
ZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5C
dW5kbGVQYWdlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2lu
L1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0wOS0wNiAgU2ltb24gSGF1c21hbm4gIDxz
aW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBWYXJpb3VzIHNtYWxsIFdp
bmRvd3MgLyBNU1ZDIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBlZDE1ZDAzLi5mMmRiNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4
LDYgKzI4LDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgg
XAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktp
dDIpL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQv
QVBJL2MvV0tUeXBlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQo
V2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oIFwKQEAgLTMzNSw2ICszMzYsNyBA
QCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0
cmluZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1R5cGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggOGE3M2Ew
MS4uNjhkY2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNs
dWRlICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAi
V0tUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJF
dmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTc4Miw2ICs3ODQsMTkgQEAgaW5saW5lIFNuYXBzaG90T3B0aW9u
cyB0b1NuYXBzaG90T3B0aW9ucyhXS1NuYXBzaG90T3B0aW9ucyB3a1NuYXBzaG90T3B0aW9ucykK
ICAgICByZXR1cm4gc25hcHNob3RPcHRpb25zOwogfQogCitpbmxpbmUgV0tUZXh0RGlyZWN0aW9u
IHRvQVBJKFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3aXRjaCAo
ZGlyZWN0aW9uKSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tU
ZXh0RGlyZWN0aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICByZXR1cm4g
a1dLVGV4dERpcmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAgfQorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9oCisjZGVm
aW5lIFdLVGV4dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAorICAgIGtX
S1RleHREaXJlY3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0RGlyZWN0
aW9uOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tUZXh0
RGlyZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRl
eCBmNzk0NjA4Li5iMjgwYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb21ldHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1Bh
Z2VMb2FkVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlvbi5oPgogCiAj
aWZuZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtNzUsNiArNzYsNyBA
QCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1DYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLQmFjawogdHlwZWRlZiB2b2lkICgqV0tQYWdlUGx1Z2luRGlk
RmFpbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tFcnJvckNvZGUgZXJyb3JDb2RlLCBXS1N0
cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgcGx1Z2luSWRlbnRpZmllciwgV0tTdHJpbmdS
ZWYgcGx1Z2luVmVyc2lvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSZWdp
c3RlckludGVudFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFn
ZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIAogLy8gRGVwcmVjYXRlZAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmFpbFRvSW5p
dGlhbGl6ZVBsdWdpbkNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0x
MjYsNiArMTI4LDExIEBAIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgewogICAgIC8vIFZlcnNp
b24gMgogICAgIFdLUGFnZURpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lOwogICAgIFdLUGFn
ZVJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWU7CisKKyAgICAvLyBTYW1lIGFzIFdL
UGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGly
ZWN0aW9uIG9mIHRoZSB0aXRsZS4KKyAgICAvLyBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFzb25zLgorICAgIFdLUGFnZURpZFJlY2Vp
dmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgZGlk
UmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lOworCiB9OwogdHlwZWRlZiBzdHJ1Y3Qg
V0tQYWdlTG9hZGVyQ2xpZW50IFdLUGFnZUxvYWRlckNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKaW5k
ZXggNmMzYmY5Mi4uZDBiM2RkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTIsNiArMTUyLDcgQEAg
dm9pZCBhdHRhY2hMb2FkZXJDbGllbnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAg
ICAgICAgMCwgLy8gcGx1Z2luRGlkRmFpbAogICAgICAgICAwLCAvLyBkaWRSZWNlaXZlSW50ZW50
Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUKKyAg
ICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lCiAgICAgfTsK
ICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdF
QktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNs
aWVudCh3a1BhZ2UsICZ3a0xvYWRlckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRkM2M0NTkuLjEzZWUzZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCkBAIC0xMTIsNiArMTEyLDE0
IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdl
UHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9BUEkoZnJhbWUpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCit2b2lkIFdlYkxvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2VQcm94
eSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiB0aXRs
ZURpcmVjdGlvbiwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9iamVjdCogdXNlckRhdGEpCit7
CisgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9BUEkodGl0
bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuY2xp
ZW50SW5mbyk7Cit9CisKIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRGaXJzdExheW91dEZvckZy
YW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9iamVjdCog
dXNlckRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRGaXJzdExheW91dEZvckZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCmluZGV4IGYxMjkxYTIu
LmNjZTUxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElDbGllbnQuaCIKICNpbmNsdWRlICJTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTY2LDYgKzY3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQ
YWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdl
UHJveHkqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CisgICAg
dm9pZCBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgV2ViRnJhbWVQcm94eSosIEFQ
SU9iamVjdCopOwogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJ
T2JqZWN0Kik7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZVBy
b3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1YWVjYTU5Li4wNDY2NDhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODUsNiArODUsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
RW1iZWRkZWRPYmplY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKQEAgLTIxMDYsNiArMjEwNywy
MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQog
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVpbnQzMl90IG9wYXF1ZVRp
dGxlRGlyZWN0aW9uLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOworICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgICAgICByZXR1cm47CisK
KyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7
CisgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CisKKyAgICAvLyBEbyBub3Qgc2V0IHRpdGxlIGZv
ciBmcmFtZSBhcyBpdCBpcyBkb25lIGFscmVhZHkgaW4gZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
KS4KKyAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJh
bWUodGhpcywgdGl0bGUsIHN0YXRpY19jYXN0PFdlYkNvcmU6OlRleHREaXJlY3Rpb24+KG9wYXF1
ZVRpdGxlRGlyZWN0aW9uKSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4g
dXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjEw
Y2ZkMi4uZTg3YTYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNzUyLDYgKzc1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZVdp
dGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCB1aW50
MzJfdCB0aXRsZURpcmVjdGlvbiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9p
ZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAg
dm9pZCBkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA3ZmE4MWJlLi4yZGVjYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEzMSw2ICsxMzEsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZFJlbW92ZUZyYW1lRnJvbUhpZXJh
cmNoeSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmluZyB1bnJlYWNoYWJsZVVS
TCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAg
ICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB0
aXRsZSwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkK
KyAgICBEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgV1RGOjpTdHJpbmcgdGl0bGUsIHVpbnQzMl90IHRpdGxlRGlyZWN0aW9uLCBXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2Vy
RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyZmNhMjQwLi5hYjM1YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjcsNiArMzI3LDcgQEAKIAkJM0Y4
N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQTE1ODkzRjYzMDA5MEZG
NjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovOyB9OwogCQkzRjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
ODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oICovOyB9Owor
CQk0NDcyRDc2NjE1Rjg4Nzk1MDA0NzkwNjcgLyogV0tUZXh0RGlyZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDcyRDc2NTE1Rjg4Nzk1MDA0
NzkwNjcgLyogV0tUZXh0RGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5n
UmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi87
IH07CiAJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIx
RTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsK
IAkJNTEwRkJCOUExMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTgx
Mjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwICovOyB9OwpAQCAt
MTM3OCw2ICsxMzc5LDcgQEAKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9y
Q2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xv
ckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQjE1ODkz
RjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ3MkQ3NjUxNUY4ODc5NTAwNDc5MDY3IC8qIFdL
VGV4dERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1RleHRE
aXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEz
MjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJQcm9jZXNzU2hp
bS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIx
MkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTkzLDYgKzM1OTUsNyBAQAogCQkJCUJD
NDA3NUU5MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5jcHAgKi8sCiAJCQkJQkM0MDc1RUEx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggKi8sCiAJCQkJQkM5MDk5N0YxMjU2QTk4MjAw
MDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oICovLAorCQkJCTQ0NzJENzY1MTVGODg3OTUwMDQ3
OTA2NyAvKiBXS1RleHREaXJlY3Rpb24uaCAqLywKIAkJCQlCQzQwNzVFQjEyNEZGMDI3MDA2OEYy
MEEgLyogV0tUeXBlLmNwcCAqLywKIAkJCQlCQzQwNzVFQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tU
eXBlLmggKi8sCiAJCQkJQkM0MDc1RUQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMLmNwcCAqLywK
QEAgLTQyMzksNiArNDI0Miw3IEBACiAJCQkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdl
YkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4N0I5QzAxNTg5NDBEODAwOTBG
RjYyIC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU5NTQ4
OTE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQ3MkQ3
NjYxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA4YmM3NjcwLi5iMGM1MjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dL
RmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLSW1hZ2UuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLUGFnZUxvYWRUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tUZXh0RGlyZWN0
aW9uLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxzdGRib29sLmg+CkBAIC0x
MTEsNiArMTEyLDkgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbERlc3Ryb3lHbG9i
YWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb25DYWxsYmFjaykKIHR5cGVkZWYgYm9vbCAoKldL
QnVuZGxlUGFnZVNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdXJsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tC
dW5kbGVJbnRlbnRSZXF1ZXN0UmVmIGludGVudFJlcXVlc3QsIFdLVHlwZVJlZiogdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUmVn
aXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUlu
Zm8sIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworLy8gU2Ft
ZSBhcyBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrIGJ1dCBjb250
YWlucyB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgdGl0bGUuCisvLyBXS0J1bmRsZVBhZ2VEaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFzb25zLgordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZy
YW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tU
ZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5
cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTE1
Myw2ICsxNTcsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAgICAvLyBW
ZXJzaW9uIDMKICAgICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWU7CiAg
ICAgV0tCdW5kbGVQYWdlUmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWU7CisgICAgV0tC
dW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lOwogfTsKIHR5
cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcAppbmRleCBhNmEwNjEyLi45MzliZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE2IEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQ
YWdlKiBwYWdlLCBjb25zCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFU
b1Bhc3MpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJl
Y2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXZWJGcmFt
ZSogZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBtX2NsaWVudC5kaWRS
ZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRpdGxl
LmltcGwoKSksIHRvQVBJKHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCAmdXNlckRhdGFU
b1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9J
bXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZSogcGFnZSAsIFdlYkZy
YW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICghbV9j
bGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggODFkOWJlNC4uMzIyNzFjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRl
ICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7
CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViUGFnZSosIFdl
YkZyYW1lKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFJlZlB0cjxBUElPYmplY3Q+JiB1
c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlKiwgY29u
c3QgU3RyaW5nJiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2UqLCBjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBXZWJGcmFtZSosIFJlZlB0cjxBUElP
YmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHko
V2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2
b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUq
LCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVz
ZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNmE4MDE5My4u
YWY0ODljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQzMCwxMyAr
NDMwLDE5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRp
dGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIC8vIEhhdmUgZG91YmxlIG5vdGlmaWNh
dGlvbiBvZiB0aGUgc2FtZSBldmVudCBpbiBvcmRlciB0byBzdXBwb3J0IGxlZ2FjeSBBUEkuCiAK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCi0gICAgLy8gRklYTUU6IHVzZSBkaXJl
Y3Rpb24gb2YgdGl0bGUuCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQo
KS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh3ZWJQYWdlLCB0aXRsZS5zdHJpbmcoKSwgbV9mcmFt
ZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSht
X2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxlLnN0cmluZygpLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKKworICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxl
IGNsaWVudCBpbmNsdWRpbmcgdGl0bGUgZGlyZWN0aW9uLgorICAgIHdlYlBhZ2UtPmluamVjdGVk
QnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1l
KHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgbV9mcmFtZSwgdXNl
ckRhdGEpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MgaW5jbHVkaW5nIHRpdGxlIGRp
cmVjdGlvbi4KKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJl
Y2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxl
LnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcAppbmRleCBk
NWM2MGZjLi40ZDE2ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
cXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAgUXRCdWlsdGluQnVu
ZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5kbGUqIGJ1bmRsZSwgV0tC
dW5kbGVQYWdlUmUKICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9t
TG9jYWxVUkwKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAg
IDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIDAsIC8vIGRpZFJl
Y2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdl
U2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCmluZGV4IGM2NTk1NTQuLjQxMDc0ZDggMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKQEAgLTEwMzgsNiArMTAzOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVGV4dERpcmVj
dGlvbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQppbmRleCBmOTNmOGE5Li41MWI2OWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKQEAgLTM5LDYgKzM5
LDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWVQcml2YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1N0cmluZy5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxTaGFyZWRcQVBJXGNcV0tTdHJpbmdQcml2YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGly
JVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1Rl
eHREaXJlY3Rpb24uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
ICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRc
QVBJXGNcV0tVUkwuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
ICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVVJMUmVxdWVzdC5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI3OTBkY2UuLmJjYjBjNjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAxMi0wOS0wNiAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGlu
dGVsLmNvbT4KKworICAgICAgICBbV0syXSBUZXh0IGRpcmVjdGlvbiBBUEkgZm9yIFdLMgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBu
ZXcgV0tUZXh0RGlyZWN0aW9uIGVudW0gdHlwZSB0byBXSzIgQyBBUEkuCisgICAgICAgIFdLVGV4
dERpcmVjdGlvbiBpcyBzaW1pbGFyIHRvIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZW51bS4KKyAg
ICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHRvIGJlIHVzZWQgZm9yIGRvY3VtZW50cyB0aXRsZXMg
KGluIEhUTUwKKyAgICAgICAgdGhlIGRpcmVjdGlvbiBvZiBhIHRpdGxlIGNhbiBiZSBzZXQgd2l0
aCB0aGUgJ2RpcicgYXR0cmlidXRlKS4KKyAgICAgICAgVGhlIFdLVGV4dERpcmVjdGlvbiB0eXBl
IHdhcyBmaXJzdCB1c2VkIGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2Vp
dmVUaXRsZSgpCisgICAgICAgIHRvIHByb3ZpZGUgYm90aCBCdW5kbGUgY2xpZW50IGFuZCBVSSBw
cm9jZXNzIHdpdGggdGhlIHRleHQgZGlyZWN0aW9uIGluZm8uCisgICAgICAgIE5ldyBXS0J1bmRs
ZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjayBhbmQKKyAg
ICAgICAgV0tQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sg
Y2FsbGJhY2tzIHdlcmUgYWRkZWQgdG8KKyAgICAgICAgV0tCdW5kbGVQYWdlIGludGVyZmFjZSBh
bmQgV0tQYWdlIGludGVyZmFjZXMgY29ycmVzcG9uZGluZ2x5LCBob3dldmVyIHRoZSBleGlzdGlu
ZworICAgICAgICAnUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lJyBjYWxsYmFja3Mgd2VyZSBr
ZXB0IGluIG9yZGVyIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgQWxzbyBoYXZpbmcg
dGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNlc3NhcnkgZm9yIHBhc3Npbmcgb2Ygc2V2ZXJhbCB0
ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiByZWx5aW5nIG9uIHRlc3RSdW5uZXIudGl0bGVUZXh0
RGlyZWN0aW9uLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm06CisgICAgICAgICgtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5p
Yl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2Vp
dmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKyAgICAgICAgKEluamVjdGVk
QnVuZGxlUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKwogMjAxMi0w
OS0wNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAg
ICAgICAgIFtFRkxdIFNhbml0aXplIFVSTHMgaW4gRVdlYkxhdW5jaGVyIC8gTWluaWJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxl
ci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5k
ZXggZTZiNmY1NC4uNjFkMTU2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTYzNSw2ICs2MzUsNyBAQCAtICh2b2lkKWF3YWtlRnJv
bU5pYgogICAgICAgICAwLCAvLyBwbHVnaW5EaWRGYWlsCiAgICAgICAgIDAsIC8vIGRpZFJlY2Vp
dmVJbnRlbnRGb3JGcmFtZQogICAgICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VGb3JG
cmFtZQorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUK
ICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwg
JmxvYWRDbGllbnQpOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDY3NDZhNzAu
LmI5Y2E2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSkKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAogICAgICAgICBkaWRGYWlsTG9hZFdp
dGhFcnJvckZvckZyYW1lLAogICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWUsCi0gICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lLAorICAgICAgICAwLCAvLyBkaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJzdExheW91dEZvckZyYW1l
CiAgICAgICAgIDAsIC8vIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lCiAg
ICAgICAgIDAsIC8vIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeQpAQCAtMzA0LDcgKzMwNCw4
IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKQogICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywgLy8gZGlkRmluaXNoUHJvZ3Jlc3MK
ICAgICAgICAgMCwgLy8gc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9tTG9jYWxVUkwKICAg
ICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9yRnJh
bWUKLSAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUgLy8gcmVnaXN0ZXJJbnRl
bnRTZXJ2aWNlRm9yRnJhbWUKKyAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUs
IC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCisgICAgICAgIGRpZFJlY2VpdmVUaXRs
ZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFnZUxv
YWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCkBAIC02MzEsOSArNjMyLDkgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnUKICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBh
Z2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoZnJhbWUsIGVycm9yKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0
aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGly
ZWN0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlLCBX
S1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SW5q
ZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZSh0aXRsZSwgZnJhbWUpOworICAgIHN0YXRpY19jYXN0PEluamVjdGVk
QnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRp
dGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHRpdGxlLCB0aXRsZURpcmVjdGlvbiwgZnJhbWUpOwog
fQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRX
b3JsZFJlZiB3b3JsZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKQEAgLTk1NSw4ICs5NTYsOSBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXSwogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5k
b25lKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUoV0tT
dHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiAvKnRpdGxlRGlyZWN0aW9uKi8sIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUpCiB7CisgICAgLy8gRklYTUUgOiBVc2UgZGlyZWN0aW9uIG9mIHRp
dGxlLgogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAzYWQyMDNkLi4yNjlj
YTkyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRsZVBhZ2VSZWYsIGNvbnN0IHZv
aWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7
CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZv
aWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYqLCBj
b25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlv
bkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVj
dGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qg
dm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2
b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0
aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVm
LCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRh
dGUsIGNvbnN0IHZvaWQqKTsKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZEZpbmlz
aFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVu
ZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHRE
aXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dGb3JG
cmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmKTsKICAgICB2b2lk
IGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CiAgICAg
dm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiwg
V0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYzU0OWU4OC4uMmE3YjY3MyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQyOSw2ICs0MjksNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAgICAgICAgIDAsIC8vIHBsdWdpbkRpZEZhaWwKICAgICAgICAgMCwgLy8gZGlkUmVj
ZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZv
ckZyYW1lCisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFt
ZQogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX21haW5XZWJWaWV3LT5w
YWdlKCksICZwYWdlTG9hZGVyQ2xpZW50KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172403</attachid>
            <date>2012-11-05 14:14:08 -0800</date>
            <delta_ts>2012-11-06 03:40:35 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug95303_v8</filename>
            <type>text/plain</type>
            <size>34395</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDgyY2I0ZjAyNzg5NzBhZmYyMWYwMGE2ODM5MzhlNTZjN2JlMWVlOGUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IFNlcCA2IDE3OjMwOjU3IDIwMTIgKzAzMDAKCiAgICBidWc5NTMwMwoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBkMzZkNzNjLi4yYWZlNDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMDkt
MDYgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisK
KyAgICAgICAgW1dLMl0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdLVGV4dERp
cmVjdGlvbiBlbnVtIHR5cGUgdG8gV0syIEMgQVBJLgorICAgICAgICBXS1RleHREaXJlY3Rpb24g
aXMgc2ltaWxhciB0byBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4
dERpcmVjdGlvbiBpcyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MCisg
ICAgICAgIHRoZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXIn
IGF0dHJpYnV0ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3Qg
dXNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQor
ICAgICAgICB0byBwcm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRo
IHRoZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBOZXcgV0tCdW5kbGVQYWdlRGlkUmVj
ZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgYW5kCisgICAgICAgIFdLUGFn
ZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrcyB3
ZXJlIGFkZGVkIHRvCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBp
bnRlcmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAg
J1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRl
ciB0byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0
aW9uIGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcwor
ICAgICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2FkZXJD
bGllbnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJl
Y3Rpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkxvYWRlckNsaWVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFn
ZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojpk
aWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZVRpdGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5C
dW5kbGVQYWdlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2lu
L1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0xMS0wNSAgTWlraGFpbCBQb3pkbnlha292
ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1h
a2UgRXdrX1VybF9SZXF1ZXN0LCBFd2tfVXJsX1Jlc3BvbnNlLCBFd2tfTmF2aWdhdGlvbl9EYXRh
ICBFd2tfT2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWQ0N2I3Ni4u
YTM1ZDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yOCw2ICsyOCw3IEBA
IHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAkkKFdlYktp
dDIpL1NoYXJlZC9BUEkvYy9XS1N0cmluZ1ByaXZhdGUuaCBcCisJJChXZWJLaXQyKS9TaGFyZWQv
QVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVHlw
ZS5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1VSTC5oIFwKIAkkKFdlYktpdDIpL1No
YXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaCBcCkBAIC0zNTEsNiArMzUyLDcgQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1R5cGUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUeXBlLmggXAog
CVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTC5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDM4MGNkMjUuLjVkNzQyYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXS0dlb21ldHJ5LmgiCiAjaW5jbHVkZSAiV0tJbWFn
ZS5oIgogI2luY2x1ZGUgIldLUGFnZUxvYWRUeXBlcy5oIgorI2luY2x1ZGUgIldLVGV4dERpcmVj
dGlvbi5oIgogI2luY2x1ZGUgIldlYkVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgpAQCAtNTAsNiArNTEsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50VHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHRUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlVHJh
aXRzLmg+CkBAIC04NTAsNiArODUyLDE5IEBAIGlubGluZSBXZWJDb3JlOjpVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzIHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhXS1VzZXJDb250CiAgICAg
cmV0dXJuIFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVzOwogfQogCitpbmxpbmUgV0tUZXh0RGly
ZWN0aW9uIHRvQVBJKFdlYkNvcmU6OlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHN3
aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVy
biBrV0tUZXh0RGlyZWN0aW9uTFRSOworICAgIGNhc2UgV2ViQ29yZTo6UlRMOgorICAgICAgICBy
ZXR1cm4ga1dLVGV4dERpcmVjdGlvblJUTDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rpb25MVFI7CisgICAg
fQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2Fz
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUZXh0RGlyZWN0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBmMDVlNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVGV4dERpcmVjdGlvbl9o
CisjZGVmaW5lIFdLVGV4dERpcmVjdGlvbl9oCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJu
ICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAga1dLVGV4dERpcmVjdGlvblJUTCA9ICAwLAor
ICAgIGtXS1RleHREaXJlY3Rpb25MVFIgPSAgMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tUZXh0
RGlyZWN0aW9uOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyog
V0tUZXh0RGlyZWN0aW9uX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBkYWRlYmJjLi40ODY0YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb21ldHJ5
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS1BhZ2VMb2FkVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlvbi5o
PgogCiAjaWZuZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtNzYsNiAr
NzcsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQbHVnaW5EaWRGYWlsQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0Vycm9yQ29kZSBlcnJvckNvZAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlk
UmVjZWl2ZUludGVudEZvckZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS0ludGVudERhdGFSZWYgaW50ZW50LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlUmVnaXN0ZXJJbnRlbnRT
ZXJ2aWNlRm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRMYXlvdXRD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzLCBX
S1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGly
ZWN0aW9uLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRG
YWlsVG9Jbml0aWFsaXplUGx1Z2luQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKQEAgLTEzMCw2ICsxMzIsMTAgQEAgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCB7CiAgICAg
V0tQYWdlUmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZTsKIAogICAgIFdLUGFnZURp
ZExheW91dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkTGF5b3V0OworCisgICAgLy8gU2FtZSBhcyBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZUNhbGxiYWNrIGJ1dCBjb250YWlucyB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgdGl0bGUuCisg
ICAgLy8gV0tQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjayBpcyBrZXB0IGZvciBs
ZWdhY3kgcmVhc29ucy4KKyAgICBXS1BhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9y
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rp
b25Gb3JGcmFtZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgV0tQYWdl
TG9hZGVyQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcAppbmRleCAwYjkyNzVmLi42ZjhmYjI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRl
ckNsaWVudC5jcHAKQEAgLTE1Myw2ICsxNTMsNyBAQCB2b2lkIGF0dGFjaExvYWRlckNsaWVudFRv
VmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICAwLCAvLyBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUK
ICAgICAgICAgMCwgLy8gZGlkTGF5b3V0CisgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVUaXRsZVdp
dGhEaXJlY3Rpb25Gb3JGcmFtZQogICAgIH07CiAgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJ
KHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFnZShXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3ZWJWaWV3KSkp
OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQod2tQYWdlLCAmd2tMb2FkZXJDbGllbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5
M2M2MGQ0Li5hODBlZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmNwcApAQCAtMTEyLDYgKzExMiwxNCBAQCB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmCiAg
ICAgbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRp
dGxlLmltcGwoKSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKIH0KIAordm9pZCBXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhE
aXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUs
IFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBBUElPYmplY3QqIHVzZXJEYXRhKQoreworICAgIGlmICghbV9jbGllbnQuZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Ns
aWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRv
QVBJKHRpdGxlLmltcGwoKSksIHRvQVBJKHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB2b2lkIFdlYkxvYWRl
ckNsaWVudDo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZy
YW1lUHJveHkqIGZyYW1lLCBBUElPYmplY3QqIHVzZXJEYXRhKQogewogICAgIGlmICghbV9jbGll
bnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJM
b2FkZXJDbGllbnQuaAppbmRleCA4NWYxMDcyLi5jODIxZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRE
aXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC02Nyw2ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2Vi
RnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUElPYmplY3QqKTsK
ICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIEFQSU9iamVjdCop
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgY29uc3Qg
U3RyaW5nJiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOworICAgIHZvaWQgZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKICAg
ICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAg
IHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1l
UHJveHkqLCBBUElPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMjRkMzI2OC4uMDRhYzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01J
TUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckVtYmVkZGVkT2JqZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMu
aD4KICNpbmNsdWRlIDxzdGRpby5oPgogCkBAIC0yMTg4LDYgKzIxODksMjEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdGl0bGUKICAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh0aGlzLCB0aXRsZSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAordm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1aW50MzJfdCBvcGFxdWVUaXRsZURpcmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit7CisgICAgUmVmUHRyPEFQSU9iamVj
dD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVj
b2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KG1lc3NhZ2VEZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0so
ZnJhbWUpOworCisgICAgLy8gRG8gbm90IHNldCB0aXRsZSBmb3IgZnJhbWUgYXMgaXQgaXMgZG9u
ZSBhbHJlYWR5IGluIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKCkuCisKKyAgICBtX2xvYWRlckNs
aWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodGhpcywgdGl0bGUsIHN0
YXRpY19jYXN0PFdlYkNvcmU6OlRleHREaXJlY3Rpb24+KG9wYXF1ZVRpdGxlRGlyZWN0aW9uKSwg
ZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0
TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjhlMzRiYy4uYmE3NDZiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzc3LDYgKzc3Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwog
ICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25zdCBTdHJpbmcmLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCB1aW50MzJfdCB0aXRsZURpcmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWROZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQoQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE5N2YyMGQuLjMw
ZTc5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMTM3LDYgKzEzNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAg
ICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6
OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwogICAgIERpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHRpdGxlLCBXZWJL
aXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwor
ICAgIERpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXVEY6OlN0cmluZyB0aXRsZSwgdWludDMyX3QgdGl0bGVEaXJlY3Rpb24sIFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAgRGlk
RGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAg
RGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBE
aWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQzZmJiMTQuLjEz
ZDY0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM1MSw2ICszNTEsNyBAQAogCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
Y3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlC
QjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CiAJCTNGODdCOUMw
MTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYy
IC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggKi87IH07CisJCTQ0NzJENzY2MTVGODg3OTUwMDQ3
OTA2NyAvKiBXS1RleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0NzJENzY1MTVGODg3OTUwMDQ3OTA2NyAvKiBXS1RleHREaXJlY3Rp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAw
MUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4
ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTA1QjBERDE2MkY3RTlEMDBF
Mjc3MDkgLyogTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDVCMERCMTYyRjdFOUQwMEUyNzcwOSAvKiBOZXR3
b3JrUHJvY2Vzc01hbmFnZXIuY3BwICovOyB9OwpAQCAtMTUzNyw2ICsxNTM4LDcgQEAKIAkJM0Y4
N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JD
aG9vc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZG
NjIgLyogV2ViQ29sb3JDaG9vc2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29sb3JDaG9vc2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDQ3MkQ3NjUxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1RleHREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVz
cG9uc2VNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNw
b25zZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlDQUNC
MDBDOERGRTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBXZWJQcm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNv
bnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00MDM3LDYgKzQwMzksNyBAQAogCQkJCUJDNDA3NUU5MTI0RkYwMjcwMDY4RjIwQSAv
KiBXS1N0cmluZy5jcHAgKi8sCiAJCQkJQkM0MDc1RUExMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nLmggKi8sCiAJCQkJQkM5MDk5N0YxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0
ZS5oICovLAorCQkJCTQ0NzJENzY1MTVGODg3OTUwMDQ3OTA2NyAvKiBXS1RleHREaXJlY3Rpb24u
aCAqLywKIAkJCQlCQzQwNzVFQjEyNEZGMDI3MDA2OEYyMEEgLyogV0tUeXBlLmNwcCAqLywKIAkJ
CQlCQzQwNzVFQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tUeXBlLmggKi8sCiAJCQkJQkM0MDc1RUQx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMLmNwcCAqLywKQEAgLTQ4MTAsNiArNDgxMyw3IEBACiAJ
CQkJNTE3Q0YwRTAxNjNBNDQ0QzAwQzI5NTBFIC8qIE5ldHdvcmtSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3
QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQ3
MkQ3NjYxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBjMmIzNzg5Li42ZTZiNzgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJLaXQy
L1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLSW1hZ2UuaD4KICNpbmNsdWRl
IDxXZWJLaXQyL1dLUGFnZUxvYWRUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tUZXh0RGly
ZWN0aW9uLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxzdGRib29sLmg+CkBA
IC0xMTIsNiArMTEzLDkgQEAgdHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkRm9yY2VV
bml2ZXJzYWxBY2Nlc3NGcm9tTG9jYWxVUkxDYWxsYmFjaykoV0tCdW4KIHR5cGVkZWYgdm9pZCAo
KldLQnVuZGxlUGFnZURpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVJbnRlbnRSZXF1ZXN0
UmVmIGludGVudFJlcXVlc3QsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUmVnaXN0ZXJJbnRlbnRTZXJ2aWNl
Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlwZVJlZiogdXNl
ckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkTGF5b3V0Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0xheW91dE1pbGVz
dG9uZXMgbWlsZXN0b25lcywgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CisvLyBTYW1lIGFzIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2Fs
bGJhY2sgYnV0IGNvbnRhaW5zIHRleHQgZGlyZWN0aW9uIG9mIHRoZSB0aXRsZS4KKy8vIFdLQnVu
ZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgaXMga2VwdCBmb3IgbGVnYWN5
IHJlYXNvbnMuCit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRo
RGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
CiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwpAQCAtMTU3LDYgKzE2MSw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQgewogCiAgICAgLy8gVmVyc2lvbiA0CiAgICAgV0tCdW5kbGVQYWdlRGlkTGF5b3V0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTGF5b3V0Owor
ICAgIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxi
YWNrICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZTsK
IH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgV0tCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggOGY2OGEzZTIuLmZlODEzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1NCw2ICsxNTQsMTYgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnMKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1
c2VyRGF0YVRvUGFzcykpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dDo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24s
IFdlYkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQoreworICAgIGlm
ICghbV9jbGllbnQuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKQorICAgICAg
ICByZXR1cm47CisKKyAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOworICAgIG1fY2xp
ZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9B
UEkodGl0bGUuaW1wbCgpKSwgdG9BUEkodGl0bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFtZSksICZ1
c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgdXNlckRhdGEgPSBhZG9w
dFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQ6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeShXZWJQYWdlKiBwYWdl
ICwgV2ViRnJhbWUqIGZyYW1lLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7CiAgICAg
aWYgKCFtX2NsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAppbmRleCBjNmIyNzdjLi45ZDJlNWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZXMu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Nyw2ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1l
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2Vy
RGF0YSk7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViUGFn
ZSosIFdlYkZyYW1lKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFJlZlB0cjxBUElPYmpl
Y3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdl
KiwgY29uc3QgU3RyaW5nJiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBXZWJGcmFtZSosIFJlZlB0
cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVy
YXJjaHkoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsK
ICAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2Vi
RnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVj
dD4mIHVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZGQz
ZTUwOS4uYTUyNGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQz
NSwxMyArNDM1LDE5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVj
ZWl2ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIC8vIEhhdmUgZG91YmxlIG5v
dGlmaWNhdGlvbiBvZiB0aGUgc2FtZSBldmVudCBpbiBvcmRlciB0byBzdXBwb3J0IGxlZ2FjeSBB
UEkuCiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCi0gICAgLy8gRklYTUU6IHVz
ZSBkaXJlY3Rpb24gb2YgdGl0bGUuCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJD
bGllbnQoKS5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh3ZWJQYWdlLCB0aXRsZS5zdHJpbmcoKSwg
bV9mcmFtZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAg
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIHRpdGxlLnN0cmluZygpLCBJbmplY3RlZEJ1bmRsZVVz
ZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKKworICAgIC8vIE5vdGlmeSB0aGUg
YnVuZGxlIGNsaWVudCBpbmNsdWRpbmcgdGl0bGUgZGlyZWN0aW9uLgorICAgIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZv
ckZyYW1lKHdlYlBhZ2UsIHRpdGxlLnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgbV9mcmFt
ZSwgdXNlckRhdGEpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MgaW5jbHVkaW5nIHRp
dGxlIGRpcmVjdGlvbi4KKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCks
IHRpdGxlLnN0cmluZygpLCB0aXRsZS5kaXJlY3Rpb24oKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcApp
bmRleCAzMzA0ZDQwLi41OTZhMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgUXRCdWls
dGluQnVuZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5kbGUqIGJ1bmRs
ZSwgV0tCdW5kbGVQYWdlUmUKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
CiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCiAgICAgICAgIDAs
IC8vIGRpZExheW91dAorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9u
Rm9yRnJhbWUKICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9w
YWdlLCAmbG9hZGVyQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCAw
NTdjYmYzLi4zNjg3MmIyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52
Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0xMDQyLDYg
KzEwNDIsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1RleHREaXJlY3Rpb24uaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1R5
cGUuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZSBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UKaW5kZXggNmYyNzFjYy4uNGMxYTlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkdlbmVyYXRlZC5tYWtlCkBAIC0zOSw2ICszOSw3IEBAIGFsbDoKICAgICB4Y29weSAv
eSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oIiAi
JUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9k
ICIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmcuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5n
UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAg
IHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tUZXh0RGlyZWN0aW9uLmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xXS1R5cGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2Vi
S2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVVJMLmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xXS1VSTFJlcXVlc3QuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA3MjFhMjFhLi5hNGNhOWIxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDktMDYgIE1pa2hhaWwg
UG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgW1dL
Ml0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdLVGV4dERpcmVjdGlvbiBlbnVt
IHR5cGUgdG8gV0syIEMgQVBJLgorICAgICAgICBXS1RleHREaXJlY3Rpb24gaXMgc2ltaWxhciB0
byBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4dERpcmVjdGlvbiBp
cyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MCisgICAgICAgIHRoZSBk
aXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXInIGF0dHJpYnV0ZSku
CisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3QgdXNlZCBpbiBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQorICAgICAgICB0byBw
cm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRoIHRoZSB0ZXh0IGRp
cmVjdGlvbiBpbmZvLgorICAgICAgICBOZXcgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0
aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgYW5kCisgICAgICAgIFdLUGFnZURpZFJlY2VpdmVU
aXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrcyB3ZXJlIGFkZGVkIHRv
CisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBpbnRlcmZhY2VzIGNv
cnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAgJ1BhZ2VEaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRlciB0byBrZWVwIGNv
bXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0aW9uIGluZm8gaXMg
bmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcworICAgICAgICBpbiBX
VFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4KKworICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtC
cm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9y
RnJhbWUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTItMTEtMDUgIEt5dW5nVGFlIEtpbSAgPGt0
Zi5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4IGJ1aWxkIHdhcm5pbmcgaW4g
RVdlYkxhdW5jaGVyL21haW4uYwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dL
MkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAxNzMxZWI2Li44YTEyZWQ0IDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAt
NjQyLDYgKzY0Miw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIGRpZFJl
Y2VpdmVJbnRlbnRGb3JGcmFtZQogICAgICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VG
b3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRMYXlvdXQKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlTG9h
ZGVyQ2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZsb2FkQ2xpZW50KTsKICAgICAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcAppbmRleCAwMDgxOTc1Li5jOTY1MzNlIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1
bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIGRpZEZpbmlzaExvYWRGb3JG
cmFtZSwKICAgICAgICAgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKICAgICAgICAgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lLAotICAgICAgICBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSwKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUKICAgICAgICAg
MCwgLy8gZGlkRmlyc3RMYXlvdXRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRSZW1vdmVGcmFtZUZy
b21IaWVyYXJjaHkKQEAgLTMzMCw2ICszMzAsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVj
dGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgZGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lLCAvLyBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUKICAgICAgICAgcmVnaXN0
ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1l
CiAgICAgICAgIDAsIC8vIGRpZExheW91dAorICAgICAgICBkaWRSZWNlaXZlVGl0bGVXaXRoRGly
ZWN0aW9uRm9yRnJhbWUKICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGll
bnQobV9wYWdlLCAmbG9hZGVyQ2xpZW50KTsKIApAQCAtNjU4LDkgKzY1OSw5IEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1l
KGZyYW1lLCBlcnJvcik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tUZXh0RGly
ZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYq
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVu
ZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUodGl0bGUsIGZyYW1lKTsKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBh
Z2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVUaXRsZVdpdGhE
aXJlY3Rpb25Gb3JGcmFtZSh0aXRsZSwgdGl0bGVEaXJlY3Rpb24sIGZyYW1lKTsKIH0KIAogdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYg
d29ybGQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCkBAIC05ODIsOCArOTgzLDkgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgV0sKICAgICBmcmFtZURpZENoYW5nZUxvY2F0aW9uKGZyYW1lKTsKIH0K
IAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLU3Ry
aW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXS1N0cmluZ1JlZiB0
aXRsZSwgV0tUZXh0RGlyZWN0aW9uIC8qdGl0bGVEaXJlY3Rpb24qLywgV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSkKIHsKKyAgICAvLyBGSVhNRSA6IHVzZSBkaXJlY3Rpb24gb2YgdGl0bGUuCiAgICAg
aWYgKCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IDc3MDhhNmYuLmViZTUzZTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGRpZEZpbmlzaFByb2dyZXNzKFdLQnVuZGxlUGFnZVJlZiwgY29uc3Qgdm9pZCopOwogICAg
IHN0YXRpYyB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiwgV0tCdW5kbGVGcmFtZVJlZiwgIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tC
dW5kbGVGcmFtZVJlZiwgV0tFcnJvclJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwotICAg
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tT
dHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQq
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxl
RGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdL
QnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYsIGNvbnN0IHZvaWQqKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYsIFdLVVJMUmVmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZGF0ZSwgY29uc3Qg
dm9pZCopOwpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoTG9h
ZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3Mo
KTsKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
ZiwgV0tFcnJvclJlZik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmlu
Z1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJlZik7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVX
aXRoRGlyZWN0aW9uRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLVGV4dERpcmVjdGlvbiwg
V0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVu
ZGxlRnJhbWVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogICAgIHZvaWQgZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIHdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1
cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCAxNmM1MTIyLi5kNjAzYmU0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNDQ4LDYgKzQ0OCw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0
aW9ucykKICAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAs
IC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZExheW91
dAorICAgICAgICAwLCAvLyBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUKICAg
ICB9OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgp
LCAmcGFnZUxvYWRlckNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172543</attachid>
            <date>2012-11-06 03:40:35 -0800</date>
            <delta_ts>2014-02-05 11:08:10 -0800</delta_ts>
            <desc>patch v9</desc>
            <filename>bug95303_v9</filename>
            <type>text/plain</type>
            <size>39624</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDk1YWViOTUwOWRlODY1OTM4Mjk2ZGJjM2U0NTJiZjVhNDllM2NhYjkKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IFNlcCA2IDE3OjMwOjU3IDIwMTIgKzAzMDAKCiAgICBidWc5NTMwMwoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMTU2
NGJkLi5hY2U4MWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEtMDYgIE1pa2hhaWwg
UG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgW1dL
Ml0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVW5za2lwcGVkIHJlbGF0ZWQgdGVzdHMgZm9yIEVGTCBXSzIu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTIt
MTEtMDUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIFVucmV2aWV3ZWQgbW9ybmluZyBnYXJkZW5pbmcsIHNraXAgbmV3IGZhaWxpbmcgdGVzdHMu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ZTYxZWUxNy4uNjY0MTI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTc1LDEwICsxNzUsNiBAQCB3ZWJraXQub3JnL2IvNzI2OTggbWVk
aWEvYXVkaW8tZ2FyYmFnZS1jb2xsZWN0Lmh0bWwKICMgRkFJTElORyBURVNUUwogIy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGFuIGlt
cGxlbWVudGF0aW9uIGZvciB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbgotd2Via2l0Lm9y
Zy9iLzkzNDcwIGZhc3QvZG9tL3RpdGxlLWRpcmVjdGlvbmFsaXR5LXJlbW92ZUNoaWxkLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85MzQ3MCBmYXN0L2RvbS90aXRsZS1kaXJlY3Rpb25h
bGl0eS5odG1sIFsgRmFpbHVyZSBdCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBzZXRUb3VjaFBvaW50
UmFkaXVzKCkgaXMgbm90IHN1cHBvcnRlZAogQnVnKEVGTCkgZmFzdC9ldmVudHMvdG91Y2gvYmFz
aWMtc2luZ2xlLXRvdWNoLWV2ZW50cy5odG1sIFsgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2
NmFiYjc5Li4zMDdlYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMDYg
IE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAg
ICAgICAgW1dLMl0gVGV4dCBkaXJlY3Rpb24gQVBJIGZvciBXSzIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdLVGV4dERpcmVj
dGlvbiBlbnVtIHR5cGUgdG8gV0syIEMgQVBJLgorICAgICAgICBXS1RleHREaXJlY3Rpb24gaXMg
c2ltaWxhciB0byBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIGVudW0uCisgICAgICAgIFdLVGV4dERp
cmVjdGlvbiBpcyB0byBiZSB1c2VkIGZvciBkb2N1bWVudHMgdGl0bGVzIChpbiBIVE1MCisgICAg
ICAgIHRoZSBkaXJlY3Rpb24gb2YgYSB0aXRsZSBjYW4gYmUgc2V0IHdpdGggdGhlICdkaXInIGF0
dHJpYnV0ZSkuCisgICAgICAgIFRoZSBXS1RleHREaXJlY3Rpb24gdHlwZSB3YXMgZmlyc3QgdXNl
ZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoKQorICAg
ICAgICB0byBwcm92aWRlIGJvdGggQnVuZGxlIGNsaWVudCBhbmQgVUkgcHJvY2VzcyB3aXRoIHRo
ZSB0ZXh0IGRpcmVjdGlvbiBpbmZvLgorICAgICAgICBOZXcgV0tCdW5kbGVQYWdlRGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgYW5kCisgICAgICAgIFdLUGFnZURp
ZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrIGNhbGxiYWNrcyB3ZXJl
IGFkZGVkIHRvCisgICAgICAgIFdLQnVuZGxlUGFnZSBpbnRlcmZhY2UgYW5kIFdLUGFnZSBpbnRl
cmZhY2VzIGNvcnJlc3BvbmRpbmdseSwgaG93ZXZlciB0aGUgZXhpc3RpbmcKKyAgICAgICAgJ1Bh
Z2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZScgY2FsbGJhY2tzIHdlcmUga2VwdCBpbiBvcmRlciB0
byBrZWVwIGNvbXBhdGliaWxpdHkuCisgICAgICAgIEFsc28gaGF2aW5nIHRleHQgZGlyZWN0aW9u
IGluZm8gaXMgbmVjZXNzYXJ5IGZvciBwYXNzaW5nIG9mIHNldmVyYWwgdGVzdCBjYXNlcworICAg
ICAgICBpbiBXVFIgcmVseWluZyBvbiB0ZXN0UnVubmVyLnRpdGxlVGV4dERpcmVjdGlvbi4KKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChhdHRhY2hMb2FkZXJDbGll
bnRUb1ZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rp
b25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkxvYWRlckNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViUGFnZVBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRS
ZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVj
ZWl2ZVRpdGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5CdW5k
bGVQYWdlKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dl
YktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0xMS0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIE5lZWQgYSB3YXkgdG8gc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdl
cyBiZXR3ZWVuIHRoZSBXS1dlYlByb2Nlc3NQbHVnSW4gb2JqZWN0IGFuZCB0aGUgY2xpZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDQ3Yjc2Li5hMzVkNzkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4LDYgKzI4LDcgQEAgd2Via2l0Ml9oX2FwaSAr
PSBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggXAogCSQoV2Vi
S2l0MikvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9j
L1dLU3RyaW5nUHJpdmF0ZS5oIFwKKwkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1RleHREaXJl
Y3Rpb24uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tUeXBlLmggXAogCSQoV2ViS2l0
MikvU2hhcmVkL0FQSS9jL1dLVVJMLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLVVJM
UmVxdWVzdC5oIFwKQEAgLTM1MSw2ICszNTIsNyBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTdHJpbmdQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHRE
aXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5cGUuaCBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLVVJMLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmgKaW5kZXggMzgwY2QyNS4uMGY0ZDJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIldLR2VvbWV0cnkuaCIKICNpbmNsdWRlICJXS0ltYWdlLmgiCiAjaW5jbHVkZSAi
V0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRP
cHRpb25zLmgiCkBAIC01MCw2ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlclNjcmlwdFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KQEAgLTg1MCw2
ICs4NTIsMTkgQEAgaW5saW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9V
c2VyQ29udGVudEluamVjdGVkRnJhbWVzKFdLVXNlckNvbnQKICAgICByZXR1cm4gV2ViQ29yZTo6
SW5qZWN0SW5BbGxGcmFtZXM7CiB9CiAKK2lubGluZSBXS1RleHREaXJlY3Rpb24gdG9BUEkoV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChkaXJlY3Rpb24p
IHsKKyAgICBjYXNlIFdlYkNvcmU6OlJUTDoKKyAgICAgICAgcmV0dXJuIGtXS1RleHREaXJlY3Rp
b25SVEw7CisgICAgY2FzZSBXZWJDb3JlOjpMVFI6CisgICAgICAgIHJldHVybiBrV0tUZXh0RGly
ZWN0aW9uTFRSOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4ga1dLVGV4dERpcmVjdGlvbkxUUjsKKyAgICB9Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV0tTaGFyZWRBUElDYXN0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1RleHREaXJlY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMGYwNWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLVGV4dERpcmVjdGlvbi5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0tUZXh0RGlyZWN0aW9uX2gKKyNkZWZpbmUgV0tUZXh0
RGlyZWN0aW9uX2gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CitlbnVtIHsKKyAgICBrV0tUZXh0RGlyZWN0aW9uUlRMID0gIDAsCisgICAga1dLVGV4dERpcmVj
dGlvbkxUUiA9ICAxCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1RleHREaXJlY3Rpb247CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1RleHREaXJlY3Rpb25f
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGRhZGViYmMu
LjQ4NjRhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbWV0cnkuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUxvYWRUeXBl
cy5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tUZXh0RGlyZWN0aW9uLmg+CiAKICNpZm5kZWYgX19j
cGx1c3BsdXMKICNpbmNsdWRlIDxzdGRib29sLmg+CkBAIC03Niw2ICs3Nyw3IEBAIHR5cGVkZWYg
dm9pZCAoKldLUGFnZVBsdWdpbkRpZEZhaWxDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRXJy
b3JDb2RlIGVycm9yQ29kCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlSW50ZW50Rm9y
RnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50
RGF0YVJlZiBpbnRlbnQsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZUNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNl
SW5mb1JlZiBzZXJ2aWNlSW5mbywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZExheW91dENhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgV0tMYXlvdXRNaWxlc3RvbmVzIG1pbGVzdG9uZXMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNl
aXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAK
IC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZhaWxUb0luaXRpYWxpemVQ
bHVnaW5DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgbWltZVR5cGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpAQCAtMTMwLDYgKzEz
MiwxMCBAQCBzdHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBXS1BhZ2VSZWdpc3Rlcklu
dGVudFNlcnZpY2VGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lz
dGVySW50ZW50U2VydmljZUZvckZyYW1lOwogCiAgICAgV0tQYWdlRGlkTGF5b3V0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMYXlvdXQ7CisK
KyAgICAvLyBTYW1lIGFzIFdLUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgYnV0
IGNvbnRhaW5zIHRleHQgZGlyZWN0aW9uIG9mIHRoZSB0aXRsZS4KKyAgICAvLyBXS1BhZ2VEaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFzb25zLgor
ICAgIFdLUGFnZURpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lOwogfTsK
IHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCBXS1BhZ2VMb2FkZXJDbGllbnQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDBiOTI3NWYuLjZmOGZiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAt
MTUzLDYgKzE1Myw3IEBAIHZvaWQgYXR0YWNoTG9hZGVyQ2xpZW50VG9WaWV3KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZQogICAg
ICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZQogICAgICAgICAwLCAvLyBk
aWRMYXlvdXQKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZy
YW1lCiAgICAgfTsKICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0V2ViVmlld0Jh
c2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAgV0tQYWdlU2V0
UGFnZUxvYWRlckNsaWVudCh3a1BhZ2UsICZ3a0xvYWRlckNsaWVudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCmluZGV4IDkzYzYwZDQuLmE4MGVkYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCkBAIC0x
MTIsNiArMTEyLDE0IEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYKICAgICBtX2NsaWVudC5kaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgpKSwgdG9B
UEkoZnJhbWUpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCit2
b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1l
KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgV2ViQ29yZTo6VGV4dERp
cmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV2ViRnJhbWVQcm94eSogZnJhbWUsIEFQSU9iamVjdCog
dXNlckRhdGEpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0
aW9uRm9yRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVU
aXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkodGl0bGUuaW1wbCgp
KSwgdG9BUEkodGl0bGVEaXJlY3Rpb24pLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwg
bV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRGaXJz
dExheW91dEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUs
IEFQSU9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRGaXJzdExheW91
dEZvckZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCmlu
ZGV4IDg1ZjEwNzIuLmM4MjFlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9h
ZGVyQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZS5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5
b3V0TWlsZXN0b25lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTY3LDYgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
LCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmLCBXZWJGcmFt
ZVByb3h5KiwgQVBJT2JqZWN0Kik7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0
aW9uRm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERp
cmVjdGlvbiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkRmlyc3RM
YXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7
CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRSZW1vdmVG
cmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVj
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyNGQz
MjY4Li4wNGFjNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRPYmplY3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RGlyZWN0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0
ZGlvLmg+CiAKQEAgLTIxODgsNiArMjE4OSwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQog
ICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVpbnQzMl90IG9wYXF1ZVRpdGxlRGlyZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CisKKyAgICAv
LyBEbyBub3Qgc2V0IHRpdGxlIGZvciBmcmFtZSBhcyBpdCBpcyBkb25lIGFscmVhZHkgaW4gZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUoKS4KKworICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVU
aXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0aGlzLCB0aXRsZSwgc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6VGV4dERpcmVjdGlvbj4ob3BhcXVlVGl0bGVEaXJlY3Rpb24pLCBmcmFtZSwgdXNlckRhdGEu
Z2V0KCkpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBiOGUzNGJjLi5iYTc0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NzcsNiArNzc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgc2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYsIHVpbnQzMl90IHRpdGxlRGlyZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKICAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dChDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTk3ZjIwZC4uMzBlNzllMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0x
MzcsNiArMTM3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRSZW1vdmVG
cmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHVybCwgV1RG
OjpTdHJpbmcgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCiAgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgdGl0bGUsIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpIFZhcmlhZGljCisgICAgRGlkUmVjZWl2ZVRp
dGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHRp
dGxlLCB1aW50MzJfdCB0aXRsZURpcmVjdGlvbiwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJN
ZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVz
ZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKICAgICBEaWRSdW5JbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwogICAgIERpZERldGVjdFhTU0ZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVu
Y29kZXIgdXNlckRhdGEpIFZhcmlhZGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTA3YTkzMy4uNjA4YTg5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU1
LDYgKzM1NSw3IEBACiAJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4
N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07CiAJCTNG
ODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAwOTBGRjYy
IC8qIFdlYkNvbG9yQ2hvb3NlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9v
c2VyUHJveHkuaCAqLzsgfTsKKwkJNDQ3MkQ3NjYxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERp
cmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQ3MkQ3NjUxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIw
MDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tp
bmdSZXNwb25zZU1hcC5oICovOyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gKi87IH07CiAJCTUxMDVCMEREMTYyRjdFOUQwMEUyNzcwOSAvKiBOZXR3b3Jr
UHJvY2Vzc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEwNUIwREIxNjJGN0U5RDAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzTWFuYWdl
ci5jcHAgKi87IH07CkBAIC0xNTQ1LDYgKzE1NDYsNyBAQAogCQkzRjg3QjlCQTE1ODkzRjYzMDA5
MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNo
b29zZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNo
b29zZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDcyRDc2NTE1Rjg4
Nzk1MDA0NzkwNjcgLyogV0tUZXh0RGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLVGV4dERpcmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQ
cm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0
TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQwNDksNiAr
NDA1MSw3IEBACiAJCQkJQkM0MDc1RTkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmNwcCAq
LywKIAkJCQlCQzQwNzVFQTEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCAqLywKIAkJCQlC
QzkwOTk3RjEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggKi8sCisJCQkJNDQ3
MkQ3NjUxNUY4ODc5NTAwNDc5MDY3IC8qIFdLVGV4dERpcmVjdGlvbi5oICovLAogCQkJCUJDNDA3
NUVCMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1R5cGUuY3BwICovLAogCQkJCUJDNDA3NUVDMTI0RkYw
MjcwMDY4RjIwQSAvKiBXS1R5cGUuaCAqLywKIAkJCQlCQzQwNzVFRDEyNEZGMDI3MDA2OEYyMEEg
LyogV0tVUkwuY3BwICovLApAQCAtNDgyNCw2ICs0ODI3LDcgQEAKIAkJCQlFMUI3ODQ3MTE2M0Yy
NDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQjE2QURFMTY0ODU5ODQwMDI5MEQ2MiAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCMTZBRTIxNjQ4NjU2RDAwMjkwRDYyIC8qIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0NzJENzY2
MTVGODg3OTUwMDQ3OTA2NyAvKiBXS1RleHREaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggYzJiMzc4OS4uNmU2Yjc4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Zp
bmRPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0ltYWdlLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1BhZ2VMb2FkVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVGV4dERpcmVjdGlv
bi5oPgogCiAjaWZuZGVmIF9fY3BsdXNwbHVzCiAjaW5jbHVkZSA8c3RkYm9vbC5oPgpAQCAtMTEy
LDYgKzExMyw5IEBAIHR5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZEZvcmNlVW5pdmVy
c2FsQWNjZXNzRnJvbUxvY2FsVVJMQ2FsbGJhY2spKFdLQnVuCiB0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VEaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlSW50ZW50UmVxdWVzdFJlZiBp
bnRlbnRSZXF1ZXN0LCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVJlZ2lzdGVySW50ZW50U2VydmljZUZvckZy
YW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5cGVSZWYqIHVzZXJEYXRh
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
ZExheW91dENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tMYXlvdXRNaWxlc3RvbmVz
IG1pbGVzdG9uZXMsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OworLy8gU2FtZSBhcyBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNr
IGJ1dCBjb250YWlucyB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgdGl0bGUuCisvLyBXS0J1bmRsZVBh
Z2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrIGlzIGtlcHQgZm9yIGxlZ2FjeSByZWFz
b25zLgordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVj
dGlvbkZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0
aXRsZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3Ry
dWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lv
bjsKQEAgLTE1Nyw2ICsxNjEsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IHsK
IAogICAgIC8vIFZlcnNpb24gNAogICAgIFdLQnVuZGxlUGFnZURpZExheW91dENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExheW91dDsKKyAgICBX
S0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWU7CiB9Owog
dHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IFdLQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDhmNjhhM2UyLi5mZTgxMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE2IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShX
ZWJQYWdlKiBwYWdlLCBjb25zCiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRh
dGFUb1Bhc3MpKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRp
ZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0aW9uLCBXZWJG
cmFtZSogZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKKyAgICBtX2NsaWVudC5k
aWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKHRp
dGxlLmltcGwoKSksIHRvQVBJKHRpdGxlRGlyZWN0aW9uKSwgdG9BUEkoZnJhbWUpLCAmdXNlckRh
dGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOworICAgIHVzZXJEYXRhID0gYWRvcHRSZWYo
dG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZSogcGFnZSAsIFdl
YkZyYW1lKiBmcmFtZSwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKQogewogICAgIGlmICgh
bV9jbGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggYzZiMjc3Yy4uOWQyZTVhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEp
OwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYlBhZ2UqLCBX
ZWJGcmFtZSosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBSZWZQdHI8QVBJT2JqZWN0PiYg
dXNlckRhdGEpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYsIFdlYkZyYW1lKiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZShXZWJQYWdlKiwgY29u
c3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJ
T2JqZWN0PiYgdXNlckRhdGEpOwogICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5
KFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAg
dm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1l
KiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJl
Q29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1
c2VyRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGRkM2U1MDku
LmE1MjRmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00MzUsMTMg
KzQzNSwxOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVU
aXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aQogICAgICAgICByZXR1cm47CiAKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICAvLyBIYXZlIGRvdWJsZSBub3RpZmlj
YXRpb24gb2YgdGhlIHNhbWUgZXZlbnQgaW4gb3JkZXIgdG8gc3VwcG9ydCBsZWdhY3kgQVBJLgog
CiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgotICAgIC8vIEZJWE1FOiB1c2UgZGly
ZWN0aW9uIG9mIHRpdGxlLgogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50
KCkuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUod2ViUGFnZSwgdGl0bGUuc3RyaW5nKCksIG1fZnJh
bWUsIHVzZXJEYXRhKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogICAgIHdlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
bV9mcmFtZS0+ZnJhbWVJRCgpLCB0aXRsZS5zdHJpbmcoKSwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIGJ1bmRs
ZSBjbGllbnQgaW5jbHVkaW5nIHRpdGxlIGRpcmVjdGlvbi4KKyAgICB3ZWJQYWdlLT5pbmplY3Rl
ZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFt
ZSh3ZWJQYWdlLCB0aXRsZS5zdHJpbmcoKSwgdGl0bGUuZGlyZWN0aW9uKCksIG1fZnJhbWUsIHVz
ZXJEYXRhKTsKKworICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzIGluY2x1ZGluZyB0aXRsZSBk
aXJlY3Rpb24uCisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRS
ZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCB0aXRs
ZS5zdHJpbmcoKSwgdGl0bGUuZGlyZWN0aW9uKCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAKaW5kZXgg
MzMwNGQ0MC4uNTk2YTExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9x
dC9RdEJ1aWx0aW5CdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwCkBAIC03OSw2ICs3OSw3IEBAIFF0QnVpbHRpbkJ1
bmRsZVBhZ2U6OlF0QnVpbHRpbkJ1bmRsZVBhZ2UoUXRCdWlsdGluQnVuZGxlKiBidW5kbGUsIFdL
QnVuZGxlUGFnZVJlCiAgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZQogICAg
ICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZQogICAgICAgICAwLCAvLyBk
aWRMYXlvdXQKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZy
YW1lCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwg
JmxvYWRlckNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggMDU3Y2Jm
My4uMzY4NzJiMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTA0Miw2ICsxMDQy
LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxTaGFyZWRcQVBJXGNcV0tUZXh0RGlyZWN0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tUeXBlLmNw
cCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyR2VuZXJhdGVkLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRl
ZC5tYWtlCmluZGV4IDZmMjcxY2MuLjRjMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJHZW5lcmF0ZWQubWFrZQpAQCAtMzksNiArMzksNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2Qg
Ii4uXFNoYXJlZFxBUElcY1xXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCIgIiVDb25m
aWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5c
U2hhcmVkXEFQSVxjXFdLU3RyaW5nLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRl
XFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1N0cmluZ1ByaXZh
dGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29w
eSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVGV4dERpcmVjdGlvbi5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRc
QVBJXGNcV0tUeXBlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1VSTC5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRc
QVBJXGNcV0tVUkxSZXF1ZXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMmUwZjVlZS4uMjVhOGZmZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMi0xMS0wNiAgTWlraGFpbCBQb3pk
bnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBbV0syXSBU
ZXh0IGRpcmVjdGlvbiBBUEkgZm9yIFdLMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTUzMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgV0tUZXh0RGlyZWN0aW9uIGVudW0gdHlw
ZSB0byBXSzIgQyBBUEkuCisgICAgICAgIFdLVGV4dERpcmVjdGlvbiBpcyBzaW1pbGFyIHRvIFdl
YkNvcmU6OlRleHREaXJlY3Rpb24gZW51bS4KKyAgICAgICAgV0tUZXh0RGlyZWN0aW9uIGlzIHRv
IGJlIHVzZWQgZm9yIGRvY3VtZW50cyB0aXRsZXMgKGluIEhUTUwKKyAgICAgICAgdGhlIGRpcmVj
dGlvbiBvZiBhIHRpdGxlIGNhbiBiZSBzZXQgd2l0aCB0aGUgJ2RpcicgYXR0cmlidXRlKS4KKyAg
ICAgICAgVGhlIFdLVGV4dERpcmVjdGlvbiB0eXBlIHdhcyBmaXJzdCB1c2VkIGluIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSgpCisgICAgICAgIHRvIHByb3Zp
ZGUgYm90aCBCdW5kbGUgY2xpZW50IGFuZCBVSSBwcm9jZXNzIHdpdGggdGhlIHRleHQgZGlyZWN0
aW9uIGluZm8uCisgICAgICAgIE5ldyBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0bGVXaXRoRGly
ZWN0aW9uRm9yRnJhbWVDYWxsYmFjayBhbmQKKyAgICAgICAgV0tQYWdlRGlkUmVjZWl2ZVRpdGxl
V2l0aERpcmVjdGlvbkZvckZyYW1lQ2FsbGJhY2sgY2FsbGJhY2tzIHdlcmUgYWRkZWQgdG8KKyAg
ICAgICAgV0tCdW5kbGVQYWdlIGludGVyZmFjZSBhbmQgV0tQYWdlIGludGVyZmFjZXMgY29ycmVz
cG9uZGluZ2x5LCBob3dldmVyIHRoZSBleGlzdGluZworICAgICAgICAnUGFnZURpZFJlY2VpdmVU
aXRsZUZvckZyYW1lJyBjYWxsYmFja3Mgd2VyZSBrZXB0IGluIG9yZGVyIHRvIGtlZXAgY29tcGF0
aWJpbGl0eS4KKyAgICAgICAgQWxzbyBoYXZpbmcgdGV4dCBkaXJlY3Rpb24gaW5mbyBpcyBuZWNl
c3NhcnkgZm9yIHBhc3Npbmcgb2Ygc2V2ZXJhbCB0ZXN0IGNhc2VzCisgICAgICAgIGluIFdUUiBy
ZWx5aW5nIG9uIHRlc3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uLgorCisgICAgICAgIEFkZGl0
aW9uYWx5IGltcGxlbWVudGVkIHRlc3RSdW5uZXIudGl0bGVUZXh0RGlyZWN0aW9uIHdoaWNoIGlz
IHVzaW5nIGFkZGVkIEFQSSBhbmQgdXNlZCBpbiBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBN
aW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1b
V0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9tTmliXSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERp
cmVjdGlvbkZvckZyYW1lKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6dGl0bGVUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKFdUUik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
IChUZXN0UnVubmVyKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0VGl0bGVUZXh0RGly
ZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6
CisKIDIwMTItMTEtMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgd2Via2l0LXBhdGNoIHJlYmFzZWxpbmUqOiBmaXggdHlwbyBmb3IgLS1yZXN1bHRzLWRp
cmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubQppbmRleCAxNzMxZWI2Li44YTEyZWQ0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNjQyLDYgKzY0Miw3
IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIGRpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZQogICAgICAgICAwLCAvLyByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZQogICAg
ICAgICAwLCAvLyBkaWRMYXlvdXQKKyAgICAgICAgMCwgLy8gZGlkUmVjZWl2ZVRpdGxlV2l0aERp
cmVjdGlvbkZvckZyYW1lCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KF93
ZWJWaWV3LnBhZ2VSZWYsICZsb2FkQ2xpZW50KTsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDZkYWQxYjIuLmFjYTk5MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtMTkwLDUgKzE5MCw4IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIHF1ZXVl
UmVsb2FkKCk7CiAgICAgdm9pZCBxdWV1ZUxvYWRpbmdTY3JpcHQoaW4gRE9NU3RyaW5nIHNjcmlw
dCk7CiAgICAgdm9pZCBxdWV1ZU5vbkxvYWRpbmdTY3JpcHQoaW4gRE9NU3RyaW5nIHNjcmlwdCk7
CisKKyAgICAvLyBUaXRsZSB0ZXh0IGRpcmVjdGlvbi4KKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHRpdGxlVGV4dERpcmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
OWE1ZTgwNy4uNDE2YmQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI2Myw2ICsyNjMsNyBAQCB2
b2lkIEluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcoV0tEaWN0aW9uYXJ5UmVmIHNldHRpbmdz
KQogICAgIG1fdGVzdFJ1bm5lci0+c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRl
KGZhbHNlKTsKICAgICBtX3Rlc3RSdW5uZXItPnNldEFjY2VwdHNFZGl0aW5nKHRydWUpOwogICAg
IG1fdGVzdFJ1bm5lci0+c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpOworICAg
IG1fdGVzdFJ1bm5lci0+c2V0VGl0bGVUZXh0RGlyZWN0aW9uKGtXS1RleHREaXJlY3Rpb25MVFIp
OwogCiAgICAgcGFnZSgpLT5wcmVwYXJlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRl
eCAwMDgxOTc1Li5kNjg2NDNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0zMDcsNyAr
MzA3LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UpCiAgICAgICAgIGRpZEZpbmlzaExvYWRGb3JGcmFtZSwKICAgICAgICAgZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKICAgICAgICAgZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lLAotICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSwKKyAgICAgICAg
MCwgLy8gZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkKQEAgLTMz
MCw2ICszMzAsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lLCAvLyBk
aWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUKICAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9y
RnJhbWUsIC8vIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRp
ZExheW91dAorICAgICAgICBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUKICAg
ICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVy
Q2xpZW50KTsKIApAQCAtNjU4LDkgKzY1OSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1CiAg
ICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpLT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKGZyYW1lLCBlcnJvcik7CiB9
CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tUZXh0RGlyZWN0aW9uIHRpdGxlRGlyZWN0
aW9uLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQogewotICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nh
c3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodGl0bGUsIGZy
YW1lKTsKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZv
aWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVUaXRsZVdpdGhEaXJlY3Rpb25Gb3JGcmFtZSh0
aXRsZSwgdGl0bGVEaXJlY3Rpb24sIGZyYW1lKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZENsZWFyV2luZG93Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCkBAIC05ODIsMTEgKzk4MywxMyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
SwogICAgIGZyYW1lRGlkQ2hhbmdlTG9jYXRpb24oZnJhbWUpOwogfQogCi12b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5nUmVmIHRpdGxlLCBXS1RleHREaXJl
Y3Rpb24gdGl0bGVEaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CiAgICAgaWYg
KCFJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuaXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1
cm47CiAKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT5zZXRUaXRs
ZVRleHREaXJlY3Rpb24odGl0bGVEaXJlY3Rpb24pOworCiAgICAgaWYgKEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkg
ewogICAgICAgICBkdW1wRnJhbWVEZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChmcmFt
ZSk7CiAgICAgICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFw
cGVuZExpdGVyYWwoIiAtIGRpZFJlY2VpdmVUaXRsZTogIik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApp
bmRleCA3NzA4YTZmLi5lYmU1M2UwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTYyLDcgKzYy
LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcyhXS0J1bmRs
ZVBhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsICBXS1R5cGVS
ZWYqLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdL
VHlwZVJlZiosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1l
UmVmLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYg
dGl0bGUsIFdLVGV4dERpcmVjdGlvbiB0aXRsZURpcmVjdGlvbiwgV0tCdW5kbGVGcmFtZVJlZiwg
V0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93
Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlw
dFdvcmxkUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0
IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJh
bWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJs
ZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQqKTsKQEAgLTg4LDcgKzg4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsK
ICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRGYWlsTG9hZFdpdGhF
cnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlV2l0aERpcmVjdGlvbkZvckZyYW1lKFdLU3RyaW5n
UmVmIHRpdGxlLCBXS1RleHREaXJlY3Rpb24sIFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQg
ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmKTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZik7CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IGEyOTRkYTcuLmYxMGRlMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTcsNiArOTcs
NyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fY3VzdG9tRnVsbFNjcmVlbkJl
aGF2aW9yKGZhbHNlKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpCiAgICAg
LCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiIikpKQorICAgICwgbV90aXRsZVRleHREaXJlY3Rpb24oa1dLVGV4dERpcmVjdGlv
bkxUUikKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg3OSw0ICs4ODAsOSBA
QCB2b2lkIFRlc3RSdW5uZXI6OnF1ZXVlTm9uTG9hZGluZ1NjcmlwdChKU1N0cmluZ1JlZiBzY3Jp
cHQpCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdChz
Y3JpcHRXSy5nZXQoKSk7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVy
Ojp0aXRsZVRleHREaXJlY3Rpb24oKQoreworICAgIHJldHVybiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4oQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKChtX3RpdGxlVGV4dERp
cmVjdGlvbiA9PSBrV0tUZXh0RGlyZWN0aW9uUlRMKSA/ICJydGwiIDogImx0ciIpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDQ4YjkyMmMuLjdiY2Y3OTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0y
NzAsNiArMjcwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlTG9hZGluZ1NjcmlwdChKU1N0
cmluZ1JlZiBzY3JpcHQpOwogICAgIHZvaWQgcXVldWVOb25Mb2FkaW5nU2NyaXB0KEpTU3RyaW5n
UmVmIHNjcmlwdCk7CiAKKyAgICAvLyBUaXRsZSB0ZXh0IGRpcmVjdGlvbi4KKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gdGl0bGVUZXh0RGlyZWN0aW9uKCk7CisgICAgdm9pZCBzZXRUaXRs
ZVRleHREaXJlY3Rpb24oV0tUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikgeyBtX3RpdGxlVGV4dERp
cmVjdGlvbiA9IGRpcmVjdGlvbjsgfQorCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBkb3Vi
bGUgd2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJbnRlcnZhbDsKIApAQCAtMzE3LDYgKzMyMSw4IEBA
IHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1fdXNlclN0eWxlU2hlZXRM
b2NhdGlvbjsKIAogICAgIFBsYXRmb3JtVGltZXJSZWYgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1l
cjsKKworICAgIFdLVGV4dERpcmVjdGlvbiBtX3RpdGxlVGV4dERpcmVjdGlvbjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCAxNmM1MTIyLi5kNjAzYmU0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtNDQ4LDYgKzQ0OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICAgICAg
MCwgLy8gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIHJlZ2lzdGVySW50
ZW50U2VydmljZUZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZExheW91dAorICAgICAgICAwLCAv
LyBkaWRSZWNlaXZlVGl0bGVXaXRoRGlyZWN0aW9uRm9yRnJhbWUKICAgICB9OwogICAgIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZUxvYWRlckNs
aWVudCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>