<?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>99736</bug_id>
          
          <creation_ts>2012-10-18 10:59:26 -0700</creation_ts>
          <short_desc>Refactor CachedResourceLoader: add CachedResourceRequest</short_desc>
          <delta_ts>2012-11-05 22:24:00 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>abarth</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fmalita</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>schenney</cc>
    
    <cc>simonjam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745388</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-18 10:59:26 -0700</bug_when>
    <thetext>For fixing bug 84883 and bug 92761, we need to keep track on which Element (or css / xhr) requests a resource.

For this, CachedResourceLoader::requestXYZ functions will be refactored so that they take a CachedResourceRequest as a parameter, instead of taking a long list of parameters.

Next steps: a new patch for bug 92761 will add an Element* to CachedResourceRequest (and create the CachedResourceRequest in a place where the Element* is known).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745469</commentid>
    <comment_count>1</comment_count>
      <attachid>169450</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-18 12:29:18 -0700</bug_when>
    <thetext>Created attachment 169450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745472</commentid>
    <comment_count>2</comment_count>
      <attachid>169450</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-18 12:36:33 -0700</bug_when>
    <thetext>Comment on attachment 169450
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:72
&gt; +    class CachedResourceRequest {

what&apos;s the reason for making this a sub class? Why not even put it into a separate file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745490</commentid>
    <comment_count>3</comment_count>
      <attachid>169450</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-18 13:00:09 -0700</bug_when>
    <thetext>Comment on attachment 169450
Patch

Attachment 169450 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14459139

New failing tests:
compositing/layers-inside-overflow-scroll.html
animations/animation-direction-normal.html
animations/3d/matrix-transform-type-animation.html
canvas/philip/tests/2d.clearRect.clip.html
animations/additive-transform-animations.html
canvas/philip/tests/2d.clearRect.zero.html
canvas/philip/tests/2d.clearRect.globalalpha.html
accessibility/accessibility-node-reparent.html
canvas/philip/tests/2d.clearRect.globalcomposite.html
animations/animation-border-overflow.html
animations/animation-direction-alternate-reverse.html
accessibility/accessibility-object-detached.html
canvas/philip/tests/2d.canvas.readonly.html
compositing/animation/computed-style-during-delay.html
compositing/geometry/clipped-video-controller.html
animations/3d/transform-perspective.html
canvas/philip/tests/2d.clearRect.transform.html
canvas/philip/tests/2d.clearRect.negative.html
compositing/animation/animated-composited-inside-hidden.html
canvas/philip/tests/2d.clearRect.path.html
canvas/philip/tests/2d.canvas.reference.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect.shadow.html
accessibility/adjacent-continuations-cause-assertion-failure.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect.nonfinite.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745660</commentid>
    <comment_count>4</comment_count>
      <attachid>169450</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 15:48:32 -0700</bug_when>
    <thetext>Comment on attachment 169450
Patch

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

This looks great.  Some comments below.  Also, it looks like your patch is causing a large number of test failures.

&gt; Source/WebCore/ChangeLog:8
&gt; +        This is needed for fixing bugs 84883 and 92761.

Please add more information to the ChangeLog that explains why we&apos;re making this change.

&gt;&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:72
&gt;&gt; +    class CachedResourceRequest {
&gt; 
&gt; what&apos;s the reason for making this a sub class? Why not even put it into a separate file?

Yeah, we should put it in a separate CachedResourceRequest.h and in the WebCore namespace directly.

&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:82
&gt; +        ResourceRequest&amp; resourceRequest() { return m_resourceRequest; }

resourceRequest -&gt; mutableResourceRequest to emphasize that this is a non-const reference.

&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:89
&gt; +    private:

Please add a blank line above this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745664</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 15:49:12 -0700</bug_when>
    <thetext>Your patch is also failing a number of Chromium unit tests:

AssociatedURLLoaderTest.*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745679</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 15:57:57 -0700</bug_when>
    <thetext>&gt; For fixing bug 84883 and bug 92761, we need to keep track on which Element (or css / xhr) requests a resource.

This rationale seems conceptually weak, at least on the surface. What if multiple elements request the same resource, for example? Or if a preload is started before any element is created?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745681</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-18 15:58:35 -0700</bug_when>
    <thetext>(I&apos;m not objecting against this change per se, FWIW)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745697</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 16:07:50 -0700</bug_when>
    <thetext>&gt; This rationale seems conceptually weak, at least on the surface. What if multiple elements request the same resource, for example? Or if a preload is started before any element is created?

That&apos;s the problem that we&apos;re hoping to solve with CachedResourceRequest.  Each of the requesters will have a separate CachedResourceRequest so we can sensibly disentangle their separate requests from the single response they all get back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745709</commentid>
    <comment_count>9</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-18 16:16:31 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; For fixing bug 84883 and bug 92761, we need to keep track on which Element (or css / xhr) requests a resource.
&gt; 
&gt; This rationale seems conceptually weak, at least on the surface. What if multiple elements request the same resource, for example? Or if a preload is started before any element is created?

For 84883, these cases are tightly defined:

1. The first element wins.

2. We don&apos;t need the actual element, just its name and document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745834</commentid>
    <comment_count>10</comment_count>
      <attachid>169525</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-18 18:15:46 -0700</bug_when>
    <thetext>Created attachment 169525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745840</commentid>
    <comment_count>11</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-18 18:17:42 -0700</bug_when>
    <thetext>Thanks for comments; the new patch addresses them, and also fixes the chromium unit tests (hopefully the mac tests too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745849</commentid>
    <comment_count>12</comment_count>
      <attachid>169525</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-18 18:24:24 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14465211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745850</commentid>
    <comment_count>13</comment_count>
      <attachid>169525</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-18 18:25:06 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14464223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745852</commentid>
    <comment_count>14</comment_count>
      <attachid>169525</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 18:26:10 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14463231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745854</commentid>
    <comment_count>15</comment_count>
      <attachid>169525</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-18 18:27:16 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14469044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745857</commentid>
    <comment_count>16</comment_count>
      <attachid>169525</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-18 18:31:41 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14424739</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745915</commentid>
    <comment_count>17</comment_count>
      <attachid>169525</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-18 19:45:19 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14412832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746223</commentid>
    <comment_count>18</comment_count>
      <attachid>169525</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 04:55:19 -0700</bug_when>
    <thetext>Comment on attachment 169525
Patch

Attachment 169525 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14461413</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746511</commentid>
    <comment_count>19</comment_count>
      <attachid>169668</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 11:58:31 -0700</bug_when>
    <thetext>Created attachment 169668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746531</commentid>
    <comment_count>20</comment_count>
      <attachid>169668</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 12:33:27 -0700</bug_when>
    <thetext>Comment on attachment 169668
Patch

Attachment 169668 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14455641</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746551</commentid>
    <comment_count>21</comment_count>
      <attachid>169668</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 12:46:44 -0700</bug_when>
    <thetext>Comment on attachment 169668
Patch

Attachment 169668 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14466525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746567</commentid>
    <comment_count>22</comment_count>
      <attachid>169679</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 13:01:06 -0700</bug_when>
    <thetext>Created attachment 169679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746663</commentid>
    <comment_count>23</comment_count>
      <attachid>169698</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 14:54:42 -0700</bug_when>
    <thetext>Created attachment 169698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746676</commentid>
    <comment_count>24</comment_count>
      <attachid>169698</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 15:02:25 -0700</bug_when>
    <thetext>Comment on attachment 169698
Patch

Attachment 169698 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14455685</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746686</commentid>
    <comment_count>25</comment_count>
      <attachid>169698</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 15:14:12 -0700</bug_when>
    <thetext>Comment on attachment 169698
Patch

Attachment 169698 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14462607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746713</commentid>
    <comment_count>26</comment_count>
      <attachid>169698</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 15:38:06 -0700</bug_when>
    <thetext>Comment on attachment 169698
Patch

Attachment 169698 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14455698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746733</commentid>
    <comment_count>27</comment_count>
      <attachid>169698</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-19 16:13:22 -0700</bug_when>
    <thetext>Comment on attachment 169698
Patch

Attachment 169698 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14469417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746734</commentid>
    <comment_count>28</comment_count>
      <attachid>169698</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-19 16:14:34 -0700</bug_when>
    <thetext>Comment on attachment 169698
Patch

Attachment 169698 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14473152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746774</commentid>
    <comment_count>29</comment_count>
      <attachid>169726</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 16:52:50 -0700</bug_when>
    <thetext>Created attachment 169726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746786</commentid>
    <comment_count>30</comment_count>
      <attachid>169730</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 17:05:11 -0700</bug_when>
    <thetext>Created attachment 169730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746797</commentid>
    <comment_count>31</comment_count>
      <attachid>169730</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 17:20:34 -0700</bug_when>
    <thetext>Comment on attachment 169730
Patch

Attachment 169730 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14465670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746838</commentid>
    <comment_count>32</comment_count>
      <attachid>169740</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 18:51:14 -0700</bug_when>
    <thetext>Created attachment 169740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746839</commentid>
    <comment_count>33</comment_count>
      <attachid>169741</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 18:54:19 -0700</bug_when>
    <thetext>Created attachment 169741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746842</commentid>
    <comment_count>34</comment_count>
      <attachid>169741</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-19 18:58:48 -0700</bug_when>
    <thetext>Comment on attachment 169741
Patch

Attachment 169741 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14465692</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746844</commentid>
    <comment_count>35</comment_count>
      <attachid>169744</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-19 19:10:49 -0700</bug_when>
    <thetext>Created attachment 169744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746923</commentid>
    <comment_count>36</comment_count>
      <attachid>169744</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 23:44:51 -0700</bug_when>
    <thetext>Comment on attachment 169744
Patch

Marking r- so the EWS will stop spinning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747003</commentid>
    <comment_count>37</comment_count>
      <attachid>169776</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-20 15:44:01 -0700</bug_when>
    <thetext>Created attachment 169776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747011</commentid>
    <comment_count>38</comment_count>
      <attachid>169776</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-20 17:14:42 -0700</bug_when>
    <thetext>Comment on attachment 169776
Patch

(still doesn&apos;t pass tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747014</commentid>
    <comment_count>39</comment_count>
      <attachid>169777</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-20 17:39:12 -0700</bug_when>
    <thetext>Created attachment 169777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747140</commentid>
    <comment_count>40</comment_count>
      <attachid>169809</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-21 11:39:35 -0700</bug_when>
    <thetext>Created attachment 169809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747141</commentid>
    <comment_count>41</comment_count>
      <attachid>169810</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-21 11:41:25 -0700</bug_when>
    <thetext>Created attachment 169810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747154</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-21 15:17:35 -0700</bug_when>
    <thetext>Green bubbles!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747155</commentid>
    <comment_count>43</comment_count>
      <attachid>169810</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-21 15:23:37 -0700</bug_when>
    <thetext>Comment on attachment 169810
Patch

Thanks.  This looks like a good step.

Please give ap a chance to comment before landing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748043</commentid>
    <comment_count>44</comment_count>
      <attachid>169810</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-10-22 16:21:21 -0700</bug_when>
    <thetext>Comment on attachment 169810
Patch

IRCed with ap, he says: &quot;The idea of the patch seems good to me regardless of the goal, we do need a class that encapsulates a request with web-pertinent knowledge. I won&apos;t have any time soon to deeply review, so this makes it an ack :)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748048</commentid>
    <comment_count>45</comment_count>
      <attachid>169810</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 16:24:45 -0700</bug_when>
    <thetext>Comment on attachment 169810
Patch

SGTM.  Thanks for closing the loop with ap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748061</commentid>
    <comment_count>46</comment_count>
      <attachid>169810</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 16:35:39 -0700</bug_when>
    <thetext>Comment on attachment 169810
Patch

Clearing flags on attachment: 169810

Committed r132157: &lt;http://trac.webkit.org/changeset/132157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748062</commentid>
    <comment_count>47</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 16:35:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169450</attachid>
            <date>2012-10-18 12:29:18 -0700</date>
            <delta_ts>2012-10-18 18:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121018212802.patch</filename>
            <type>text/plain</type>
            <size>42213</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ1MTI4NWYxMTIyYTNm
NjI5OWM0ZjU1M2ZmZmVlMzY3OWQ1M2VmMS4uMWExNzA3MDQwMDYxN2JiYjU2ZDQ5YjI5MTg4OGRk
MGRiNDJkNjg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIG5lZWRlZCBmb3IgZml4
aW5nIGJ1Z3MgODQ4ODMgYW5kIDkyNzYxLgorCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3Jj
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVk
Rm9udCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQpOgorICAgICAgICAqIGNzcy9D
U1NJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlVmFsdWU6OmNhY2hl
ZEltYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxlSW1wb3J0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFk
ZXJWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2Fj
aGVkU2hhZGVyKToKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KToK
KyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdCk6CisgICAgICAgICog
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1
cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOgorICAgICAgICAqIGxvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjps
b2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0
eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0U1ZHRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZCk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6c2V0Q2hhcnNldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZlcik6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRGb3JQ
cmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpjaGFyc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6
Om9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdDo6cHJpb3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Zm9yUHJlbG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpk
ZWZlcik6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L2ljb24vSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdGFy
dExvYWRpbmcpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UpOgorICAg
ICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAgICAgICogc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgICogeG1sL1hTTEltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WFNMSW1wb3J0UnVsZTo6bG9hZFNoZWV0KToKKwogMjAxMi0xMC0xOCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBXZWJDb3JlOjpEb2N1
bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4gKyA2MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1
ODk4NzEwY2ZiLi45N2NmZGE0MDEzOWFiYjBkY2U5NTkyZTQ0NTI3Njc2MzRlN2E5ZGE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC05NSw3ICs5NSw3
IEBAIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291
cmNlcygpIGNvbnN0CiBDYWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250
KERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewotICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJj
ZSkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNl
KSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hlZEZv
bnQuZ2V0KCk7CkBAIC0xMTMsNCArMTEzLDMgQEAgdm9pZCBDU1NGb250RmFjZVNyY1ZhbHVlOjpy
ZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2IKIH0K
IAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggNmUwMmEy
MGY5NWFjM2YxNGY0NjFhMWM1MTAwYjRhZDYyYmQ5ZWYwYS4uNTA0NTliZDQwZGYzOTdlNTM1OTJh
NDNmYzZjNjEyODJlNDI0OTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
YWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VTZXQqIENTU0ltYWdlU2V0
VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAg
IC8vIEFsbCBmb3JtcyBvZiBzY2FsZSBzaG91bGQgYmUgaW5jbHVkZWQ6IFBhZ2U6OnBhZ2VTY2Fs
ZUZhY3RvcigpLCBGcmFtZTo6cGFnZVpvb21GYWN0b3IoKSwKICAgICAgICAgLy8gYW5kIGFueSBD
U1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
Njk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0
b3IoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRl
ci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CiAgICAgICAgIGlm
IChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXIt
PnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkgewogICAgICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxl
Q2FjaGVkSW1hZ2VTZXQ6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0
b3IsIHRoaXMpOwogICAgICAgICAgICAgbV9hY2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKaW5kZXggNzI2YzJjMDQzNDcxZTk2N2I5MmJj
OWZhNzY0YzMyMzlmMmI3YTU0Ni4uMjQzNDFhMGIwNGNhMWNmNjZlMTRjNzYyZDc4YmQzNzhjN2Ix
NGFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtODIsNyArODIsNyBA
QCBTdHlsZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZGVyLCBjb25zdAogICAgIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CiAg
ICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICAgICAg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpKTsKICAgICAg
ICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxv
YWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9pbWFnZSA9IFN0eWxl
Q2FjaGVkSW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCAyNmYyOWU4MmY4MGE5ZmY1MWRhY2U1NzBk
OGY0N2U5MzhhZTVkZTBhLi42MzQxN2UxYmQzZDZmNjA0NDQ3OTg0ZjMyZDliNjVkNzlhNDhiNmQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtMTE1LDExICsxMTUs
MTEgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAg
cm9vdFNoZWV0ID0gc2hlZXQ7CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
YWJzVVJMKTsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hh
cnNldCgpKTsKICAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0LT5pc1VzZXJTdHlsZVNoZWV0KCkp
Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFVz
ZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsK
KyAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNl
ckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQotICAgICAgICBtX2NhY2hlZFNoZWV0
ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1f
cGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNh
Y2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBp
ZiAobV9jYWNoZWRTaGVldCkgewogICAgICAgICAvLyBpZiB0aGUgaW1wb3J0IHJ1bGUgaXMgaXNz
dWVkIGR5bmFtaWNhbGx5LCB0aGUgc2hlZXQgbWF5IGJlCiAgICAgICAgIC8vIHJlbW92ZWQgZnJv
bSB0aGUgcGVuZGluZyBzaGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mga25vdwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCmluZGV4IDQ0Yzg4
MDg5NDcwZTgzOWQ5NzRlYmEwMWNjMDZmN2Q5MjBjMTgxMjIuLjJhNzllODI5ODU3NDAwOTJjNTMz
N2RiZDZiMjQ0Y2RjYzlmYjQzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgQ2FjaGVkU1ZHRG9jdW1l
bnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGxvYWRlcikKICAgICBpZiAoIW1fbG9hZFJlcXVlc3RlZCkgewogICAgICAgICBtX2xvYWRSZXF1
ZXN0ZWQgPSB0cnVlOwogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2Fk
ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBtX2RvY3VtZW50
ID0gbG9hZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAppbmRleCA2ZjkzNzNlMGYwZmEy
ZGY4YmY0OTQyODFiNWMyZDg3NzI5YWJiOTYxLi4yOWM5ZjFlM2NlZWI0ZGE4ODZiMjk1NDM2NmI2
MWE0NWEyMDUyNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1
ZS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgU3R5bGVDYWNoZWRTaGFkZXIqIFdlYktpdENTU1NoYWRl
clZhbHVlOjpjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWQKICAgICBpZiAo
IW1fYWNjZXNzZWRTaGFkZXIpIHsKICAgICAgICAgbV9hY2Nlc3NlZFNoYWRlciA9IHRydWU7CiAK
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTaGFkZXI+IGNhY2hlZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0
KSkKICAgICAgICAgICAgIG1fc2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNo
ZWRTaGFkZXIuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKaW5kZXggNGJjYTFkMWViOTVlYmFhZWMxMGFkMTM4ZmNjNmQxZmViM2Y2
ZjZiNi4uOTJmNGUwNGZjM2I2NzVmOTdkNjc5N2U2YmY2NDU1Njc1NWU3M2U0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTE2Myw3ICsxNjMs
NyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAg
ICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNo
ZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJl
ZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVm
KSkpOwogI2lmIEVOQUJMRShYU0xUKQogICAgICAgICAgICAgaWYgKG1faXNYU0wpCiAgICAgICAg
ICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwpAQCAtMTczLDggKzE3Myw5IEBAIHZv
aWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAg
ICAgIFN0cmluZyBjaGFyc2V0ID0gYXR0cnMuZ2V0KCJjaGFyc2V0Iik7CiAgICAgICAgICAgICAg
ICAgaWYgKGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0g
ZG9jdW1lbnQoKS0+Y2hhcnNldCgpOworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNl
dChjaGFyc2V0KTsKIAotICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBj
aGFyc2V0KTsKKyAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgICAg
ICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKaW5kZXggMjA5ZmM3OWMxYzhjMDhhNGY2OWE5OTk5ODNmYjA3MTk4NjM4ZTY5Ni4u
M2VhNzZhMjE4NGVlNTUwMDZjZDgyZjk4NGQwMDg1YTcyNjgzNjVmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjU2LDE2ICsyNTYsMTYgQEAgYm9vbCBTY3JpcHRFbGVt
ZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgQVNTRVJU
KCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxT
cGFjZXMoc291cmNlVXJsKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChzb3VyY2VVcmwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKHNvdXJjZVVybCksIHNjcmlwdENoYXJzZXQoKSkpOwogCiAgICAgICAgIFN0
cmluZyBjcm9zc09yaWdpbk1vZGUgPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051
bGwoKSkgewogICAgICAgICAgICAgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wgPSB0cnVlOwog
ICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdu
b3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9y
ZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1
cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBt
X2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMp
OwogICAgICAgICB9CiAKLSAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQocmVxdWVzdCwgc2Ny
aXB0Q2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CiAg
ICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZmRjN2E1Y2NlMzIzMWFmOWMyMjQ0ZTFjOWY0
NDQ4M2I4NGJmMDEzMS4uZDAwMTBiNjQ5NmZmZjJlN2Y0ZmUyNGNmNTFmYjUzZDJjMTNlOWNjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjIwLDggKzIyMCw4
IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICAvLyBMb2FkIHN0
eWxlc2hlZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRl
bHkgd2l0aCBsb3cgcHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9y
aXR5ID0gYmxvY2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJj
ZUxvYWRQcmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBk
b2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChy
ZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVy
OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwobV91cmwpKSwgY2hhcnNldCwgcHJpb3JpdHkpOworICAgICAgICBtX2Nh
Y2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENT
U1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRTaGVl
dCkKICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
NzFhMWFkM2IxOTcxMThjMmFiMWJjZGUyOTBhMzE5MmQ1YzY5MDc0Zi4uNDQzYTYxMzAzZjI4MTMz
MDA3OTM0ZDRlMjNlZWE4ODFlMDA0YWQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTM3NiwxNyArMzc2LDE3IEBAIHZv
aWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFNlY3VyCiAgICAgICAgICAgICBvcHRpb25zLnNob3VsZEJ1ZmZlckRh
dGEgPSBCdWZmZXJEYXRhOwogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG5l
d1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0LCBvcHRpb25zKTsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgICAgICAv
LyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRpcmVj
dHMsIHdlIGluaXRpYWxpemUgdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJl
cXVlc3QgaGVyZS4KICAgICAgICAgICAgIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIgPSBt
X2RvY3VtZW50LT5mcmFtZSgpLT5wYWdlKCktPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50
aWZpZXIoKTsKICAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSA9
IFJlc291cmNlUmVzcG9uc2UoKTsKLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVz
dElkZW50aWZpZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpLCBuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1f
cHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLCBuZXdSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZWRpcmVj
dFJlc3BvbnNlKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIEFTU0VSVCghbV9yZXNvdXJj
ZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCwgb3B0aW9ucyk7CisgICAgICAgIG1f
cmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3
UmVzb3VyY2UobmV3UmVxdWVzdCk7CiAgICAgICAgIGlmIChtX3Jlc291cmNlKSB7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgIGlmIChtX3Jlc291cmNlLT5sb2FkZXIoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYTZkYTYxZTY1NDhlZjA3YTY4
MmRjZGI3YzQ2NzQ0ODQyNzY4MTYyYi4uZGYxYTBmNDA3MzhlMGVjNzRhZGFhOTA5ODdiYjNlZGQ3
ZGQxYTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0xNzcsMTgg
KzE3NywxOCBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgLy8g
YW4gZW1wdHkgc3RyaW5nLgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBu
ZXdJbWFnZSA9IDA7CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNv
dXJjZVVSSShhdHRyKSkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHNvdXJjZVVSSShhdHRyKSkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2Rl
ID0gY2xpZW50KCktPnNvdXJjZUVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgp
KSB7CiAgICAgICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1
YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAg
ICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAgICAgICAgICAgYm9vbCBhdXRvTG9hZE90
aGVySW1hZ2VzID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+YXV0b0xvYWRJ
bWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENh
Y2hlZEltYWdlKHJlcXVlc3QpOworICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1h
Z2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0
TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25pbmdDYWNoZWRSZXNv
dXJjZUxvYWRlcihkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKICAgICAgICAg
ICAgIGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRSZXNvdXJj
ZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwCmluZGV4IGFmMjVhODY4MDNjNDA3NDc5YzEwMjY3YWYyNjY3ZWEwMmFl
NWQyZjMuLmE5ZjU5MTVjNjZjODM1ZDZhMzc1ODI2YzUwOTIzYTdiNDg3NzgyNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTExOSwxMyArMTE5LDEzIEBAIGJvb2wgTGlu
a0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBj
b25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9y
aXR5TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2U7CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3Vt
ZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50
LT5jb21wbGV0ZVVSTChocmVmKSksIHByaW9yaXR5KTsKICAgICAgICAgCiAgICAgICAgIGlmICht
X2NhY2hlZExpbmtSZXNvdXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2Ut
PnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0g
MDsKICAgICAgICAgfQotICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1
ZXN0LCBwcmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1Jl
cXVlc3QpOwogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpCiAgICAgICAgICAgICBt
X2NhY2hlZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggYTliN2Y5NjBiZjZkNjUwMzAwNTE3
Y2IwZjk2M2FkYTQ1ZTk1YTFmYi4uMmM3YTZkNWYzOThjODFlNDFmMjc3MzE4NWRhMTFkZjBmNmQw
YzQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTE1
MywxMiArMTUzLDEyIEBAIGJvb2wgVGV4dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUpCiAKICAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBS
ZXNvdXJjZVJlcXVlc3QgY3VlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSkpOwogCiAgICAgaWYg
KCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgbV9jcm9zc09yaWdpbk1vZGUg
PSBjcm9zc09yaWdpbk1vZGU7CiAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVu
dGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlh
bHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlh
bHM7Ci0gICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QsIGRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woY3VlUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
ZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIC8vIENyb3NzLW9yaWdpbiByZXNvdXJjZXMgdGhhdCBhcmUgbm90IHN1aXRh
Ymx5IENPUlMtZW5hYmxlZCBtYXkgbm90IGxvYWQuCiAgICAgICAgIGlmICghZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodXJsKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMWZmY2E0ZmMx
ZTE4OWEyNzgyYzRkODlkZWM5ZjFhM2M4ZWM0ZWQ3MC4uMWU1NmQ0YTM0MWJhYzk2NGEwNGE5Nzgy
M2MyMjNiZDI4YTdlNThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMTMsNiArMTEzLDI2IEBAIHN0YXRpYyBj
b25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMo
KQogICAgIHJldHVybiBvcHRpb25zOwogfQogCitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVl
c3QpCisgICAgLCBtX2NoYXJzZXQoY2hhcnNldCkKKyAgICAsIG1fb3B0aW9ucyhkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQoreworfQor
CitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0
KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworfQorCitDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFJlc291cmNlTG9h
ZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1
ZXN0KQorICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKK3sKK30KKwogQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
cikKICAgICA6IG1fZG9jdW1lbnQoMCkKICAgICAsIG1fZG9jdW1lbnRMb2FkZXIoZG9jdW1lbnRM
b2FkZXIpCkBAIC0xNTUsNTYgKzE3NSw1NyBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRM
b2FkZXItPmZyYW1lKCkgOiAwOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAg
ICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICBpZiAoZi0+bG9hZGVyKCktPnBh
Z2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVyOjpOb0Rpc21p
c3NhbCkgewotICAgICAgICAgICAgS1VSTCByZXF1ZXN0VVJMID0gcmVxdWVzdC51cmwoKTsKKyAg
ICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJs
KCk7CiAgICAgICAgICAgICBpZiAocmVxdWVzdFVSTC5pc1ZhbGlkKCkgJiYgY2FuUmVxdWVzdChD
YWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdFVSTCkpCiAgICAgICAgICAgICAg
ICAgUGluZ0xvYWRlcjo6bG9hZEltYWdlKGYsIHJlcXVlc3RVUkwpOwogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZElt
YWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1
ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBSZXNvdXJjZUxv
YWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlLCBjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnVy
bCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKS5nZXQoKSk7CisgICAgcmVxdWVzdC5z
ZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgp
KSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3Vy
Y2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9u
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNv
dXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRGb250
Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3Qp
LmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLUNhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJh
Y2soUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
VGV4dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVz
b3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkp
LmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4dFRyYWNrKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0
KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi1DYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVy
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNo
YWRlcj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0
LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCi1D
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCwgY2hhcnNldCwgZGVm
YXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSkuZ2V0KCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IE1lbW9yeUNhY2hlOjpy
ZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVybCgpKTsKKyAgICBLVVJM
IHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIGlmIChDYWNoZWRSZXNvdXJjZSog
ZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwpKSB7CiAgICAgICAg
IGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQog
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihleGlz
dGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShleGlzdGluZyk7CiAgICAgfQot
ICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC51cmwoKSkKLSAgICAgICAgcmVxdWVzdC5z
ZXRVUkwodXJsKTsKKyAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkudXJsKCkpCisgICAgICAgIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVy
bCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2Vy
U2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcg
Q2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNo
YXJzZXQoKSk7CiAKICAgICBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsKICAg
ICAvLyBGSVhNRTogbG9hZFJlc291cmNlIGNhbGxzIHNldE93bmluZ0NhY2hlZFJlc291cmNlTG9h
ZGVyKCkgaWYgdGhlIHJlc291cmNlIGNvdWxkbid0IGJlIGFkZGVkIHRvIGNhY2hlLiBEb2VzIHRo
aXMgZnVuY3Rpb24gbmVlZCB0byBjYWxsIGl0LCB0b28/CkBAIC0yMTQsMzcgKzIzNSwzNyBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIHJldHVybiB1c2VyU2hlZXQ7CiB9CiAKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQp
CitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0U2NyaXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpTY3JpcHQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9w
dGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCkuZ2V0KCkpOwog
fQogCiAjaWYgRU5BQkxFKFhTTFQpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHls
ZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVT
aGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
WFNMU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVT
aGVldCwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSku
Z2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTVkcpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTVkdEb2N1bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVu
dChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
VkdEb2N1bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENh
Y2hlZFNWR0RvY3VtZW50Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1
bWVudFJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0
aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3VtZW50
Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlLCBy
ZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQot
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICBBU1NFUlQodHlw
ZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtTdWJyZXNvdXJjZSk7Ci0gICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBy
ZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0
eSk7CisgICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0KTsKIH0KICNlbmRp
ZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK0NhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291
cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlJhd1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJp
b3JpdHlVbnJlc29sdmVkLCBmYWxzZSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVz
b3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VS
TCYgdXJsKSBjb25zdApAQCAtNDAyLDExICs0MjMsMTEgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1
cmwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHksIGJvb2wgZm9yUHJlbG9hZCwgRGVmZXJPcHRpb24gZGVmZXIpCitD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOworICAg
IEtVUkwgdXJsID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAKLSAgICBM
T0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJj
ZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0
cmluZygpLmxhdGluMSgpLmRhdGEoKSwgY2hhcnNldC5sYXRpbjEoKS5kYXRhKCksIHByaW9yaXR5
LCBmb3JQcmVsb2FkKTsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBm
b3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFy
c2V0KCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCksIHJlcXVlc3QuZm9yUHJl
bG9hZCgpKTsKICAgICAKICAgICAvLyBJZiBvbmx5IHRoZSBmcmFnbWVudCBpZGVudGlmaWVycyBk
aWZmZXIsIGl0IGlzIHRoZSBzYW1lIHJlc291cmNlLgogICAgIHVybCA9IE1lbW9yeUNhY2hlOjpy
ZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZCh1cmwpOwpAQCAtNDE0LDcgKzQzNSw3IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIGZvclByZWxvYWQp
KQorICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3QuZm9yUHJlbG9hZCgpKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAobWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkg
ewpAQCAtNDI4LDE2ICs0NDksMTYgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAvLyBT
ZWUgaWYgd2UgY2FuIHVzZSBhbiBleGlzdGluZyByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KICAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBtZW1vcnlD
YWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwpOwogCi0gICAgaWYgKHJlcXVlc3QudXJsKCkgIT0g
dXJsKQotICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlmIChyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnVybCgpICE9IHVybCkKKyAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kg
PSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwg
cmVzb3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9s
aWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5k
ZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgUmVsb2FkOgogICAgICAg
ICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUocmVzb3VyY2UuZ2V0KCkpOwogICAgICAgICAvLyBGYWxs
IHRocm91Z2gKICAgICBjYXNlIExvYWQ6Ci0gICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNl
KHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQpOworICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJj
ZSh0eXBlLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2YWxpZGF0ZToKICAgICAgICAgcmVzb3VyY2UgPSBy
ZXZhbGlkYXRlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkpOwpAQCAtNDUxLDkgKzQ3Miw5IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHByaW9yaXR5KTsKLSAgICBpZiAo
KHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIg
PT0gZGVmZXIpIHsKLSAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhpcywgb3B0aW9ucyk7CisgICAg
cmVzb3VyY2UtPnNldExvYWRQcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpOworICAgIGlmICgo
cG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9
PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhpcywgcmVxdWVz
dC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaW1tZWRpYXRlIGxv
YWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1lZGlhdGUgZmFpbHVyZS4KICAgICAgICAgaWYgKHJl
c291cmNlLT5lcnJvck9jY3VycmVkKCkpIHsKQEAgLTQ2Myw4ICs0ODQsOCBAQCBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFyZXF1ZXN0LnVybCgp
LnByb3RvY29sSXNEYXRhKCkpCi0gICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQocmVxdWVzdC51
cmwoKSk7CisgICAgaWYgKCFyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpLnByb3RvY29s
SXNEYXRhKCkpCisgICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS51cmwoKSk7CiAKICAgICBBU1NFUlQocmVzb3VyY2UtPnVybCgpID09IHVybC5zdHJp
bmcoKSk7CiAgICAgbV9kb2N1bWVudFJlc291cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCByZXNv
dXJjZSk7CkBAIC03OTMsNyArODE0LDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxCiAgICAg
aWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCB8fCB0eXBlID09IENhY2hlZFJlc291
cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICBlbmNvZGluZyA9IGNoYXJzZXQuaXNFbXB0eSgp
ID8gbV9kb2N1bWVudC0+Y2hhcnNldCgpIDogY2hhcnNldDsKIAotICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBy
ZXF1ZXN0LCBlbmNvZGluZywgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIHRydWUpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CisgICAgY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LnNldEZvclByZWxvYWQodHJ1ZSk7CisKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgY2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0KTsKICAgICBpZiAoIXJlc291cmNlIHx8IChtX3ByZWxvYWRzICYmIG1fcHJlbG9h
ZHMtPmNvbnRhaW5zKHJlc291cmNlLmdldCgpKSkpCiAgICAgICAgIHJldHVybjsKICAgICByZXNv
dXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggMmE3OTg1ZTZjYjI0OTI1MmQ4
MTU5ZTk4NWU2OTA0NTNjNmRlZDgwMy4uNDk2MDYwNDczN2NmYWZlOTkwMDY2OWYxNGNiNGVlODdj
OGNjNmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKQEAgLTY4LDMwICs2OCw1NyBAQCBmcmllbmQgY2xhc3MgSW1hZ2VMb2Fk
ZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVzc29yOwogCiBw
dWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQg
fTsKKyAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMmKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKworICAgICAgICB2b2lkIHNldENoYXJzZXQoY29u
c3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7IH0KKyAgICAgICAgdm9p
ZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIpIHsgbV9k
ZWZlciA9IGRlZmVyOyB9CisgICAgICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxv
YWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQorCisgICAgICAgIFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAg
ICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIGNoYXJzZXQo
KSBjb25zdCB7IHJldHVybiBtX2NoYXJzZXQ7IH0KKyAgICAgICAgY29uc3QgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CisgICAgICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0
eTsgfQorICAgICAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxv
YWQ7IH0KKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIGRlZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWZlcjsgfQorICAgIHByaXZhdGU6CisgICAgICAgIFJlc291cmNl
UmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICAgICAgU3RyaW5nIG1fY2hhcnNldDsKKyAg
ICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKKyAgICAgICAgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKKyAgICAgICAgYm9vbCBtX2ZvclByZWxvYWQ7CisgICAg
ICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBtX2RlZmVyOworICAgIH07CisK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKERvY3Vt
ZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IENhY2hlZFJl
c291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiByZXF1ZXN0SW1h
Z2UoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVT
aGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBy
ZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZvbnQoUmVzb3VyY2VS
ZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJl
cXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gcmVxdWVzdElt
YWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVx
dWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJl
cXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVz
dEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmKTsKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50
KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFhTTFQpCi0gICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxl
U2hlZXQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
WFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJj
ZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2so
UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRy
YWNrPiByZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENTU19TSEFERVJTKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNo
YWRlcj4gcmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFkZXIoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CiAjZW5kaWYKIAogICAgIC8vIExvZ3MgYW4gYWNjZXNzIGRlbmllZCBtZXNzYWdlIHRvIHRo
ZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVkIFVSTC4KQEAgLTEzOCw4ICsxNjUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50
TG9hZGVyKik7CiAKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNs
aWVudCB9OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVsb2Fk
ID0gZmFsc2UsIERlZmVyT3B0aW9uID0gTm9EZWZlcik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAg
dm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKaW5kZXggNjNiYzBlYTFjYTIxNzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUz
NC4uMmEzZjczZjNmNjY3NDM1NzE2MDY1MTZjNDY4YmY2NDE2YmE0NmM3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTU5LDE0ICs1OSwxNCBAQCB2b2lk
IEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3VyY2UgfHwgIW1fZnJh
bWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCBy
ZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpOworICAgIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpLCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFs
bG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50
aWFscywgRG9TZWN1cml0eUNoZWNrKSk7CisKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKQotICAg
IHJlc291cmNlUmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNG
YXZpY29uKTsKKyAgICByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVz
b3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1
ZXN0LnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKIAot
ICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LAotICAgICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5D
cmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKSk7CisgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUt
PmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShy
ZXF1ZXN0KTsKICAgICBpZiAobV9yZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xp
ZW50KHRoaXMpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
Y3BwCmluZGV4IDc2MzU3MzhmZGUxODRkMWUxZGY0OGViNmZiMzZhZWNhYTIzNWQ1ZmIuLmJlZjI3
MWYxNjllYWQ2OThiYzEyYTkzNmIwYmFjMzU3NGYzYzc4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtODAsNyArODAsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VF
bGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAKIHZvaWQgU1ZHRkVJbWFnZUVsZW1l
bnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKIHsKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpOworICAgIENhY2hlZFJlc291
cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
b3duZXJEb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpKSk7CiAgICAgbV9jYWNoZWRJbWFn
ZSA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RJbWFnZShyZXF1
ZXN0KTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBmNjEwNTM3NzJiNjIyZmFmZTk0NzUwZTA5OTM0
OGU2NzcwYjdlODA3Li5iNDg2OWE2NzQzY2ZlM2IyNmNlZWZlNzE3ZWE1NWY1YTBiODlmZTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtOTYs
NyArOTYsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQoKQogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0
cik7CiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChocmVmKSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+
cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAg
ICAgICAgIG1fY2FjaGVkRm9udC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCmluZGV4IGQxOWVhMTk1ZGYyMGEyZWY2MzlmNmExZTk5YTIwYjI1ODJiOTUw
ZTEuLjU4MzQ4NTVlMjlmMmIwYjhmNzdmNjcxMmFhMDhjMWYxNDI1MmE5MjggMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIFNWR1VzZUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIGlmIChpc0V4dGVybmFsUmVmZXJlbmNlKSB7CiAgICAgICAgICAgICBLVVJMIHVy
bCA9IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJs
Lmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QodXJsLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVy
bC5zdHJpbmcoKSkpOwogICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQgPSBkb2N1bWVu
dCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7
CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCiAgICAgICAgICAgICAgICAg
ICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJ
bXBvcnRSdWxlLmNwcAppbmRleCAwYTE3NzBkMDM0NWE4YTFmYzgzZDdiN2ZiMmQ0NDJkMmJhMzll
YjFmLi5hN2FiMDhiYzZhZjcyOGVjZmZhM2M2N2RhZmFmNzkxNTJkYzE2Njc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgWFNMSW1wb3J0
UnVsZTo6bG9hZFNoZWV0KCkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKGFic0hyZWYpKTsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9h
ZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSkpOwogICAgIG1fY2FjaGVkU2hl
ZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7
CiAgICAgCiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169525</attachid>
            <date>2012-10-18 18:15:46 -0700</date>
            <delta_ts>2012-10-19 11:58:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121019031430.patch</filename>
            <type>text/plain</type>
            <size>46331</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhhMWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNj
YjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUzZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2
Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fs
a2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAn
LAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKaW5kZXggMmExYzA0Nzg3ZDZhMGM0Yzg3MTM4MDQ0YTJjMTc1NTg5ODcxMGNmYi4u
MzY5MDc4OTMzNmQwYjg0NDgxNTI3M2IwMTMyMjVmNjlkYWFkNjg3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC05NSw3ICs5Niw3IEBAIGJvb2wgQ1NT
Rm9udEZhY2VTcmNWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0
CiBDYWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBk
b2N1bWVudCkKIHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewotICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQt
PmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGRvY3Vt
ZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICB9
CiAgICAgcmV0dXJuIG1fY2FjaGVkRm9udC5nZXQoKTsKQEAgLTExMyw0ICsxMTQsMyBAQCB2b2lk
IENTU0ZvbnRGYWNlU3JjVmFsdWU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYgogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNl
dFZhbHVlLmNwcAppbmRleCA2ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBh
Li42ZGM3NmY1ODA0OGY5ZTQ4Y2U1Yjc5ZThlZjU5MjlmMmY0MmQxNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U3R5bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTA4LDcgKzEwOSw3IEBAIFN0eWxlQ2FjaGVkSW1h
Z2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9h
ZGVyKiBsb2FkCiAgICAgICAgIC8vIEFsbCBmb3JtcyBvZiBzY2FsZSBzaG91bGQgYmUgaW5jbHVk
ZWQ6IFBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpLCBGcmFtZTo6cGFnZVpvb21GYWN0b3IoKSwKICAg
ICAgICAgLy8gYW5kIGFueSBDU1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxNjk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVz
dEltYWdlRm9yU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
bG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpKTsKICAgICAgICAgaWYgKENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVx
dWVzdEltYWdlKHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5bGVDYWNo
ZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZhY3Rvciwg
dGhpcyk7CiAgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA3MjZjMmMwNDM0NzFlOTY3YjkyYmM5ZmE3
NjRjMzIzOWYyYjdhNTQ2Li42YjczZDQ2MzFhMGYwMDI0ZjJlYzZmM2M2NDg1ODE2NDk4NDEwNGY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgpAQCAtODIsNyArODMsNyBAQCBTdHls
ZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZGVyLCBjb25zdAogICAgIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CiAgICAgICAg
IG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwodXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZElt
YWdlLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmlu
ZGV4IDI2ZjI5ZTgyZjgwYTlmZjUxZGFjZTU3MGQ4ZjQ3ZTkzOGFlNWRlMGEuLmVlYzM1MDc3MWM0
Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGVJbXBvcnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5o
IgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
dHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNSwxMSArMTE2LDExIEBAIHZvaWQgU3R5bGVSdWxl
SW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAgICAgICAgIHJvb3RTaGVldCA9IHNoZWV0Owog
ICAgIH0KIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCk7CisgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50
U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKICAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0LT5pc1Vz
ZXJTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxv
YWRlci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVl
dC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9h
ZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQotICAgICAg
ICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNo
ZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9j
YWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChy
ZXF1ZXN0KTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewogICAgICAgICAvLyBpZiB0aGUgaW1w
b3J0IHJ1bGUgaXMgaXNzdWVkIGR5bmFtaWNhbGx5LCB0aGUgc2hlZXQgbWF5IGJlCiAgICAgICAg
IC8vIHJlbW92ZWQgZnJvbSB0aGUgcGVuZGluZyBzaGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mg
a25vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUu
Y3BwCmluZGV4IDQ0Yzg4MDg5NDcwZTgzOWQ5NzRlYmEwMWNjMDZmN2Q5MjBjMTgxMjIuLjY3ZTg0
ZTNjOWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKQEAgLTUy
LDcgKzUzLDcgQEAgQ2FjaGVkU1ZHRG9jdW1lbnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6
OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICBpZiAoIW1fbG9hZFJlcXVl
c3RlZCkgewogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCi0gICAgICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwp
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgICAgIG1fZG9j
dW1lbnQgPSBsb2FkZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCmluZGV4IDZmOTM3M2Uw
ZjBmYTJkZjhiZjQ5NDI4MWI1YzJkODc3MjlhYmI5NjEuLmZhMDQxOTBjM2RjOGUzYWRiNDMxYWIw
M2E4ZmQxYTFlMTgwMDRiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTaGFkZXJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRl
clZhbHVlLmNwcApAQCAtMzIsOCArMzIsOSBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICNp
bmNsdWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgogCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVBlbmRpbmdTaGFkZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgU3R5bGVDYWNoZWRTaGFk
ZXIqIFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGxvYWQKICAgICBpZiAoIW1fYWNjZXNzZWRTaGFkZXIpIHsKICAgICAgICAgbV9hY2Nlc3Nl
ZFNoYWRlciA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVy
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNoYWRlcj4gY2FjaGVkU2hhZGVyID0gbG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQog
ICAgICAgICAgICAgbV9zaGFkZXIgPSBTdHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNo
YWRlci5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcAppbmRleCA0YmNhMWQxZWI5NWViYWFlYzEwYWQxMzhmY2M2ZDFmZWIzZjZmNmI2
Li5lYzE3MzNjNzQ0ODk1MjZkZjY1Y2UwZjQxYjNiNjg3NzExZDQzZmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9u
LmgiCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNr
U3R5bGVTaGVldCgpCiAgICAgICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAg
ZG9jdW1lbnQoKS0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+YWRkUGVuZGluZ1NoZWV0KCk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkp
OwogI2lmIEVOQUJMRShYU0xUKQogICAgICAgICAgICAgaWYgKG1faXNYU0wpCiAgICAgICAgICAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwpAQCAtMTczLDggKzE3NCw5IEBAIHZvaWQg
UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAgICAg
IFN0cmluZyBjaGFyc2V0ID0gYXR0cnMuZ2V0KCJjaGFyc2V0Iik7CiAgICAgICAgICAgICAgICAg
aWYgKGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gZG9j
dW1lbnQoKS0+Y2hhcnNldCgpOworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChj
aGFyc2V0KTsKIAotICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFy
c2V0KTsKKyAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgICAgICBt
X2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAKaW5kZXggMjA5ZmM3OWMxYzhjMDhhNGY2OWE5OTk5ODNmYjA3MTk4NjM4ZTY5Ni4uMGQ0
YWVhZWRkNGJhZWMyNjYwNDFiNjAxNDFmYTIwNmY2MjkzMWUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtMjU2LDE2ICsyNTcsMTYgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlw
dCk7CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJs
KS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJj
ZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKTsK
KyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSwgc2NyaXB0Q2hhcnNl
dCgpKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IG1fZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICgh
Y3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX3JlcXVlc3RVc2VzQWNj
ZXNzQ29udHJvbCA9IHRydWU7CiAgICAgICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0Ny
ZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRl
bnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRl
bnRpYWxzOwotICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVz
dCwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRp
YWxzKTsKKyAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTY3JpcHQocmVxdWVzdCwgc2NyaXB0Q2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CiAgICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRy
dWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXgg
ZmRjN2E1Y2NlMzIzMWFmOWMyMjQ0ZTFjOWY0NDQ4M2I4NGJmMDEzMS4uN2M5NmIxOWIxMzg3ODE5
ZTIwMmY1NDg5ZTJjNjIwOWIzZjQ0YjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAgLTIyMCw4ICsyMjEsOCBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICAgICAgICAgLy8gTG9hZCBzdHlsZXNoZWV0cyB0aGF0
IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGltbWVkaWF0ZWx5IHdpdGggbG93IHBy
aW9yaXR5LgogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IGJsb2NraW5n
ID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDogUmVzb3VyY2VMb2FkUHJpb3JpdHlW
ZXJ5TG93OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpOwotICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNl
dCwgcHJpb3JpdHkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSwgY2hhcnNldCwgcHJp
b3JpdHkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAg
ICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENs
aWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThjMmFiMWJjZGUyOTBhMzE5MmQ1YzY5
MDc0Zi4uOWM4ODljZGY1YWMzZjAzY2YxYzY4OTUxNTAyZTJlMTA2ZTZjMGU2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
QEAgLTM3NiwxNyArMzc3LDE3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlY3VyCiAgICAgICAgICAg
ICBvcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgPSBCdWZmZXJEYXRhOwogICAgICAgICB9CiAKLSAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QsIG9wdGlvbnMpOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgICAgIGlmIChtX2FjdHVhbFJlcXVlc3QpIHsKICAgICAgICAgICAg
IC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGly
ZWN0cywgd2UgaW5pdGlhbGl6ZSB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZpcnN0IHdpbGxTZW5k
UmVxdWVzdCBoZXJlLgogICAgICAgICAgICAgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciA9
IG1fZG9jdW1lbnQtPmZyYW1lKCktPnBhZ2UoKS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRl
bnRpZmllcigpOwogICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
ID0gUmVzb3VyY2VSZXNwb25zZSgpOwotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9wcmVmbGlnaHRSZXF1
ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9h
ZGVyKCksIG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1bWVudC0+ZnJhbWUoKSwg
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCksIG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIEFTU0VSVCgh
bV9yZXNvdXJjZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCwgb3B0aW9ucyk7Cisg
ICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCk7CiAgICAgICAgIGlmIChtX3Jlc291cmNlKSB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgIGlmIChtX3Jlc291cmNlLT5sb2Fk
ZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYTZkYTYxZTY1
NDhlZjA3YTY4MmRjZGI3YzQ2NzQ0ODQyNzY4MTYyYi4uYzEyYmUyZmY5ZDQ1NTc0ZTQxZDRmNDcw
OGNiOTZiYjRkNWE3ZWM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xNzcsMTggKzE3OCwxOCBAQCB2b2lkIElt
YWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgLy8gYW4gZW1wdHkgc3RyaW5nLgog
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7CiAgICAg
aWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
YXR0cikuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVz
b3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpOwor
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSkpOwogCiAgICAgICAgIFN0cmlu
ZyBjcm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09y
aWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0LCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAg
ICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRl
bnRpYWxzKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAg
ICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAg
ICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QpOworICAgICAgICAgICAg
bmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiAg
ICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0lt
YWdlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPm1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2Uu
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IGFmMjVhODY4MDNj
NDA3NDc5YzEwMjY3YWYyNjY3ZWEwMmFlNWQyZjMuLmU1MGIzNzlkOTZiZWRhNzMyOTI1NDY0MjBl
YWNmOThiYTU0M2UxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5o
IgogI2luY2x1ZGUgIkROUy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMTksMTMgKzEy
MCwxMyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUm
IHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICAgICAgcHJpb3JpdHkgPSBS
ZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAgICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1N1YnJlc291cmNlOwogICAgICAgICB9Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBs
aW5rUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChocmVmKSksIHByaW9yaXR5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hl
ZExpbmtSZXNvdXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPnJlbW92
ZUNsaWVudCh0aGlzKTsKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gMDsKICAg
ICAgICAgfQotICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1ZXN0LCBw
cmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3Qp
OwogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpCiAgICAgICAgICAgICBtX2NhY2hl
ZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggYTliN2Y5NjBiZjZkNjUwMzAwNTE3Y2IwZjk2
M2FkYTQ1ZTk1YTFmYi4uN2UxNGI0MzM0OWM4NTBhMTk1YjY2YzI1OTA2MTM2ZDhiODBmNmY0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMb2FkZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTE1MywxMiArMTU0LDEyIEBAIGJvb2wg
VGV4dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjcm9z
c09yaWdpbk1vZGUpCiAKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBSZXNvdXJjZVJlcXVlc3QgY3VlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IGN1ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwp
KSk7CiAKICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICBtX2Ny
b3NzT3JpZ2luTW9kZSA9IGNyb3NzT3JpZ2luTW9kZTsKICAgICAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwg
InVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wo
Y3VlUmVxdWVzdCwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMp
OworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjdWVSZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3Jl
ZGVudGlhbHMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENyb3NzLW9yaWdpbiByZXNvdXJj
ZXMgdGhhdCBhcmUgbm90IHN1aXRhYmx5IENPUlMtZW5hYmxlZCBtYXkgbm90IGxvYWQuCiAgICAg
ICAgIGlmICghZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodXJsKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggMWZmY2E0ZmMxZTE4OWEyNzgyYzRkODlkZWM5ZjFhM2M4ZWM0ZWQ3MC4uYzQy
Njg2NWIyNjc3NGUyNTAyOTJkOTc1MDEwY2I1MWZjNTZhMzI1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNo
ZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgpAQCAtMTA3LDEyICsxMDgs
NiBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMg
Y29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCkKLXsKLSAgICBzdGF0aWMgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMoU2VuZENhbGxi
YWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBB
c2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spOwotICAg
IHJldHVybiBvcHRpb25zOwotfQotCiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQogICAgIDogbV9kb2N1bWVu
dCgwKQogICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKQEAgLTE1NSw1NiAr
MTUwLDU3IEBAIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogICAg
IHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSA6IDA7
CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdEltYWdlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGYgPSBm
cmFtZSgpKSB7CiAgICAgICAgIGlmIChmLT5sb2FkZXIoKS0+cGFnZURpc21pc3NhbEV2ZW50QmVp
bmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6Ok5vRGlzbWlzc2FsKSB7Ci0gICAgICAgICAg
ICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOworICAgICAgICAgICAgS1VSTCByZXF1
ZXN0VVJMID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAgICAgICAgIGlm
IChyZXF1ZXN0VVJMLmlzVmFsaWQoKSAmJiBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpJbWFn
ZVJlc291cmNlLCByZXF1ZXN0VVJMKSkKICAgICAgICAgICAgICAgICBQaW5nTG9hZGVyOjpsb2Fk
SW1hZ2UoZiwgcmVxdWVzdFVSTCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZCwgZmFsc2UsIGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QudXJsKCkpID8gRGVmZXJyZWRCeUNs
aWVudCA6IE5vRGVmZXIpLmdldCgpKTsKKyAgICByZXF1ZXN0LnNldERlZmVyKGNsaWVudERlZmVy
c0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8gRGVmZXJyZWRCeUNsaWVu
dCA6IE5vRGVmZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkp
OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdEZvbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihyZXF1ZXN0UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNr
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4dFRyYWNrKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwgcmVxdWVzdCwgU3Ry
aW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDU1NfU0hBREVSUykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRl
cj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0
Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNv
dXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5
bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCksIHByaW9yaXR5KS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVT
aGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6
OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkpOwogCiAgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yVVJMKHVybCkpIHsKICAgICAgICAgaWYgKGV4aXN0aW5nLT50eXBl
KCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KGV4aXN0aW5nKTsKICAgICAgICAgbWVt
b3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKICAgICB9Ci0gICAgaWYgKHVybC5zdHJpbmco
KSAhPSByZXF1ZXN0LnVybCgpKQotICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlm
ICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkKKyAgICAg
ICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcg
Q2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5
bGVTaGVldChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CiAK
ICAgICBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsKICAgICAvLyBGSVhNRTog
bG9hZFJlc291cmNlIGNhbGxzIHNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKCkgaWYgdGhl
IHJlc291cmNlIGNvdWxkbid0IGJlIGFkZGVkIHRvIGNhY2hlLiBEb2VzIHRoaXMgZnVuY3Rpb24g
bmVlZCB0byBjYWxsIGl0LCB0b28/CkBAIC0yMTQsMzcgKzIxMCwzNyBAQCBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFVzZXJDU1NTdAogICAgIHJldHVybiB1c2VyU2hlZXQ7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2Ny
aXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3Jp
cHQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYgRU5B
QkxFKFhTTFQpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkWFNMU3R5bGVTaGVl
dCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldCwgcmVxdWVz
dCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShTVkcpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1
bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3Vt
ZW50Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3VtZW50Kj4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlu
a1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJy
ZXNvdXJjZSk7Ci0gICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBTdHJp
bmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSk7CisgICAgcmV0
dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0KTsKIH0KICNlbmRpZgogCi1DYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
UmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkLCBmYWxzZSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRSYXdSZXNv
dXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIHJlcXVl
c3QpLmdldCgpKTsKIH0KIAogYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3Vy
ZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsKSBjb25z
dApAQCAtNDAyLDExICszOTgsMTEgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVx
dWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJp
b3JpdHksIGJvb2wgZm9yUHJlbG9hZCwgRGVmZXJPcHRpb24gZGVmZXIpCitDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOworICAgIEtVUkwgdXJsID0g
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAKLSAgICBMT0coUmVzb3VyY2VM
b2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJXMnLCBjaGFy
c2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSwgY2hhcnNldC5sYXRpbjEoKS5kYXRhKCksIHByaW9yaXR5LCBmb3JQcmVsb2Fk
KTsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1
IiwgdXJsLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0aW4x
KCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKTsKICAg
ICAKICAgICAvLyBJZiBvbmx5IHRoZSBmcmFnbWVudCBpZGVudGlmaWVycyBkaWZmZXIsIGl0IGlz
IHRoZSBzYW1lIHJlc291cmNlLgogICAgIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVu
dElkZW50aWZpZXJJZk5lZWRlZCh1cmwpOwpAQCAtNDE0LDcgKzQxMCw3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIGZvclByZWxvYWQpKQorICAgIGlmICgh
Y2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3QuZm9yUHJlbG9hZCgpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBpZiAobWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgewpAQCAtNDI4LDE2
ICs0MjQsMTYgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAvLyBTZWUgaWYgd2UgY2Fu
IHVzZSBhbiBleGlzdGluZyByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNv
dXJjZUZvclVSTCh1cmwpOwogCi0gICAgaWYgKHJlcXVlc3QudXJsKCkgIT0gdXJsKQotICAgICAg
ICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlmIChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LnVybCgpICE9IHVybCkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCku
c2V0VVJMKHVybCk7CiAKLSAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0
ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QsIGZvclByZWxvYWQsIHJlc291
cmNlLmdldCgpLCBkZWZlcik7CisgICAgY29uc3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9
IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCksIHJlc291cmNlLmdldCgpLCByZXF1ZXN0
LmRlZmVyKCkpOwogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2FzZSBSZWxvYWQ6CiAgICAg
ICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZS5nZXQoKSk7CiAgICAgICAgIC8vIEZh
bGwgdGhyb3VnaAogICAgIGNhc2UgTG9hZDoKLSAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3Vy
Y2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJlc291cmNlID0gbG9hZFJlc291
cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJz
ZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2YWxpZGF0ZToKICAgICAgICAgcmVz
b3VyY2UgPSByZXZhbGlkYXRlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkpOwpAQCAtNDUxLDkgKzQ0
Nyw5IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHByaW9yaXR5KTsK
LSAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYm
IE5vRGVmZXIgPT0gZGVmZXIpIHsKLSAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhpcywgb3B0aW9u
cyk7CisgICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpOwor
ICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYg
Tm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhp
cywgcmVxdWVzdC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaW1t
ZWRpYXRlIGxvYWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1lZGlhdGUgZmFpbHVyZS4KICAgICAg
ICAgaWYgKHJlc291cmNlLT5lcnJvck9jY3VycmVkKCkpIHsKQEAgLTQ2Myw4ICs0NTksOCBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFyZXF1
ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkpCi0gICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQo
cmVxdWVzdC51cmwoKSk7CisgICAgaWYgKCFyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgp
LnByb3RvY29sSXNEYXRhKCkpCisgICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQocmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBBU1NFUlQocmVzb3VyY2UtPnVybCgpID09
IHVybC5zdHJpbmcoKSk7CiAgICAgbV9kb2N1bWVudFJlc291cmNlcy5zZXQocmVzb3VyY2UtPnVy
bCgpLCByZXNvdXJjZSk7CkBAIC03OTMsNyArNzg5LDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNl
UmVxCiAgICAgaWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCB8fCB0eXBlID09IENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICBlbmNvZGluZyA9IGNoYXJzZXQu
aXNFbXB0eSgpID8gbV9kb2N1bWVudC0+Y2hhcnNldCgpIDogY2hhcnNldDsKIAotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJj
ZSh0eXBlLCByZXF1ZXN0LCBlbmNvZGluZywgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
LCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIHRydWUpOworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CisgICAgY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LnNldEZvclByZWxvYWQodHJ1ZSk7CisKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgY2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KTsKICAgICBpZiAoIXJlc291cmNlIHx8IChtX3ByZWxvYWRzICYm
IG1fcHJlbG9hZHMtPmNvbnRhaW5zKHJlc291cmNlLmdldCgpKSkpCiAgICAgICAgIHJldHVybjsK
ICAgICByZXNvdXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKQEAgLTkxMiw0ICs5MTEsMTAg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdQ
cmVsb2Fkcyk7CiB9CiAKK2NvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQoreworICAgIHN0YXRpYyBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmgKaW5kZXggMmE3OTg1ZTZjYjI0OTI1MmQ4MTU5ZTk4NWU2OTA0NTNjNmRlZDgwMy4u
MGZjYjFlMzdkNGEyOTgyMzc3MjgzOTE0NTE5ZjIyYTJmNDQyNGYzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBDYWNoZWRGb250OwogY2xh
c3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsKK2NsYXNzIENhY2hlZFJl
c291cmNlUmVxdWVzdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNoYWRlcjsK
IGNsYXNzIENhY2hlZFRleHRUcmFjazsKQEAgLTY4LDMwICs2OSwzMSBAQCBmcmllbmQgY2xhc3Mg
SW1hZ2VMb2FkZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVz
c29yOwogCiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVk
QnlDbGllbnQgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdl
PiByZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291
cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZv
bnQoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gcmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Rm9udD4gcmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVz
dFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KFhTTFQpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVx
dWVzdFhTTFN0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVl
c3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFkZXIoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAogICAgIC8vIExvZ3MgYW4gYWNjZXNzIGRlbmllZCBt
ZXNzYWdlIHRvIHRoZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVkIFVSTC4KQEAgLTEzNSwxMSAr
MTM3LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKIAorICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgZW51
bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VM
b2FkUHJpb3JpdHlVbnJlc29sdmVkLCBib29sIGlzUHJlbG9hZCA9IGZhbHNlLCBEZWZlck9wdGlv
biA9IE5vRGVmZXIpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXZhbGlkYXRl
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwogICAgIHZvaWQgcmVxdWVzdFByZWxvYWQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCmluZGV4IDYz
YmMwZWExY2EyMTc0ZGE4MGUxNWNhMjNkZTg4OTA1YjE0NWI1MzQuLjhjOWQwY2VjYmZjZDEyYjdl
YWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNv
dXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC01OSwxNCArNjAsMTQgQEAgdm9p
ZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIGlmIChtX3Jlc291cmNlIHx8ICFtX2Zy
YW1lLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnVybCgpKTsKKyAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9h
ZGVyKCktPmljb24oKS0+dXJsKCkpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNr
cywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMs
IERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNr
KSk7CisKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKQotICAgIHJlc291cmNlUmVxdWVzdC5zZXRU
YXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKKyAgICByZXF1ZXN0
Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6
VGFyZ2V0SXNGYXZpY29uKTsKICNlbmRpZgotICAgIHJlc291cmNlUmVxdWVzdC5zZXRQcmlvcml0
eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOwogCi0gICAgbV9y
ZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJl
cXVlc3RSYXdSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsCi0gICAgICAgIFJlc291cmNlTG9hZGVy
T3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxs
b3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRp
YWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKyAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlcXVlc3Qp
OwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQodGhp
cyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5k
ZXggNzYzNTczOGZkZTE4NGQxZTFkZjQ4ZWI2ZmIzNmFlY2FhMjM1ZDVmYi4uODdmZjBkNjgxMjc0
NDYwZWE3OTc4YWZlODdmYTI3Mzk2ODg1N2ViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2lu
Y2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb2xvclNwYWNl
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgpAQCAtODAsNyAr
ODEsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygp
CiAKIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKIHsKLSAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYoKSkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKICAgICBtX2NhY2hlZElt
YWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJl
cXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVkSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGY2MTA1Mzc3MmI2MjJmYWZlOTQ3NTBlMDk5
MzQ4ZTY3NzBiN2U4MDcuLmMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUg
IkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTk2
LDcgKzk3LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGhyZWYgPSBnZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0
dHIpOwogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOwogICAgICAgICBt
X2NhY2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdEZvbnQocmVxdWVzdCk7
CiAgICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+
YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGQx
OWVhMTk1ZGYyMGEyZWY2MzlmNmExZTk5YTIwYjI1ODJiOTUwZTEuLjYwNDZlYzYxYjc0ZmMxMmVi
MTNhYzIwNzI0NGE2YzY4MTY1NDc0NzYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKQEAgLTI1NCw3ICsyNTUsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
ICAgIGlmIChpc0V4dGVybmFsUmVmZXJlbmNlKSB7CiAgICAgICAgICAgICBLVVJMIHVybCA9IGRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJsLmhhc0Zy
YWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QodXJsLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QodXJsLnN0cmluZygpKSk7CiAgICAgICAgICAgICAg
ICAgbV9jYWNoZWREb2N1bWVudCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAobV9jYWNo
ZWREb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudC0+YWRkQ2xp
ZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4IDBhMTc3MGQw
MzQ1YThhMWZjODNkN2I3ZmIyZDQ0MmQyYmEzOWViMWYuLmU2Mjk1OWU5OWIwZDBkZTM3ZDg2ZDU1
NTU3Yzk2OThjZTk4MzgxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBv
cnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiWFNMU3R5bGVTaGVldC5o
IgogCkBAIC05OCw3ICs5OSw3IEBAIHZvaWQgWFNMSW1wb3J0UnVsZTo6bG9hZFNoZWV0KCkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGFic0hyZWYp
KTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGFic0hyZWYpKSk7CiAg
ICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0WFNMU3R5bGVT
aGVldChyZXF1ZXN0KTsKICAgICAKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169668</attachid>
            <date>2012-10-19 11:58:31 -0700</date>
            <delta_ts>2012-10-19 13:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121019205714.patch</filename>
            <type>text/plain</type>
            <size>52325</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhhMWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNj
YjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUzZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2
Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fs
a2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5j
cHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAn
LAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2Fj
aGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAKaW5kZXggMmExYzA0Nzg3ZDZhMGM0Yzg3MTM4MDQ0YTJjMTc1NTg5ODcxMGNmYi4u
MzY5MDc4OTMzNmQwYjg0NDgxNTI3M2IwMTMyMjVmNjlkYWFkNjg3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC05NSw3ICs5Niw3IEBAIGJvb2wgQ1NT
Rm9udEZhY2VTcmNWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0
CiBDYWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBk
b2N1bWVudCkKIHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewotICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQt
PmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGRvY3Vt
ZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICB9
CiAgICAgcmV0dXJuIG1fY2FjaGVkRm9udC5nZXQoKTsKQEAgLTExMyw0ICsxMTQsMyBAQCB2b2lk
IENTU0ZvbnRGYWNlU3JjVmFsdWU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYgogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNl
dFZhbHVlLmNwcAppbmRleCA2ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBh
Li42ZGM3NmY1ODA0OGY5ZTQ4Y2U1Yjc5ZThlZjU5MjlmMmY0MmQxNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U3R5bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTA4LDcgKzEwOSw3IEBAIFN0eWxlQ2FjaGVkSW1h
Z2VTZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9h
ZGVyKiBsb2FkCiAgICAgICAgIC8vIEFsbCBmb3JtcyBvZiBzY2FsZSBzaG91bGQgYmUgaW5jbHVk
ZWQ6IFBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpLCBGcmFtZTo6cGFnZVpvb21GYWN0b3IoKSwKICAg
ICAgICAgLy8gYW5kIGFueSBDU1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxNjk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVz
dEltYWdlRm9yU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
bG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpKTsKICAgICAgICAgaWYgKENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVx
dWVzdEltYWdlKHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5bGVDYWNo
ZWRJbWFnZVNldDo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZhY3Rvciwg
dGhpcyk7CiAgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA3MjZjMmMwNDM0NzFlOTY3YjkyYmM5ZmE3
NjRjMzIzOWYyYjdhNTQ2Li42YjczZDQ2MzFhMGYwMDI0ZjJlYzZmM2M2NDg1ODE2NDk4NDEwNGY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgpAQCAtODIsNyArODMsNyBAQCBTdHls
ZUNhY2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZGVyLCBjb25zdAogICAgIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CiAgICAgICAg
IG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwodXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZElt
YWdlLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmlu
ZGV4IDI2ZjI5ZTgyZjgwYTlmZjUxZGFjZTU3MGQ4ZjQ3ZTkzOGFlNWRlMGEuLmVlYzM1MDc3MWM0
Nzk0MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGVJbXBvcnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5o
IgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
dHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNSwxMSArMTE2LDExIEBAIHZvaWQgU3R5bGVSdWxl
SW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAgICAgICAgIHJvb3RTaGVldCA9IHNoZWV0Owog
ICAgIH0KIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCk7CisgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50
U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKICAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0LT5pc1Vz
ZXJTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxv
YWRlci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVl
dC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9h
ZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQotICAgICAg
ICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNo
ZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9j
YWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChy
ZXF1ZXN0KTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewogICAgICAgICAvLyBpZiB0aGUgaW1w
b3J0IHJ1bGUgaXMgaXNzdWVkIGR5bmFtaWNhbGx5LCB0aGUgc2hlZXQgbWF5IGJlCiAgICAgICAg
IC8vIHJlbW92ZWQgZnJvbSB0aGUgcGVuZGluZyBzaGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mg
a25vdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUu
Y3BwCmluZGV4IDQ0Yzg4MDg5NDcwZTgzOWQ5NzRlYmEwMWNjMDZmN2Q5MjBjMTgxMjIuLjY3ZTg0
ZTNjOWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKQEAgLTUy
LDcgKzUzLDcgQEAgQ2FjaGVkU1ZHRG9jdW1lbnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6
OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICBpZiAoIW1fbG9hZFJlcXVl
c3RlZCkgewogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCi0gICAgICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwp
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgICAgIG1fZG9j
dW1lbnQgPSBsb2FkZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCmluZGV4IDZmOTM3M2Uw
ZjBmYTJkZjhiZjQ5NDI4MWI1YzJkODc3MjlhYmI5NjEuLmZhMDQxOTBjM2RjOGUzYWRiNDMxYWIw
M2E4ZmQxYTFlMTgwMDRiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTaGFkZXJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRl
clZhbHVlLmNwcApAQCAtMzIsOCArMzIsOSBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICNp
bmNsdWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgogCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVBlbmRpbmdTaGFkZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgU3R5bGVDYWNoZWRTaGFk
ZXIqIFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGxvYWQKICAgICBpZiAoIW1fYWNjZXNzZWRTaGFkZXIpIHsKICAgICAgICAgbV9hY2Nlc3Nl
ZFNoYWRlciA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVy
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNoYWRlcj4gY2FjaGVkU2hhZGVyID0gbG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQog
ICAgICAgICAgICAgbV9zaGFkZXIgPSBTdHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNo
YWRlci5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcAppbmRleCA0YmNhMWQxZWI5NWViYWFlYzEwYWQxMzhmY2M2ZDFmZWIzZjZmNmI2
Li5lYzE3MzNjNzQ0ODk1MjZkZjY1Y2UwZjQxYjNiNjg3NzExZDQzZmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjQsNiArMjQsNyBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9u
LmgiCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNr
U3R5bGVTaGVldCgpCiAgICAgICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAg
ZG9jdW1lbnQoKS0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+YWRkUGVuZGluZ1NoZWV0KCk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkp
OwogI2lmIEVOQUJMRShYU0xUKQogICAgICAgICAgICAgaWYgKG1faXNYU0wpCiAgICAgICAgICAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwpAQCAtMTczLDggKzE3NCw5IEBAIHZvaWQg
UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAgICAg
IFN0cmluZyBjaGFyc2V0ID0gYXR0cnMuZ2V0KCJjaGFyc2V0Iik7CiAgICAgICAgICAgICAgICAg
aWYgKGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gZG9j
dW1lbnQoKS0+Y2hhcnNldCgpOworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChj
aGFyc2V0KTsKIAotICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFy
c2V0KTsKKyAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgICAgICBt
X2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAKaW5kZXggMjA5ZmM3OWMxYzhjMDhhNGY2OWE5OTk5ODNmYjA3MTk4NjM4ZTY5Ni4uMGQ0
YWVhZWRkNGJhZWMyNjYwNDFiNjAxNDFmYTIwNmY2MjkzMWUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtMjU2LDE2ICsyNTcsMTYgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2Ny
aXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlw
dCk7CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJs
KS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJj
ZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKTsK
KyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSwgc2NyaXB0Q2hhcnNl
dCgpKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IG1fZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICgh
Y3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX3JlcXVlc3RVc2VzQWNj
ZXNzQ29udHJvbCA9IHRydWU7CiAgICAgICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0Ny
ZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRl
bnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRl
bnRpYWxzOwotICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVz
dCwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRp
YWxzKTsKKyAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTY3JpcHQocmVxdWVzdCwgc2NyaXB0Q2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNo
ZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CiAgICAgICAgIG1faXNFeHRlcm5hbFNjcmlwdCA9IHRy
dWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXgg
ZmRjN2E1Y2NlMzIzMWFmOWMyMjQ0ZTFjOWY0NDQ4M2I4NGJmMDEzMS4uN2M5NmIxOWIxMzg3ODE5
ZTIwMmY1NDg5ZTJjNjIwOWIzZjQ0YjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAgLTIyMCw4ICsyMjEsOCBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICAgICAgICAgLy8gTG9hZCBzdHlsZXNoZWV0cyB0aGF0
IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGltbWVkaWF0ZWx5IHdpdGggbG93IHBy
aW9yaXR5LgogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IGJsb2NraW5n
ID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDogUmVzb3VyY2VMb2FkUHJpb3JpdHlW
ZXJ5TG93OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChtX3VybCkpOwotICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNl
dCwgcHJpb3JpdHkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSwgY2hhcnNldCwgcHJp
b3JpdHkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgIAogICAg
ICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENs
aWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThjMmFiMWJjZGUyOTBhMzE5MmQ1YzY5
MDc0Zi4uOWM4ODljZGY1YWMzZjAzY2YxYzY4OTUxNTAyZTJlMTA2ZTZjMGU2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
QEAgLTM3NiwxNyArMzc3LDE3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlY3VyCiAgICAgICAgICAg
ICBvcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgPSBCdWZmZXJEYXRhOwogICAgICAgICB9CiAKLSAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QsIG9wdGlvbnMpOwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgICAgIGlmIChtX2FjdHVhbFJlcXVlc3QpIHsKICAgICAgICAgICAg
IC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxsZWQgZHVyaW5nIHJlZGly
ZWN0cywgd2UgaW5pdGlhbGl6ZSB0aGUgaWRlbnRpZmllciBhbmQgdGhlIGZpcnN0IHdpbGxTZW5k
UmVxdWVzdCBoZXJlLgogICAgICAgICAgICAgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciA9
IG1fZG9jdW1lbnQtPmZyYW1lKCktPnBhZ2UoKS0+cHJvZ3Jlc3MoKS0+Y3JlYXRlVW5pcXVlSWRl
bnRpZmllcigpOwogICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
ID0gUmVzb3VyY2VSZXNwb25zZSgpOwotICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1bWVudC0+ZnJhbWUoKSwgbV9wcmVmbGlnaHRSZXF1
ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9h
ZGVyKCksIG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1bWVudC0+ZnJhbWUoKSwg
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCksIG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIEFTU0VSVCgh
bV9yZXNvdXJjZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCwgb3B0aW9ucyk7Cisg
ICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCk7CiAgICAgICAgIGlmIChtX3Jlc291cmNlKSB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgIGlmIChtX3Jlc291cmNlLT5sb2Fk
ZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYTZkYTYxZTY1
NDhlZjA3YTY4MmRjZGI3YzQ2NzQ0ODQyNzY4MTYyYi4uYzEyYmUyZmY5ZDQ1NTc0ZTQxZDRmNDcw
OGNiOTZiYjRkNWE3ZWM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xNzcsMTggKzE3OCwxOCBAQCB2b2lkIElt
YWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgLy8gYW4gZW1wdHkgc3RyaW5nLgog
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBuZXdJbWFnZSA9IDA7CiAgICAg
aWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
YXR0cikuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVz
b3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpOwor
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSkpOwogCiAgICAgICAgIFN0cmlu
ZyBjcm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+c291cmNlRWxlbWVudCgpLT5mYXN0R2V0QXR0
cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09y
aWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0LCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAg
ICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRl
bnRpYWxzKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAg
ICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAg
ICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QpOworICAgICAgICAgICAg
bmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7CiAg
ICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0lt
YWdlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPm1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2Uu
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IGFmMjVhODY4MDNj
NDA3NDc5YzEwMjY3YWYyNjY3ZWEwMmFlNWQyZjMuLmU1MGIzNzlkOTZiZWRhNzMyOTI1NDY0MjBl
YWNmOThiYTU0M2UxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5o
IgogI2luY2x1ZGUgIkROUy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMTksMTMgKzEy
MCwxMyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUm
IHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICAgICAgcHJpb3JpdHkgPSBS
ZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAgICAgICAgICAgIHR5cGUgPSBDYWNoZWRSZXNvdXJj
ZTo6TGlua1N1YnJlc291cmNlOwogICAgICAgICB9Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBs
aW5rUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTChocmVmKSksIHByaW9yaXR5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hl
ZExpbmtSZXNvdXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPnJlbW92
ZUNsaWVudCh0aGlzKTsKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gMDsKICAg
ICAgICAgfQotICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1ZXN0LCBw
cmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3Qp
OwogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpCiAgICAgICAgICAgICBtX2NhY2hl
ZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggYTliN2Y5NjBiZjZkNjUwMzAwNTE3Y2IwZjk2
M2FkYTQ1ZTk1YTFmYi4uN2UxNGI0MzM0OWM4NTBhMTk1YjY2YzI1OTA2MTM2ZDhiODBmNmY0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMb2FkZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTE1MywxMiArMTU0LDEyIEBAIGJvb2wg
VGV4dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjcm9z
c09yaWdpbk1vZGUpCiAKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBSZXNvdXJjZVJlcXVlc3QgY3VlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IGN1ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwp
KSk7CiAKICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICBtX2Ny
b3NzT3JpZ2luTW9kZSA9IGNyb3NzT3JpZ2luTW9kZTsKICAgICAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwg
InVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wo
Y3VlUmVxdWVzdCwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMp
OworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjdWVSZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3Jl
ZGVudGlhbHMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENyb3NzLW9yaWdpbiByZXNvdXJj
ZXMgdGhhdCBhcmUgbm90IHN1aXRhYmx5IENPUlMtZW5hYmxlZCBtYXkgbm90IGxvYWQuCiAgICAg
ICAgIGlmICghZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QodXJsKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggMWZmY2E0ZmMxZTE4OWEyNzgyYzRkODlkZWM5ZjFhM2M4ZWM0ZWQ3MC4uYzQy
Njg2NWIyNjc3NGUyNTAyOTJkOTc1MDEwY2I1MWZjNTZhMzI1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNo
ZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgpAQCAtMTA3LDEyICsxMDgs
NiBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMg
Y29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCkKLXsKLSAgICBzdGF0aWMgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMoU2VuZENhbGxi
YWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBB
c2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spOwotICAg
IHJldHVybiBvcHRpb25zOwotfQotCiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQogICAgIDogbV9kb2N1bWVu
dCgwKQogICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRlcikKQEAgLTE1NSw1NiAr
MTUwLDU3IEBAIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJhbWUoKSBjb25zdAogICAg
IHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRlci0+ZnJhbWUoKSA6IDA7
CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdEltYWdlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGYgPSBm
cmFtZSgpKSB7CiAgICAgICAgIGlmIChmLT5sb2FkZXIoKS0+cGFnZURpc21pc3NhbEV2ZW50QmVp
bmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6Ok5vRGlzbWlzc2FsKSB7Ci0gICAgICAgICAg
ICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOworICAgICAgICAgICAgS1VSTCByZXF1
ZXN0VVJMID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAgICAgICAgIGlm
IChyZXF1ZXN0VVJMLmlzVmFsaWQoKSAmJiBjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpJbWFn
ZVJlc291cmNlLCByZXF1ZXN0VVJMKSkKICAgICAgICAgICAgICAgICBQaW5nTG9hZGVyOjpsb2Fk
SW1hZ2UoZiwgcmVxdWVzdFVSTCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQog
ICAgIH0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZCwgZmFsc2UsIGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QudXJsKCkpID8gRGVmZXJyZWRCeUNs
aWVudCA6IE5vRGVmZXIpLmdldCgpKTsKKyAgICByZXF1ZXN0LnNldERlZmVyKGNsaWVudERlZmVy
c0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8gRGVmZXJyZWRCeUNsaWVu
dCA6IE5vRGVmZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkp
OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdEZvbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihyZXF1ZXN0UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNr
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4dFRyYWNrKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwgcmVxdWVzdCwgU3Ry
aW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDU1NfU0hBREVSUykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRl
cj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0
Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNv
dXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5
bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCksIHByaW9yaXR5KS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVT
aGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6
OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkpOwogCiAgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yVVJMKHVybCkpIHsKICAgICAgICAgaWYgKGV4aXN0aW5nLT50eXBl
KCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KGV4aXN0aW5nKTsKICAgICAgICAgbWVt
b3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKICAgICB9Ci0gICAgaWYgKHVybC5zdHJpbmco
KSAhPSByZXF1ZXN0LnVybCgpKQotICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlm
ICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkKKyAgICAg
ICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcg
Q2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5
bGVTaGVldChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CiAK
ICAgICBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsKICAgICAvLyBGSVhNRTog
bG9hZFJlc291cmNlIGNhbGxzIHNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKCkgaWYgdGhl
IHJlc291cmNlIGNvdWxkbid0IGJlIGFkZGVkIHRvIGNhY2hlLiBEb2VzIHRoaXMgZnVuY3Rpb24g
bmVlZCB0byBjYWxsIGl0LCB0b28/CkBAIC0yMTQsMzcgKzIxMCwzNyBAQCBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFVzZXJDU1NTdAogICAgIHJldHVybiB1c2VyU2hlZXQ7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2Ny
aXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3Jp
cHQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYgRU5B
QkxFKFhTTFQpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkWFNMU3R5bGVTaGVl
dCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldCwgcmVxdWVz
dCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShTVkcpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1
bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3Vt
ZW50Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3VtZW50Kj4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlu
a1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICBBU1NFUlQodHlwZSA9PSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJy
ZXNvdXJjZSk7Ci0gICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBTdHJp
bmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSk7CisgICAgcmV0
dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0KTsKIH0KICNlbmRpZgogCi1DYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
UmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkLCBmYWxzZSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRSYXdSZXNv
dXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIHJlcXVl
c3QpLmdldCgpKTsKIH0KIAogYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3Vy
ZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsKSBjb25z
dApAQCAtNDAyLDExICszOTgsMTEgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVx
dWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJp
b3JpdHksIGJvb2wgZm9yUHJlbG9hZCwgRGVmZXJPcHRpb24gZGVmZXIpCitDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOworICAgIEtVUkwgdXJsID0g
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAKLSAgICBMT0coUmVzb3VyY2VM
b2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJXMnLCBjaGFy
c2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSwgY2hhcnNldC5sYXRpbjEoKS5kYXRhKCksIHByaW9yaXR5LCBmb3JQcmVsb2Fk
KTsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1
IiwgdXJsLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0aW4x
KCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKTsKICAg
ICAKICAgICAvLyBJZiBvbmx5IHRoZSBmcmFnbWVudCBpZGVudGlmaWVycyBkaWZmZXIsIGl0IGlz
IHRoZSBzYW1lIHJlc291cmNlLgogICAgIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVu
dElkZW50aWZpZXJJZk5lZWRlZCh1cmwpOwpAQCAtNDE0LDcgKzQxMCw3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIGZvclByZWxvYWQpKQorICAgIGlmICgh
Y2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3QuZm9yUHJlbG9hZCgpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBpZiAobWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgewpAQCAtNDI4LDE2
ICs0MjQsMTYgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAvLyBTZWUgaWYgd2UgY2Fu
IHVzZSBhbiBleGlzdGluZyByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4KICAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNv
dXJjZUZvclVSTCh1cmwpOwogCi0gICAgaWYgKHJlcXVlc3QudXJsKCkgIT0gdXJsKQotICAgICAg
ICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlmIChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LnVybCgpICE9IHVybCkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCku
c2V0VVJMKHVybCk7CiAKLSAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0
ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QsIGZvclByZWxvYWQsIHJlc291
cmNlLmdldCgpLCBkZWZlcik7CisgICAgY29uc3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9
IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCksIHJlc291cmNlLmdldCgpLCByZXF1ZXN0
LmRlZmVyKCkpOwogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2FzZSBSZWxvYWQ6CiAgICAg
ICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZS5nZXQoKSk7CiAgICAgICAgIC8vIEZh
bGwgdGhyb3VnaAogICAgIGNhc2UgTG9hZDoKLSAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3Vy
Y2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJlc291cmNlID0gbG9hZFJlc291
cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJz
ZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2YWxpZGF0ZToKICAgICAgICAgcmVz
b3VyY2UgPSByZXZhbGlkYXRlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkpOwpAQCAtNDUxLDkgKzQ0
Nyw5IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHByaW9yaXR5KTsK
LSAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYm
IE5vRGVmZXIgPT0gZGVmZXIpIHsKLSAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhpcywgb3B0aW9u
cyk7CisgICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpOwor
ICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYg
Tm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAgICAgICAgcmVzb3VyY2UtPmxvYWQodGhp
cywgcmVxdWVzdC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgaW1t
ZWRpYXRlIGxvYWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1lZGlhdGUgZmFpbHVyZS4KICAgICAg
ICAgaWYgKHJlc291cmNlLT5lcnJvck9jY3VycmVkKCkpIHsKQEAgLTQ2Myw4ICs0NTksOCBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFyZXF1
ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkpCi0gICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQo
cmVxdWVzdC51cmwoKSk7CisgICAgaWYgKCFyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgp
LnByb3RvY29sSXNEYXRhKCkpCisgICAgICAgIG1fdmFsaWRhdGVkVVJMcy5hZGQocmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBBU1NFUlQocmVzb3VyY2UtPnVybCgpID09
IHVybC5zdHJpbmcoKSk7CiAgICAgbV9kb2N1bWVudFJlc291cmNlcy5zZXQocmVzb3VyY2UtPnVy
bCgpLCByZXNvdXJjZSk7CkBAIC03OTMsNyArNzg5LDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNl
UmVxCiAgICAgaWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCB8fCB0eXBlID09IENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICBlbmNvZGluZyA9IGNoYXJzZXQu
aXNFbXB0eSgpID8gbV9kb2N1bWVudC0+Y2hhcnNldCgpIDogY2hhcnNldDsKIAotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJj
ZSh0eXBlLCByZXF1ZXN0LCBlbmNvZGluZywgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
LCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIHRydWUpOworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CisgICAgY2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LnNldEZvclByZWxvYWQodHJ1ZSk7CisKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgY2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KTsKICAgICBpZiAoIXJlc291cmNlIHx8IChtX3ByZWxvYWRzICYm
IG1fcHJlbG9hZHMtPmNvbnRhaW5zKHJlc291cmNlLmdldCgpKSkpCiAgICAgICAgIHJldHVybjsK
ICAgICByZXNvdXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKQEAgLTkxMiw0ICs5MTEsMTAg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdQ
cmVsb2Fkcyk7CiB9CiAKK2NvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQoreworICAgIHN0YXRpYyBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmgKaW5kZXggMmE3OTg1ZTZjYjI0OTI1MmQ4MTU5ZTk4NWU2OTA0NTNjNmRlZDgwMy4u
MGZjYjFlMzdkNGEyOTgyMzc3MjgzOTE0NTE5ZjIyYTJmNDQyNGYzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBDYWNoZWRGb250OwogY2xh
c3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsKK2NsYXNzIENhY2hlZFJl
c291cmNlUmVxdWVzdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNoYWRlcjsK
IGNsYXNzIENhY2hlZFRleHRUcmFjazsKQEAgLTY4LDMwICs2OSwzMSBAQCBmcmllbmQgY2xhc3Mg
SW1hZ2VMb2FkZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVz
c29yOwogCiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVk
QnlDbGllbnQgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdl
PiByZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291
cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZv
bnQoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gcmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Rm9udD4gcmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVz
dFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KFhTTFQpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVx
dWVzdFhTTFN0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVl
c3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFkZXIoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAogICAgIC8vIExvZ3MgYW4gYWNjZXNzIGRlbmllZCBt
ZXNzYWdlIHRvIHRoZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVkIFVSTC4KQEAgLTEzNSwxMSAr
MTM3LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKIAorICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgZW51
bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VM
b2FkUHJpb3JpdHlVbnJlc29sdmVkLCBib29sIGlzUHJlbG9hZCA9IGZhbHNlLCBEZWZlck9wdGlv
biA9IE5vRGVmZXIpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXZhbGlkYXRl
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwogICAgIHZvaWQgcmVxdWVzdFByZWxvYWQo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZGQzOWI5NmNhY2Y0ZGViM2I0ZjM4MjFjZWZi
NjI1OGM1ZWM5ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3Vy
Y2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fY2hhcnNldChjaGFyc2V0KQorICAg
ICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQorICAgICwgbV9mb3JQcmVsb2Fk
KGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKK3sK
K30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0
aW9ucyYgb3B0aW9ucykKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkK
KyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQorICAgICwgbV9wcmlvcml0eShSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2Rl
ZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCisgICAgOiBtX3Jl
c291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAsIG1fcHJp
b3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2RlZmVy
KENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKKyNk
ZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgeworcHVibGljOgorICAg
IGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBS
ZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsK
KyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1
ZXN0OyB9CisgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jaGFy
c2V0OyB9CisgICAgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2No
YXJzZXQgPSBjaGFyc2V0OyB9CisgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CisgICAgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgcHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3ByaW9yaXR5OyB9CisgICAgYm9vbCBmb3JQ
cmVsb2FkKCkgY29uc3QgeyByZXR1cm4gbV9mb3JQcmVsb2FkOyB9CisgICAgdm9pZCBzZXRGb3JQ
cmVsb2FkKGJvb2wgZm9yUHJlbG9hZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVsb2FkOyB9Cisg
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIGRlZmVyKCkgY29uc3QgeyByZXR1
cm4gbV9kZWZlcjsgfQorICAgIHZvaWQgc2V0RGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRl
ZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQorCitwcml2YXRlOgorICAgIFJl
c291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTdHJpbmcgbV9jaGFyc2V0Owor
ICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisgICAgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgbV9wcmlvcml0eTsKKyAgICBib29sIG1fZm9yUHJlbG9hZDsKKyAgICBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gbV9kZWZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3Bw
CmluZGV4IDYzYmMwZWExY2EyMTc0ZGE4MGUxNWNhMjNkZTg4OTA1YjE0NWI1MzQuLjhjOWQwY2Vj
YmZjZDEyYjdlYWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNo
ZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC01OSwxNCArNjAs
MTQgQEAgdm9pZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIGlmIChtX3Jlc291cmNl
IHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnVybCgp
KTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9m
cmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2Vu
ZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1
cml0eUNoZWNrKSk7CisKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKQotICAgIHJlc291cmNlUmVx
dWVzdC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKKyAg
ICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRUYXJnZXRUeXBlKFJlc291cmNl
UmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKICNlbmRpZgotICAgIHJlc291cmNlUmVxdWVzdC5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOwog
Ci0gICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsCi0gICAgICAgIFJlc291
cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdp
bkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKyAgICBtX3Jlc291cmNlID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNl
KHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICBtX3Jlc291cmNlLT5hZGRD
bGllbnQodGhpcyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAKaW5kZXggNzYzNTczOGZkZTE4NGQxZTFkZjQ4ZWI2ZmIzNmFlY2FhMjM1ZDVmYi4uODdm
ZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3Mzk2ODg1N2ViYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXR0
ci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJD
b2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgpA
QCAtODAsNyArODEsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVm
ZXJlbmNlcygpCiAKIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNl
KCkKIHsKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChvd25lckRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKGhyZWYoKSkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKICAgICBt
X2NhY2hlZEltYWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVz
dEltYWdlKHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVkSW1hZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGY2MTA1Mzc3MmI2MjJmYWZl
OTQ3NTBlMDk5MzQ4ZTY3NzBiN2U4MDcuLmMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNk
ZDM3NDhhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgog
I2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKQEAgLTk2LDcgKzk3LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250
KCkKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGhyZWYgPSBnZXRBdHRyaWJ1dGUoWExpbmtOYW1l
czo6aHJlZkF0dHIpOwogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRS
ZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOwog
ICAgICAgICBtX2NhY2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdEZvbnQo
cmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgICAgIG1fY2Fj
aGVkRm9udC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CmluZGV4IGQxOWVhMTk1ZGYyMGEyZWY2MzlmNmExZTk5YTIwYjI1ODJiOTUwZTEuLjYwNDZlYzYx
Yjc0ZmMxMmViMTNhYzIwNzI0NGE2YzY4MTY1NDc0NzYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50U2hh
ZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTI1NCw3ICsyNTUsNyBAQCB2b2lkIFNWR1Vz
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIGlmIChpc0V4dGVybmFsUmVmZXJlbmNlKSB7CiAgICAgICAgICAgICBLVVJM
IHVybCA9IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAo
dXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QodXJsLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QodXJsLnN0cmluZygpKSk7CiAgICAg
ICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNl
TG9hZGVyKCktPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBp
ZiAobV9jYWNoZWREb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVu
dC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTElt
cG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4
IDBhMTc3MGQwMzQ1YThhMWZjODNkN2I3ZmIyZDQ0MmQyYmEzOWViMWYuLmU2Mjk1OWU5OWIwZDBk
ZTM3ZDg2ZDU1NTU3Yzk2OThjZTk4MzgxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVs
ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiWFNMU3R5
bGVTaGVldC5oIgogCkBAIC05OCw3ICs5OSw3IEBAIHZvaWQgWFNMSW1wb3J0UnVsZTo6bG9hZFNo
ZWV0KCkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJM
KGFic0hyZWYpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGFic0hy
ZWYpKSk7CiAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0
WFNMU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169679</attachid>
            <date>2012-10-19 13:01:06 -0700</date>
            <delta_ts>2012-10-19 14:54:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121019215949.patch</filename>
            <type>text/plain</type>
            <size>53161</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJjNmZkOWJiY2QxNjllMTQ4ZDBhMGYzNDlj
OWFkZDAyNmRkZjY4ZGEuLmUzZDQxYzBhOWI1YTc3ZDFjNjBkNDdhZjFlNGQyNmZhZmNiMjhhYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjA2LDYgKzE2MDYsOCBAQCBfX1pON1dlYkNvcmUx
OWFwcGxpY2F0aW9uSXNTYWZhcmlFdgogX19aTjdXZWJDb3JlMjBQbGF0Zm9ybUV2ZW50RmFjdG9y
eTI0Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50RVA3TlNFdmVudFA2TlNWaWV3CiBfX1pON1dlYkNv
cmUyMFBsYXRmb3JtRXZlbnRGYWN0b3J5MjdjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnRFUDdO
U0V2ZW50CiBfX1pON1dlYkNvcmUyMGJ1aWx0SW5QREZQbHVnaW5OYW1lRXYKK19fWk43V2ViQ29y
ZTIxQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0QzFFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS04zV1RG
NlN0cmluZ0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQorX19aTjdXZWJDb3JlMjFDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RDMUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMjFSZXNvdXJjZUxv
YWRlck9wdGlvbnNFCiBfX1pON1dlYkNvcmUyMWFwcGxpY2F0aW9uSXNBcGVydHVyZUV2CiBfX1pO
N1dlYkNvcmUyMXJlcG9ydFRocmVhZFZpb2xhdGlvbkVQS2NOU18yMFRocmVhZFZpb2xhdGlvblJv
dW5kRQogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWlsRXYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA0OGExZGNiM2Y1Y2E4NDI0MTEwOTQwMGZmZjk0Y2NiMjEzMjZhNzA0Li5hMjc2MjIw
MWI1MWQwMThkNTNlNmU5M2I0ZTJiZjJlNzRmY2VlOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0y
MDYsNiArMjA2LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VD
bGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxl
LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywK
KyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAogICAg
ICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzA2MSw2ICszMDYyLDcgQEAKICAgICAgICAgICAg
ICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAyYTFj
MDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2ZiLi4zNjkwNzg5MzM2ZDBiODQ0ODE1
MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNW
YWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1
ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjpo
YXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29uc3QKIENhY2hlZEZvbnQqIENTU0Zv
bnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGlm
ICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3Vt
ZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNv
dXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNl
TG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgIH0KICAgICByZXR1cm4gbV9jYWNo
ZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZvaWQgQ1NTRm9udEZhY2VTcmNWYWx1
ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
CiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IDZl
MDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVmMGEuLjZkYzc2ZjU4MDQ4ZjllNDhj
ZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0
LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRW
YWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWQKICAgICAgICAg
Ly8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxl
RmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENT
UyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2
OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rv
cigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkp
IHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUo
Y2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAgICAgICAgICAg
IG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlmYTc2NGMzMjM5ZjJiN2E1NDYuLjZi
NzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtl
eXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTdHls
ZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0lt
YWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0
CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0g
dHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwp
KSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVk
SW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1h
Z2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKaW5kZXggMjZmMjllODJmODBhOWZm
NTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcxYzQ3OTQyZTg2NTc3MzA3ZWMyNDAz
MmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9y
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5o
IgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHls
ZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7CiAgICAgfQogCi0gICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0
KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKLSAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNT
U1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAg
ICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RVc2VyQ1NT
U3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBj
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVk
UmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIGlmICht
X2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBpbXBvcnQgcnVsZSBpcyBpc3N1ZWQg
ZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRo
ZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRvYyBrbm93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKaW5kZXggNDRjODgwODk0
NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdlODRlM2M5Yjk4M2FiYjA4MjQxMjA3
NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NT
VkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNTIsNyArNTMsNyBAQCBDYWNoZWRT
VkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJj
ZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVxdWVzdGVkKSB7CiAgICAgICAgIG1f
bG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
bG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9kb2N1bWVudCA9IGxvYWRlci0+cmVx
dWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5MzczZTBmMGZhMmRmOGJmNDk0MjgxYjVj
MmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFhYjAzYThmZDFhMWUxODAwNGJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0zMiw4
ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogI2luY2x1ZGUgIldlYktpdENTU1No
YWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRl
ci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNoYWRlciogV2ViS2l0Q1NTU2hhZGVy
VmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAogICAgIGlmICgh
bV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vzc2VkU2hhZGVyID0gdHJ1ZTsKIAot
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwog
ICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFk
ZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRl
ciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDRi
Y2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2YjYuLmVjMTczM2M3NDQ4OTUyNmRm
NjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCIKQEAgLTE2Myw3ICsxNjQs
NyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAg
ICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNo
ZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJl
ZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CiAjaWYgRU5BQkxFKFhTTFQp
CiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0
ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFhTTFN0eWxlU2hl
ZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJzZXQgPSBh
dHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBkb2N1bWVudCgpLT5jaGFyc2V0KCk7
CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0KGNoYXJzZXQpOwogCi0gICAgICAg
ICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgICAgICAgICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENs
aWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAyMDlmYzc5
YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li4wZDRhZWFlZGQ0YmFlYzI2NjA0MWI2
MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0yNTYsMTYgKzI1
NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBz
b3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsKICAgICBpZiAoIXN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VVcmwpLmlzRW1wdHkoKSkgewotICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkpOworICAgICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3JpcHRDaGFyc2V0KCkpKTsKIAogICAgICAgICBT
dHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNO
dWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsK
ICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbEln
bm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAgICAg
ICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAg
dXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1
ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVk
ZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1
ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1
ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBmZGM3YTVjY2UzMjMxYWY5YzIy
NDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNm
NDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJFdmVudFNl
bmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNz
KCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9y
IHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cgcHJpb3JpdHkuCiAgICAgICAgIFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7Ci0g
ICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIG1f
Y2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNo
ZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRl
eCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVjNjkwNzRmLi45Yzg4OWNkZjVhYzNm
MDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAj
aW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzc2LDE3ICszNzcsMTcg
QEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAgICAgIG9wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAgIH0KIAotICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IG5l
d1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAg
ICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSB3aWxsU2Vu
ZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXpl
IHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCiAgICAg
ICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUo
KS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgICAg
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNl
KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVz
dChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2Rv
Y3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdCwg
cmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJ
ZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlZGlyZWN0UmVzcG9uc2Up
OwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlKTsKLSAgICAg
ICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9
IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShu
ZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2UpIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxvYWRlcigpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBhNmRhNjFlNjU0OGVmMDdhNjgyZGNkYjdjNDY3
NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZy
b21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBzdHJpbmcuCiAgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAgICBpZiAoIWF0dHIuaXNOdWxsKCkg
JiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyKS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9
IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkg
ewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFs
SWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dT
dG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAg
ICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIGRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVx
dWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAgICBib29sIGF1dG9M
b2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hdXRv
TG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2UpOwotICAgICAgICAgICAgbmV3SW1hZ2UgPSBu
ZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNo
ZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgICAgIG5ld0ltYWdl
LT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldE93bmluZ0NhY2hl
ZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpOwogICAg
ICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+bV9kb2N1bWVudFJl
c291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYyNWE4NjgwM2M0MDc0NzljMTAyNjdhZjI2Njdl
YTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQyMGVhY2Y5OGJhNTQzZTFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiRE5TLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTExOSwxMyArMTIwLDEzIEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5
TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7
CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50
LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBsaW5r
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGhyZWYpKSwgcHJp
b3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CiAg
ICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAg
ICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwogICAgICAgICB9Ci0gICAgICAgIG1f
Y2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJl
cXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3QsIHByaW9yaXR5KTsKKyAgICAgICAg
bV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2Nh
Y2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRD
bGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBmOTYzYWRhNDVlOTVhMWZiLi43ZTE0
YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlRl
eHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRUZXh0VHJh
Y2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIgQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6Omxv
YWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSkKIAogICAg
IEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3VlUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCkpKTsKIAogICAgIGlmICghY3Jv
c3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1fY3Jvc3NPcmlnaW5Nb2RlID0gY3Jv
c3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxz
ID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikg
PyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwot
ICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjdWVSZXF1ZXN0LCBkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgIHVwZGF0ZVJl
cXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291cmNlcyB0aGF0IGFyZSBub3Qgc3Vp
dGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9hZC4KICAgICAgICAgaWYgKCFkb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZmZjYTRm
YzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi5jNDI2ODY1YjI2Nzc0ZTI1MDI5MmQ5
NzUwMTBjYjUxZmM1NmEzMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNo
ZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcsMTIgKzEwOCw2IEBAIHN0YXRpYyBDYWNoZWRS
ZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQotewotICAgIHN0YXRpYyBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7Ci0gICAgcmV0dXJuIG9wdGlvbnM7Ci19
Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBtX2RvY3VtZW50KDApCiAgICAgLCBtX2RvY3Vt
ZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2ICsxNTAsNTcgQEAgRnJhbWUqIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2Uo
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1h
Z2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAg
aWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSAhPSBG
cmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9
IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAgICAgICAgaWYgKHJlcXVlc3RVUkwuaXNWYWxp
ZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3RV
UkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShmLCByZXF1ZXN0VVJM
KTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9w
dGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSwgY2xpZW50RGVm
ZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcikuZ2V0
KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcik7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRGb250Kj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9u
dFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVz
b3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19TSEFE
RVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hh
ZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFk
ZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxl
U2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJl
cXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkp
LmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KHJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0
KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NT
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1
cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVz
dC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JV
UkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJj
ZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRD
U1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUo
ZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3QudXJsKCkp
Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHVybC5zdHJpbmcoKSAhPSBy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0
KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCkt
PmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMg
c2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3Qg
YmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRv
bz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmV0
dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgY2hhcnNl
dCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKLUNhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhT
TFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFNW
RykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJU
KGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0
Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKLSAgICByZXR1
cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKKyAgICByZXR1cm4gcmVxdWVzdFJlc291cmNl
KHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRp
b25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlKS5nZXQoKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkBAIC00MDIsMTEgKzM5OCwx
MSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIHJldHVybiB0cnVlOwogfQogCi1DYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRp
b25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVs
b2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJM
IHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VSTCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9
JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBjaGFyc2V0
LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZvclByZWxvYWQpOworICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNo
YXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3Qu
cHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwogICAgIAogICAgIC8vIElmIG9ubHkg
dGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQgaXMgdGhlIHNhbWUgcmVzb3VyY2Uu
CiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVk
KHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBp
ZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFjYW5SZXF1
ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVy
bCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICht
ZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBAIC00MjgsMTYgKzQyNCwxNiBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBpZiB3ZSBjYW4gdXNlIGFuIGV4aXN0aW5nIHJl
c291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybCk7CiAK
LSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVy
bCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkgIT0gdXJsKQorICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Q
b2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVzb3VyY2UuZ2V0KCksIGRlZmVyKTsK
KyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0
aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0
LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dp
dGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9hZDoKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+
cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2Fz
ZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBj
aGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAgICAgICByZXNvdXJjZSA9IHJldmFsaWRhdGVS
ZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00NTEsOSArNDQ3LDkgQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkpOwotICAgIGlmICgocG9saWN5ICE9
IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSBkZWZlcikg
ewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRpb25zKTsKKyAgICByZXNvdXJjZS0+
c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7CisgICAgaWYgKChwb2xpY3kgIT0g
VXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3Qu
ZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMo
KSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3
ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgogICAgICAgICBpZiAocmVzb3VyY2UtPmVy
cm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1OSw4IEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENh
Y2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJ
c0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnVybCgpKTsKKyAg
ICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkK
KyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVy
bCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkgPT0gdXJsLnN0cmluZygpKTsKICAg
ICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKQEAg
LTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFByZWxv
YWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXEKICAgICBpZiAodHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0
eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0gY2hhcnNldC5pc0VtcHR5KCkgPyBtX2RvY3Vt
ZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGVu
Y29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlZFJl
c291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBjYWNoZWRSZXNvdXJjZVJlcXVlc3Quc2V0Rm9y
UHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBjYWNoZWRSZXNvdXJjZVJlcXVlc3Qp
OwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJlbG9hZHMgJiYgbV9wcmVsb2Fkcy0+Y29udGFp
bnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJuOwogICAgIHJlc291cmNlLT5pbmNy
ZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQgKzkxMSwxMCBAQCB2b2lkIENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1ByZWxvYWRzKTsKIH0KIAorY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENh
Y2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAgc3RhdGljIFJlc291cmNlTG9hZGVyT3B0aW9u
cyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dT
dG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9T
ZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0aW9uczsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCAyYTc5
ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2ZGVkODAzLi4wZmNiMWUzN2Q0YTI5ODIzNzcy
ODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBDYWNo
ZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBjbGFzcyBDYWNoZWRJbWFnZTsKIGNs
YXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVyOwogY2xhc3MgQ2FjaGVkVGV4dFRy
YWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKKyAg
ICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwog
Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShSZXNv
dXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNo
ZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RT
Y3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3Qm
KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJh
d1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVz
ZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwog
CiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1
bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoWFNMVCkKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHls
ZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNl
bmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBl
LCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFBy
aW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRleHRUcmFjayhSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJl
cXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBy
ZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNl
bmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNvbnNv
bGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAtMTM1LDExICsxMzcsMTIgQEAgcHVibGljOgog
ICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291
cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9E
ZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRp
b25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2
ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERlZmVyT3B0aW9uID0gTm9EZWZlcik7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNlZmI2MjU4YzVlYzlmMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisgICAgLCBtX29wdGlvbnMoQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAsIG1f
cHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2Rl
ZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9vcHRpb25zKG9w
dGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkK
KyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBSZXNv
dXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291
cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKKyAg
ICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjA0M2RmZTM5ZmU0Y2Vk
NTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorI2RlZmluZSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisK
KyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBjb25zdCBT
dHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2NoYXJzZXQ7IH0KKyAgICB2b2lkIHNl
dENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7IH0K
KyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJl
dHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVs
b2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KKyAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9CisgICAg
dm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIpIHsg
bV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2NoYXJzZXQ7CisgICAgUmVzb3VyY2VMb2FkZXJP
cHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5Owor
ICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9w
dGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggNjNiYzBlYTFjYTIx
NzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4uOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3
MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5LDE0ICs2MCwxNCBAQCB2b2lkIEljb25Mb2Fk
ZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3VyY2UgfHwgIW1fZnJhbWUtPmRvY3Vt
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpOworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+aWNv
bigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNv
bnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tD
bGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKwogI2lm
IFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5cGUo
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOworICAgIHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zh
dmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KFJlc291cmNl
TG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CiAKLSAgICBtX3Jlc291cmNlID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jl
c291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNl
bmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2Vj
dXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCk7CiAgICAgaWYg
KG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKICAgICBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3NjM1NzM4
ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVkNWZiLi44N2ZmMGQ2ODEyNzQ0NjBlYTc5Nzhh
ZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCkBAIC04MCw3ICs4MSw3IEBAIHZv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIAogdm9pZCBT
VkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQogewotICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG93bmVyRG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAK
ICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcyYjYyMmZhZmU5NDc1MGUwOTkzNDhlNjc3MGI3
ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9u
dC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdG
b250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtOTYsNyArOTcsNyBA
QCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQoKQogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAgICAg
aWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNo
ZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0g
ICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9u
dCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAg
aWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQo
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZDE5ZWExOTVkZjIw
YTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4uNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0
YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJF
dmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYgKGlz
RXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwu
c3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKICAgICAgICAgICAgICAgICBtX2NhY2hl
ZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNW
R0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50
KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKaW5kZXggMGExNzcwZDAzNDVhOGExZmM4
M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5ZTk5YjBkMGRlMzdkODZkNTU1NTdjOTY5OGNl
OTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCiAKQEAgLTk4
LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQoKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChjYWNoZWRS
ZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpOworICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjYWNoZWRSZXNvdXJj
ZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpKTsKICAgICBtX2NhY2hl
ZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVl
c3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169698</attachid>
            <date>2012-10-19 14:54:42 -0700</date>
            <delta_ts>2012-10-19 16:52:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121019235324.patch</filename>
            <type>text/plain</type>
            <size>54041</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJjNmZkOWJiY2QxNjllMTQ4ZDBhMGYzNDlj
OWFkZDAyNmRkZjY4ZGEuLmUzZDQxYzBhOWI1YTc3ZDFjNjBkNDdhZjFlNGQyNmZhZmNiMjhhYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjA2LDYgKzE2MDYsOCBAQCBfX1pON1dlYkNvcmUx
OWFwcGxpY2F0aW9uSXNTYWZhcmlFdgogX19aTjdXZWJDb3JlMjBQbGF0Zm9ybUV2ZW50RmFjdG9y
eTI0Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50RVA3TlNFdmVudFA2TlNWaWV3CiBfX1pON1dlYkNv
cmUyMFBsYXRmb3JtRXZlbnRGYWN0b3J5MjdjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnRFUDdO
U0V2ZW50CiBfX1pON1dlYkNvcmUyMGJ1aWx0SW5QREZQbHVnaW5OYW1lRXYKK19fWk43V2ViQ29y
ZTIxQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0QzFFUktOU18xNVJlc291cmNlUmVxdWVzdEVSS04zV1RG
NlN0cmluZ0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQorX19aTjdXZWJDb3JlMjFDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RDMUVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVJLTlNfMjFSZXNvdXJjZUxv
YWRlck9wdGlvbnNFCiBfX1pON1dlYkNvcmUyMWFwcGxpY2F0aW9uSXNBcGVydHVyZUV2CiBfX1pO
N1dlYkNvcmUyMXJlcG9ydFRocmVhZFZpb2xhdGlvbkVQS2NOU18yMFRocmVhZFZpb2xhdGlvblJv
dW5kRQogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlvbklzQXBwbGVNYWlsRXYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA0OGExZGNiM2Y1Y2E4NDI0MTEwOTQwMGZmZjk0Y2NiMjEzMjZhNzA0Li5hMjc2MjIw
MWI1MWQwMThkNTNlNmU5M2I0ZTJiZjJlNzRmY2VlOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0y
MDYsNiArMjA2LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VD
bGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxl
LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywK
KyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAogICAg
ICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzA2MSw2ICszMDYyLDcgQEAKICAgICAgICAgICAg
ICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAyYTFj
MDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2ZiLi4zNjkwNzg5MzM2ZDBiODQ0ODE1
MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNW
YWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1
ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjpo
YXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29uc3QKIENhY2hlZEZvbnQqIENTU0Zv
bnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGlm
ICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3Vt
ZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNv
dXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNl
TG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgIH0KICAgICByZXR1cm4gbV9jYWNo
ZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZvaWQgQ1NTRm9udEZhY2VTcmNWYWx1
ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
CiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IDZl
MDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVmMGEuLjZkYzc2ZjU4MDQ4ZjllNDhj
ZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0
LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRW
YWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWQKICAgICAgICAg
Ly8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxl
RmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAogICAgICAgICAvLyBhbmQgYW55IENT
UyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2
OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3Rv
cigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkp
IHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUo
Y2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAgICAgICAgICAg
IG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlmYTc2NGMzMjM5ZjJiN2E1NDYuLjZi
NzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtl
eXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTdHls
ZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0lt
YWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0
CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0g
dHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwp
KSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVk
SW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1h
Z2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKaW5kZXggMjZmMjllODJmODBhOWZm
NTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcxYzQ3OTQyZTg2NTc3MzA3ZWMyNDAz
MmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9y
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5o
IgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHls
ZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7CiAgICAgfQogCi0gICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0
KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKLSAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNT
U1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAg
ICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RVc2VyQ1NT
U3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBj
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVk
UmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIGlmICht
X2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBpbXBvcnQgcnVsZSBpcyBpc3N1ZWQg
ZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRo
ZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRvYyBrbm93CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKaW5kZXggNDRjODgwODk0
NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdlODRlM2M5Yjk4M2FiYjA4MjQxMjA3
NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NT
VkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNTIsNyArNTMsNyBAQCBDYWNoZWRT
VkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJj
ZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVxdWVzdGVkKSB7CiAgICAgICAgIG1f
bG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
bG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9kb2N1bWVudCA9IGxvYWRlci0+cmVx
dWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5MzczZTBmMGZhMmRmOGJmNDk0MjgxYjVj
MmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFhYjAzYThmZDFhMWUxODAwNGJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0zMiw4
ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogI2luY2x1ZGUgIldlYktpdENTU1No
YWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRl
ci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNoYWRlciogV2ViS2l0Q1NTU2hhZGVy
VmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAogICAgIGlmICgh
bV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vzc2VkU2hhZGVyID0gdHJ1ZTsKIAot
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwog
ICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFk
ZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRl
ciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDRi
Y2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2YjYuLmVjMTczM2M3NDQ4OTUyNmRm
NjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCIKQEAgLTE2Myw3ICsxNjQs
NyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAg
ICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNo
ZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJl
ZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CiAjaWYgRU5BQkxFKFhTTFQp
CiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0
ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFhTTFN0eWxlU2hl
ZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJzZXQgPSBh
dHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBkb2N1bWVudCgpLT5jaGFyc2V0KCk7
CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0KGNoYXJzZXQpOwogCi0gICAgICAg
ICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgICAgICAgICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENs
aWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAyMDlmYzc5
YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li4wZDRhZWFlZGQ0YmFlYzI2NjA0MWI2
MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0yNTYsMTYgKzI1
NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBz
b3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsKICAgICBpZiAoIXN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VVcmwpLmlzRW1wdHkoKSkgewotICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkpOworICAgICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3JpcHRDaGFyc2V0KCkpKTsKIAogICAgICAgICBT
dHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNO
dWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsK
ICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbEln
bm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAgICAg
ICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAg
dXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1
ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVk
ZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1
ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1
ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBmZGM3YTVjY2UzMjMxYWY5YzIy
NDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNm
NDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJFdmVudFNl
bmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNz
KCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9y
IHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cgcHJpb3JpdHkuCiAgICAgICAgIFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7Ci0g
ICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIG1f
Y2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNo
ZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRl
eCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVjNjkwNzRmLi45Yzg4OWNkZjVhYzNm
MDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAj
aW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzc2LDE3ICszNzcsMTcg
QEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAgICAgIG9wdGlvbnMuc2hvdWxkQnVm
ZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAgIH0KIAotICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IG5l
d1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAg
ICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSB3aWxsU2Vu
ZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXpl
IHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCiAgICAg
ICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUo
KS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgICAg
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNl
KCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVz
dChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2Rv
Y3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdCwg
cmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJ
ZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlZGlyZWN0UmVzcG9uc2Up
OwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlKTsKLSAgICAg
ICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9
IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShu
ZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2UpIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxvYWRlcigpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBhNmRhNjFlNjU0OGVmMDdhNjgyZGNkYjdjNDY3
NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZy
b21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBzdHJpbmcuCiAgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAgICBpZiAoIWF0dHIuaXNOdWxsKCkg
JiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyKS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9
IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkg
ewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFs
SWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dT
dG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAg
ICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIGRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVx
dWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAgICBib29sIGF1dG9M
b2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hdXRv
TG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2UpOwotICAgICAgICAgICAgbmV3SW1hZ2UgPSBu
ZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNo
ZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgICAgIG5ld0ltYWdl
LT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldE93bmluZ0NhY2hl
ZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpOwogICAg
ICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+bV9kb2N1bWVudFJl
c291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYyNWE4NjgwM2M0MDc0NzljMTAyNjdhZjI2Njdl
YTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQyMGVhY2Y5OGJhNTQzZTFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiRE5TLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTExOSwxMyArMTIwLDEzIEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5
TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7
CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50
LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBsaW5r
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGhyZWYpKSwgcHJp
b3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CiAg
ICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAg
ICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwogICAgICAgICB9Ci0gICAgICAgIG1f
Y2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJl
cXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3QsIHByaW9yaXR5KTsKKyAgICAgICAg
bV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2Nh
Y2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRD
bGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBmOTYzYWRhNDVlOTVhMWZiLi43ZTE0
YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlRl
eHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRUZXh0VHJh
Y2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIgQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6Omxv
YWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSkKIAogICAg
IEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KGRvY3VtZW50LT5jb21w
bGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3VlUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCkpKTsKIAogICAgIGlmICghY3Jv
c3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1fY3Jvc3NPcmlnaW5Nb2RlID0gY3Jv
c3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxz
ID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikg
PyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwot
ICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjdWVSZXF1ZXN0LCBkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgIHVwZGF0ZVJl
cXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291cmNlcyB0aGF0IGFyZSBub3Qgc3Vp
dGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9hZC4KICAgICAgICAgaWYgKCFkb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZmZjYTRm
YzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi5jNDI2ODY1YjI2Nzc0ZTI1MDI5MmQ5
NzUwMTBjYjUxZmM1NmEzMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNo
ZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcsMTIgKzEwOCw2IEBAIHN0YXRpYyBDYWNoZWRS
ZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQotewotICAgIHN0YXRpYyBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7Ci0gICAgcmV0dXJuIG9wdGlvbnM7Ci19
Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBtX2RvY3VtZW50KDApCiAgICAgLCBtX2RvY3Vt
ZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2ICsxNTAsNTcgQEAgRnJhbWUqIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2Uo
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1h
Z2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAg
aWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSAhPSBG
cmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9
IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAgICAgICAgaWYgKHJlcXVlc3RVUkwuaXNWYWxp
ZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3RV
UkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShmLCByZXF1ZXN0VVJM
KTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9w
dGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSwgY2xpZW50RGVm
ZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcikuZ2V0
KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcik7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRGb250Kj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9u
dFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVz
b3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19TSEFE
RVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hh
ZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFk
ZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxl
U2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJl
cXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkp
LmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KHJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0
KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NT
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1
cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVz
dC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JV
UkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJj
ZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRD
U1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUo
ZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3QudXJsKCkp
Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHVybC5zdHJpbmcoKSAhPSBy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0
KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCkt
PmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMg
c2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3Qg
YmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRv
bz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmV0
dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgY2hhcnNl
dCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKLUNhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhT
TFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFNW
RykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJU
KGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0
Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKLSAgICByZXR1
cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKKyAgICByZXR1cm4gcmVxdWVzdFJlc291cmNl
KHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRp
b25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygp
LCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlKS5nZXQoKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkBAIC00MDIsMTEgKzM5OCwx
MSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIHJldHVybiB0cnVlOwogfQogCi1DYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRp
b25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVs
b2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJM
IHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VSTCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9
JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBjaGFyc2V0
LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZvclByZWxvYWQpOworICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNo
YXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3Qu
cHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwogICAgIAogICAgIC8vIElmIG9ubHkg
dGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQgaXMgdGhlIHNhbWUgcmVzb3VyY2Uu
CiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVk
KHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBp
ZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFjYW5SZXF1
ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVy
bCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICht
ZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBAIC00MjgsMTYgKzQyNCwxNiBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBpZiB3ZSBjYW4gdXNlIGFuIGV4aXN0aW5nIHJl
c291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybCk7CiAK
LSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVy
bCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkgIT0gdXJsKQorICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Q
b2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVzb3VyY2UuZ2V0KCksIGRlZmVyKTsK
KyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0
aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0
LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dp
dGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9hZDoKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+
cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2Fz
ZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBj
aGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAgICAgICByZXNvdXJjZSA9IHJldmFsaWRhdGVS
ZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00NTEsOSArNDQ3LDkgQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkpOwotICAgIGlmICgocG9saWN5ICE9
IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSBkZWZlcikg
ewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRpb25zKTsKKyAgICByZXNvdXJjZS0+
c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7CisgICAgaWYgKChwb2xpY3kgIT0g
VXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3Qu
ZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMo
KSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3
ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgogICAgICAgICBpZiAocmVzb3VyY2UtPmVy
cm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1OSw4IEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENh
Y2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJ
c0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnVybCgpKTsKKyAg
ICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkK
KyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVy
bCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkgPT0gdXJsLnN0cmluZygpKTsKICAg
ICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKQEAg
LTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFByZWxv
YWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXEKICAgICBpZiAodHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0
eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0gY2hhcnNldC5pc0VtcHR5KCkgPyBtX2RvY3Vt
ZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGVu
Y29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlZFJl
c291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBjYWNoZWRSZXNvdXJjZVJlcXVlc3Quc2V0Rm9y
UHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBjYWNoZWRSZXNvdXJjZVJlcXVlc3Qp
OwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJlbG9hZHMgJiYgbV9wcmVsb2Fkcy0+Y29udGFp
bnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJuOwogICAgIHJlc291cmNlLT5pbmNy
ZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQgKzkxMSwxMCBAQCB2b2lkIENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1ByZWxvYWRzKTsKIH0KIAorY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENh
Y2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAgc3RhdGljIFJlc291cmNlTG9hZGVyT3B0aW9u
cyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dT
dG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9T
ZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0aW9uczsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCAyYTc5
ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2ZGVkODAzLi4wZmNiMWUzN2Q0YTI5ODIzNzcy
ODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBDYWNo
ZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBjbGFzcyBDYWNoZWRJbWFnZTsKIGNs
YXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVyOwogY2xhc3MgQ2FjaGVkVGV4dFRy
YWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVu
ZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoKKyAg
ICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VM
b2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwog
Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShSZXNv
dXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNo
ZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RT
Y3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3Qm
KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJh
d1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVz
ZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwog
CiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1
bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoWFNMVCkKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHls
ZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNl
bmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBl
LCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFBy
aW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRleHRUcmFjayhSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJl
cXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBy
ZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNl
bmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNvbnNv
bGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAtMTM1LDExICsxMzcsMTIgQEAgcHVibGljOgog
ICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291
cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9E
ZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRp
b25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2
ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERlZmVyT3B0aW9uID0gTm9EZWZlcik7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNlZmI2MjU4YzVlYzlmMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Nh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisgICAgLCBtX29wdGlvbnMoQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAsIG1f
cHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2Rl
ZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9vcHRpb25zKG9w
dGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkK
KyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBSZXNv
dXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291
cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKKyAg
ICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjA0M2RmZTM5ZmU0Y2Vk
NTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorI2RlZmluZSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisK
KyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBjb25zdCBT
dHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2NoYXJzZXQ7IH0KKyAgICB2b2lkIHNl
dENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7IH0K
KyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJl
dHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVs
b2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KKyAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9CisgICAg
dm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIpIHsg
bV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2NoYXJzZXQ7CisgICAgUmVzb3VyY2VMb2FkZXJP
cHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5Owor
ICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9w
dGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggNjNiYzBlYTFjYTIx
NzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4uOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3
MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5LDE0ICs2MCwxNCBAQCB2b2lkIEljb25Mb2Fk
ZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3VyY2UgfHwgIW1fZnJhbWUtPmRvY3Vt
ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpOworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+aWNv
bigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNv
bnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tD
bGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKwogI2lm
IFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5cGUo
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOworICAgIHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zh
dmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KFJlc291cmNl
TG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CiAKLSAgICBtX3Jlc291cmNlID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jl
c291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNl
bmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2Vj
dXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCk7CiAgICAgaWYg
KG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKICAgICBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3NjM1NzM4
ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVkNWZiLi44N2ZmMGQ2ODEyNzQ0NjBlYTc5Nzhh
ZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCkBAIC04MCw3ICs4MSw3IEBAIHZv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIAogdm9pZCBT
VkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQogewotICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG93bmVyRG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAK
ICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcyYjYyMmZhZmU5NDc1MGUwOTkzNDhlNjc3MGI3
ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9u
dC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdG
b250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtOTYsNyArOTcsNyBA
QCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQoKQogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAgICAg
aWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNo
ZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0g
ICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9u
dCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAg
aWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQo
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZDE5ZWExOTVkZjIw
YTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4uNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0
YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJF
dmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYgKGlz
RXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwu
c3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKICAgICAgICAgICAgICAgICBtX2NhY2hl
ZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNW
R0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50
KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKaW5kZXggMGExNzcwZDAzNDVhOGExZmM4
M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5ZTk5YjBkMGRlMzdkODZkNTU1NTdjOTY5OGNl
OTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCiAKQEAgLTk4
LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQoKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChjYWNoZWRS
ZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpOworICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjYWNoZWRSZXNvdXJj
ZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpKTsKICAgICBtX2NhY2hl
ZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVl
c3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
aW5kZXggZDM5ZjE0YTNjYWFjMjg4NmU5MGE5MGRhNTNlOWYwYWE2NzBlNmI1Ni4uOGRlYTc4Y2Nm
NzQ4ZTZkYjc1MDlhN2RlNTBjOGYyYTU4MjNkOWVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpA
QCAtMTA0LDEwICsxMDQsMTIgQEAgRVhQT1JUUwogICAgICAgICBKU1ZhbHVlVG9PYmplY3QKICAg
ICAgICAgSlNWYWx1ZVRvU3RyaW5nQ29weQogICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0CisgICAg
ICAgID8/MENhY2hlZFJlc291cmNlUmVxdWVzdEBXZWJDb3JlQEBRQUVAQUJWUmVzb3VyY2VSZXF1
ZXN0QDFAQUJVUmVzb3VyY2VMb2FkZXJPcHRpb25zQDFAQFoKKyAgICAgICAgPz8wQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0QFdlYkNvcmVAQFFBRUBBQlZSZXNvdXJjZVJlcXVlc3RAMUBBQlZTdHJpbmdA
V1RGQEBXNFJlc291cmNlTG9hZFByaW9yaXR5QDFAQFoKKyAgICAgICAgP2Zhc3RDYWxsb2NAV1RG
QEBZQVBBWElJQFoKKyAgICAgICAgP2Zhc3RGcmVlQFdURkBAWUFYUEFYQFoKICAgICAgICAgP2Zh
c3RNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlB
UEFYSUBaCi0gICAgICAgID9mYXN0RnJlZUBXVEZAQFlBWFBBWEBaCi0gICAgICAgID9mYXN0Q2Fs
bG9jQFdURkBAWUFQQVhJSUBaCiAgICAgICAgID8/ME11dGV4QFdURkBAUUFFQFhaCiAgICAgICAg
ID8/MFRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAgICAgICA/PzFNdXRleEBXVEZAQFFB
RUBYWgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169726</attachid>
            <date>2012-10-19 16:52:50 -0700</date>
            <delta_ts>2012-10-19 17:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121020015133.patch</filename>
            <type>text/plain</type>
            <size>60507</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IGJjNmZkOWJiY2QxNjllMTQ4ZDBhMGYzNDljOWFkZDAyNmRkZjY4ZGEuLmUzZDQxYzBhOWI1YTc3
ZDFjNjBkNDdhZjFlNGQyNmZhZmNiMjhhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjA2
LDYgKzE2MDYsOCBAQCBfX1pON1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgogX19aTjdX
ZWJDb3JlMjBQbGF0Zm9ybUV2ZW50RmFjdG9yeTI0Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50RVA3
TlNFdmVudFA2TlNWaWV3CiBfX1pON1dlYkNvcmUyMFBsYXRmb3JtRXZlbnRGYWN0b3J5MjdjcmVh
dGVQbGF0Zm9ybUtleWJvYXJkRXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUyMGJ1aWx0SW5Q
REZQbHVnaW5OYW1lRXYKK19fWk43V2ViQ29yZTIxQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0QzFFUktO
U18xNVJlc291cmNlUmVxdWVzdEVSS04zV1RGNlN0cmluZ0VOU18yMFJlc291cmNlTG9hZFByaW9y
aXR5RQorX19aTjdXZWJDb3JlMjFDYWNoZWRSZXNvdXJjZVJlcXVlc3RDMUVSS05TXzE1UmVzb3Vy
Y2VSZXF1ZXN0RVJLTlNfMjFSZXNvdXJjZUxvYWRlck9wdGlvbnNFCiBfX1pON1dlYkNvcmUyMWFw
cGxpY2F0aW9uSXNBcGVydHVyZUV2CiBfX1pON1dlYkNvcmUyMXJlcG9ydFRocmVhZFZpb2xhdGlv
bkVQS2NOU18yMFRocmVhZFZpb2xhdGlvblJvdW5kRQogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlv
bklzQXBwbGVNYWlsRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0OGExZGNiM2Y1Y2E4NDI0MTEwOTQw
MGZmZjk0Y2NiMjEzMjZhNzA0Li5hMjc2MjIwMWI1MWQwMThkNTNlNmU5M2I0ZTJiZjJlNzRmY2Vl
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDYsNiArMjA2LDcgQEAKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGll
bnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzA2
MSw2ICszMDYyLDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VD
bGllbnRXYWxrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
SGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTQwZmE1MzkzNTFlZTZhNzQ1ZTkxMzAxM2VlMzE1
NmU1ZDUwYmZkZS4uYWFhNjM5YWJjNTM0Yzk0OGRkZDUyOGJiZTcwOTcwNmIzMjM1NGQxZSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTk0
LDYgKzI4MTk0LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRl
clxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQu
Y3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2MjYyZGJkMGViZDg2NTk1NThmNjIyMjZh
ZDkwMzJiMGVhOTY3MWIuLjYxZTYwNThmYTg3MTMzMWE4ZTNkYjNhOWY3ODVmNDJjMTQ0YzdiMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU2MjIsNiArNTYyMiw4IEBACiAJCUJDQjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVl
dC5oICovOyB9OwogCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLzsg
fTsKIAkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkMxMTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0
OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwODFFM0RGM0NGQzgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwICovOyB9OworCQk1MDgxRTNFMDNDRkY4MEMxNkVGOEI0OEIgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkNCNzczNjEwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RTBD
MTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKIAkJQkNC
NzczNjIwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNUYwQzE3ODUzRDAw
MTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovOyB9OwogCQlCQ0I3NzM2MzBDMTc4
NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBK
U05vZGVGaWx0ZXJDdXN0b20uY3BwICovOyB9OwpAQCAtMTI5NjEsNiArMTI5NjMsOCBAQAogCQlC
Q0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5bGVTaGVldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNzczNUUwQzE3ODUzRDAwMTMyQkE0
IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRp
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzYwMEMxNzg1M0Qw
MDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTIwMCw2ICsxOTIwNCw4IEBACiAJCQkJRTQ3QjRCRTYwRTcxMjQxNjAw
MDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCiAJCQkJQkNCMTZDMTAwOTc5QzNC
RDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQlCQ0IxNkMxMTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywKKwkJCQk1MDgxRTNE
RjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLywKKwkJCQk1
MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi8sCiAJ
CQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgKi8sCiAJCQkJ
QkNCMTZDMEIwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oICovLAogCQkJCTUwMzhC
RTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovLApAQCAtMjI0OTUsNiAr
MjI1MDEsNyBAQAogCQkJCUJDQjE2QzIyMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3QjRCRTgwRTcxMjQxNjAwMDM4
ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMy
QTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTUwODFFM0UxM0QwMjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRT
Y3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFNDEx
NDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjEx
Nyw2ICsyNjEyNCw3IEBACiAJCQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJl
c291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0I0QkU5MEU3MTI0MTYwMDAzODg1NCAv
KiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyOTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywgZml4bWUKIAkJCQlCQ0IxNkMyMzA5NzlDM0JEMDA0Njc3NDEgLyog
Q2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwMzhCRTQwMTQ3MkFEOTgwMDk1
RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwNEYyNDMxNEM3
MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDJhMWMwNDc4N2Q2
YTBjNGM4NzEzODA0NGEyYzE3NTU4OTg3MTBjZmIuLjM2OTA3ODkzMzZkMGI4NDQ4MTUyNzNiMDEz
MjI1ZjY5ZGFhZDY4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiTm9k
ZS5oIgpAQCAtOTUsNyArOTYsNyBAQCBib29sIENTU0ZvbnRGYWNlU3JjVmFsdWU6Omhhc0ZhaWxl
ZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VT
cmNWYWx1ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFtX2Nh
Y2hlZEZvbnQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKG1fcmVzb3VyY2UpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSkp
OwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hlZEZvbnQu
Z2V0KCk7CkBAIC0xMTMsNCArMTE0LDMgQEAgdm9pZCBDU1NGb250RmFjZVNyY1ZhbHVlOjpyZXBv
cnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2IKIH0KIAog
fQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggNmUwMmEyMGY5
NWFjM2YxNGY0NjFhMWM1MTAwYjRhZDYyYmQ5ZWYwYS4uNmRjNzZmNTgwNDhmOWU0OGNlNWI3OWU4
ZWY1OTI5ZjJmNDJkMTQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2VTZXQuaCIKQEAg
LTEwOCw3ICsxMDksNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJbWFnZVNldFZhbHVlOjpj
YWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAogICAgICAgICAvLyBBbGwg
Zm9ybXMgb2Ygc2NhbGUgc2hvdWxkIGJlIGluY2x1ZGVkOiBQYWdlOjpwYWdlU2NhbGVGYWN0b3Io
KSwgRnJhbWU6OnBhZ2Vab29tRmFjdG9yKCksCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NTIHRyYW5z
Zm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5OAogICAg
ICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9yKCk7Ci0g
ICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaW1h
Z2UuaW1hZ2VVUkwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJ
bWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkgewogICAg
ICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OmNyZWF0ZShjYWNoZWRJ
bWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0b3IsIHRoaXMpOwogICAgICAgICAgICAgbV9hY2Nl
c3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAK
aW5kZXggNzI2YzJjMDQzNDcxZTk2N2I5MmJjOWZhNzY0YzMyMzlmMmI3YTU0Ni4uNmI3M2Q0NjMx
YTBmMDAyNGYyZWM2ZjNjNjQ4NTgxNjQ5ODQxMDRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZVZhbHVlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVk
SW1hZ2UuaCIKQEAgLTgyLDcgKzgzLDcgQEAgU3R5bGVDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1
ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICBp
ZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwog
Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpKTsKICAg
ICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9
IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAgICAgbV9pbWFnZSA9IFN0
eWxlQ2FjaGVkSW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCAyNmYyOWU4MmY4MGE5ZmY1MWRhY2U1
NzBkOGY0N2U5MzhhZTVkZTBhLi5lZWMzNTA3NzFjNDc5NDJlODY1NzczMDdlYzI0MDMyZDI2YzA0
Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtMjUsNiArMjUs
NyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHls
ZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCkBAIC0x
MTUsMTEgKzExNiwxMSBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQo
KQogICAgICAgICByb290U2hlZXQgPSBzaGVldDsKICAgICB9CiAKLSAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChhYnNVUkwpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CiAg
ICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKQotICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVT
aGVldChyZXF1ZXN0LCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CisgICAgICAgIG1f
Y2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNo
ZWV0KHJlcXVlc3QpOwogICAgIGVsc2UKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJl
c291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBtX3BhcmVudFN0eWxl
U2hlZXQtPmNoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJj
ZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgaWYgKG1fY2FjaGVk
U2hlZXQpIHsKICAgICAgICAgLy8gaWYgdGhlIGltcG9ydCBydWxlIGlzIGlzc3VlZCBkeW5hbWlj
YWxseSwgdGhlIHNoZWV0IG1heSBiZQogICAgICAgICAvLyByZW1vdmVkIGZyb20gdGhlIHBlbmRp
bmcgc2hlZXQgY291bnQsIHNvIGxldCB0aGUgZG9jIGtub3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAppbmRleCA0NGM4ODA4OTQ3MGU4Mzlk
OTc0ZWJhMDFjYzA2ZjdkOTIwYzE4MTIyLi42N2U4NGUzYzliOTgzYWJiMDgyNDEyMDc1OWUzODg4
MDUzY2ZjOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9j
dW1lbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3Vt
ZW50VmFsdWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogCkBAIC01Miw3ICs1Myw3IEBAIENhY2hlZFNWR0RvY3Vt
ZW50KiBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAgICAgaWYgKCFtX2xvYWRSZXF1ZXN0ZWQpIHsKICAgICAgICAgbV9sb2FkUmVx
dWVzdGVkID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXIt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBtX2RvY3VtZW50ID0gbG9hZGVyLT5yZXF1ZXN0U1ZH
RG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1NoYWRlclZhbHVlLmNwcAppbmRleCA2ZjkzNzNlMGYwZmEyZGY4YmY0OTQyODFiNWMyZDg3NzI5
YWJiOTYxLi5mYTA0MTkwYzNkYzhlM2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0YmE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKQEAgLTMyLDggKzMyLDkg
QEAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAjaW5jbHVkZSAiV2ViS2l0Q1NTU2hhZGVyVmFs
dWUuaCIKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ1NT
UGFyc2VyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IlN0eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCkBA
IC01OSw3ICs2MCw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6
Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgaWYgKCFtX2FjY2Vz
c2VkU2hhZGVyKSB7CiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCi0gICAgICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwo
bV91cmwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgICAg
IGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IGNhY2hlZFNoYWRlciA9IGxv
YWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0KSkKICAgICAgICAgICAgIG1fc2hhZGVyID0gU3R5
bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIuZ2V0KCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggNGJjYTFkMWVi
OTVlYmFhZWMxMGFkMTM4ZmNjNmQxZmViM2Y2ZjZiNi4uZWMxNzMzYzc0NDg5NTI2ZGY2NWNlMGY0
MWIzYjY4NzcxMWQ0M2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0Lmgi
CiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgpAQCAtMTYzLDcgKzE2NCw3IEBAIHZv
aWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAg
bV9sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPnN0eWxlU2hlZXRDb2xs
ZWN0aW9uKCktPmFkZFBlbmRpbmdTaGVldCgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSk7Cisg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICNpZiBFTkFCTEUoWFNMVCkKICAgICAg
ICAgICAgIGlmIChtX2lzWFNMKQogICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0WFNMU3R5bGVTaGVldChyZXF1
ZXN0KTsKQEAgLTE3Myw4ICsxNzQsOSBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgICAgICBTdHJpbmcgY2hhcnNldCA9IGF0dHJzLmdl
dCgiY2hhcnNldCIpOwogICAgICAgICAgICAgICAgIGlmIChjaGFyc2V0LmlzRW1wdHkoKSkKICAg
ICAgICAgICAgICAgICAgICAgY2hhcnNldCA9IGRvY3VtZW50KCktPmNoYXJzZXQoKTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoY2hhcnNldCk7CiAKLSAgICAgICAgICAgICAg
ICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVx
dWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgICAgICAgICAgbV9j
YWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RD
U1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG1f
Y2FjaGVkU2hlZXQpCiAgICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDIwOWZjNzljMWM4YzA4
YTRmNjlhOTk5OTgzZmIwNzE5ODYzOGU2OTYuLjBkNGFlYWVkZDRiYWVjMjY2MDQxYjYwMTQxZmEy
MDZmNjI5MzFlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTI1NiwxNiArMjU3LDE2IEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVy
bCkKIAogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIGlmICghc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKHNvdXJjZVVybCksIHNjcmlwdENoYXJzZXQoKSkpOwogCiAgICAgICAgIFN0cmluZyBj
cm9zc09yaWdpbk1vZGUgPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
cm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkg
ewogICAgICAgICAgICAgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wgPSB0cnVlOwogICAgICAg
ICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdD
YXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVk
ZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0
ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwg
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxz
KTsKICAgICAgICAgfQogCi0gICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QsIHNj
cmlwdENoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwog
ICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGZkYzdhNWNjZTMyMzFhZjljMjI0NGUxYzlm
NDQ0ODNiODRiZjAxMzEuLjdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUyYzYyMDliM2Y0NGI0MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgi
CkBAIC0yMjAsOCArMjIxLDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogCiAg
ICAgICAgIC8vIExvYWQgc3R5bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgdGhlIHJl
bmRlcmluZyBpbW1lZGlhdGVseSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFByaW9yaXR5VW5y
ZXNvbHZlZCA6IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKLSAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKTsKLSAgICAgICAg
bV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRT
aGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHls
ZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAg
ICAgICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDcxYTFh
ZDNiMTk3MTE4YzJhYjFiY2RlMjkwYTMxOTJkNWM2OTA3NGYuLjljODg5Y2RmNWFjM2YwM2NmMWM2
ODk1MTUwMmUyZTEwNmU2YzBlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRl
ICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNzYsMTcgKzM3NywxNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAgICAgICAgICAgb3B0aW9ucy5zaG91bGRCdWZmZXJEYXRh
ID0gQnVmZmVyRGF0YTsKICAgICAgICAgfQogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCBuZXdS
ZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVz
dChyZXF1ZXN0LCBvcHRpb25zKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBpZiAo
bV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVz
dCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUgdGhlIGlk
ZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KICAgICAgICAgICAg
IG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIgPSBtX2RvY3VtZW50LT5mcmFtZSgpLT5wYWdl
KCktPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKICAgICAgICAgICAgIFJl
c291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UoKTsKLSAg
ICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZG9j
dW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIG1fZG9jdW1lbnQt
PmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBuZXdSZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlKTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZp
ZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBuZXdS
ZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
ICAgIH0KICNlbmRpZgogICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2UpOwotICAgICAgICBtX3Jl
c291cmNlID0gbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jl
c291cmNlKG5ld1JlcXVlc3QsIG9wdGlvbnMpOworICAgICAgICBtX3Jlc291cmNlID0gbV9kb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKG5ld1JlcXVl
c3QpOwogICAgICAgICBpZiAobV9yZXNvdXJjZSkgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgICAgICAgICBpZiAobV9yZXNvdXJjZS0+bG9hZGVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VMb2FkZXIuY3BwCmluZGV4IGE2ZGE2MWU2NTQ4ZWYwN2E2ODJkY2RiN2M0Njc0NDg0Mjc2
ODE2MmIuLmMxMmJlMmZmOWQ0NTU3NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVhN2VjNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVk
ZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgpAQCAtMTc3LDE4ICsxNzgsMTggQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogICAgIC8vIGFuIGVtcHR5IHN0cmluZy4KICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAwOwogICAgIGlmICghYXR0ci5pc051bGwoKSAmJiAhc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIpLmlzRW1wdHkoKSkgewotICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJj
ZVVSSShhdHRyKSkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gY2xpZW50
KCktPnNvdXJjZUVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3Jp
Z2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmlu
Z0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9y
QWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAobV9sb2FkTWFudWFsbHkpIHsKICAgICAgICAgICAgIGJvb2wgYXV0b0xvYWRPdGhl
ckltYWdlcyA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmF1dG9Mb2FkSW1h
Z2VzKCk7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5z
ZXRBdXRvTG9hZEltYWdlcyhmYWxzZSk7Ci0gICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNo
ZWRJbWFnZShyZXF1ZXN0KTsKKyAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdl
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldExv
YWRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0T3duaW5nQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5tX2RvY3VtZW50UmVzb3VyY2Vz
LnNldChuZXdJbWFnZS0+dXJsKCksIG5ld0ltYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmNwcAppbmRleCBhZjI1YTg2ODAzYzQwNzQ3OWMxMDI2N2FmMjY2N2VhMDJhZTVk
MmYzLi5lNTBiMzc5ZDk2YmVkYTczMjkyNTQ2NDIwZWFjZjk4YmE1NDNlMWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJETlMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtMTE5LDEzICsxMjAsMTMgQEAgYm9vbCBMaW5rTG9hZGVyOjps
b2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmlu
ZyYgdHkKICAgICAgICAgICAgIHByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CiAg
ICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZTsKICAgICAg
ICAgfQotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoZG9jdW1lbnQtPmNvbXBs
ZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpLCBwcmlvcml0eSk7
CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpIHsKICAgICAgICAg
ICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgICAgICAg
ICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IDA7CiAgICAgICAgIH0KLSAgICAgICAgbV9jYWNoZWRM
aW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExp
bmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCwgcHJpb3JpdHkpOworICAgICAgICBtX2NhY2hl
ZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkTGlu
a1Jlc291cmNlKQogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPmFkZENsaWVudCh0
aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmlu
ZGV4IGE5YjdmOTYwYmY2ZDY1MDMwMDUxN2NiMGY5NjNhZGE0NWU5NWExZmIuLjdlMTRiNDMzNDlj
ODUwYTE5NWI2NmMyNTkwNjEzNmQ4YjgwZjZmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVGV4dFRyYWNr
TG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFRleHRUcmFjay5oIgog
I2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCkBAIC0xNTMsMTIgKzE1NCwxMiBAQCBib29sIFRleHRUcmFja0xvYWRlcjo6bG9hZChjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlKQogCiAgICAgQVNTRVJU
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KHVybCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSkpOwogCiAgICAgaWYgKCFjcm9zc09yaWdp
bk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgbV9jcm9zc09yaWdpbk1vZGUgPSBjcm9zc09yaWdp
bk1vZGU7CiAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVh
bElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QsIGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2woY3VlUmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICAvLyBDcm9zcy1vcmlnaW4gcmVzb3VyY2VzIHRoYXQgYXJlIG5vdCBzdWl0YWJseSBD
T1JTLWVuYWJsZWQgbWF5IG5vdCBsb2FkLgogICAgICAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDFmZmNhNGZjMWUxODlh
Mjc4MmM0ZDg5ZGVjOWYxYTNjOGVjNGVkNzAuLmM0MjY4NjViMjY3NzRlMjUwMjkyZDk3NTAxMGNi
NTFmYzU2YTMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jl
c291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNvbnNvbGUuaCIKQEAgLTEwNywxMiArMTA4LDYgQEAgc3RhdGljIENhY2hlZFJlc291cmNl
KiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVl
c3QKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCi17Ci0gICAgc3RhdGljIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVy
RGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVk
ZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKLSAgICByZXR1cm4gb3B0aW9uczsKLX0KLQogQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBk
b2N1bWVudExvYWRlcikKICAgICA6IG1fZG9jdW1lbnQoMCkKICAgICAsIG1fZG9jdW1lbnRMb2Fk
ZXIoZG9jdW1lbnRMb2FkZXIpCkBAIC0xNTUsNTYgKzE1MCw1NyBAQCBGcmFtZSogQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/
IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICBpZiAoZi0+
bG9hZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9h
ZGVyOjpOb0Rpc21pc3NhbCkgewotICAgICAgICAgICAgS1VSTCByZXF1ZXN0VVJMID0gcmVxdWVz
dC51cmwoKTsKKyAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkudXJsKCk7CiAgICAgICAgICAgICBpZiAocmVxdWVzdFVSTC5pc1ZhbGlkKCkgJiYg
Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdFVSTCkpCiAg
ICAgICAgICAgICAgICAgUGluZ0xvYWRlcjo6bG9hZEltYWdlKGYsIHJlcXVlc3RVUkwpOwogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJl
c291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
LCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlLCBjbGllbnREZWZlcnNJbWFn
ZShyZXF1ZXN0LnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKS5nZXQoKSk7Cisg
ICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3Vy
Y2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRU
cmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4dFRy
YWNrKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwg
cmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi1D
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291
cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5n
ZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0K
ICNlbmRpZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9y
aXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+
KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCwg
Y2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSkuZ2V0KCkp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CiB9
CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRD
U1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNo
ZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IE1l
bW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVybCgp
KTsKKyAgICBLVVJMIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJ
Zk5lZWRlZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIGlmIChDYWNo
ZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwp
KSB7CiAgICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpDU1NT
dHlsZVNoZWV0KQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxl
U2hlZXQqPihleGlzdGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShleGlzdGlu
Zyk7CiAgICAgfQotICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC51cmwoKSkKLSAgICAg
ICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpCisgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVz
dCwgY2hhcnNldCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogCiAgICAgbWVtb3J5Q2FjaGUoKS0+YWRkKHVz
ZXJTaGVldC5nZXQoKSk7CiAgICAgLy8gRklYTUU6IGxvYWRSZXNvdXJjZSBjYWxscyBzZXRPd25p
bmdDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGlmIHRoZSByZXNvdXJjZSBjb3VsZG4ndCBiZSBhZGRl
ZCB0byBjYWNoZS4gRG9lcyB0aGlzIGZ1bmN0aW9uIG5lZWQgdG8gY2FsbCBpdCwgdG9vPwpAQCAt
MjE0LDM3ICsyMTAsMzcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICAgICByZXR1cm4gdXNl
clNoZWV0OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3JpcHQs
IHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShYU0xUKQotQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RY
U0xTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNM
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
WFNMU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVT
aGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1ZHKQotQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U1ZH
RG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTElOS19QUkVGRVRDSCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5
cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBBU1NFUlQoZnJhbWUo
KSk7CiAgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwotICAgIHJldHVybiByZXF1
ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpOworICAgIHJldHVybiByZXF1ZXN0UmVzb3VyY2UodHlwZSwg
cmVxdWVzdCk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCitD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIG9wdGlv
bnMsIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgZmFsc2UpLmdldCgpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKIGJvb2wgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKQEAgLTQwMiwxMSArMzk4LDExIEBAIGJv
b2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9w
dGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBib29sIGZvclByZWxvYWQsIERl
ZmVyT3B0aW9uIGRlZmVyKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIEtVUkwgdXJsID0g
cmVxdWVzdC51cmwoKTsKKyAgICBLVVJMIHVybCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCk7CiAgICAgCi0gICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9y
UHJlbG9hZD0ldSIsIHVybC5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIGNoYXJzZXQubGF0aW4x
KCkuZGF0YSgpLCBwcmlvcml0eSwgZm9yUHJlbG9hZCk7CisgICAgTE9HKFJlc291cmNlTG9hZGlu
ZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAn
JXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmcoKS5sYXRpbjEoKS5k
YXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0
eSgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7CiAgICAgCiAgICAgLy8gSWYgb25seSB0aGUgZnJh
Z21lbnQgaWRlbnRpZmllcnMgZGlmZmVyLCBpdCBpcyB0aGUgc2FtZSByZXNvdXJjZS4KICAgICB1
cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQodXJsKTsK
QEAgLTQxNCw3ICs0MTAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIGlmICghdXJs
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoIWNhblJlcXVlc3QodHlw
ZSwgdXJsLCBmb3JQcmVsb2FkKSkKKyAgICBpZiAoIWNhblJlcXVlc3QodHlwZSwgdXJsLCByZXF1
ZXN0LmZvclByZWxvYWQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKG1lbW9yeUNh
Y2hlKCktPmRpc2FibGVkKCkpIHsKQEAgLTQyOCwxNiArNDI0LDE2IEBAIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291
cmNlKENhY2hlCiAgICAgLy8gU2VlIGlmIHdlIGNhbiB1c2UgYW4gZXhpc3RpbmcgcmVzb3VyY2Ug
ZnJvbSB0aGUgY2FjaGUuCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKTsKIAotICAgIGlm
IChyZXF1ZXN0LnVybCgpICE9IHVybCkKLSAgICAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAg
ICBpZiAocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSAhPSB1cmwpCisgICAgICAgIHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgY29uc3Qg
UmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0
eXBlLCByZXF1ZXN0LCBmb3JQcmVsb2FkLCByZXNvdXJjZS5nZXQoKSwgZGVmZXIpOworICAgIGNv
bnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xp
Y3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJl
bG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBzd2l0Y2ggKHBv
bGljeSkgewogICAgIGNhc2UgUmVsb2FkOgogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUo
cmVzb3VyY2UuZ2V0KCkpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2gKICAgICBjYXNlIExvYWQ6
Ci0gICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQp
OworICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0Lm11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJldmFsaWRhdGU6CiAgICAgICAgIHJlc291cmNlID0gcmV2YWxpZGF0ZVJlc291cmNl
KHJlc291cmNlLmdldCgpKTsKQEAgLTQ1MSw5ICs0NDcsOSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShD
YWNoZQogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmVzb3Vy
Y2UtPnNldExvYWRQcmlvcml0eShwcmlvcml0eSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8
IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IGRlZmVyKSB7Ci0gICAg
ICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIG9wdGlvbnMpOworICAgIHJlc291cmNlLT5zZXRMb2Fk
UHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKKyAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwg
cmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0gcmVxdWVzdC5kZWZlcigp
KSB7CisgICAgICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIHJlcXVlc3Qub3B0aW9ucygpKTsKIAog
ICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1
cHBvcnQgaW1tZWRpYXRlIGZhaWx1cmUuCiAgICAgICAgIGlmIChyZXNvdXJjZS0+ZXJyb3JPY2N1
cnJlZCgpKSB7CkBAIC00NjMsOCArNDU5LDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzRGF0YSgp
KQotICAgICAgICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QudXJsKCkpOworICAgIGlmICgh
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0YSgpKQorICAgICAg
ICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpOwog
CiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3RyaW5nKCkpOwogICAgIG1fZG9j
dW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwpAQCAtNzkzLDcg
Kzc4OSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZChDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcQogICAgIGlmICh0eXBlID09IENhY2hl
ZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dCkKICAgICAgICAgZW5jb2RpbmcgPSBjaGFyc2V0LmlzRW1wdHkoKSA/IG1fZG9jdW1lbnQtPmNo
YXJzZXQoKSA6IGNoYXJzZXQ7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgZW5jb2Rpbmcs
IGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkLCB0cnVlKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KHJlcXVlc3QpOworICAgIGNhY2hlZFJlc291cmNlUmVxdWVzdC5zZXRGb3JQcmVsb2Fk
KHRydWUpOworCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291
cmNlID0gcmVxdWVzdFJlc291cmNlKHR5cGUsIGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CiAgICAg
aWYgKCFyZXNvdXJjZSB8fCAobV9wcmVsb2FkcyAmJiBtX3ByZWxvYWRzLT5jb250YWlucyhyZXNv
dXJjZS5nZXQoKSkpKQogICAgICAgICByZXR1cm47CiAgICAgcmVzb3VyY2UtPmluY3JlYXNlUHJl
bG9hZENvdW50KCk7CkBAIC05MTIsNCArOTExLDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwogfQogCitjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmIENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCkKK3sKKyAgICBzdGF0aWMgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlv
bnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5
Q2hlY2spOworICAgIHJldHVybiBvcHRpb25zOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDJhNzk4NWU2Y2Iy
NDkyNTJkODE1OWU5ODVlNjkwNDUzYzZkZWQ4MDMuLjBmY2IxZTM3ZDRhMjk4MjM3NzI4MzkxNDUx
OWYyMmEyZjQ0MjRmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIENhY2hlZFNWR0Rv
Y3VtZW50OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2Fj
aGVkUmF3UmVzb3VyY2U7CitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBDYWNo
ZWRTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2s7CkBA
IC02OCwzMCArNjksMzEgQEAgZnJpZW5kIGNsYXNzIEltYWdlTG9hZGVyOwogZnJpZW5kIGNsYXNz
IFJlc291cmNlQ2FjaGVWYWxpZGF0aW9uU3VwcHJlc3NvcjsKIAogcHVibGljOgorICAgIGVudW0g
RGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1bWVudExvYWRlciogZG9j
dW1lbnRMb2FkZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcihk
b2N1bWVudExvYWRlcikpOyB9CiAgICAgfkNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gcmVxdWVzdEltYWdlKFJlc291cmNlUmVx
dWVzdCYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJl
cXVlc3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQp
OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RV
c2VyQ1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQp
OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdChS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwotICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEZvbnQ+IHJlcXVlc3RGb250KFJlc291cmNlUmVxdWVzdCYpOwotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3Vy
Y2UoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNo
ZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0
eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwor
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IHJlcXVlc3RGb250KENhY2hlZFJl
c291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291
cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICNpZiBF
TkFCTEUoU1ZHKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBy
ZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShYU0xUKQotICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHlsZVNoZWV0KFJlc291cmNl
UmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+
IHJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291
cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVx
dWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVz
dCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRl
eHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RT
aGFkZXIoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2hhZGVyPiByZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAK
ICAgICAvLyBMb2dzIGFuIGFjY2VzcyBkZW5pZWQgbWVzc2FnZSB0byB0aGUgY29uc29sZSBmb3Ig
dGhlIHNwZWNpZmllZCBVUkwuCkBAIC0xMzUsMTEgKzEzNywxMiBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyAg
ICBzdGF0aWMgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCk7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoRG9jdW1lbnRMb2FkZXIqKTsKIAotICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBE
ZWZlcnJlZEJ5Q2xpZW50IH07Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBS
ZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgYm9v
bCBpc1ByZWxvYWQgPSBmYWxzZSwgRGVmZXJPcHRpb24gPSBOb0RlZmVyKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlKik7
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFy
c2V0KTsKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42YWRkMzliOTZjYWNmNGRlYjNiNGYzODIxY2VmYjYyNThjNWVjOWYyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgcHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3Qp
CisgICAgLCBtX2NoYXJzZXQoY2hhcnNldCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9wcmlvcml0
eShwcmlvcml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVz
dDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3Jl
c291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykK
KyAgICAsIG1fcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQorICAgICwg
bV9mb3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Tm9EZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFJlc291cmNlTG9h
ZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1
ZXN0KQorICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQorICAgICwgbV9m
b3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9E
ZWZlcikKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMDQzZGZlMzlmZTRjZWQ1NTA4MjE5
NGJlM2YxMGRmMDBmOTFiZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCisjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVz
dF9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291
cmNlTG9hZFByaW9yaXR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gU3Ry
aW5nKCksIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKworICAgIFJl
c291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3Vy
Y2VSZXF1ZXN0OyB9CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQorICAgIHZvaWQgc2V0Q2hhcnNl
dChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQorICAgIGNv
bnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9uczsgfQorICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1
cm4gbV9wcmlvcml0eTsgfQorICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9yUHJlbG9hZDsgfQorICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsg
bV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQorICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpE
ZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNl
dERlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVy
ID0gZGVmZXI7IH0KKworcHJpdmF0ZToKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJl
cXVlc3Q7CisgICAgU3RyaW5nIG1fY2hhcnNldDsKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMg
bV9vcHRpb25zOworICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CisgICAgYm9v
bCBtX2ZvclByZWxvYWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIG1f
ZGVmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAppbmRleCA2M2JjMGVhMWNhMjE3NGRhODBl
MTVjYTIzZGU4ODkwNWIxNDViNTM0Li44YzlkMGNlY2JmY2QxMmI3ZWFhMWM0YThjODcwZjE2NDI1
NTdmNzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgpAQCAtNTksMTQgKzYwLDE0IEBAIHZvaWQgSWNvbkxvYWRlcjo6c3Rh
cnRMb2FkaW5nKCkKICAgICBpZiAobV9yZXNvdXJjZSB8fCAhbV9mcmFtZS0+ZG9jdW1lbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCht
X2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnVy
bCgpKSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwg
QnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZv
ckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykpOworCiAjaWYgUExBVEZP
Uk0oQkxBQ0tCRVJSWSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbik7CisgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbik7
CiAjZW5kaWYKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJp
b3JpdHlMb3cpOworICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKIAotICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2Uo
cmVzb3VyY2VSZXF1ZXN0LAotICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxi
YWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNo
ZWNrKSk7CisgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0KTsKICAgICBpZiAobV9yZXNv
dXJjZSkKICAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDc2MzU3MzhmZGUxODRk
MWUxZGY0OGViNmZiMzZhZWNhYTIzNWQ1ZmIuLjg3ZmYwZDY4MTI3NDQ2MGVhNzk3OGFmZTg3ZmEy
NzM5Njg4NTdlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCBTVkdG
RUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogCiB2b2lkIFNWR0ZFSW1h
Z2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiB7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3Qob3duZXJEb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qob3duZXJEb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChocmVmKCkpKSk7CiAgICAgbV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RJbWFnZShyZXF1ZXN0KTsKIAogICAgIGlm
IChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmNwcAppbmRleCBmNjEwNTM3NzJiNjIyZmFmZTk0NzUwZTA5OTM0OGU2NzcwYjdlODA3Li5j
MzRmZWQ4N2Q0N2VmOGZmMWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4YThiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNl
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC05Niw3ICs5Nyw3IEBAIHZvaWQg
U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBocmVmID0gZ2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKICAgICBpZiAoIWhy
ZWYuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291
cmNlTG9hZGVyID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOwor
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAgICBpZiAobV9j
YWNoZWRGb250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkMTllYTE5NWRmMjBhMmVmNjM5
ZjZhMWU5OWEyMGIyNTgyYjk1MGUxLi42MDQ2ZWM2MWI3NGZjMTJlYjEzYWMyMDcyNDRhNmM2ODE2
NTQ3NDc2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CkBAIC0yNTQsNyArMjU1LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBpZiAoaXNFeHRlcm5h
bFJlZmVyZW5jZSkgewogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSkgewotICAgICAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybC5zdHJpbmco
KSk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0KHVybC5zdHJpbmcoKSkpOwogICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1l
bnQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1l
bnQocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCiAgICAg
ICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAppbmRleCAwYTE3NzBkMDM0NWE4YTFmYzgzZDdiN2Zi
MmQ0NDJkMmJhMzllYjFmLi5lNjI5NTllOTliMGQwZGUzN2Q4NmQ1NTU1N2M5Njk4Y2U5ODM4MTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAK
ICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIKIApAQCAtOTgsNyArOTks
NyBAQCB2b2lkIFhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCgpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGNhY2hlZFJlc291cmNl
TG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVy
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSkpOwogICAgIG1fY2FjaGVkU2hlZXQg
PSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CiAg
ICAgCiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169730</attachid>
            <date>2012-10-19 17:05:11 -0700</date>
            <delta_ts>2012-10-19 18:51:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121020020353.patch</filename>
            <type>text/plain</type>
            <size>60579</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IGJjNmZkOWJiY2QxNjllMTQ4ZDBhMGYzNDljOWFkZDAyNmRkZjY4ZGEuLmUzZDQxYzBhOWI1YTc3
ZDFjNjBkNDdhZjFlNGQyNmZhZmNiMjhhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjA2
LDYgKzE2MDYsOCBAQCBfX1pON1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgogX19aTjdX
ZWJDb3JlMjBQbGF0Zm9ybUV2ZW50RmFjdG9yeTI0Y3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50RVA3
TlNFdmVudFA2TlNWaWV3CiBfX1pON1dlYkNvcmUyMFBsYXRmb3JtRXZlbnRGYWN0b3J5MjdjcmVh
dGVQbGF0Zm9ybUtleWJvYXJkRXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUyMGJ1aWx0SW5Q
REZQbHVnaW5OYW1lRXYKK19fWk43V2ViQ29yZTIxQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0QzFFUktO
U18xNVJlc291cmNlUmVxdWVzdEVSS04zV1RGNlN0cmluZ0VOU18yMFJlc291cmNlTG9hZFByaW9y
aXR5RQorX19aTjdXZWJDb3JlMjFDYWNoZWRSZXNvdXJjZVJlcXVlc3RDMUVSS05TXzE1UmVzb3Vy
Y2VSZXF1ZXN0RVJLTlNfMjFSZXNvdXJjZUxvYWRlck9wdGlvbnNFCiBfX1pON1dlYkNvcmUyMWFw
cGxpY2F0aW9uSXNBcGVydHVyZUV2CiBfX1pON1dlYkNvcmUyMXJlcG9ydFRocmVhZFZpb2xhdGlv
bkVQS2NOU18yMFRocmVhZFZpb2xhdGlvblJvdW5kRQogX19aTjdXZWJDb3JlMjJhcHBsaWNhdGlv
bklzQXBwbGVNYWlsRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0OGExZGNiM2Y1Y2E4NDI0MTEwOTQw
MGZmZjk0Y2NiMjEzMjZhNzA0Li5hMjc2MjIwMWI1MWQwMThkNTNlNmU5M2I0ZTJiZjJlNzRmY2Vl
OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDYsNiArMjA2LDcgQEAKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGll
bnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAtMzA2
MSw2ICszMDYyLDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VD
bGllbnRXYWxrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
SGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTQwZmE1MzkzNTFlZTZhNzQ1ZTkxMzAxM2VlMzE1
NmU1ZDUwYmZkZS4uYWFhNjM5YWJjNTM0Yzk0OGRkZDUyOGJiZTcwOTcwNmIzMjM1NGQxZSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTk0
LDYgKzI4MTk0LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRl
clxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQu
Y3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2MjYyZGJkMGViZDg2NTk1NThmNjIyMjZh
ZDkwMzJiMGVhOTY3MWIuLjBmZjhiMzFmYjJhNjZhNjkyZjIyNDVlOWZmZDVkYmZhNzI0OTRkNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE0OTEsNiArMTQ5MSw4IEBACiAJCTUwM0QwQ0FCMTRCNUIwODcwMEYzMkY1NyAvKiBD
dXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MDNEMENBODE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTUwM0QwQ0FDMTRC
NUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBOTE0QjVCMDg3MDBGMzJG
NTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1NyAvKiBT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUwM0QwQ0FEMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1c3RvbUZp
bHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk1
MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwODFFM0RGM0NGQzgw
QzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwICovOyB9OworCQk1MDgxRTNF
MDNDRkY4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVGOEI0
OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRl
ckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87IH07
CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLzsgfTsKIAkJNTA5ODdDMjYxNTdE
Njc2RDAwQkRBODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjQxNTdENjc2RDAwQkRB
ODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwICovOyB9OwpAQCAtMTI5NjEsNiAr
MTI5NjMsOCBAQAogCQlCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVT
aGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5bGVT
aGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDgxRTNERjNDRkM4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNzczNUUw
QzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8qIEpT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
Qjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTIwMCw2ICsxOTIwNCw4IEBACiAJCQkJRTQ3
QjRCRTYwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCiAJCQkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLywK
IAkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAq
LywKKwkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcCAqLywKKwkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmggKi8sCiAJCQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlw
dC5jcHAgKi8sCiAJCQkJQkNCMTZDMEIwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5o
ICovLAogCQkJCTUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICov
LApAQCAtMjI0OTUsNiArMjI1MDEsNyBAQAogCQkJCUJDQjE2QzIyMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3QjRC
RTgwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0IxNkMyQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUwODFFM0UxM0QwMjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVENjg0
ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjExNyw2ICsyNjEyNCw3IEBACiAJCQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0I0QkU5MEU3
MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywgZml4bWUKIAkJCQlCQ0IxNkMyMzA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwMzhC
RTQwMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTEwNEYyNDMxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3Jj
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmlu
ZGV4IDJhMWMwNDc4N2Q2YTBjNGM4NzEzODA0NGEyYzE3NTU4OTg3MTBjZmIuLjM2OTA3ODkzMzZk
MGI4NDQ4MTUyNzNiMDEzMjI1ZjY5ZGFhZDY4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250
RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgi
CiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtOTUsNyArOTYsNyBAQCBib29sIENTU0ZvbnRGYWNlU3Jj
VmFsdWU6Omhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogQ2FjaGVkRm9u
dCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQpCiB7
CiAgICAgaWYgKCFtX2NhY2hlZEZvbnQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKTsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVS
TChtX3Jlc291cmNlKSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJldHVy
biBtX2NhY2hlZEZvbnQuZ2V0KCk7CkBAIC0xMTMsNCArMTE0LDMgQEAgdm9pZCBDU1NGb250RmFj
ZVNyY1ZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2IKIH0KIAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAK
aW5kZXggNmUwMmEyMGY5NWFjM2YxNGY0NjFhMWM1MTAwYjRhZDYyYmQ5ZWYwYS4uNmRjNzZmNTgw
NDhmOWU0OGNlNWI3OWU4ZWY1OTI5ZjJmNDJkMTQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVk
SW1hZ2VTZXQuaCIKQEAgLTEwOCw3ICsxMDksNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJ
bWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAog
ICAgICAgICAvLyBBbGwgZm9ybXMgb2Ygc2NhbGUgc2hvdWxkIGJlIGluY2x1ZGVkOiBQYWdlOjpw
YWdlU2NhbGVGYWN0b3IoKSwgRnJhbWU6OnBhZ2Vab29tRmFjdG9yKCksCiAgICAgICAgIC8vIGFu
ZCBhbnkgQ1NTIHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MTY5OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNj
YWxlRmFjdG9yKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKTsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShy
ZXF1ZXN0KSkgewogICAgICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6
OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0b3IsIHRoaXMpOwogICAg
ICAgICAgICAgbV9hY2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAKaW5kZXggNzI2YzJjMDQzNDcxZTk2N2I5MmJjOWZhNzY0YzMyMzlmMmI3
YTU0Ni4uNmI3M2Q0NjMxYTBmMDAyNGYyZWM2ZjNjNjQ4NTgxNjQ5ODQxMDRmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1
ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuaCIKQEAgLTgyLDcgKzgzLDcgQEAgU3R5bGVDYWNoZWRJbWFn
ZSogQ1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRl
ciwgY29uc3QKICAgICBpZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2FjY2Vzc2Vk
SW1hZ2UgPSB0cnVlOwogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybCkpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdl
PiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAg
ICAgbV9pbWFnZSA9IFN0eWxlQ2FjaGVkSW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCAyNmYyOWU4
MmY4MGE5ZmY1MWRhY2U1NzBkOGY0N2U5MzhhZTVkZTBhLi5lZWMzNTA3NzFjNDc5NDJlODY1Nzcz
MDdlYzI0MDMyZDI2YzA0Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENv
bnRlbnRzLmgiCkBAIC0xMTUsMTEgKzExNiwxMSBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVx
dWVzdFN0eWxlU2hlZXQoKQogICAgICAgICByb290U2hlZXQgPSBzaGVldDsKICAgICB9CiAKLSAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChhYnNVUkwpOworICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQt
PmNoYXJzZXQoKSk7CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVl
dCgpKQotICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQo
KSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVz
dFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIGVsc2UKLSAgICAgICAgbV9jYWNoZWRT
aGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0
LCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQg
PSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAg
ICAgaWYgKG1fY2FjaGVkU2hlZXQpIHsKICAgICAgICAgLy8gaWYgdGhlIGltcG9ydCBydWxlIGlz
IGlzc3VlZCBkeW5hbWljYWxseSwgdGhlIHNoZWV0IG1heSBiZQogICAgICAgICAvLyByZW1vdmVk
IGZyb20gdGhlIHBlbmRpbmcgc2hlZXQgY291bnQsIHNvIGxldCB0aGUgZG9jIGtub3cKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAppbmRleCA0
NGM4ODA4OTQ3MGU4MzlkOTc0ZWJhMDFjYzA2ZjdkOTIwYzE4MTIyLi42N2U4NGUzYzliOTgzYWJi
MDgyNDEyMDc1OWUzODg4MDUzY2ZjOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCkBAIC01Miw3ICs1Myw3IEBA
IENhY2hlZFNWR0RvY3VtZW50KiBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKENhY2hl
ZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgaWYgKCFtX2xvYWRSZXF1ZXN0ZWQpIHsKICAg
ICAgICAgbV9sb2FkUmVxdWVzdGVkID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBtX2RvY3VtZW50ID0gbG9h
ZGVyLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAppbmRleCA2ZjkzNzNlMGYwZmEyZGY4YmY0
OTQyODFiNWMyZDg3NzI5YWJiOTYxLi5mYTA0MTkwYzNkYzhlM2FkYjQzMWFiMDNhOGZkMWExZTE4
MDA0YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAK
QEAgLTMyLDggKzMyLDkgQEAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAjaW5jbHVkZSAiV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUuaCIKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQZW5k
aW5nU2hhZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRD
U1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAg
ICAgaWYgKCFtX2FjY2Vzc2VkU2hhZGVyKSB7CiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0
cnVlOwogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwobV91cmwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91
cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IGNh
Y2hlZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0KSkKICAgICAgICAgICAg
IG1fc2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIuZ2V0KCkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAK
aW5kZXggNGJjYTFkMWViOTVlYmFhZWMxMGFkMTM4ZmNjNmQxZmViM2Y2ZjZiNi4uZWMxNzMzYzc0
NDg5NTI2ZGY2NWNlMGY0MWIzYjY4NzcxMWQ0M2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJD
U1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgpAQCAtMTYz
LDcgKzE2NCw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQo
KQogICAgICAgICAgICAgbV9sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgIGRvY3VtZW50KCkt
PnN0eWxlU2hlZXRDb2xsZWN0aW9uKCktPmFkZFBlbmRpbmdTaGVldCgpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChocmVmKSk7CisgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICNpZiBFTkFC
TEUoWFNMVCkKICAgICAgICAgICAgIGlmIChtX2lzWFNMKQogICAgICAgICAgICAgICAgIG1fY2Fj
aGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0WFNM
U3R5bGVTaGVldChyZXF1ZXN0KTsKQEAgLTE3Myw4ICsxNzQsOSBAQCB2b2lkIFByb2Nlc3NpbmdJ
bnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgICAgICBTdHJpbmcgY2hh
cnNldCA9IGF0dHJzLmdldCgiY2hhcnNldCIpOwogICAgICAgICAgICAgICAgIGlmIChjaGFyc2V0
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhcnNldCA9IGRvY3VtZW50KCktPmNo
YXJzZXQoKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoY2hhcnNldCk7CiAK
LSAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAg
ICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAgICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVl
dC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4
IDIwOWZjNzljMWM4YzA4YTRmNjlhOTk5OTgzZmIwNzE5ODYzOGU2OTYuLjBkNGFlYWVkZDRiYWVj
MjY2MDQxYjYwMTQxZmEyMDZmNjI5MzFlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAi
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTI1
NiwxNiArMjU3LDE2IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVybCkKIAogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIGlm
ICghc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KG1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSk7CisgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCksIHNjcmlwdENoYXJzZXQoKSkpOwogCiAg
ICAgICAgIFN0cmluZyBjcm9zc09yaWdpbk1vZGUgPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1
dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2lu
TW9kZS5pc051bGwoKSkgewogICAgICAgICAgICAgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wg
PSB0cnVlOwogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9
IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8g
QWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAg
ICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAg
ICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNv
dXJjZVJlcXVlc3QoKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBh
bGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fY2FjaGVkU2NyaXB0ID0g
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2Ny
aXB0KHJlcXVlc3QsIHNjcmlwdENoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0g
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2Ny
aXB0KHJlcXVlc3QpOwogICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGZkYzdhNWNjZTMy
MzFhZjljMjI0NGUxYzlmNDQ0ODNiODRiZjAxMzEuLjdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUy
YzYyMDliM2Y0NGI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkV2ZW50U2VuZGVyLmgiCkBAIC0yMjAsOCArMjIxLDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6
OnByb2Nlc3MoKQogCiAgICAgICAgIC8vIExvYWQgc3R5bGVzaGVldHMgdGhhdCBhcmUgbm90IG5l
ZWRlZCBmb3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVseSB3aXRoIGxvdyBwcmlvcml0eS4KICAg
ICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBibG9ja2luZyA/IFJlc291cmNl
TG9hZFByaW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKLSAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91
cmwpKTsKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNl
TG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAg
ICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAKICAgICAgICAgaWYgKG1f
Y2FjaGVkU2hlZXQpCiAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIu
Y3BwCmluZGV4IDcxYTFhZDNiMTk3MTE4YzJhYjFiY2RlMjkwYTMxOTJkNWM2OTA3NGYuLjljODg5
Y2RmNWFjM2YwM2NmMWM2ODk1MTUwMmUyZTEwNmU2YzBlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNzYsMTcg
KzM3NywxNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAgICAgICAgICAgb3B0aW9ucy5z
aG91bGRCdWZmZXJEYXRhID0gQnVmZmVyRGF0YTsKICAgICAgICAgfQogCi0gICAgICAgIFJlc291
cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0LCBvcHRpb25zKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgICAgICAvLyBCZWNhdXNl
IHdpbGxTZW5kUmVxdWVzdCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRpcmVjdHMsIHdlIGlu
aXRpYWxpemUgdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVy
ZS4KICAgICAgICAgICAgIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIgPSBtX2RvY3VtZW50
LT5mcmFtZSgpLT5wYWdlKCktPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsK
ICAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSA9IFJlc291cmNl
UmVzcG9uc2UoKTsKLSAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZp
ZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBuZXdS
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0
UmVxdWVzdElkZW50aWZpZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVu
dExvYWRlcigpLCBuZXdSZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVkaXJlY3RS
ZXNwb25zZSk7CiAgICAgICAgIH0KICNlbmRpZgogICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2Up
OwotICAgICAgICBtX3Jlc291cmNlID0gbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFJhd1Jlc291cmNlKG5ld1JlcXVlc3QsIG9wdGlvbnMpOworICAgICAgICBtX3Jl
c291cmNlID0gbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jl
c291cmNlKG5ld1JlcXVlc3QpOwogICAgICAgICBpZiAobV9yZXNvdXJjZSkgewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgICAgICAgICBpZiAobV9yZXNvdXJjZS0+bG9hZGVyKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGE2ZGE2MWU2NTQ4ZWYwN2E2ODJk
Y2RiN2M0Njc0NDg0Mjc2ODE2MmIuLmMxMmJlMmZmOWQ0NTU3NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVh
N2VjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMjQsNiArMjQs
NyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgpAQCAtMTc3LDE4ICsxNzgsMTggQEAgdm9pZCBJbWFnZUxvYWRlcjo6
dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIC8vIGFuIGVtcHR5IHN0cmluZy4KICAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAwOwogICAgIGlmICghYXR0ci5p
c051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIpLmlzRW1w
dHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVz
dChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmln
aW5Nb2RlID0gY2xpZW50KCktPnNvdXJjZUVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1M
TmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlz
TnVsbCgpKSB7CiAgICAgICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxz
ID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikg
PyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwot
ICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1
cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKSwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAobV9sb2FkTWFudWFsbHkpIHsKICAgICAgICAgICAgIGJv
b2wgYXV0b0xvYWRPdGhlckltYWdlcyA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPmF1dG9Mb2FkSW1hZ2VzKCk7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5zZXRBdXRvTG9hZEltYWdlcyhmYWxzZSk7Ci0gICAgICAgICAgICBuZXdJ
bWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0KTsKKyAgICAgICAgICAgIG5ld0ltYWdlID0g
bmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICAgICAg
bmV3SW1hZ2UtPnNldExvYWRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0T3du
aW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSk7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5tX2Rv
Y3VtZW50UmVzb3VyY2VzLnNldChuZXdJbWFnZS0+dXJsKCksIG5ld0ltYWdlLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCBhZjI1YTg2ODAzYzQwNzQ3OWMxMDI2
N2FmMjY2N2VhMDJhZTVkMmYzLi5lNTBiMzc5ZDk2YmVkYTczMjkyNTQ2NDIwZWFjZjk4YmE1NDNl
MWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRl
ICJETlMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTE5LDEzICsxMjAsMTMgQEAgYm9v
bCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1
dGUsIGNvbnN0IFN0cmluZyYgdHkKICAgICAgICAgICAgIHByaW9yaXR5ID0gUmVzb3VyY2VMb2Fk
UHJpb3JpdHlMb3c7CiAgICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJy
ZXNvdXJjZTsKICAgICAgICAgfQotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IGxpbmtSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJl
ZikpLCBwcmlvcml0eSk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3Vy
Y2UpIHsKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhp
cyk7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IDA7CiAgICAgICAgIH0KLSAg
ICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCwgcHJpb3JpdHkpOwor
ICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpLT5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1ZXN0KTsKICAgICAgICAg
aWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKQogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3Vy
Y2UtPmFkZENsaWVudCh0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwCmluZGV4IGE5YjdmOTYwYmY2ZDY1MDMwMDUxN2NiMGY5NjNhZGE0NWU5NWEx
ZmIuLjdlMTRiNDMzNDljODUwYTE5NWI2NmMyNTkwNjEzNmQ4YjgwZjZmNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiVGV4dFRyYWNrTG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xNTMsMTIgKzE1NCwxMiBAQCBib29sIFRleHRUcmFja0xv
YWRlcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2Rl
KQogCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKTsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3QoZG9jdW1l
bnQtPmNvbXBsZXRlVVJMKHVybCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSkpOwogCiAgICAg
aWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgbV9jcm9zc09yaWdpbk1v
ZGUgPSBjcm9zc09yaWdpbk1vZGU7CiAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3Jl
ZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVu
dGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7Ci0gICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3Qs
IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICAgICAg
dXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woY3VlUmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBDcm9zcy1vcmlnaW4gcmVzb3VyY2VzIHRoYXQgYXJl
IG5vdCBzdWl0YWJseSBDT1JTLWVuYWJsZWQgbWF5IG5vdCBsb2FkLgogICAgICAgICBpZiAoIWRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDFmZmNhNGZjMWUxODlhMjc4MmM0ZDg5ZGVjOWYxYTNjOGVjNGVkNzAuLmM0MjY4NjViMjY3NzRl
MjUwMjkyZDk3NTAxMGNiNTFmYzU2YTMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKQEAgLTEwNywxMiArMTA4LDYgQEAgc3RhdGlj
IENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBl
LCBSZXNvdXJjZVJlcXVlc3QKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCi17Ci0gICAg
c3RhdGljIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9y
Q3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKLSAgICByZXR1cm4gb3B0
aW9uczsKLX0KLQogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERv
Y3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikKICAgICA6IG1fZG9jdW1lbnQoMCkKICAgICAs
IG1fZG9jdW1lbnRMb2FkZXIoZG9jdW1lbnRMb2FkZXIpCkBAIC0xNTUsNTYgKzE1MCw1NyBAQCBG
cmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9k
b2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCi1DYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewog
ICAgICAgICBpZiAoZi0+bG9hZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hl
ZCgpICE9IEZyYW1lTG9hZGVyOjpOb0Rpc21pc3NhbCkgewotICAgICAgICAgICAgS1VSTCByZXF1
ZXN0VVJMID0gcmVxdWVzdC51cmwoKTsKKyAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgICAgICAgICBpZiAocmVxdWVzdFVS
TC5pc1ZhbGlkKCkgJiYgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwg
cmVxdWVzdFVSTCkpCiAgICAgICAgICAgICAgICAgUGluZ0xvYWRlcjo6bG9hZEltYWdlKGYsIHJl
cXVlc3RVUkwpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlLCBj
bGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0Rl
ZmVyKS5nZXQoKSk7CisgICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVy
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RGb250KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCwg
U3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2FjaGVkVGV4dFRyYWNrKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0
VHJhY2tSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RTaGFkZXIoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291
cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRl
cio+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVl
c3QpLmdldCgpKTsKIH0KICNlbmRpZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NT
dHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hlZXQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9h
ZFByaW9yaXR5IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVT
aGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
Q1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVT
aGVldCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBw
cmlvcml0eSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNo
ZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1
ZXN0KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hl
ZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAg
ICBLVVJMIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRl
ZChyZXF1ZXN0LnVybCgpKTsKKyAgICBLVVJMIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFn
bWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsK
IAogICAgIGlmIChDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5yZXNv
dXJjZUZvclVSTCh1cmwpKSB7CiAgICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENhY2hlZENTU1N0eWxlU2hlZXQqPihleGlzdGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCkt
PnJlbW92ZShleGlzdGluZyk7CiAgICAgfQotICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVz
dC51cmwoKSkKLSAgICAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAgICBpZiAodXJsLnN0cmlu
ZygpICE9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpCisgICAgICAgIHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0
eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogCiAgICAgbWVtb3J5
Q2FjaGUoKS0+YWRkKHVzZXJTaGVldC5nZXQoKSk7CiAgICAgLy8gRklYTUU6IGxvYWRSZXNvdXJj
ZSBjYWxscyBzZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGlmIHRoZSByZXNvdXJjZSBj
b3VsZG4ndCBiZSBhZGRlZCB0byBjYWNoZS4gRG9lcyB0aGlzIGZ1bmN0aW9uIG5lZWQgdG8gY2Fs
bCBpdCwgdG9vPwpAQCAtMjE0LDM3ICsyMTAsMzcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QK
ICAgICByZXR1cm4gdXNlclNoZWV0OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
Y3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZFNjcmlwdCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0
LCBjaGFyc2V0LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpTY3JpcHQsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShYU0xUKQot
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QsIFN0cmluZygp
LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkWFNMU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZTo6WFNMU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU1ZHKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCwg
U3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAg
ICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6Okxp
bmtQcmVmZXRjaCB8fCB0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwot
ICAgIHJldHVybiByZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkpOworICAgIHJldHVybiByZXF1ZXN0
UmVzb3VyY2UodHlwZSwgcmVxdWVzdCk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVz
b3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMmIG9wdGlvbnMpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNl
Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCwg
U3RyaW5nKCksIG9wdGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgZmFsc2Up
LmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7
CiB9CiAKIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKQEAgLTQwMiwx
MSArMzk4LDExIEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmIG9wdGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBib29s
IGZvclByZWxvYWQsIERlZmVyT3B0aW9uIGRlZmVyKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewot
ICAgIEtVUkwgdXJsID0gcmVxdWVzdC51cmwoKTsKKyAgICBLVVJMIHVybCA9IHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgCi0gICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBw
cmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCks
IGNoYXJzZXQubGF0aW4xKCkuZGF0YSgpLCBwcmlvcml0eSwgZm9yUHJlbG9hZCk7CisgICAgTE9H
KFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Ug
JyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwg
cmVxdWVzdC5wcmlvcml0eSgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7CiAgICAgCiAgICAgLy8g
SWYgb25seSB0aGUgZnJhZ21lbnQgaWRlbnRpZmllcnMgZGlmZmVyLCBpdCBpcyB0aGUgc2FtZSBy
ZXNvdXJjZS4KICAgICB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVy
SWZOZWVkZWQodXJsKTsKQEAgLTQxNCw3ICs0MTAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNo
ZQogICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAo
IWNhblJlcXVlc3QodHlwZSwgdXJsLCBmb3JQcmVsb2FkKSkKKyAgICBpZiAoIWNhblJlcXVlc3Qo
dHlwZSwgdXJsLCByZXF1ZXN0LmZvclByZWxvYWQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgaWYgKG1lbW9yeUNhY2hlKCktPmRpc2FibGVkKCkpIHsKQEAgLTQyOCwxNiArNDI0LDE2IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgLy8gU2VlIGlmIHdlIGNhbiB1c2UgYW4gZXhp
c3RpbmcgcmVzb3VyY2UgZnJvbSB0aGUgY2FjaGUuCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwo
dXJsKTsKIAotICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHVybCkKLSAgICAgICAgcmVxdWVzdC5z
ZXRVUkwodXJsKTsKKyAgICBpZiAocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSAhPSB1
cmwpCisgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwp
OwogCi0gICAgY29uc3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFs
aWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0LCBmb3JQcmVsb2FkLCByZXNvdXJjZS5nZXQoKSwg
ZGVmZXIpOworICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVS
ZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCks
IHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5kZWZlcigpKTsK
ICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgUmVsb2FkOgogICAgICAgICBtZW1vcnlD
YWNoZSgpLT5yZW1vdmUocmVzb3VyY2UuZ2V0KCkpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2gK
ICAgICBjYXNlIExvYWQ6Ci0gICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJl
cXVlc3QsIGNoYXJzZXQpOworICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCBy
ZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFJldmFsaWRhdGU6CiAgICAgICAgIHJlc291cmNlID0gcmV2
YWxpZGF0ZVJlc291cmNlKHJlc291cmNlLmdldCgpKTsKQEAgLTQ1MSw5ICs0NDcsOSBAQCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RSZXNvdXJjZShDYWNoZQogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0eShwcmlvcml0eSk7Ci0gICAgaWYgKChw
b2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09
IGRlZmVyKSB7Ci0gICAgICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIG9wdGlvbnMpOworICAgIHJl
c291cmNlLT5zZXRMb2FkUHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKKyAgICBpZiAoKHBv
bGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0g
cmVxdWVzdC5kZWZlcigpKSB7CisgICAgICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIHJlcXVlc3Qu
b3B0aW9ucygpKTsKIAogICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2Fk
cywgYnV0IHdlIGRvIHN1cHBvcnQgaW1tZWRpYXRlIGZhaWx1cmUuCiAgICAgICAgIGlmIChyZXNv
dXJjZS0+ZXJyb3JPY2N1cnJlZCgpKSB7CkBAIC00NjMsOCArNDU5LDggQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghcmVxdWVzdC51cmwoKS5w
cm90b2NvbElzRGF0YSgpKQotICAgICAgICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QudXJs
KCkpOworICAgIGlmICghcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElz
RGF0YSgpKQorICAgICAgICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkudXJsKCkpOwogCiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3RyaW5n
KCkpOwogICAgIG1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3Vy
Y2UpOwpAQCAtNzkzLDcgKzc4OSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcQogICAgIGlm
ICh0eXBlID09IENhY2hlZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJj
ZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgZW5jb2RpbmcgPSBjaGFyc2V0LmlzRW1wdHkoKSA/
IG1fZG9jdW1lbnQtPmNoYXJzZXQoKSA6IGNoYXJzZXQ7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVx
dWVzdCwgZW5jb2RpbmcsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VM
b2FkUHJpb3JpdHlVbnJlc29sdmVkLCB0cnVlKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOworICAgIGNhY2hlZFJlc291cmNlUmVxdWVz
dC5zZXRGb3JQcmVsb2FkKHRydWUpOworCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291cmNlKHR5cGUsIGNhY2hlZFJlc291cmNl
UmVxdWVzdCk7CiAgICAgaWYgKCFyZXNvdXJjZSB8fCAobV9wcmVsb2FkcyAmJiBtX3ByZWxvYWRz
LT5jb250YWlucyhyZXNvdXJjZS5nZXQoKSkpKQogICAgICAgICByZXR1cm47CiAgICAgcmVzb3Vy
Y2UtPmluY3JlYXNlUHJlbG9hZENvdW50KCk7CkBAIC05MTIsNCArOTExLDEwIEBAIHZvaWQgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwog
fQogCitjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIENhY2hlZFJlc291cmNlTG9hZGVyOjpk
ZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkKK3sKKyAgICBzdGF0aWMgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRh
LCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRp
YWxzLCBEb1NlY3VyaXR5Q2hlY2spOworICAgIHJldHVybiBvcHRpb25zOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmlu
ZGV4IDJhNzk4NWU2Y2IyNDkyNTJkODE1OWU5ODVlNjkwNDUzYzZkZWQ4MDMuLjBmY2IxZTM3ZDRh
Mjk4MjM3NzI4MzkxNDUxOWYyMmEyZjQ0MjRmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNs
YXNzIENhY2hlZFNWR0RvY3VtZW50OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZElt
YWdlOwogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2U7CitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNo
ZWRUZXh0VHJhY2s7CkBAIC02OCwzMCArNjksMzEgQEAgZnJpZW5kIGNsYXNzIEltYWdlTG9hZGVy
OwogZnJpZW5kIGNsYXNzIFJlc291cmNlQ2FjaGVWYWxpZGF0aW9uU3VwcHJlc3NvcjsKIAogcHVi
bGljOgorICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1
bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcihkb2N1bWVudExvYWRlcikpOyB9CiAgICAgfkNhY2hlZFJlc291cmNlTG9h
ZGVyKCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gcmVxdWVzdElt
YWdlKFJlc291cmNlUmVxdWVzdCYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENT
U1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxl
U2hlZXQ+IHJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
cmVxdWVzdFNjcmlwdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwot
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IHJlcXVlc3RGb250KFJlc291cmNl
UmVxdWVzdCYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBy
ZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJ
bWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KENhY2hlZFJlc291
cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IHJlcXVl
c3RGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Jik7CiAKICNpZiBFTkFCTEUoU1ZHKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNWR0RvY3VtZW50PiByZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVu
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShYU0xUKQotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHls
ZVNoZWV0KFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0g
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNr
KFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRU
cmFjaz4gcmVxdWVzdFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgog
I2lmIEVOQUJMRShDU1NfU0hBREVSUykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRT
aGFkZXI+IHJlcXVlc3RTaGFkZXIoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiByZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOwogI2VuZGlmCiAKICAgICAvLyBMb2dzIGFuIGFjY2VzcyBkZW5pZWQgbWVzc2FnZSB0byB0
aGUgY29uc29sZSBmb3IgdGhlIHNwZWNpZmllZCBVUkwuCkBAIC0xMzUsMTEgKzEzNywxMiBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CiAKKyAgICBzdGF0aWMgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKIAotICAgIGVudW0gRGVmZXJPcHRp
b24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCwgYm9vbCBpc1ByZWxvYWQgPSBmYWxzZSwgRGVmZXJPcHRpb24gPSBOb0RlZmVy
KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKENh
Y2hlZFJlc291cmNlKik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0KTsKICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291
cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YWRkMzliOTZjYWNmNGRlYjNiNGYzODIxY2VmYjYyNThjNWVjOWYy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChy
ZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX2NoYXJzZXQoY2hhcnNldCkKKyAgICAsIG1fb3B0aW9u
cyhDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQor
ICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAg
ICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlv
bnMpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29w
dGlvbnMob3B0aW9ucykKKyAgICAsIG1fcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKQorICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpD
YWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVl
c3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9y
aXR5KQorICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Tm9EZWZlcikKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMDQzZGZl
MzlmZTRjZWQ1NTA4MjE5NGJlM2YxMGRmMDBmOTFiZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTAsMCAr
MSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCisjZGVmaW5lIENhY2hl
ZFJlc291cmNlUmVxdWVzdF9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgor
I2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0ID0gU3RyaW5nKCksIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2Fk
UHJpb3JpdHlVbnJlc29sdmVkKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CisgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9y
aXR5KTsKKworICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsg
cmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAg
IGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQorICAg
IHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hh
cnNldDsgfQorICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQorICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9hZDsgfQorICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29s
IGZvclByZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQorICAgIENhY2hlZFJl
c291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7
IH0KKyAgICB2b2lkIHNldERlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBk
ZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7IH0KKworcHJpdmF0ZToKKyAgICBSZXNvdXJjZVJlcXVl
c3QgbV9yZXNvdXJjZVJlcXVlc3Q7CisgICAgU3RyaW5nIG1fY2hhcnNldDsKKyAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOworICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJp
b3JpdHk7CisgICAgYm9vbCBtX2ZvclByZWxvYWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OkRlZmVyT3B0aW9uIG1fZGVmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAppbmRleCA2M2Jj
MGVhMWNhMjE3NGRhODBlMTVjYTIzZGU4ODkwNWIxNDViNTM0Li44YzlkMGNlY2JmY2QxMmI3ZWFh
MWM0YThjODcwZjE2NDI1NTdmNzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
TG9hZGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3Vy
Y2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNTksMTQgKzYwLDE0IEBAIHZvaWQg
SWNvbkxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKICAgICBpZiAobV9yZXNvdXJjZSB8fCAhbV9mcmFt
ZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJl
c291cmNlUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSk7CisgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRl
cigpLT5pY29uKCktPnVybCgpKSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3Ms
IFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBE
b05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykp
OworCiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0VGFy
Z2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbik7CisgICAgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRh
cmdldElzRmF2aWNvbik7CiAjZW5kaWYKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHko
UmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOworICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKIAotICAgIG1fcmVz
b3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1
ZXN0UmF3UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LAotICAgICAgICBSZXNvdXJjZUxvYWRlck9w
dGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFs
cywgRG9TZWN1cml0eUNoZWNrKSk7CisgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0KTsK
ICAgICBpZiAobV9yZXNvdXJjZSkKICAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMp
OwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4
IDc2MzU3MzhmZGUxODRkMWUxZGY0OGViNmZiMzZhZWNhYTIzNWQ1ZmIuLjg3ZmYwZDY4MTI3NDQ2
MGVhNzk3OGFmZTg3ZmEyNzM5Njg4NTdlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTgwLDcgKzgx
LDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQog
CiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiB7Ci0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qob3duZXJEb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVm
KCkpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
b3duZXJEb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpKSk7CiAgICAgbV9jYWNoZWRJbWFn
ZSA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RJbWFnZShyZXF1
ZXN0KTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBmNjEwNTM3NzJiNjIyZmFmZTk0NzUwZTA5OTM0
OGU2NzcwYjdlODA3Li5jMzRmZWQ4N2Q0N2VmOGZmMWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4YThiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJD
YWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC05Niw3
ICs5Nyw3IEBAIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBocmVmID0gZ2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRy
KTsKICAgICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoaHJlZikpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICAgICAgICAgbV9j
YWNoZWRGb250ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwog
ICAgICAgICBpZiAobV9jYWNoZWRGb250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFk
ZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkMTll
YTE5NWRmMjBhMmVmNjM5ZjZhMWU5OWEyMGIyNTgyYjk1MGUxLi42MDQ2ZWM2MWI3NGZjMTJlYjEz
YWMyMDcyNDRhNmM2ODE2NTQ3NDc2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCkBAIC0yNTQsNyArMjU1LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAg
ICBpZiAoaXNFeHRlcm5hbFJlZmVyZW5jZSkgewogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFn
bWVudElkZW50aWZpZXIoKSkgewotICAgICAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KHVybC5zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVybC5zdHJpbmcoKSkpOwogICAgICAgICAgICAgICAg
IG1fY2FjaGVkRG9jdW1lbnQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5y
ZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVk
RG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVu
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAppbmRleCAwYTE3NzBkMDM0
NWE4YTFmYzgzZDdiN2ZiMmQ0NDJkMmJhMzllYjFmLi5lNjI5NTllOTliMGQwZGUzN2Q4NmQ1NTU1
N2M5Njk4Y2U5ODM4MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0
UnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIK
IApAQCAtOTgsNyArOTksNyBAQCB2b2lkIFhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCgpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSk7
CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGNhY2hl
ZFJlc291cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSkpOwogICAg
IG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFhTTFN0eWxlU2hl
ZXQocmVxdWVzdCk7CiAgICAgCiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169740</attachid>
            <date>2012-10-19 18:51:14 -0700</date>
            <delta_ts>2012-10-19 18:54:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121020034957.patch</filename>
            <type>text/plain</type>
            <size>59743</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhh
MWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNjYjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUz
ZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3
IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU0MGZhNTM5MzUx
ZWU2YTc0NWU5MTMwMTNlZTMxNTZlNWQ1MGJmZGUuLmFhYTYzOWFiYzUzNGM5NDhkZGQ1MjhiYmU3
MDk3MDZiMzIzNTRkMWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE5NCw2ICsyODE5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NjI2MmRi
ZDBlYmQ4NjU5NTU4ZjYyMjI2YWQ5MDMyYjBlYTk2NzFiLi4wZmY4YjMxZmIyYTY2YTY5MmYyMjQ1
ZTlmZmQ1ZGJmYTcyNDk0ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkxLDYgKzE0OTEsOCBAQAogCQk1MDNEMENBQjE0
QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAz
RDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDNEMENBRTE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKKwkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87
IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUw
OTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAq
LzsgfTsKQEAgLTEyOTYxLDYgKzEyOTYzLDggQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA4MUUzRTEzRDAyODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMDAsNiAr
MTkyMDQsOCBAQAogCQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oICovLAogCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCisJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNDk1LDYgKzIyNTAxLDcgQEAKIAkJCQlCQ0IxNkMy
MjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDgxRTNFMTNEMDI4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxMTcsNiArMjYxMjQsNyBAQAogCQkJCUJD
QjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwODFFM0MzM0NFNTgwQzE2
RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sIGZpeG1l
CiAJCQkJQkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRT
VkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4
NzEwY2ZiLi4zNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAg
Ym9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2Vz
KCkgY29uc3QKIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChk
b2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250
ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3Qp
OwogICAgIH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwz
IEBAIHZvaWQgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iCiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IDZlMDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2
MmJkOWVmMGEuLjZkYzc2ZjU4MDQ4ZjllNDhjZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVD
YWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGxvYWQKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBi
ZSBpbmNsdWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3Rv
cigpLAogICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1h
Z2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChs
b2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAg
ICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9h
ZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBT
dHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxl
RmFjdG9yLCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5Njdi
OTJiYzlmYTc2NGMzMjM5ZjJiN2E1NDYuLjZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0
OTg0MTA0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1h
Z2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVt
b3J5Q2FjaGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3
IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJl
c291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsK
ICAgICAgICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShy
ZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUo
Y2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9y
dC5jcHAKaW5kZXggMjZmMjllODJmODBhOWZmNTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVj
MzUwNzcxYzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHls
ZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBT
dHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0g
c2hlZXQ7CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwg
bV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hl
ZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJl
c291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRT
dHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVz
b3VyY2VMb2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNl
Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENT
U1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAg
ICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHls
ZVNoZWV0KHJlcXVlc3QpOwogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlm
IHRoZSBpbXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUK
ICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQg
dGhlIGRvYyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZH
RG9jdW1lbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZS5jcHAKaW5kZXggNDRjODgwODk0NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEy
Mi4uNjdlODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
IApAQCAtNTIsNyArNTMsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9s
b2FkUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChtX3VybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAg
ICAgbV9kb2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXgg
NmY5MzczZTBmMGZhMmRmOGJmNDk0MjgxYjVjMmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNh
ZGI0MzFhYjAzYThmZDFhMWUxODAwNGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFE
RVJTKQogI2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgog
I2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNh
Y2hlZFNoYWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNv
dXJjZUxvYWRlciogbG9hZAogICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBt
X2FjY2Vzc2VkU2hhZGVyID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVx
dWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUo
Y2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IDRiY2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZl
YjNmNmY2YjYuLmVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENv
bGxlY3Rpb24uaCIKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAg
ICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hl
ZXQoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJM
KGhyZWYpKSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAg
ICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkg
QEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAg
ICAgICAgICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAg
ICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJz
ZXQgPSBkb2N1bWVudCgpLT5jaGFyc2V0KCk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRD
aGFyc2V0KGNoYXJzZXQpOwogCi0gICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3Vt
ZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVl
c3QsIGNoYXJzZXQpOworICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAg
ICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAppbmRleCAyMDlmYzc5YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2Mzhl
Njk2Li4wZDRhZWFlZGQ0YmFlYzI2NjA0MWI2MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCkBAIC0yNTYsMTYgKzI1NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJl
cXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2Fj
aGVkU2NyaXB0KTsKICAgICBpZiAoIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhz
b3VyY2VVcmwpLmlzRW1wdHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9
IFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJj
ZVVybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3Jp
cHRDaGFyc2V0KCkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVt
ZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAg
ICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVz
dFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxz
IGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1
c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJv
bChyZXF1ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93
Q3JlZGVudGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wo
cmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAg
ICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2Ny
aXB0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cAppbmRleCBmZGM3YTVjY2UzMjMxYWY5YzIyNDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5
YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24uaCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZv
aWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hl
ZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0
aCBsb3cgcHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0g
YmxvY2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQ
cmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVu
dCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0
LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFy
c2V0LCBwcmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAg
ICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVl
dC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEz
MTkyZDVjNjkwNzRmLi45Yzg4OWNkZjVhYzNmMDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2lu
Y2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtMzc2LDE3ICszNzcsMTcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAg
ICAgICAgICAgIG9wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAg
IH0KIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAg
ICAgICAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJp
bmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qg
d2lsbFNlbmRSZXF1ZXN0IGhlcmUuCiAgICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVu
dGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVV
bmlxdWVJZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0
UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZs
aWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9j
dW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5m
cmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgp
LT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAg
QVNTRVJUKCFtX3Jlc291cmNlKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRp
b25zKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVz
b3VyY2UpIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3Vy
Y2UtPmxvYWRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBh
NmRhNjFlNjU0OGVmMDdhNjgyZGNkYjdjNDY3NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRl
NDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBA
IHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBz
dHJpbmcuCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0g
MDsKICAgICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcyhhdHRyKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QgPSBSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0
dHIpKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAg
ICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAo
IWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwg
InVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250
cm9sKHJlcXVlc3QsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlh
bHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFs
bG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5
KSB7CiAgICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2Up
OwotICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAg
ICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAg
ICAgbmV3SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBu
ZXdJbWFnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYy
NWE4NjgwM2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5
MjU0NjQyMGVhY2Y5OGJhNTQzZTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCiAjaW5jbHVkZSAiRE5TLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEx
OSwxMyArMTIwLDEzIEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0
dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1l
bnQtPmNvbXBsZXRlVVJMKGhyZWYpKSwgcHJpb3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYg
KG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJj
ZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2Ug
PSAwOwogICAgICAgICB9Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1Jl
cXVlc3QsIHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVu
dC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5r
UmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAg
IG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1
MTdjYjBmOTYzYWRhNDVlOTVhMWZiLi43ZTE0YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4
MGY2ZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIg
QEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSkKIAogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8
RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVz
dCBjdWVSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRl
VVJMKHVybCkpKTsKIAogICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAg
ICAgIG1fY3Jvc3NPcmlnaW5Nb2RlID0gY3Jvc3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRD
cmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmln
aW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9O
b3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNz
Q29udHJvbChjdWVSZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVk
ZW50aWFscyk7CisgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwg
YWxsb3dDcmVkZW50aWFscyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2lu
IHJlc291cmNlcyB0aGF0IGFyZSBub3Qgc3VpdGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9h
ZC4KICAgICAgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1
cmwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcAppbmRleCAxZmZjYTRmYzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRl
ZDcwLi5jNDI2ODY1YjI2Nzc0ZTI1MDI5MmQ5NzUwMTBjYjUxZmM1NmEzMjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1
ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcs
MTIgKzEwOCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
LXN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKQotewotICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVj
ayk7Ci0gICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBt
X2RvY3VtZW50KDApCiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAt
MTU1LDU2ICsxNTAsNTcgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFt
ZSgpIDogMDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFt
ZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAgaWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2Fs
RXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAg
ICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBL
VVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAg
ICAgICAgaWYgKHJlcXVlc3RVUkwuaXNWYWxpZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3RVUkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2Fk
ZXI6OmxvYWRJbWFnZShmLCByZXF1ZXN0VVJMKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5n
KCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkLCBmYWxzZSwgY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZl
cnJlZEJ5Q2xpZW50IDogTm9EZWZlcikuZ2V0KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xp
ZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJl
ZEJ5Q2xpZW50IDogTm9EZWZlcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdl
Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0
KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250
UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRU
ZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1
ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCks
IGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNo
YWRlclJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NT
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRS
ZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJD
U1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFy
c2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21l
bnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0g
bWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3Rp
bmctPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAg
ICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJs
LnN0cmluZygpICE9IHJlcXVlc3QudXJsKCkpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7
CisgICAgaWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgp
KQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsK
IAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVl
dCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNo
ZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNl
dCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8v
IEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBm
dW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmV0dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNj
cmlwdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlNjcmlwdCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9u
cygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAK
ICNpZiBFTkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hl
ZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xT
dHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsK
IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFNWRykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0Rv
Y3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
U1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50
UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVl
c3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExp
bmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09
IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6
TGlua1N1YnJlc291cmNlKTsKLSAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVl
c3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsK
KyAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAK
LUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3
UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0
eVVucmVzb2x2ZWQsIGZhbHNlKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVj
a0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1
cmwpIGNvbnN0CkBAIC00MDIsMTEgKzM5OCwxMSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVy
OjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VS
TCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhS
ZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICcl
cycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5n
KCkubGF0aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZv
clByZWxvYWQpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclBy
ZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQo
KS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2Fk
KCkpOwogICAgIAogICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZl
ciwgaXQgaXMgdGhlIHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92
ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisg
ICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBA
IC00MjgsMTYgKzQyNCwxNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBp
ZiB3ZSBjYW4gdXNlIGFuIGV4aXN0aW5nIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hl
KCktPnJlc291cmNlRm9yVVJMKHVybCk7CiAKLSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwp
Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkudXJsKCkgIT0gdXJsKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJl
cXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xp
Y3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9h
ZCwgcmVzb3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kg
cG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJs
ZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCks
IHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9h
ZDoKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAg
ICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxv
YWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBs
b2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVl
c3QuY2hhcnNldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAg
ICAgICByZXNvdXJjZSA9IHJldmFsaWRhdGVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00
NTEsOSArNDQ3LDkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNl
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJp
b3JpdHkpOwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xv
YWQoKSkgJiYgTm9EZWZlciA9PSBkZWZlcikgewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlz
LCBvcHRpb25zKTsKKyAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3Jp
dHkoKSk7CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9h
ZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+
bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3Vw
cG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJl
LgogICAgICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1
OSw4IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRV
UkxzLmFkZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+
dXJsKCkgPT0gdXJsLnN0cmluZygpKTsKICAgICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNv
dXJjZS0+dXJsKCksIHJlc291cmNlKTsKQEAgLTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwg
UmVzb3VyY2VSZXEKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5
cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0g
Y2hhcnNldC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0g
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVz
dFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGVuY29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBj
YWNoZWRSZXNvdXJjZVJlcXVlc3Quc2V0Rm9yUHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0
eXBlLCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QpOwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJl
bG9hZHMgJiYgbV9wcmVsb2Fkcy0+Y29udGFpbnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAg
cmV0dXJuOwogICAgIHJlc291cmNlLT5pbmNyZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQg
KzkxMSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1f
cGVuZGluZ1ByZWxvYWRzKTsKIH0KIAorY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAg
c3RhdGljIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9y
Q3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0
aW9uczsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAppbmRleCAyYTc5ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2
ZGVkODAzLi4wZmNiMWUzN2Q0YTI5ODIzNzcyODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZv
bnQ7CiBjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVk
U2hhZGVyOwogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVu
ZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlv
blN1cHByZXNzb3I7CiAKIHB1YmxpYzoKKyAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwg
RGVmZXJyZWRCeUNsaWVudCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNl
TG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAg
IH5DYWNoZWRSZXNvdXJjZUxvYWRlcigpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5
ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBy
ZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNl
UmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVz
dFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogCiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291
cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50
PiByZXF1ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoWFNMVCkKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNo
ZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENI
KQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxv
YWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFj
az4gcmVxdWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiByZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3Mg
ZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAt
MTM1LDExICsxMzcsMTIgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAK
LSAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBS
ZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERl
ZmVyT3B0aW9uID0gTm9EZWZlcik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJl
dmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0
UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Ry
aW5nJiBjaGFyc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRm
MzgyMWNlZmI2MjU4YzVlYzlmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDog
bV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJz
ZXQpCisgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRS
ZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2Zv
clByZWxvYWQoZmFsc2UpCisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0Rl
ZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VM
b2FkZXJPcHRpb25zJiBvcHRpb25zKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291
cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAg
ICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hl
ZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAg
ICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAs
IG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjA0M2RmZTM5ZmU0Y2VkNTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RfaAorI2RlZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0
aW9ucyYpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNv
dXJjZVJlcXVlc3Q7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVy
biBtX2NoYXJzZXQ7IH0KKyAgICB2b2lkIHNldENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0
KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7IH0KKyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxv
YWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBi
b29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lk
IHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxv
YWQ7IH0KKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25z
dCB7IHJldHVybiBtX2RlZmVyOyB9CisgICAgdm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6RGVmZXJPcHRpb24gZGVmZXIpIHsgbV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6
CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2No
YXJzZXQ7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OworICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxv
YWRlci5jcHAKaW5kZXggNjNiYzBlYTFjYTIxNzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4u
OGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4Yzg3MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5
LDE0ICs2MCwxNCBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1f
cmVzb3VyY2UgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24o
KS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0
aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxz
LCBEb1NlY3VyaXR5Q2hlY2spKTsKKwogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVz
b3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmlj
b24pOworICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUo
UmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VS
ZXF1ZXN0LnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0
Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0
eUxvdyk7CiAKLSAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVm
ZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNy
b3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2Ug
PSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3
UmVzb3VyY2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3Vy
Y2UtPmFkZENsaWVudCh0aGlzKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmNwcAppbmRleCA3NjM1NzM4ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVk
NWZiLi44N2ZmMGQ2ODEyNzQ0NjBlYTc5NzhhZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIklt
YWdlLmgiCkBAIC04MCw3ICs4MSw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVz
b3VyY2VSZWZlcmVuY2VzKCkKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdl
UmVzb3VyY2UoKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwoaHJlZigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkp
OwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcy
YjYyMmZhZmU5NDc1MGUwOTkzNDhlNjc3MGI3ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUy
N2FmNWY2Y2RkMzc0OGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1Zh
bHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgpAQCAtOTYsNyArOTcsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6
bG9hZEZvbnQoKQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShY
TGlua05hbWVzOjpocmVmQXR0cik7CiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAg
IENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhy
ZWYpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1
ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAg
ICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKaW5kZXggZDE5ZWExOTVkZjIwYTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4u
NjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmli
dXRlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZv
aWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAgICAgaWYgKGlzRXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAg
ICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAg
ICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkp
KTsKICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAg
ICAgICAgIGlmIChtX2NhY2hlZERvY3VtZW50KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hl
ZERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5j
cHAKaW5kZXggMGExNzcwZDAzNDVhOGExZmM4M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5
ZTk5YjBkMGRlMzdkODZkNTU1NTdjOTY5OGNlOTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJ
bXBvcnRSdWxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5
bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJYU0xTdHlsZVNoZWV0LmgiCiAKQEAgLTk4LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxl
Ojpsb2FkU2hlZXQoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoYWJzSHJlZikpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVV
UkwoYWJzSHJlZikpKTsKICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNo
ZWV0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169741</attachid>
            <date>2012-10-19 18:54:19 -0700</date>
            <delta_ts>2012-10-19 19:10:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121020035302.patch</filename>
            <type>text/plain</type>
            <size>59737</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhh
MWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNjYjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUz
ZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3
IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU0MGZhNTM5MzUx
ZWU2YTc0NWU5MTMwMTNlZTMxNTZlNWQ1MGJmZGUuLmFhYTYzOWFiYzUzNGM5NDhkZGQ1MjhiYmU3
MDk3MDZiMzIzNTRkMWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE5NCw2ICsyODE5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NjI2MmRi
ZDBlYmQ4NjU5NTU4ZjYyMjI2YWQ5MDMyYjBlYTk2NzFiLi5hZDA2ODc1OGMxMzdhZDYyZDJmODkz
OGUyNzE5MzYyNjNhNmIwMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkxLDYgKzE0OTEsOCBAQAogCQk1MDNEMENBQjE0
QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAz
RDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDNEMENBRTE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKKwkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87
IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUw
OTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAq
LzsgfTsKQEAgLTEyOTYxLDYgKzEyOTYzLDggQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA4MUUzRTEzRDAyODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMDAsNiAr
MTkyMDQsOCBAQAogCQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oICovLAogCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCisJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNDk1LDYgKzIyNTAxLDcgQEAKIAkJCQlCQ0IxNkMy
MjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDgxRTNFMTNEMDI4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxMTcsNiArMjYxMjQsNyBAQAogCQkJCUJD
QjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwODFFM0MzM0NFNTgwQzE2
RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2Zi
Li4zNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBD
U1NGb250RmFjZVNyY1ZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29u
c3QKIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAg
IH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZv
aWQgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iCiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCmluZGV4IDZlMDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVm
MGEuLjZkYzc2ZjU4MDQ4ZjllNDhjZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJ
bWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWQKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNs
dWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNh
Y2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9y
LCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlm
YTc2NGMzMjM5ZjJiN2E1NDYuLjZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2Fj
aGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0
eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAg
ICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0
KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVk
SW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAK
aW5kZXggMjZmMjllODJmODBhOWZmNTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcx
YzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZUltcG9ydC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1
bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7
CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNo
ZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VM
b2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxl
U2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0
KHJlcXVlc3QpOwogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBp
bXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAg
ICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRv
YyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZS5jcHAKaW5kZXggNDRjODgwODk0NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdl
ODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAt
NTIsNyArNTMsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVx
dWVzdGVkKSB7CiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3Vy
bCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9k
b2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5Mzcz
ZTBmMGZhMmRmOGJmNDk0MjgxYjVjMmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFh
YjAzYThmZDFhMWUxODAwNGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQog
I2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1
ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNo
YWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZAogICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vz
c2VkU2hhZGVyID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2Fk
ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVk
U2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCmluZGV4IDRiY2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2
YjYuLmVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uaCIKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYp
KSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAg
ICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9p
ZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAg
ICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAg
ICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBk
b2N1bWVudCgpLT5jaGFyc2V0KCk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0
KGNoYXJzZXQpOwogCi0gICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNo
YXJzZXQpOworICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAg
IG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCAyMDlmYzc5YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li4w
ZDRhZWFlZGQ0YmFlYzI2NjA0MWI2MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0yNTYsMTYgKzI1NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2Ny
aXB0KTsKICAgICBpZiAoIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VV
cmwpLmlzRW1wdHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291
cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkp
OworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3JpcHRDaGFy
c2V0KCkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LT5m
YXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYg
KCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFVzZXNB
Y2Nlc3NDb250cm9sID0gdHJ1ZTsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0g
dHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRl
eCBmZGM3YTVjY2UzMjMxYWY5YzIyNDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4
MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24u
aCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFy
c2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBw
cmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRk
Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVj
NjkwNzRmLi45Yzg4OWNkZjVhYzNmMDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUg
IkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtMzc2LDE3ICszNzcsMTcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAg
ICAgIG9wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAgIH0KIAot
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICAg
ICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVk
aXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNl
bmRSZXF1ZXN0IGhlcmUuCiAgICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVy
ID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgp
LCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgQVNTRVJU
KCFtX3Jlc291cmNlKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsK
KyAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2Up
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxv
YWRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBhNmRhNjFl
NjU0OGVmMDdhNjgyZGNkYjdjNDY3NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0
NzA4Y2I5NmJiNGQ1YTdlYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
QEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBAIHZvaWQg
SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBzdHJpbmcu
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAg
ICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyhhdHRyKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBS
ZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChk
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAgICAgU3Ry
aW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3Nz
T3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1j
cmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwor
ICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCksIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3Jl
ZGVudGlhbHMpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAg
ICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2UpOwotICAg
ICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgICAg
ICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsK
ICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAgICAgbmV3
SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYyNWE4Njgw
M2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQy
MGVhY2Y5OGJhNTQzZTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2Rl
LmgiCiAjaW5jbHVkZSAiRE5TLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTExOSwxMyAr
MTIwLDEzIEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0
ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291
cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKGhyZWYpKSwgcHJpb3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2Fj
aGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+cmVt
b3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwog
ICAgICAgICB9Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3Qs
IHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVz
dCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAgIG1fY2Fj
aGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBm
OTYzYWRhNDVlOTVhMWZiLi43ZTE0YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIgQEAgYm9v
bCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSkKIAogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlz
RG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVzdCBjdWVS
ZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVy
bCkpKTsKIAogICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1f
Y3Jvc3NPcmlnaW5Nb2RlID0gY3Jvc3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRDcmVkZW50
aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2Rl
LCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxv
d1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJv
bChjdWVSZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFs
cyk7CisgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dD
cmVkZW50aWFscyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291
cmNlcyB0aGF0IGFyZSBub3Qgc3VpdGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9hZC4KICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAppbmRleCAxZmZjYTRmYzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi5j
NDI2ODY1YjI2Nzc0ZTI1MDI5MmQ5NzUwMTBjYjUxZmM1NmEzMjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1h
Z2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcsMTIgKzEw
OCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKQotewotICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2Fs
bGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMs
IEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7Ci0g
ICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBtX2RvY3Vt
ZW50KDApCiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2
ICsxNTAsNTcgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDog
MDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1h
Z2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZiA9
IGZyYW1lKCkpIHsKICAgICAgICAgaWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2FsRXZlbnRC
ZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAg
ICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBLVVJMIHJl
cXVlc3RVUkwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAgICAgICAg
aWYgKHJlcXVlc3RVUkwuaXNWYWxpZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6Oklt
YWdlUmVzb3VyY2UsIHJlcXVlc3RVUkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2FkZXI6Omxv
YWRJbWFnZShmLCByZXF1ZXN0VVJMKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkLCBmYWxzZSwgY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5
Q2xpZW50IDogTm9EZWZlcikuZ2V0KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVm
ZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xp
ZW50IDogTm9EZWZlcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJh
Y2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0LCBT
dHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hh
ZGVyPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
IHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJl
c291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NT
dHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVT
aGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQor
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNo
ZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSk7CiAKICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5
cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAgICAgICBt
ZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJsLnN0cmlu
ZygpICE9IHJlcXVlc3QudXJsKCkpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAg
aWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQorICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5l
dyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NT
dHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsK
IAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1F
OiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0
aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlv
biBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0VXNlckNTU1N0CiAgICAgcmV0dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNj
cmlwdCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5n
ZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBF
TkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNo
ZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1
ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFNWRykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0Rv
Y3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9j
dW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdl
dCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RM
aW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlKTsKLSAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0
cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKKyAgICBy
ZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNo
ZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQsIGZhbHNlKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jl
c291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVx
dWVzdCkuZ2V0KCkpOwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2Vj
dXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNv
bnN0CkBAIC00MDIsMTEgKzM5OCwxMSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5S
ZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VSTCB1cmwg
PSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNo
YXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZvclByZWxv
YWQpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9
JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRp
bjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwog
ICAgIAogICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQg
aXMgdGhlIHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYg
KCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBAIC00Mjgs
MTYgKzQyNCwxNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBpZiB3ZSBj
YW4gdXNlIGFuIGV4aXN0aW5nIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKHVybCk7CiAKLSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwpCi0gICAg
ICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkgIT0gdXJsKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBk
ZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVz
b3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5
ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVl
c3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9hZDoKICAg
ICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgLy8g
RmFsbCB0aHJvdWdoCiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNv
dXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVz
b3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hh
cnNldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAgICAgICBy
ZXNvdXJjZSA9IHJldmFsaWRhdGVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00NTEsOSAr
NDQ3LDkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNlKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkp
OwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkg
JiYgTm9EZWZlciA9PSBkZWZlcikgewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRp
b25zKTsKKyAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7
CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAm
JiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+bG9hZCh0
aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBp
bW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgogICAg
ICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1OSw4IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXJl
cXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFk
ZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJs
KCkucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkg
PT0gdXJsLnN0cmluZygpKTsKICAgICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIHJlc291cmNlKTsKQEAgLTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXEKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0gY2hhcnNl
dC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291
cmNlKHR5cGUsIHJlcXVlc3QsIGVuY29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBjYWNoZWRS
ZXNvdXJjZVJlcXVlc3Quc2V0Rm9yUHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBj
YWNoZWRSZXNvdXJjZVJlcXVlc3QpOwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJlbG9hZHMg
JiYgbV9wcmVsb2Fkcy0+Y29udGFpbnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJu
OwogICAgIHJlc291cmNlLT5pbmNyZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQgKzkxMSwx
MCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGlu
Z1ByZWxvYWRzKTsKIH0KIAorY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAgc3RhdGlj
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVu
dCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NP
cmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0aW9uczsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaAppbmRleCAyYTc5ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2ZGVkODAz
Li4wZmNiMWUzN2Q0YTI5ODIzNzcyODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQs
NiArNDQsNyBAQCBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBj
bGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVy
OwogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVuZCBjbGFz
cyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHBy
ZXNzb3I7CiAKIHB1YmxpYzoKKyAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJy
ZWRCeUNsaWVudCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVy
PiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1h
Z2U+IHJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVz
b3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0
Rm9udChSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZElt
YWdlPiByZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlw
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRGb250PiByZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOwogCiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVx
dWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1
ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoWFNMVCkKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBy
ZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVx
dWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2hhZGVyPiByZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVk
IG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAtMTM1LDEx
ICsxMzcsMTIgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICBl
bnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERlZmVyT3B0
aW9uID0gTm9EZWZlcik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Jik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRh
dGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0UHJlbG9h
ZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNl
ZmI2MjU4YzVlYzlmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNv
dXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisg
ICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSkKKyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxv
YWQoZmFsc2UpCisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQor
eworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiBvcHRpb25zKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0
KQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9h
ZFByaW9yaXR5VW5yZXNvbHZlZCkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1f
ZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291
cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1f
cmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9w
cmlvcml0eShwcmlvcml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVm
ZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjA0M2RmZTM5ZmU0Y2VkNTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAor
I2RlZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYp
OworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNv
dXJjZUxvYWRQcmlvcml0eSk7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKSB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJl
cXVlc3Q7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2No
YXJzZXQ7IH0KKyAgICB2b2lkIHNldENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1f
Y2hhcnNldCA9IGNoYXJzZXQ7IH0KKyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZv
clByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZv
clByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0K
KyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RlZmVyOyB9CisgICAgdm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
RGVmZXJPcHRpb24gZGVmZXIpIHsgbV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6CisgICAg
UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2NoYXJzZXQ7
CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtX3ByaW9yaXR5OworICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENhY2hlZFJl
c291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5j
cHAKaW5kZXggNjNiYzBlYTFjYTIxNzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4uOGM5ZDBj
ZWNiZmNkMTJiN2VhYTFjNGE4Yzg3MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5LDE0ICs2
MCwxNCBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3Vy
Y2UgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291
cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJs
KCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCht
X2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1Nl
Y3VyaXR5Q2hlY2spKTsKKwogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVzb3VyY2VS
ZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwor
ICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1ZXN0
LnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7
CiAKLSAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0
YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2UgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3Vy
Y2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFk
ZENsaWVudCh0aGlzKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCA3NjM1NzM4ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVkNWZiLi44
N2ZmMGQ2ODEyNzQ0NjBlYTc5NzhhZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJB
dHRyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CkBAIC04MCw3ICs4MSw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VS
ZWZlcmVuY2VzKCkKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3Vy
Y2UoKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoaHJlZigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwogICAg
IG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1
ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcyYjYyMmZh
ZmU5NDc1MGUwOTkzNDhlNjc3MGI3ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2
Y2RkMzc0OGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgpAQCAtOTYsNyArOTcsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQoKQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05h
bWVzOjpocmVmQXR0cik7CiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hl
ZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7
CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Rm9u
dChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAgICAgbV9j
YWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAKaW5kZXggZDE5ZWExOTVkZjIwYTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4uNjA0NmVj
NjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRT
aGFkb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgU1ZH
VXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgaWYgKGlzRXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAgICAgIEtV
UkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAgICAgIGlm
ICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKICAg
ICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAg
IGlmIChtX2NhY2hlZERvY3VtZW50KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3Vt
ZW50LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
SW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKaW5k
ZXggMGExNzcwZDAzNDVhOGExZmM4M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5ZTk5YjBk
MGRlMzdkODZkNTU1NTdjOTY5OGNlOTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hTTEltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRS
dWxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVl
dC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJYU0xT
dHlsZVNoZWV0LmgiCiAKQEAgLTk4LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpsb2Fk
U2hlZXQoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVV
UkwoYWJzSHJlZikpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJz
SHJlZikpKTsKICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169744</attachid>
            <date>2012-10-19 19:10:49 -0700</date>
            <delta_ts>2012-10-20 15:43:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121020040931.patch</filename>
            <type>text/plain</type>
            <size>59737</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhh
MWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNjYjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUz
ZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3
IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU0MGZhNTM5MzUx
ZWU2YTc0NWU5MTMwMTNlZTMxNTZlNWQ1MGJmZGUuLmFhYTYzOWFiYzUzNGM5NDhkZGQ1MjhiYmU3
MDk3MDZiMzIzNTRkMWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE5NCw2ICsyODE5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NjI2MmRi
ZDBlYmQ4NjU5NTU4ZjYyMjI2YWQ5MDMyYjBlYTk2NzFiLi43ZmY0NjUyNDc1MDI2YzFmNTczMGIw
ZWE2NDIxMzFmZDg1ZDMxNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkxLDYgKzE0OTEsOCBAQAogCQk1MDNEMENBQjE0
QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAz
RDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDNEMENBRTE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKKwkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87
IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUw
OTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAq
LzsgfTsKQEAgLTEyOTYxLDYgKzEyOTYzLDggQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA4MUUzRTEzRDAyODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMDAsNiAr
MTkyMDQsOCBAQAogCQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oICovLAogCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCisJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNDk1LDYgKzIyNTAxLDcgQEAKIAkJCQlCQ0IxNkMy
MjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDgxRTNFMDNDRkY4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxMTcsNiArMjYxMjQsNyBAQAogCQkJCUJD
QjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwODFFM0MzM0NFNTgwQzE2
RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2Zi
Li4zNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBD
U1NGb250RmFjZVNyY1ZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29u
c3QKIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAg
IH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZv
aWQgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iCiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCmluZGV4IDZlMDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVm
MGEuLjZkYzc2ZjU4MDQ4ZjllNDhjZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJ
bWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWQKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNs
dWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNh
Y2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9y
LCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlm
YTc2NGMzMjM5ZjJiN2E1NDYuLjZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2Fj
aGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0
eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAg
ICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0
KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVk
SW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAK
aW5kZXggMjZmMjllODJmODBhOWZmNTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcx
YzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZUltcG9ydC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1
bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7
CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNo
ZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VM
b2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxl
U2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0
KHJlcXVlc3QpOwogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBp
bXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAg
ICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRv
YyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZS5jcHAKaW5kZXggNDRjODgwODk0NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdl
ODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAt
NTIsNyArNTMsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVx
dWVzdGVkKSB7CiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3Vy
bCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9k
b2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5Mzcz
ZTBmMGZhMmRmOGJmNDk0MjgxYjVjMmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFh
YjAzYThmZDFhMWUxODAwNGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQog
I2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1
ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNo
YWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZAogICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vz
c2VkU2hhZGVyID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2Fk
ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVk
U2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCmluZGV4IDRiY2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2
YjYuLmVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uaCIKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYp
KSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAg
ICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9p
ZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAg
ICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAg
ICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBk
b2N1bWVudCgpLT5jaGFyc2V0KCk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0
KGNoYXJzZXQpOwogCi0gICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNo
YXJzZXQpOworICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAg
IG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCAyMDlmYzc5YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li4w
ZDRhZWFlZGQ0YmFlYzI2NjA0MWI2MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0yNTYsMTYgKzI1NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2Ny
aXB0KTsKICAgICBpZiAoIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VV
cmwpLmlzRW1wdHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291
cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkp
OworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3JpcHRDaGFy
c2V0KCkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LT5m
YXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYg
KCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFVzZXNB
Y2Nlc3NDb250cm9sID0gdHJ1ZTsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0g
dHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRl
eCBmZGM3YTVjY2UzMjMxYWY5YzIyNDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4
MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24u
aCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFy
c2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBw
cmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRk
Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVj
NjkwNzRmLi45Yzg4OWNkZjVhYzNmMDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUg
IkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtMzc2LDE3ICszNzcsMTcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAg
ICAgIG9wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAgIH0KIAot
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICAg
ICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVk
aXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNl
bmRSZXF1ZXN0IGhlcmUuCiAgICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVy
ID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgp
LCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgQVNTRVJU
KCFtX3Jlc291cmNlKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsK
KyAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2Up
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxv
YWRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBhNmRhNjFl
NjU0OGVmMDdhNjgyZGNkYjdjNDY3NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0
NzA4Y2I5NmJiNGQ1YTdlYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
QEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBAIHZvaWQg
SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBzdHJpbmcu
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAg
ICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyhhdHRyKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBS
ZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChk
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAgICAgU3Ry
aW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3Nz
T3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1j
cmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwor
ICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCksIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3Jl
ZGVudGlhbHMpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAg
ICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2UpOwotICAg
ICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgICAg
ICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsK
ICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAgICAgbmV3
SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYyNWE4Njgw
M2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQy
MGVhY2Y5OGJhNTQzZTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2Rl
LmgiCiAjaW5jbHVkZSAiRE5TLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTExOSwxMyAr
MTIwLDEzIEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0
ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291
cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKGhyZWYpKSwgcHJpb3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2Fj
aGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+cmVt
b3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwog
ICAgICAgICB9Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3Qs
IHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVz
dCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAgIG1fY2Fj
aGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBm
OTYzYWRhNDVlOTVhMWZiLi43ZTE0YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIgQEAgYm9v
bCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSkKIAogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlz
RG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVzdCBjdWVS
ZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVy
bCkpKTsKIAogICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1f
Y3Jvc3NPcmlnaW5Nb2RlID0gY3Jvc3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRDcmVkZW50
aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2Rl
LCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxv
d1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJv
bChjdWVSZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFs
cyk7CisgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dD
cmVkZW50aWFscyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291
cmNlcyB0aGF0IGFyZSBub3Qgc3VpdGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9hZC4KICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAppbmRleCAxZmZjYTRmYzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi5j
NDI2ODY1YjI2Nzc0ZTI1MDI5MmQ5NzUwMTBjYjUxZmM1NmEzMjUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1h
Z2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcsMTIgKzEw
OCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKQotewotICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2Fs
bGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMs
IEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7Ci0g
ICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBtX2RvY3Vt
ZW50KDApCiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2
ICsxNTAsNTcgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDog
MDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1h
Z2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZiA9
IGZyYW1lKCkpIHsKICAgICAgICAgaWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2FsRXZlbnRC
ZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAg
ICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBLVVJMIHJl
cXVlc3RVUkwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAgICAgICAg
aWYgKHJlcXVlc3RVUkwuaXNWYWxpZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6Oklt
YWdlUmVzb3VyY2UsIHJlcXVlc3RVUkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2FkZXI6Omxv
YWRJbWFnZShmLCByZXF1ZXN0VVJMKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkLCBmYWxzZSwgY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5
Q2xpZW50IDogTm9EZWZlcikuZ2V0KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVm
ZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xp
ZW50IDogTm9EZWZlcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJh
Y2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0LCBT
dHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hh
ZGVyPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
IHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJl
c291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NT
dHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVT
aGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQor
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNo
ZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSk7CiAKICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5
cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAgICAgICBt
ZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJsLnN0cmlu
ZygpICE9IHJlcXVlc3QudXJsKCkpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAg
aWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQorICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5l
dyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NT
dHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsK
IAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1F
OiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0
aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlv
biBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0VXNlckNTU1N0CiAgICAgcmV0dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNj
cmlwdCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5n
ZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBF
TkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNo
ZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1
ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFNWRykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0Rv
Y3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9j
dW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdl
dCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RM
aW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlKTsKLSAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0
cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKKyAgICBy
ZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNo
ZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQsIGZhbHNlKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jl
c291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVx
dWVzdCkuZ2V0KCkpOwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2Vj
dXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNv
bnN0CkBAIC00MDIsMTEgKzM5OCwxMSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5S
ZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VSTCB1cmwg
PSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNo
YXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZvclByZWxv
YWQpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9
JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRp
bjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwog
ICAgIAogICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQg
aXMgdGhlIHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYg
KCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBAIC00Mjgs
MTYgKzQyNCwxNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBpZiB3ZSBj
YW4gdXNlIGFuIGV4aXN0aW5nIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKHVybCk7CiAKLSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwpCi0gICAg
ICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkgIT0gdXJsKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBk
ZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVz
b3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5
ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVl
c3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9hZDoKICAg
ICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgLy8g
RmFsbCB0aHJvdWdoCiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNv
dXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVz
b3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hh
cnNldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAgICAgICBy
ZXNvdXJjZSA9IHJldmFsaWRhdGVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00NTEsOSAr
NDQ3LDkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNlKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkp
OwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkg
JiYgTm9EZWZlciA9PSBkZWZlcikgewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRp
b25zKTsKKyAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7
CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAm
JiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+bG9hZCh0
aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBp
bW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgogICAg
ICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1OSw4IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXJl
cXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFk
ZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJs
KCkucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkg
PT0gdXJsLnN0cmluZygpKTsKICAgICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIHJlc291cmNlKTsKQEAgLTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXEKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0gY2hhcnNl
dC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291
cmNlKHR5cGUsIHJlcXVlc3QsIGVuY29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBjYWNoZWRS
ZXNvdXJjZVJlcXVlc3Quc2V0Rm9yUHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBj
YWNoZWRSZXNvdXJjZVJlcXVlc3QpOwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJlbG9hZHMg
JiYgbV9wcmVsb2Fkcy0+Y29udGFpbnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJu
OwogICAgIHJlc291cmNlLT5pbmNyZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQgKzkxMSwx
MCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGlu
Z1ByZWxvYWRzKTsKIH0KIAorY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAgc3RhdGlj
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVu
dCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NP
cmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0aW9uczsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaAppbmRleCAyYTc5ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2ZGVkODAz
Li4wZmNiMWUzN2Q0YTI5ODIzNzcyODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQs
NiArNDQsNyBAQCBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBj
bGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVy
OwogY2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVuZCBjbGFz
cyBJbWFnZUxvYWRlcjsKIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHBy
ZXNzb3I7CiAKIHB1YmxpYzoKKyAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJy
ZWRCeUNsaWVudCB9OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVy
PiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1h
Z2U+IHJlcXVlc3RJbWFnZShSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVz
b3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0
Rm9udChSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZElt
YWdlPiByZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlw
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRGb250PiByZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOwogCiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVx
dWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1
ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoWFNMVCkKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBy
ZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVx
dWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2hhZGVyPiByZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVk
IG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAtMTM1LDEx
ICsxMzcsMTIgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICBl
bnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERlZmVyT3B0
aW9uID0gTm9EZWZlcik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0Jik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRh
dGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0UHJlbG9h
ZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNl
ZmI2MjU4YzVlYzlmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNv
dXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisg
ICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSkKKyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxv
YWQoZmFsc2UpCisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQor
eworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiBvcHRpb25zKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0
KQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9h
ZFByaW9yaXR5VW5yZXNvbHZlZCkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1f
ZGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291
cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1f
cmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9w
cmlvcml0eShwcmlvcml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVm
ZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjA0M2RmZTM5ZmU0Y2VkNTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAor
I2RlZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYp
OworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNv
dXJjZUxvYWRQcmlvcml0eSk7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKSB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJl
cXVlc3Q7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2No
YXJzZXQ7IH0KKyAgICB2b2lkIHNldENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1f
Y2hhcnNldCA9IGNoYXJzZXQ7IH0KKyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9w
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZv
clByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZv
clByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0K
KyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RlZmVyOyB9CisgICAgdm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
RGVmZXJPcHRpb24gZGVmZXIpIHsgbV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6CisgICAg
UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2NoYXJzZXQ7
CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtX3ByaW9yaXR5OworICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENhY2hlZFJl
c291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5j
cHAKaW5kZXggNjNiYzBlYTFjYTIxNzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4uOGM5ZDBj
ZWNiZmNkMTJiN2VhYTFjNGE4Yzg3MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5LDE0ICs2
MCwxNCBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3Vy
Y2UgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291
cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJs
KCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCht
X2ZyYW1lLT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhT
ZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1Nl
Y3VyaXR5Q2hlY2spKTsKKwogI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVzb3VyY2VS
ZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwor
ICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1ZXN0
LnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7
CiAKLSAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0
YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3Jp
Z2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2UgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3Vy
Y2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFk
ZENsaWVudCh0aGlzKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCA3NjM1NzM4ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVkNWZiLi44
N2ZmMGQ2ODEyNzQ0NjBlYTc5NzhhZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJB
dHRyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgi
CkBAIC04MCw3ICs4MSw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VS
ZWZlcmVuY2VzKCkKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3Vy
Y2UoKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoaHJlZigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwogICAg
IG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1
ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcyYjYyMmZh
ZmU5NDc1MGUwOTkzNDhlNjc3MGI3ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2
Y2RkMzc0OGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgpAQCAtOTYsNyArOTcsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZv
bnQoKQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05h
bWVzOjpocmVmQXR0cik7CiAgICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hl
ZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7
CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Rm9u
dChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAgICAgbV9j
YWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAKaW5kZXggZDE5ZWExOTVkZjIwYTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4uNjA0NmVj
NjFiNzRmYzEyZWIxM2FjMjA3MjQ0YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRT
aGFkb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgU1ZH
VXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgaWYgKGlzRXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAgICAgIEtV
UkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAgICAgIGlm
ICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKICAg
ICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAg
IGlmIChtX2NhY2hlZERvY3VtZW50KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3Vt
ZW50LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
SW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKaW5k
ZXggMGExNzcwZDAzNDVhOGExZmM4M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5ZTk5YjBk
MGRlMzdkODZkNTU1NTdjOTY5OGNlOTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hTTEltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRS
dWxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVl
dC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJYU0xT
dHlsZVNoZWV0LmgiCiAKQEAgLTk4LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpsb2Fk
U2hlZXQoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVV
UkwoYWJzSHJlZikpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJz
SHJlZikpKTsKICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169776</attachid>
            <date>2012-10-20 15:44:01 -0700</date>
            <delta_ts>2012-10-20 17:39:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121021004241.patch</filename>
            <type>text/plain</type>
            <size>59747</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhh
MWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNjYjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUz
ZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3
IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU0MGZhNTM5MzUx
ZWU2YTc0NWU5MTMwMTNlZTMxNTZlNWQ1MGJmZGUuLmFhYTYzOWFiYzUzNGM5NDhkZGQ1MjhiYmU3
MDk3MDZiMzIzNTRkMWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE5NCw2ICsyODE5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NjI2MmRi
ZDBlYmQ4NjU5NTU4ZjYyMjI2YWQ5MDMyYjBlYTk2NzFiLi43ZmY0NjUyNDc1MDI2YzFmNTczMGIw
ZWE2NDIxMzFmZDg1ZDMxNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkxLDYgKzE0OTEsOCBAQAogCQk1MDNEMENBQjE0
QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAz
RDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDNEMENBRTE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKKwkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87
IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUw
OTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAq
LzsgfTsKQEAgLTEyOTYxLDYgKzEyOTYzLDggQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA4MUUzRTEzRDAyODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMDAsNiAr
MTkyMDQsOCBAQAogCQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oICovLAogCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCisJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNDk1LDYgKzIyNTAxLDcgQEAKIAkJCQlCQ0IxNkMy
MjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDgxRTNFMDNDRkY4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxMTcsNiArMjYxMjQsNyBAQAogCQkJCUJD
QjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwODFFM0MzM0NFNTgwQzE2
RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2Zi
Li4zNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBD
U1NGb250RmFjZVNyY1ZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29u
c3QKIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAg
IH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZv
aWQgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iCiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCmluZGV4IDZlMDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVm
MGEuLjZkYzc2ZjU4MDQ4ZjllNDhjZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJ
bWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWQKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNs
dWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNh
Y2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9y
LCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlm
YTc2NGMzMjM5ZjJiN2E1NDYuLjZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2Fj
aGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0
eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAg
ICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0
KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVk
SW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAK
aW5kZXggMjZmMjllODJmODBhOWZmNTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcx
YzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZUltcG9ydC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1
bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7
CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNo
ZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VM
b2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxl
U2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0
KHJlcXVlc3QpOwogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBp
bXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAg
ICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRv
YyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZS5jcHAKaW5kZXggNDRjODgwODk0NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdl
ODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAt
NTIsNyArNTMsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVx
dWVzdGVkKSB7CiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3Vy
bCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9k
b2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5Mzcz
ZTBmMGZhMmRmOGJmNDk0MjgxYjVjMmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFh
YjAzYThmZDFhMWUxODAwNGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQog
I2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1
ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNo
YWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZAogICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vz
c2VkU2hhZGVyID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2Fk
ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVk
U2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCmluZGV4IDRiY2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2
YjYuLmVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uaCIKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYp
KSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAg
ICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9p
ZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAg
ICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAg
ICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBk
b2N1bWVudCgpLT5jaGFyc2V0KCk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0
KGNoYXJzZXQpOwogCi0gICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNo
YXJzZXQpOworICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAg
IG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCAyMDlmYzc5YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li4w
ZDRhZWFlZGQ0YmFlYzI2NjA0MWI2MDE0MWZhMjA2ZjYyOTMxZTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0yNTYsMTYgKzI1NywxNiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2Ny
aXB0KTsKICAgICBpZiAoIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VV
cmwpLmlzRW1wdHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291
cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkp
OworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpLCBzY3JpcHRDaGFy
c2V0KCkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gbV9lbGVtZW50LT5m
YXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAgICAgaWYg
KCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fcmVxdWVzdFVzZXNB
Y2Nlc3NDb250cm9sID0gdHJ1ZTsKICAgICAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93
Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1
ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVu
dGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0LCBzY3JpcHRDaGFyc2V0KCkpOworICAgICAgICBtX2Nh
Y2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVybmFsU2NyaXB0ID0g
dHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRl
eCBmZGM3YTVjY2UzMjMxYWY5YzIyNDRlMWM5ZjQ0NDgzYjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4
MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVT
aGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24u
aCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMjIwLDggKzIyMSw4IEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRo
YXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cg
cHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxvY2tp
bmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFy
c2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBw
cmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRk
Q2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVj
NjkwNzRmLi45Yzg4OWNkZjVhYzNmMDNjZjFjNjg5NTE1MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUg
IkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtMzc2LDE3ICszNzcsMTcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omxv
YWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAg
ICAgIG9wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9IEJ1ZmZlckRhdGE7CiAgICAgICAgIH0KIAot
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkgewogICAgICAgICAg
ICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25seSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVk
aXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlmaWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNl
bmRSZXF1ZXN0IGhlcmUuCiAgICAgICAgICAgICBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVy
ID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5wcm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJl
cXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50LT5mcmFtZSgp
LCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2Fk
ZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgQVNTRVJU
KCFtX3Jlc291cmNlKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsK
KyAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2Up
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2UtPmxv
YWRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCBhNmRhNjFl
NjU0OGVmMDdhNjgyZGNkYjdjNDY3NDQ4NDI3NjgxNjJiLi5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0
NzA4Y2I5NmJiNGQ1YTdlYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
QEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE3NywxOCArMTc4LDE4IEBAIHZvaWQg
SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAvLyBhbiBlbXB0eSBzdHJpbmcu
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAg
ICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyhhdHRyKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBS
ZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChk
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSk7CiAKICAgICAgICAgU3Ry
aW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5zb3VyY2VFbGVtZW50KCktPmZhc3RHZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3Nz
T3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1j
cmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRD
cmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwor
ICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCksIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93Q3Jl
ZGVudGlhbHMpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAg
ICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygpOwogICAgICAgICAgICAgZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFnZXMoZmFsc2UpOwotICAg
ICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgICAg
ICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsK
ICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5nKHRydWUpOwogICAgICAgICAgICAgbmV3
SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50KCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYWYyNWE4Njgw
M2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMy4uZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQy
MGVhY2Y5OGJhNTQzZTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2Rl
LmgiCiAjaW5jbHVkZSAiRE5TLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTExOSwxMyAr
MTIwLDEzIEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0
ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAgICBwcmlvcml0eSA9
IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAgICAgICAgdHlwZSA9IENhY2hlZFJlc291
cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKGhyZWYpKSwgcHJpb3JpdHkpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2Fj
aGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+cmVt
b3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSAwOwog
ICAgICAgICB9Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQtPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlwZSwgbGlua1JlcXVlc3Qs
IHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVz
dCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkKICAgICAgICAgICAgIG1fY2Fj
aGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBhOWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBm
OTYzYWRhNDVlOTVhMWZiLi43ZTE0YjQzMzQ5Yzg1MGExOTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUzLDEyICsxNTQsMTIgQEAgYm9v
bCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSkKIAogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlz
RG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgIFJlc291cmNlUmVxdWVzdCBjdWVS
ZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVy
bCkpKTsKIAogICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1f
Y3Jvc3NPcmlnaW5Nb2RlID0gY3Jvc3NPcmlnaW5Nb2RlOwogICAgICAgICBTdG9yZWRDcmVkZW50
aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2Rl
LCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxv
d1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJv
bChjdWVSZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFs
cyk7CisgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QubXV0
YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dD
cmVkZW50aWFscyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291
cmNlcyB0aGF0IGFyZSBub3Qgc3VpdGFibHkgQ09SUy1lbmFibGVkIG1heSBub3QgbG9hZC4KICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAppbmRleCAxZmZjYTRmYzFlMTg5YTI3ODJjNGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi4x
Y2NhZWQ5YmY2ZWI4NzhiZmU0Zjg3YzQ2MDI3ZDE2ZWQ3MTc5ZDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1h
Z2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCkBAIC0xMDcsMTIgKzEw
OCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKQotewotICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2Fs
bGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMs
IEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7Ci0g
ICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KIENhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIpCiAgICAgOiBtX2RvY3Vt
ZW50KDApCiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRvY3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2
ICsxNTAsNTcgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDog
MDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1h
Z2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZiA9
IGZyYW1lKCkpIHsKICAgICAgICAgaWYgKGYtPmxvYWRlcigpLT5wYWdlRGlzbWlzc2FsRXZlbnRC
ZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAg
ICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7CisgICAgICAgICAgICBLVVJMIHJl
cXVlc3RVUkwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgICAgICAgICAg
aWYgKHJlcXVlc3RVUkwuaXNWYWxpZCgpICYmIGNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6Oklt
YWdlUmVzb3VyY2UsIHJlcXVlc3RVUkwpKQogICAgICAgICAgICAgICAgIFBpbmdMb2FkZXI6Omxv
YWRJbWFnZShmLCByZXF1ZXN0VVJMKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkLCBmYWxzZSwgY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5
Q2xpZW50IDogTm9EZWZlcikuZ2V0KCkpOworICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVm
ZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xp
ZW50IDogTm9EZWZlcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQo
KSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJh
Y2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0LCBT
dHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hh
ZGVyPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
IHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJl
c291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NT
dHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVT
aGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQor
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7CisgICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNo
ZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSk7CiAKICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5
cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4oZXhpc3RpbmcpOwogICAgICAgICBt
ZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwogICAgIH0KLSAgICBpZiAodXJsLnN0cmlu
ZygpICE9IHJlcXVlc3QudXJsKCkpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAg
aWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQorICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5l
dyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NT
dHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsK
IAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1F
OiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0
aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5jdGlv
biBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTIxNCwzNyArMjEwLDM3IEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0VXNlckNTU1N0CiAgICAgcmV0dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNj
cmlwdCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5n
ZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBF
TkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNo
ZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1
ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFNWRykKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0Rv
Y3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9j
dW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdl
dCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdl
dCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RM
aW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1
YnJlc291cmNlKTsKLSAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIFN0
cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KTsKKyAgICBy
ZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QpOwogfQogI2VuZGlmCiAKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNo
ZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3Vy
Y2UsIHJlcXVlc3QsIFN0cmluZygpLCBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQsIGZhbHNlKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jl
c291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVx
dWVzdCkuZ2V0KCkpOwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2Vj
dXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNv
bnN0CkBAIC00MDIsMTEgKzM5OCwxMSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5S
ZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAgS1VSTCB1cmwg
PSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpOwogICAgIAotICAgIExPRyhSZXNvdXJj
ZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNo
YXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRhdGEoKSwgcHJpb3JpdHksIGZvclByZWxv
YWQpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9
JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRp
bjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwog
ICAgIAogICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQg
aXMgdGhlIHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKHVybCk7CkBAIC00MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgZm9yUHJlbG9hZCkpCisgICAgaWYg
KCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7CkBAIC00Mjgs
MTYgKzQyNCwxNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIC8vIFNlZSBpZiB3ZSBj
YW4gdXNlIGFuIGV4aXN0aW5nIHJlc291cmNlIGZyb20gdGhlIGNhY2hlLgogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKHVybCk7CiAKLSAgICBpZiAocmVxdWVzdC51cmwoKSAhPSB1cmwpCi0gICAg
ICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkgIT0gdXJsKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBk
ZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVz
b3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5
ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVl
c3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBjYXNlIFJlbG9hZDoKICAg
ICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlLmdldCgpKTsKICAgICAgICAgLy8g
RmFsbCB0aHJvdWdoCiAgICAgY2FzZSBMb2FkOgotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNv
dXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVz
b3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hh
cnNldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXZhbGlkYXRlOgogICAgICAgICBy
ZXNvdXJjZSA9IHJldmFsaWRhdGVSZXNvdXJjZShyZXNvdXJjZS5nZXQoKSk7CkBAIC00NTEsOSAr
NDQ3LDkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXJlc291cmNlKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIHJlc291cmNlLT5zZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkp
OwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkg
JiYgTm9EZWZlciA9PSBkZWZlcikgewotICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRp
b25zKTsKKyAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7
CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAm
JiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgeworICAgICAgICByZXNvdXJjZS0+bG9hZCh0
aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBp
bW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgogICAg
ICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkgewpAQCAtNDYzLDggKzQ1OSw4IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIXJl
cXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKLSAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFk
ZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJs
KCkucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIEFTU0VSVChyZXNvdXJjZS0+dXJsKCkg
PT0gdXJsLnN0cmluZygpKTsKICAgICBtX2RvY3VtZW50UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIHJlc291cmNlKTsKQEAgLTc5Myw3ICs3ODksMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3Vy
Y2VSZXEKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgIGVuY29kaW5nID0gY2hhcnNl
dC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5jaGFyc2V0KCkgOiBjaGFyc2V0OwogCi0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gcmVxdWVzdFJlc291
cmNlKHR5cGUsIHJlcXVlc3QsIGVuY29kaW5nLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVzdChyZXF1ZXN0LCBlbmNvZGluZyk7Cisg
ICAgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LnNldEZvclByZWxvYWQodHJ1ZSk7CisKKyAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3Vy
Y2UodHlwZSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KTsKICAgICBpZiAoIXJlc291cmNlIHx8ICht
X3ByZWxvYWRzICYmIG1fcHJlbG9hZHMtPmNvbnRhaW5zKHJlc291cmNlLmdldCgpKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICByZXNvdXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKQEAgLTkx
Miw0ICs5MTEsMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJl
cihtX3BlbmRpbmdQcmVsb2Fkcyk7CiB9CiAKK2NvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQorewor
ICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBT
bmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVu
dEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjayk7CisgICAgcmV0dXJu
IG9wdGlvbnM7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggMmE3OTg1ZTZjYjI0OTI1MmQ4MTU5ZTk4NWU2OTA0
NTNjNmRlZDgwMy4uMGZjYjFlMzdkNGEyOTgyMzc3MjgzOTE0NTE5ZjIyYTJmNDQyNGYzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQ7CiBjbGFzcyBDYWNo
ZWRGb250OwogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZTsKK2Ns
YXNzIENhY2hlZFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENh
Y2hlZFNoYWRlcjsKIGNsYXNzIENhY2hlZFRleHRUcmFjazsKQEAgLTY4LDMwICs2OSwzMSBAQCBm
cmllbmQgY2xhc3MgSW1hZ2VMb2FkZXI7CiBmcmllbmQgY2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlk
YXRpb25TdXBwcmVzc29yOwogCiBwdWJsaWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVm
ZXIsIERlZmVycmVkQnlDbGllbnQgfTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNv
dXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0K
ICAgICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQo
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7Ci0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9u
dD4gcmVxdWVzdEZvbnQoUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gcmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJl
cXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1
bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKFhTTFQpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5
bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVG
RVRDSCkKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExp
bmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0
VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291
cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFk
ZXIoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKIAogICAgIC8vIExvZ3MgYW4gYWNj
ZXNzIGRlbmllZCBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVkIFVSTC4K
QEAgLTEzNSwxMSArMTM3LDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAorICAgIHN0YXRpYyBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciop
OwogCi0gICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsK
LSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIFJlc291cmNlTG9hZFByaW9yaXR5
ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBib29sIGlzUHJlbG9hZCA9IGZhbHNl
LCBEZWZlck9wdGlvbiA9IE5vRGVmZXIpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJl
c291cmNlUmVxdWVzdCYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiByZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBl
LCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwogICAgIHZvaWQgcmVx
dWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgY2hhcnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZGQzOWI5NmNhY2Y0ZGVi
M2I0ZjM4MjFjZWZiNjI1OGM1ZWM5ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAg
ICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fY2hhcnNldChj
aGFyc2V0KQorICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQorICAgICwg
bV9mb3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Tm9EZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291
cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQorICAgICwgbV9wcmlvcml0eShS
ZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2Up
CisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCitD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkp
CisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29wdGlv
bnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkK
KyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisg
ICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2IwNDNkZmUzOWZlNGNlZDU1MDgyMTk0YmUzZjEwZGYwMGY5MWJmNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0X2gKKyNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKKworI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qgewor
cHVibGljOgorICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jaGFyc2V0OyB9CisgICAgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hh
cnNldCkgeyBtX2NoYXJzZXQgPSBjaGFyc2V0OyB9CisgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CisgICAgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3ByaW9yaXR5OyB9Cisg
ICAgYm9vbCBmb3JQcmVsb2FkKCkgY29uc3QgeyByZXR1cm4gbV9mb3JQcmVsb2FkOyB9CisgICAg
dm9pZCBzZXRGb3JQcmVsb2FkKGJvb2wgZm9yUHJlbG9hZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQ
cmVsb2FkOyB9CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIGRlZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWZlcjsgfQorICAgIHZvaWQgc2V0RGVmZXIoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OkRlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQorCitwcml2
YXRlOgorICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTdHJpbmcg
bV9jaGFyc2V0OworICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7CisgICAgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKKyAgICBib29sIG1fZm9yUHJlbG9hZDsKKyAg
ICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gbV9kZWZlcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Mb2FkZXIuY3BwCmluZGV4IDYzYmMwZWExY2EyMTc0ZGE4MGUxNWNhMjNkZTg4OTA1YjE0NWI1
MzQuLjhjOWQwY2VjYmZjZDEyYjdlYWExYzRhOGM4NzBmMTY0MjU1N2Y3NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBA
IC01OSwxNCArNjAsMTQgQEAgdm9pZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIGlm
IChtX3Jlc291cmNlIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5p
Y29uKCktPnVybCgpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpLCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFs
bG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50
aWFscywgRG9TZWN1cml0eUNoZWNrKSk7CisKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKQotICAg
IHJlc291cmNlUmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNG
YXZpY29uKTsKKyAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRUYXJnZXRU
eXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKICNlbmRpZgotICAgIHJlc291
cmNlUmVxdWVzdC5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CisgICAgcmVx
dWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJp
b3JpdHlMb3cpOwogCi0gICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsCi0g
ICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRG
b3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKyAgICBtX3Jlc291
cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVz
dFJhd1Jlc291cmNlKHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICBtX3Jl
c291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKaW5kZXggNzYzNTczOGZkZTE4NGQxZTFkZjQ4ZWI2ZmIzNmFlY2Fh
MjM1ZDVmYi4uODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZlODdmYTI3Mzk2ODg1N2ViYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgpAQCAtODAsNyArODEsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVh
clJlc291cmNlUmVmZXJlbmNlcygpCiAKIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJ
bWFnZVJlc291cmNlKCkKIHsKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChvd25lckRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYo
KSkpKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2FjaGVkSW1hZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IGY2MTA1
Mzc3MmI2MjJmYWZlOTQ3NTBlMDk5MzQ4ZTY3NzBiN2U4MDcuLmMzNGZlZDg3ZDQ3ZWY4ZmYxZjFh
NjVlMjdhZjVmNmNkZDM3NDhhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZVVyaUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VT
cmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKQEAgLTk2LDcgKzk3LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1l
bnQ6OmxvYWRGb250KCkKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGhyZWYgPSBnZXRBdHRyaWJ1
dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAg
ICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVu
dCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChocmVmKSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+
cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZEZvbnQpIHsKICAgICAg
ICAgICAgIG1fY2FjaGVkRm9udC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCmluZGV4IGQxOWVhMTk1ZGYyMGEyZWY2MzlmNmExZTk5YTIwYjI1ODJiOTUw
ZTEuLjYwNDZlYzYxYjc0ZmMxMmViMTNhYzIwNzI0NGE2YzY4MTY1NDc0NzYgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkF0
dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTI1NCw3ICsyNTUsNyBA
QCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIGlmIChpc0V4dGVybmFsUmVmZXJlbmNlKSB7CiAgICAg
ICAgICAgICBLVVJMIHVybCA9IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSk7CiAgICAg
ICAgICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsLnN0cmluZygpKTsKKyAgICAgICAgICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QodXJsLnN0cmlu
ZygpKSk7CiAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudCA9IGRvY3VtZW50KCktPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICAg
ICAgICAgICAgICBpZiAobV9jYWNoZWREb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgbV9j
YWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1
bGUuY3BwCmluZGV4IDBhMTc3MGQwMzQ1YThhMWZjODNkN2I3ZmIyZDQ0MmQyYmEzOWViMWYuLmU2
Mjk1OWU5OWIwZDBkZTM3ZDg2ZDU1NTU3Yzk2OThjZTk4MzgxMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMSW1wb3J0UnVsZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFhT
TFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiWFNMU3R5bGVTaGVldC5oIgogCkBAIC05OCw3ICs5OSw3IEBAIHZvaWQgWFNMSW1wb3J0
UnVsZTo6bG9hZFNoZWV0KCkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKGFic0hyZWYpKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QoY2FjaGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKGFic0hyZWYpKSk7CiAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9h
ZGVyLT5yZXF1ZXN0WFNMU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAKICAgICBpZiAobV9jYWNo
ZWRTaGVldCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169777</attachid>
            <date>2012-10-20 17:39:12 -0700</date>
            <delta_ts>2012-10-21 11:39:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121021023753.patch</filename>
            <type>text/plain</type>
            <size>59776</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uYzIwYzBiYTU5ZTlmZjZjZmFjZmZjMzJkN2I5ZDU4
NDM1NjIwN2FlMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTEwLTE4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNl
dCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBv
cnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVT
aGVldCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxl
bWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRS
ZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIv
TGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6
CisgICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KENhY2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERl
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OmNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpwcmlvcml0eSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpm
b3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0
SW1hZ2VSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAg
ICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCiAy
MDEyLTEwLTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRG8gc29tZSBjbGVhbnVwIGluIHRoZSBjaHJvbWl1bSBXZWJL
aXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ1MzczNzk4MDk5N2U3NGMxZGQ4NDdjODVk
ZTY4OTMwMTE2ZTE0MDguLmEyNzNkZTZhMjhjYzRlZDQ1NmVjMGMzZmZkMTdhZjM5ODI1MmJjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjgxLDYgKzE2ODEsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZWEyYjIyZTlhZWE2MjliYWM0Yzc4MDM3
YTFhMjAwZmE2OGNlY2E1My4uZDkwZjlmNTkwZDU5ZWEyNDFkYTQyOGUxNTI1ZjA1NTFiODYwMTli
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODQzLDYgKzM4NDMsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggN2U3MDVlNDg2YjEyZTZhZTUzZTc5NmY3ZGIyZGQ3Nzg0YzExNTY4ZS4uMmU3OTg2ZjQ5
YTk1MDBkMzg0NjZiOTc3Yjg0OWI4ZGNkY2QyOGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04MTYsNiAr
ODE2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgXAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBcCisgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDhh
MWRjYjNmNWNhODQyNDExMDk0MDBmZmY5NGNjYjIxMzI2YTcwNC4uYTI3NjIyMDFiNTFkMDE4ZDUz
ZTZlOTNiNGUyYmYyZTc0ZmNlZTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3
IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oJywKICAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oJywKQEAgLTMwNjEsNiArMzA2Miw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU0MGZhNTM5MzUx
ZWU2YTc0NWU5MTMwMTNlZTMxNTZlNWQ1MGJmZGUuLmFhYTYzOWFiYzUzNGM5NDhkZGQ1MjhiYmU3
MDk3MDZiMzIzNTRkMWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE5NCw2ICsyODE5NCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NjI2MmRi
ZDBlYmQ4NjU5NTU4ZjYyMjI2YWQ5MDMyYjBlYTk2NzFiLi43ZmY0NjUyNDc1MDI2YzFmNTczMGIw
ZWE2NDIxMzFmZDg1ZDMxNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkxLDYgKzE0OTEsOCBAQAogCQk1MDNEMENBQjE0
QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8q
IEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9
OyB9OwogCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAz
RDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDNEMENBRTE0
QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJG
NTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKKwkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4
MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEw
NkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87
IH07CiAJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUw
OTg3QzI0MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCAq
LzsgfTsKQEAgLTEyOTYxLDYgKzEyOTYzLDggQEAKIAkJQkNCMTZDMEYwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFhTTFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTA4MUUzRTEzRDAyODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRl
ckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjc3MzVGMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVG
aWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyMDAsNiAr
MTkyMDQsOCBAQAogCQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oICovLAogCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCisJCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIyNDk1LDYgKzIyNTAxLDcgQEAKIAkJCQlCQ0IxNkMy
MjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDgxRTNFMDNDRkY4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjYxMTcsNiArMjYxMjQsNyBAQAogCQkJCUJD
QjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwODFFM0MzM0NFNTgwQzE2
RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcAppbmRleCAyYTFjMDQ3ODdkNmEwYzRjODcxMzgwNDRhMmMxNzU1ODk4NzEwY2Zi
Li4zNjkwNzg5MzM2ZDBiODQ0ODE1MjczYjAxMzIyNWY2OWRhYWQ2ODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udEN1c3RvbVBs
YXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTk1LDcgKzk2LDcgQEAgYm9vbCBD
U1NGb250RmFjZVNyY1ZhbHVlOjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKCkgY29u
c3QKIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7Ci0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAg
IH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpAQCAtMTEzLDQgKzExNCwzIEBAIHZv
aWQgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iCiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdl
U2V0VmFsdWUuY3BwCmluZGV4IDZlMDJhMjBmOTVhYzNmMTRmNDYxYTFjNTEwMGI0YWQ2MmJkOWVm
MGEuLjZkYzc2ZjU4MDQ4ZjllNDhjZTViNzllOGVmNTkyOWYyZjQyZDE0MTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCkBAIC0xMDgsNyArMTA5LDcgQEAgU3R5bGVDYWNoZWRJ
bWFnZVNldCogQ1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VM
b2FkZXIqIGxvYWQKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNs
dWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSk7CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGltYWdlLmltYWdlVVJMKSkpOwogICAgICAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5y
ZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNh
Y2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9y
LCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDcyNmMyYzA0MzQ3MWU5NjdiOTJiYzlm
YTc2NGMzMjM5ZjJiN2E1NDYuLjZiNzNkNDYzMWEwZjAwMjRmMmVjNmYzYzY0ODU4MTY0OTg0MTA0
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2Fj
aGUuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCkBAIC04Miw3ICs4Myw3IEBAIFN0
eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAg
ICAgbV9hY2Nlc3NlZEltYWdlID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0
KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoY2FjaGVk
SW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAK
aW5kZXggMjZmMjllODJmODBhOWZmNTFkYWNlNTcwZDhmNDdlOTM4YWU1ZGUwYS4uZWVjMzUwNzcx
YzQ3OTQyZTg2NTc3MzA3ZWMyNDAzMmQyNmMwNGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZUltcG9ydC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE1LDExICsxMTYsMTEgQEAgdm9pZCBTdHlsZVJ1
bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7
CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoYWJzVVJMKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJl
bnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwogICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQtPmlz
VXNlclN0eWxlU2hlZXQoKSkKLSAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNo
ZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VM
b2FkZXItPnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICBlbHNlCi0gICAg
ICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxl
U2hlZXQocmVxdWVzdCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOworICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0
KHJlcXVlc3QpOwogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7CiAgICAgICAgIC8vIGlmIHRoZSBp
bXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHksIHRoZSBzaGVldCBtYXkgYmUKICAgICAg
ICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRv
YyBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1l
bnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZS5jcHAKaW5kZXggNDRjODgwODk0NzBlODM5ZDk3NGViYTAxY2MwNmY3ZDkyMGMxODEyMi4uNjdl
ODRlM2M5Yjk4M2FiYjA4MjQxMjA3NTllMzg4ODA1M2NmYzhiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAt
NTIsNyArNTMsNyBAQCBDYWNoZWRTVkdEb2N1bWVudCogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1
ZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIGlmICghbV9sb2FkUmVx
dWVzdGVkKSB7CiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3Vy
bCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKICAgICAgICAgbV9k
b2N1bWVudCA9IGxvYWRlci0+cmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKaW5kZXggNmY5Mzcz
ZTBmMGZhMmRmOGJmNDk0MjgxYjVjMmQ4NzcyOWFiYjk2MS4uZmEwNDE5MGMzZGM4ZTNhZGI0MzFh
YjAzYThmZDFhMWUxODAwNGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQog
I2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgogI2luY2x1
ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgpAQCAtNTksNyArNjAsNyBAQCBTdHlsZUNhY2hlZFNo
YWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxv
YWRlciogbG9hZAogICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgewogICAgICAgICBtX2FjY2Vz
c2VkU2hhZGVyID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2Fk
ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkp
CiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVk
U2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCmluZGV4IDRiY2ExZDFlYjk1ZWJhYWVjMTBhZDEzOGZjYzZkMWZlYjNmNmY2
YjYuLmVjMTczM2M3NDQ4OTUyNmRmNjVjZTBmNDFiM2I2ODc3MTFkNDNmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hl
ZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uaCIKQEAgLTE2Myw3ICsxNjQsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLT5hZGRQZW5kaW5nU2hlZXQoKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYp
KSk7CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgICAgICAgICBpZiAobV9pc1hTTCkKICAgICAgICAg
ICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KS0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CkBAIC0xNzMsOCArMTc0LDkgQEAgdm9p
ZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAgICAgICAgICAg
ICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQiKTsKICAgICAgICAgICAgICAg
ICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBk
b2N1bWVudCgpLT5jaGFyc2V0KCk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0
KGNoYXJzZXQpOwogCi0gICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNo
YXJzZXQpOworICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAgICAgICAgICAg
IG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCAyMDlmYzc5YzFjOGMwOGE0ZjY5YTk5OTk4M2ZiMDcxOTg2MzhlNjk2Li5j
ZmRkMWE0MzY5ODBkMWIwMDI2MmMxMThjYzI2OWY3M2MyY2MzMjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0yNTYsMTYgKzI1NywxNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2Ny
aXB0KTsKICAgICBpZiAoIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VV
cmwpLmlzRW1wdHkoKSkgewotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291
cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkp
OworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKSk7CiAKICAgICAg
ICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5Nb2Rl
LmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX3JlcXVlc3RVc2VzQWNjZXNzQ29udHJvbCA9IHRy
dWU7CiAgICAgICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1
YWxJZ25vcmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAg
ICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgbV9lbGVtZW50LT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICAgICAg
ICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGFsbG93
Q3JlZGVudGlhbHMpOwogICAgICAgICB9CisgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChzY3Jp
cHRDaGFyc2V0KCkpOwogCi0gICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QsIHNj
cmlwdENoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwog
ICAgICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGZkYzdhNWNjZTMyMzFhZjljMjI0NGUxYzlm
NDQ0ODNiODRiZjAxMzEuLjdjOTZiMTliMTM4NzgxOWUyMDJmNTQ4OWUyYzYyMDliM2Y0NGI0MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgi
CkBAIC0yMjAsOCArMjIxLDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogCiAg
ICAgICAgIC8vIExvYWQgc3R5bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgdGhlIHJl
bmRlcmluZyBpbW1lZGlhdGVseSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFByaW9yaXR5VW5y
ZXNvbHZlZCA6IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKLSAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKTsKLSAgICAgICAg
bV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVl
c3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKG1fdXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRT
aGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RDU1NTdHls
ZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAg
ICAgICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDcxYTFh
ZDNiMTk3MTE4YzJhYjFiY2RlMjkwYTMxOTJkNWM2OTA3NGYuLjljODg5Y2RmNWFjM2YwM2NmMWM2
ODk1MTUwMmUyZTEwNmU2YzBlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRl
ICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNzYsMTcgKzM3NywxNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAgICAgICAgICAgb3B0aW9ucy5zaG91bGRCdWZmZXJEYXRh
ID0gQnVmZmVyRGF0YTsKICAgICAgICAgfQogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCBuZXdS
ZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVz
dChyZXF1ZXN0LCBvcHRpb25zKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBpZiAo
bV9hY3R1YWxSZXF1ZXN0KSB7CiAgICAgICAgICAgICAvLyBCZWNhdXNlIHdpbGxTZW5kUmVxdWVz
dCBvbmx5IGdldHMgY2FsbGVkIGR1cmluZyByZWRpcmVjdHMsIHdlIGluaXRpYWxpemUgdGhlIGlk
ZW50aWZpZXIgYW5kIHRoZSBmaXJzdCB3aWxsU2VuZFJlcXVlc3QgaGVyZS4KICAgICAgICAgICAg
IG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIgPSBtX2RvY3VtZW50LT5mcmFtZSgpLT5wYWdl
KCktPnByb2dyZXNzKCktPmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKICAgICAgICAgICAgIFJl
c291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UoKTsKLSAg
ICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZG9j
dW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZpZXIsIG1fZG9jdW1lbnQt
PmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBuZXdSZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlKTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRSZXF1ZXN0KG1fZG9jdW1lbnQtPmZyYW1lKCksIG1fcHJlZmxpZ2h0UmVxdWVzdElkZW50aWZp
ZXIsIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLCBuZXdS
ZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
ICAgIH0KICNlbmRpZgogICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2UpOwotICAgICAgICBtX3Jl
c291cmNlID0gbV9kb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jl
c291cmNlKG5ld1JlcXVlc3QsIG9wdGlvbnMpOworICAgICAgICBtX3Jlc291cmNlID0gbV9kb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKG5ld1JlcXVl
c3QpOwogICAgICAgICBpZiAobV9yZXNvdXJjZSkgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgICAgICAgICBpZiAobV9yZXNvdXJjZS0+bG9hZGVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SW1hZ2VMb2FkZXIuY3BwCmluZGV4IGE2ZGE2MWU2NTQ4ZWYwN2E2ODJkY2RiN2M0Njc0NDg0Mjc2
ODE2MmIuLmMxMmJlMmZmOWQ0NTU3NGU0MWQ0ZjQ3MDhjYjk2YmI0ZDVhN2VjNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVk
ZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5o
IgpAQCAtMTc3LDE4ICsxNzgsMTggQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQoKQogICAgIC8vIGFuIGVtcHR5IHN0cmluZy4KICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAwOwogICAgIGlmICghYXR0ci5pc051bGwoKSAmJiAhc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGF0dHIpLmlzRW1wdHkoKSkgewotICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJj
ZVVSSShhdHRyKSkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NPcmlnaW5Nb2RlID0gY2xpZW50
KCktPnNvdXJjZUVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNyb3Nzb3Jp
Z2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5Nb2RlLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25vcmlu
Z0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICAgICAgdXBk
YXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9y
QWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAobV9sb2FkTWFudWFsbHkpIHsKICAgICAgICAgICAgIGJvb2wgYXV0b0xvYWRPdGhl
ckltYWdlcyA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmF1dG9Mb2FkSW1h
Z2VzKCk7CiAgICAgICAgICAgICBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5z
ZXRBdXRvTG9hZEltYWdlcyhmYWxzZSk7Ci0gICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNo
ZWRJbWFnZShyZXF1ZXN0KTsKKyAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdl
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldExv
YWRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0T3duaW5nQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CiAgICAgICAgICAg
ICBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5tX2RvY3VtZW50UmVzb3VyY2Vz
LnNldChuZXdJbWFnZS0+dXJsKCksIG5ld0ltYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmNwcAppbmRleCBhZjI1YTg2ODAzYzQwNzQ3OWMxMDI2N2FmMjY2N2VhMDJhZTVk
MmYzLi5lNTBiMzc5ZDk2YmVkYTczMjkyNTQ2NDIwZWFjZjk4YmE1NDNlMWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJETlMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtMTE5LDEzICsxMjAsMTMgQEAgYm9vbCBMaW5rTG9hZGVyOjps
b2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFN0cmlu
ZyYgdHkKICAgICAgICAgICAgIHByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CiAg
ICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZTsKICAgICAg
ICAgfQotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoZG9jdW1lbnQtPmNvbXBs
ZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpLCBwcmlvcml0eSk7
CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpIHsKICAgICAgICAg
ICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CiAgICAgICAgICAg
ICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IDA7CiAgICAgICAgIH0KLSAgICAgICAgbV9jYWNoZWRM
aW5rUmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExp
bmtSZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCwgcHJpb3JpdHkpOworICAgICAgICBtX2NhY2hl
ZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
TGlua1Jlc291cmNlKHR5cGUsIGxpbmtSZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkTGlu
a1Jlc291cmNlKQogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPmFkZENsaWVudCh0
aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmlu
ZGV4IGE5YjdmOTYwYmY2ZDY1MDMwMDUxN2NiMGY5NjNhZGE0NWU5NWExZmIuLjdlMTRiNDMzNDlj
ODUwYTE5NWI2NmMyNTkwNjEzNmQ4YjgwZjZmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiVGV4dFRyYWNr
TG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFRleHRUcmFjay5oIgog
I2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCkBAIC0xNTMsMTIgKzE1NCwxMiBAQCBib29sIFRleHRUcmFja0xvYWRlcjo6bG9hZChjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlKQogCiAgICAgQVNTRVJU
KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KHVybCkpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSkpOwogCiAgICAgaWYgKCFjcm9zc09yaWdp
bk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgbV9jcm9zc09yaWdpbk1vZGUgPSBjcm9zc09yaWdp
bk1vZGU7CiAgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVh
bElnbm9yaW5nQ2FzZShjcm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKGN1ZVJlcXVlc3QsIGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKKyAgICAgICAgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2woY3VlUmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICAvLyBDcm9zcy1vcmlnaW4gcmVzb3VyY2VzIHRoYXQgYXJlIG5vdCBzdWl0YWJseSBD
T1JTLWVuYWJsZWQgbWF5IG5vdCBsb2FkLgogICAgICAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHVybCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDFmZmNhNGZjMWUxODlh
Mjc4MmM0ZDg5ZGVjOWYxYTNjOGVjNGVkNzAuLjFjY2FlZDliZjZlYjg3OGJmZTRmODdjNDYwMjdk
MTZlZDcxNzlkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hl
ZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jl
c291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNvbnNvbGUuaCIKQEAgLTEwNywxMiArMTA4LDYgQEAgc3RhdGljIENhY2hlZFJlc291cmNl
KiBjcmVhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVl
c3QKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpCi17Ci0gICAgc3RhdGljIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVy
RGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVk
ZW50aWFscywgRG9TZWN1cml0eUNoZWNrKTsKLSAgICByZXR1cm4gb3B0aW9uczsKLX0KLQogQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBk
b2N1bWVudExvYWRlcikKICAgICA6IG1fZG9jdW1lbnQoMCkKICAgICAsIG1fZG9jdW1lbnRMb2Fk
ZXIoZG9jdW1lbnRMb2FkZXIpCkBAIC0xNTUsNTYgKzE1MCw1NyBAQCBGcmFtZSogQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/
IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICBpZiAoZi0+
bG9hZGVyKCktPnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9h
ZGVyOjpOb0Rpc21pc3NhbCkgewotICAgICAgICAgICAgS1VSTCByZXF1ZXN0VVJMID0gcmVxdWVz
dC51cmwoKTsKKyAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkudXJsKCk7CiAgICAgICAgICAgICBpZiAocmVxdWVzdFVSTC5pc1ZhbGlkKCkgJiYg
Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdFVSTCkpCiAg
ICAgICAgICAgICAgICAgUGluZ0xvYWRlcjo6bG9hZEltYWdlKGYsIHJlcXVlc3RVUkwpOwogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFnZVJl
c291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
LCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlLCBjbGllbnREZWZlcnNJbWFn
ZShyZXF1ZXN0LnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKS5nZXQoKSk7Cisg
ICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnVybCgpKSA/IERlZmVycmVkQnlDbGllbnQgOiBOb0RlZmVyKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OkltYWdlUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3Vy
Y2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRU
cmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZFRleHRUcmFjayo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4dFRy
YWNrKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwg
cmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi1D
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291
cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKS5n
ZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0K
ICNlbmRpZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9y
aXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+
KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCwg
Y2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlvcml0eSkuZ2V0KCkp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CiB9
CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRD
U1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNo
ZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IE1l
bW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVybCgp
KTsKKyAgICBLVVJMIHVybCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJ
Zk5lZWRlZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAgIGlmIChDYWNo
ZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwp
KSB7CiAgICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpDU1NT
dHlsZVNoZWV0KQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxl
U2hlZXQqPihleGlzdGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShleGlzdGlu
Zyk7CiAgICAgfQotICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC51cmwoKSkKLSAgICAg
ICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpCisgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVz
dCwgY2hhcnNldCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogCiAgICAgbWVtb3J5Q2FjaGUoKS0+YWRkKHVz
ZXJTaGVldC5nZXQoKSk7CiAgICAgLy8gRklYTUU6IGxvYWRSZXNvdXJjZSBjYWxscyBzZXRPd25p
bmdDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGlmIHRoZSByZXNvdXJjZSBjb3VsZG4ndCBiZSBhZGRl
ZCB0byBjYWNoZS4gRG9lcyB0aGlzIGZ1bmN0aW9uIG5lZWQgdG8gY2FsbCBpdCwgdG9vPwpAQCAt
MjE0LDM3ICsyMTAsMzcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICAgICByZXR1cm4gdXNl
clNoZWV0OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdCo+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3JpcHQs
IHJlcXVlc3QpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShYU0xUKQotQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RY
U0xTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNM
U3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
WFNMU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVT
aGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1ZHKQotQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRTVkdEb2N1bWVudCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U1ZH
RG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTElOS19QUkVGRVRDSCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5
cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBBU1NFUlQoZnJhbWUo
KSk7CiAgICAgQVNTRVJUKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCB8fCB0
eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UpOwotICAgIHJldHVybiByZXF1
ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSwgcHJpb3JpdHkpOworICAgIHJldHVybiByZXF1ZXN0UmVzb3VyY2UodHlwZSwg
cmVxdWVzdCk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3VyY2UoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCitD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5nKCksIG9wdGlv
bnMsIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgZmFsc2UpLmdldCgpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKIGJvb2wgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKQEAgLTQwMiwxMSArMzk4LDExIEBAIGJv
b2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9w
dGlvbnMsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBib29sIGZvclByZWxvYWQsIERl
ZmVyT3B0aW9uIGRlZmVyKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIEtVUkwgdXJsID0g
cmVxdWVzdC51cmwoKTsKKyAgICBLVVJMIHVybCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCk7CiAgICAgCi0gICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9y
UHJlbG9hZD0ldSIsIHVybC5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIGNoYXJzZXQubGF0aW4x
KCkuZGF0YSgpLCBwcmlvcml0eSwgZm9yUHJlbG9hZCk7CisgICAgTE9HKFJlc291cmNlTG9hZGlu
ZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNldCAn
JXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmcoKS5sYXRpbjEoKS5k
YXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0
eSgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7CiAgICAgCiAgICAgLy8gSWYgb25seSB0aGUgZnJh
Z21lbnQgaWRlbnRpZmllcnMgZGlmZmVyLCBpdCBpcyB0aGUgc2FtZSByZXNvdXJjZS4KICAgICB1
cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQodXJsKTsK
QEAgLTQxNCw3ICs0MTAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIGlmICghdXJs
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoIWNhblJlcXVlc3QodHlw
ZSwgdXJsLCBmb3JQcmVsb2FkKSkKKyAgICBpZiAoIWNhblJlcXVlc3QodHlwZSwgdXJsLCByZXF1
ZXN0LmZvclByZWxvYWQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKG1lbW9yeUNh
Y2hlKCktPmRpc2FibGVkKCkpIHsKQEAgLTQyOCwxNiArNDI0LDE2IEBAIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291
cmNlKENhY2hlCiAgICAgLy8gU2VlIGlmIHdlIGNhbiB1c2UgYW4gZXhpc3RpbmcgcmVzb3VyY2Ug
ZnJvbSB0aGUgY2FjaGUuCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKTsKIAotICAgIGlm
IChyZXF1ZXN0LnVybCgpICE9IHVybCkKLSAgICAgICAgcmVxdWVzdC5zZXRVUkwodXJsKTsKKyAg
ICBpZiAocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSAhPSB1cmwpCisgICAgICAgIHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgY29uc3Qg
UmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0
eXBlLCByZXF1ZXN0LCBmb3JQcmVsb2FkLCByZXNvdXJjZS5nZXQoKSwgZGVmZXIpOworICAgIGNv
bnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xp
Y3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJl
bG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBzd2l0Y2ggKHBv
bGljeSkgewogICAgIGNhc2UgUmVsb2FkOgogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUo
cmVzb3VyY2UuZ2V0KCkpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2gKICAgICBjYXNlIExvYWQ6
Ci0gICAgICAgIHJlc291cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGNoYXJzZXQp
OworICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0Lm11dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJldmFsaWRhdGU6CiAgICAgICAgIHJlc291cmNlID0gcmV2YWxpZGF0ZVJlc291cmNl
KHJlc291cmNlLmdldCgpKTsKQEAgLTQ1MSw5ICs0NDcsOSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShD
YWNoZQogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmVzb3Vy
Y2UtPnNldExvYWRQcmlvcml0eShwcmlvcml0eSk7Ci0gICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8
IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IGRlZmVyKSB7Ci0gICAg
ICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIG9wdGlvbnMpOworICAgIHJlc291cmNlLT5zZXRMb2Fk
UHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKKyAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwg
cmVzb3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0gcmVxdWVzdC5kZWZlcigp
KSB7CisgICAgICAgIHJlc291cmNlLT5sb2FkKHRoaXMsIHJlcXVlc3Qub3B0aW9ucygpKTsKIAog
ICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1
cHBvcnQgaW1tZWRpYXRlIGZhaWx1cmUuCiAgICAgICAgIGlmIChyZXNvdXJjZS0+ZXJyb3JPY2N1
cnJlZCgpKSB7CkBAIC00NjMsOCArNDU5LDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzRGF0YSgp
KQotICAgICAgICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QudXJsKCkpOworICAgIGlmICgh
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0YSgpKQorICAgICAg
ICBtX3ZhbGlkYXRlZFVSTHMuYWRkKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpOwog
CiAgICAgQVNTRVJUKHJlc291cmNlLT51cmwoKSA9PSB1cmwuc3RyaW5nKCkpOwogICAgIG1fZG9j
dW1lbnRSZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwpAQCAtNzkzLDcg
Kzc4OSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZChDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcQogICAgIGlmICh0eXBlID09IENhY2hl
ZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dCkKICAgICAgICAgZW5jb2RpbmcgPSBjaGFyc2V0LmlzRW1wdHkoKSA/IG1fZG9jdW1lbnQtPmNo
YXJzZXQoKSA6IGNoYXJzZXQ7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gcmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgZW5jb2Rpbmcs
IGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkLCB0cnVlKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KHJlcXVlc3QsIGVuY29kaW5nKTsKKyAgICBjYWNoZWRSZXNvdXJjZVJlcXVlc3Quc2V0
Rm9yUHJlbG9hZCh0cnVlKTsKKworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiByZXNvdXJjZSA9IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCBjYWNoZWRSZXNvdXJjZVJlcXVl
c3QpOwogICAgIGlmICghcmVzb3VyY2UgfHwgKG1fcHJlbG9hZHMgJiYgbV9wcmVsb2Fkcy0+Y29u
dGFpbnMocmVzb3VyY2UuZ2V0KCkpKSkKICAgICAgICAgcmV0dXJuOwogICAgIHJlc291cmNlLT5p
bmNyZWFzZVByZWxvYWRDb3VudCgpOwpAQCAtOTEyLDQgKzkxMSwxMCBAQCB2b2lkIENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ1ByZWxvYWRzKTsKIH0KIAor
Y29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpCit7CisgICAgc3RhdGljIFJlc291cmNlTG9hZGVyT3B0
aW9ucyBvcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxs
b3dTdG9yZWRDcmVkZW50aWFscywgQXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywg
RG9TZWN1cml0eUNoZWNrKTsKKyAgICByZXR1cm4gb3B0aW9uczsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCAy
YTc5ODVlNmNiMjQ5MjUyZDgxNTllOTg1ZTY5MDQ1M2M2ZGVkODAzLi4wZmNiMWUzN2Q0YTI5ODIz
NzcyODM5MTQ1MTlmMjJhMmY0NDI0ZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBD
YWNoZWRTVkdEb2N1bWVudDsKIGNsYXNzIENhY2hlZEZvbnQ7CiBjbGFzcyBDYWNoZWRJbWFnZTsK
IGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOworY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2hhZGVyOwogY2xhc3MgQ2FjaGVkVGV4
dFRyYWNrOwpAQCAtNjgsMzAgKzY5LDMxIEBAIGZyaWVuZCBjbGFzcyBJbWFnZUxvYWRlcjsKIGZy
aWVuZCBjbGFzcyBSZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3I7CiAKIHB1YmxpYzoK
KyAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRM
b2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoZG9jdW1lbnRMb2FkZXIpKTsgfQogICAgIH5DYWNoZWRSZXNvdXJjZUxvYWRlcigp
OwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShS
ZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHls
ZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0
PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVl
c3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKLSAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVl
c3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVz
dFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiByZXF1ZXN0SW1hZ2Uo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVz
dFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9u
dChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYp
OwogCiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdE
b2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1ZXN0U1ZHRG9jdW1lbnQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBFTkFCTEUoWFNMVCkKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVl
dChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xT
dHlsZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQotICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpU
eXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9h
ZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJl
c291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRleHRUcmFjayhSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+
IHJlcXVlc3RUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVy
PiByZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gcmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsK
ICNlbmRpZgogCiAgICAgLy8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNv
bnNvbGUgZm9yIHRoZSBzcGVjaWZpZWQgVVJMLgpAQCAtMTM1LDExICsxMzcsMTIgQEAgcHVibGlj
OgogICAgIAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OwogCisgICAgc3RhdGljIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgZGVmYXVsdENh
Y2hlZFJlc291cmNlT3B0aW9ucygpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJl
c291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICBlbnVtIERlZmVyT3B0aW9uIHsg
Tm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJP
cHRpb25zJiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVz
b2x2ZWQsIGJvb2wgaXNQcmVsb2FkID0gZmFsc2UsIERlZmVyT3B0aW9uID0gTm9EZWZlcik7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZSopOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2Fk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCk7CiAgICAgdm9pZCByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6
VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmFkZDM5Yjk2Y2FjZjRkZWIzYjRmMzgyMWNlZmI2MjU4YzVlYzlmMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291
cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3Vy
Y2VSZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisgICAgLCBtX29wdGlvbnMoQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAs
IG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBt
X2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVyOjpOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQor
ICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9vcHRpb25z
KG9wdGlvbnMpCisgICAgLCBtX3ByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZCkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBS
ZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVm
YXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkK
KyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjA0M2RmZTM5ZmU0
Y2VkNTUwODIxOTRiZTNmMTBkZjAwZjkxYmY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09H
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAorI2RlZmluZSBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RfaAorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9y
aXR5VW5yZXNvbHZlZCk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOworICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7
CisKKyAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVy
biBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGNoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2NoYXJzZXQ7IH0KKyAgICB2b2lk
IHNldENoYXJzZXQoY29uc3QgU3RyaW5nJiBjaGFyc2V0KSB7IG1fY2hhcnNldCA9IGNoYXJzZXQ7
IH0KKyAgICBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnM7IH0KKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7
IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQ
cmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KKyAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9Cisg
ICAgdm9pZCBzZXREZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRpb24gZGVmZXIp
IHsgbV9kZWZlciA9IGRlZmVyOyB9CisKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1f
cmVzb3VyY2VSZXF1ZXN0OworICAgIFN0cmluZyBtX2NoYXJzZXQ7CisgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG1fb3B0aW9uczsKKyAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5
OworICAgIGJvb2wgbV9mb3JQcmVsb2FkOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZl
ck9wdGlvbiBtX2RlZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKaW5kZXggNjNiYzBlYTFj
YTIxNzRkYTgwZTE1Y2EyM2RlODg5MDViMTQ1YjUzNC4uOGM5ZDBjZWNiZmNkMTJiN2VhYTFjNGE4
Yzg3MGYxNjQyNTU3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRl
ci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTU5LDE0ICs2MCwxNCBAQCB2b2lkIEljb25M
b2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgaWYgKG1fcmVzb3VyY2UgfHwgIW1fZnJhbWUtPmRv
Y3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJj
ZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24oKS0+dXJsKCkpOworICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2ZyYW1lLT5sb2FkZXIoKS0+
aWNvbigpLT51cmwoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlm
ZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RB
c2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKwog
I2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFRhcmdldFR5
cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOworICAgIHJlcXVlc3QubXV0YWJs
ZVJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJ
c0Zhdmljb24pOwogI2VuZGlmCi0gICAgcmVzb3VyY2VSZXF1ZXN0LnNldFByaW9yaXR5KFJlc291
cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7CiAKLSAgICBtX3Jlc291cmNl
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJh
d1Jlc291cmNlKHJlc291cmNlUmVxdWVzdCwKLSAgICAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25z
KFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERv
U2VjdXJpdHlDaGVjaykpOworICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVxdWVzdCk7CiAgICAg
aWYgKG1fcmVzb3VyY2UpCiAgICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKICAg
ICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3NjM1
NzM4ZmRlMTg0ZDFlMWRmNDhlYjZmYjM2YWVjYWEyMzVkNWZiLi44N2ZmMGQ2ODEyNzQ0NjBlYTc5
NzhhZmU4N2ZhMjczOTY4ODU3ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCkBAIC04MCw3ICs4MSw3IEBA
IHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKIAogdm9p
ZCBTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQogewotICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSk7
CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG93bmVy
RG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBk
b2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7
CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHAKaW5kZXggZjYxMDUzNzcyYjYyMmZhZmU5NDc1MGUwOTkzNDhlNjc3
MGI3ZTgwNy4uYzM0ZmVkODdkNDdlZjhmZjFmMWE2NWUyN2FmNWY2Y2RkMzc0OGE4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Rm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJT
VkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtOTYsNyArOTcs
NyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQoKQogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAg
ICAgaWYgKCFocmVmLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7
Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJM
KGhyZWYpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7CiAgICAgICAgIG1fY2FjaGVk
Rm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAg
ICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAgICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGll
bnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZDE5ZWExOTVk
ZjIwYTJlZjYzOWY2YTFlOTlhMjBiMjU4MmI5NTBlMS4uNjA0NmVjNjFiNzRmYzEyZWIxM2FjMjA3
MjQ0YTZjNjgxNjU0NzQ3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAt
MjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgpAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYg
KGlzRXh0ZXJuYWxSZWZlcmVuY2UpIHsKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwoaHJlZigpKTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1
cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKICAgICAgICAgICAgICAgICBtX2Nh
Y2hlZERvY3VtZW50ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVz
dFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2NhY2hlZERvY3Vt
ZW50KQogICAgICAgICAgICAgICAgICAgICBtX2NhY2hlZERvY3VtZW50LT5hZGRDbGllbnQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKaW5kZXggMGExNzcwZDAzNDVhOGEx
ZmM4M2Q3YjdmYjJkNDQyZDJiYTM5ZWIxZi4uZTYyOTU5ZTk5YjBkMGRlMzdkODZkNTU1NTdjOTY5
OGNlOTgzODEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCiAKQEAg
LTk4LDcgKzk5LDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQoKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChjYWNo
ZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpOworICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjYWNoZWRSZXNv
dXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpKTsKICAgICBtX2Nh
Y2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RYU0xTdHlsZVNoZWV0KHJl
cXVlc3QpOwogICAgIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169809</attachid>
            <date>2012-10-21 11:39:35 -0700</date>
            <delta_ts>2012-10-21 11:41:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121021203814.patch</filename>
            <type>text/plain</type>
            <size>63533</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uODEyNmE1NmZlZWNmMTYxZjU5MjNmMTViODVkODdi
Y2YxY2ZiMGMzZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NCBAQAorMjAxMi0xMC0yMSAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6IGFkZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIGZpeGluZyBidWdzIDg0ODgz
IGFuZCA5Mjc2MSwKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJj
ZSBzaG91bGQgdGFrZSBhcyBwYXJhbWV0ZXIKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgd2hv
IGluaXRpYXRlZCB0aGUgcmVxdWVzdC4gQnV0IHRoZSBwYXJhbWV0ZXIKKyAgICAgICAgbGlzdCB3
YXMgYWxyZWFkeSBsb25nLiBUaGlzIGdhdGhlcnMgYWxsIHRoZSBwYXJhbWV0ZXJzIGludG8gYQor
ICAgICAgICBzZXBhcmF0ZSBjbGFzcywgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LiBUaGUgbmV4dCBz
dGVwIGlzIHRvIGFkZAorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8gaW5pdGlhdGVkIHRo
ZSByZXF1ZXN0IGludG8KKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIGNoYW5nZXMgaW4gZnVuY3Rpb25hbGl0eSwganVzdCBt
b3ZpbmcgY29kZSBhcm91bmQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZVNyY1ZhbHVlOjpjYWNoZWRGb250KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6
CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVl
dCk6CisgICAgICAgICogY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTo6bG9hZCk6CisgICAgICAgICog
Y3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENT
U1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOgorICAgICAgICAqIGRvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0aW9uOjpj
aGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAqIGh0
bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVu
dDo6cHJvY2Vzcyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1
ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKiBsb2FkZXIvTGlu
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjpsb2FkTGluayk6Cisg
ICAgICAgICogbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0VHJhY2tMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdENTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2Fk
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChDYWNoZWRSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdCk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6bXV0YWJsZVJlc291cmNlUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmNoYXJzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDaGFyc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6b3B0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnByaW9yaXR5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Zm9yUHJlbG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEZvclByZWxvYWQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpkZWZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlZmVyKToKKyAgICAgICAgKiBsb2FkZXIvaWNv
bi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9h
ZGluZyk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSk6CisgICAgICAg
ICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
b250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiB4bWwvWFNMSW1wb3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYU0xJbXBvcnRSdWxlOjpsb2FkU2hlZXQpOgorCisyMDEyLTEwLTE4ICBNYXJqYSBIw7ZsdHTD
pCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VT
cmNWYWx1ZTo6Y2FjaGVkRm9udCk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQpOgor
ICAgICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0lt
YWdlVmFsdWU6OmNhY2hlZEltYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxlSW1wb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQp
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NT
aGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKToKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6Y2hl
Y2tTdHlsZVNoZWV0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KToKKyAgICAgICAgKiBodG1s
L0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6
OnByb2Nlc3MpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVz
dCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgICogbG9hZGVyL0xpbmtM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOgorICAg
ICAgICAqIGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZv
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RT
aGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RD
U1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZCk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0Q2hhcnNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZlcik6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjpzZXRGb3JQcmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnJlc291cmNlUmVxdWVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpj
aGFyc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6Om9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cHJpb3JpdHkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Zm9yUHJl
bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0OjpkZWZlcik6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZUxvYWRlcik6Cisg
ICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uTG9hZGVyOjpzdGFydExvYWRpbmcpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdl
UmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAgICAg
ICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogeG1sL1hTTEltcG9ydFJ1bGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WFNMSW1wb3J0UnVsZTo6bG9hZFNoZWV0KToKKwogMjAxMi0x
MC0xOCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBN
ZWRpYVN0cmVhbSBBUEk6IERvIHNvbWUgY2xlYW51cCBpbiB0aGUgY2hyb21pdW0gV2ViS2l0IEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNTM3Mzc5ODA5OTdlNzRjMWRkODQ3Yzg1ZGU2ODkz
MDExNmUxNDA4Li5hMjczZGU2YTI4Y2M0ZWQ0NTZlYzBjM2ZmZDE3YWYzOTgyNTJiY2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY4MSw2ICsxNjgxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKICAgICBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVk
U2hhZGVyLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGVhMmIyMmU5YWVhNjI5YmFjNGM3ODAzN2ExYTIw
MGZhNjhjZWNhNTMuLmQ5MGY5ZjU5MGQ1OWVhMjQxZGE0MjhlMTUyNWYwNTUxYjg2MDE5YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzg0Myw2ICszODQzLDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IDdlNzA1ZTQ4NmIxMmU2YWU1M2U3OTZmN2RiMmRkNzc4NGMxMTU2OGUuLjJlNzk4NmY0OWE5NTAw
ZDM4NDY2Yjk3N2I4NDliOGRjZGNkMjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODE2LDYgKzgxNiw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3Bw
IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAgXAogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgXAorICAgIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkVGlt
aW5nLmNwcCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDQ4YTFkY2Iz
ZjVjYTg0MjQxMTA5NDAwZmZmOTRjY2IyMTMyNmE3MDQuLmEyNzYyMjAxYjUxZDAxOGQ1M2U2ZTkz
YjRlMmJmMmU3NGZjZWU5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwNiw2ICsyMDYsNyBAQAog
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUNsaWVudC5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgnLAorICAgICAgICAgICAgJ2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnbG9hZGVy
L2NhY2hlL0NhY2hlZFNoYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVk
U3R5bGVTaGVldENsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuaCcsCkBAIC0zMDYxLDYgKzMwNjIsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1NDBmYTUzOTM1MWVlNmE3
NDVlOTEzMDEzZWUzMTU2ZTVkNTBiZmRlLi5hYWE2MzlhYmM1MzRjOTQ4ZGRkNTI4YmJlNzA5NzA2
YjMyMzU0ZDFlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMjgxOTQsNiArMjgxOTQsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hl
XENhY2hlZFNjcmlwdC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjYyNjJkYmQwZWJk
ODY1OTU1OGY2MjIyNmFkOTAzMmIwZWE5NjcxYi4uN2ZmNDY1MjQ3NTAyNmMxZjU3MzBiMGVhNjQy
MTMxZmQ4NWQzMTc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5MSw2ICsxNDkxLDggQEAKIAkJNTAzRDBDQUIxNEI1QjA4
NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwM0QwQ0E4MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0
b21GaWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsK
IAkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwM0QwQ0E5
MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTAzRDBDQUUxNEI1QjBC
QTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8q
IFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KCk7IH07IH07CisJCTUwODFFM0MzM0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi87
IH07CisJCTUwODFFM0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwODFFM0Ux
M0QwMjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDhDQ0E0RjEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dU
aHJlYWQuaCAqLzsgfTsKIAkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dU
aHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwICovOyB9Owog
CQk1MDk4N0MyNjE1N0Q2NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDk4N0My
NDE1N0Q2NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHAgKi87IH07
CkBAIC0xMjk2MSw2ICsxMjk2Myw4IEBACiAJCUJDQjE2QzBGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRYU0xTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRYU0xTdHlsZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2
QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyog
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUw
ODFFM0RGM0NGQzgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwODFFM0UxM0QwMjgwQzE2RUY4QjQ4
QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0I3NzM1RTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25k
aXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I3NzM1RjBDMTc4NTNE
MDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU05vZGVGaWx0ZXJDb25kaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjAwLDYgKzE5MjA0
LDggQEAKIAkJCQlFNDdCNEJFNjBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuaCAqLywKIAkJCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwICovLAogCQkJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5oICovLAorCQkJCTUwODFFM0RGM0NGQzgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwICovLAorCQkJCTUwODFFM0UxM0QwMjgwQzE2RUY4QjQ4QiAvKiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLywKIAkJCQlCQ0IxNkMwQTA5NzlDM0JEMDA0Njc3NDEg
LyogQ2FjaGVkU2NyaXB0LmNwcCAqLywKIAkJCQlCQ0IxNkMwQjA5NzlDM0JEMDA0Njc3NDEgLyog
Q2FjaGVkU2NyaXB0LmggKi8sCiAJCQkJNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hl
ZFNoYWRlci5jcHAgKi8sCkBAIC0yMjQ5NSw2ICsyMjUwMSw3IEBACiAJCQkJQkNCMTZDMjIwOTc5
QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDdCNEJFODBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTA4MUUzRTAzQ0ZGODBDMTZFRjhC
NDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZD
MjQwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNENTMzNjQwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hh
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MTE3LDYgKzI2MTI0LDcgQEAKIAkJCQlCQ0IxNkMx
RjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ3QjRCRTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0
OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2
QzIzMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAKaW5kZXggMmExYzA0Nzg3ZDZhMGM0Yzg3MTM4MDQ0YTJjMTc1NTg5ODcxMGNmYi4uMzY5
MDc4OTMzNmQwYjg0NDgxNTI3M2IwMTMyMjVmNjlkYWFkNjg3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC05NSw3ICs5Niw3IEBAIGJvb2wgQ1NTRm9u
dEZhY2VTcmNWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0CiBD
YWNoZWRGb250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewotICAgICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpOworICAgICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNv
bXBsZXRlVVJMKG1fcmVzb3VyY2UpKSk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGRvY3VtZW50
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICB9CiAg
ICAgcmV0dXJuIG1fY2FjaGVkRm9udC5nZXQoKTsKQEAgLTExMyw0ICsxMTQsMyBAQCB2b2lkIENT
U0ZvbnRGYWNlU3JjVmFsdWU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYgogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcAppbmRleCA2ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhLi42
ZGM3NmY1ODA0OGY5ZTQ4Y2U1Yjc5ZThlZjU5MjlmMmY0MmQxNDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU3R5
bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTA4LDcgKzEwOSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VT
ZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkCiAgICAgICAgIC8vIEFsbCBmb3JtcyBvZiBzY2FsZSBzaG91bGQgYmUgaW5jbHVkZWQ6
IFBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpLCBGcmFtZTo6cGFnZVpvb21GYWN0b3IoKSwKICAgICAg
ICAgLy8gYW5kIGFueSBDU1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgxNjk4CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVzdElt
YWdlRm9yU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9h
ZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpOworICAgICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpKTsKICAgICAgICAgaWYgKENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVz
dEltYWdlKHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBtX2ltYWdlU2V0ID0gU3R5bGVDYWNoZWRJ
bWFnZVNldDo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpLCBpbWFnZS5zY2FsZUZhY3RvciwgdGhp
cyk7CiAgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA3MjZjMmMwNDM0NzFlOTY3YjkyYmM5ZmE3NjRj
MzIzOWYyYjdhNTQ2Li42YjczZDQ2MzFhMGYwMDI0ZjJlYzZmM2M2NDg1ODE2NDk4NDEwNGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgpAQCAtODIsNyArODMsNyBAQCBTdHlsZUNh
Y2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBjb25zdAogICAgIGlmICghbV9hY2Nlc3NlZEltYWdlKSB7CiAgICAgICAgIG1f
YWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
bG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwodXJsKSkpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAg
ICAgICAgICAgICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdl
LmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
SW1wb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4
IDI2ZjI5ZTgyZjgwYTlmZjUxZGFjZTU3MGQ4ZjQ3ZTkzOGFlNWRlMGEuLmVlYzM1MDc3MWM0Nzk0
MmU4NjU3NzMwN2VjMjQwMzJkMjZjMDRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGVJbXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJ
bXBvcnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgog
I2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTdHls
ZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNSwxMSArMTE2LDExIEBAIHZvaWQgU3R5bGVSdWxlSW1w
b3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAgICAgICAgIHJvb3RTaGVldCA9IHNoZWV0OwogICAg
IH0KIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGFic1VSTCk7CisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5
bGVTaGVldC0+Y2hhcnNldCgpKTsKICAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0LT5pc1VzZXJT
dHlsZVNoZWV0KCkpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRl
ci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+
Y2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgZWxzZQotICAgICAgICBt
X2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0
KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKKyAgICAgICAgbV9jYWNo
ZWRTaGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1
ZXN0KTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewogICAgICAgICAvLyBpZiB0aGUgaW1wb3J0
IHJ1bGUgaXMgaXNzdWVkIGR5bmFtaWNhbGx5LCB0aGUgc2hlZXQgbWF5IGJlCiAgICAgICAgIC8v
IHJlbW92ZWQgZnJvbSB0aGUgcGVuZGluZyBzaGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mga25v
dwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3Bw
CmluZGV4IDQ0Yzg4MDg5NDcwZTgzOWQ5NzRlYmEwMWNjMDZmN2Q5MjBjMTgxMjIuLjY3ZTg0ZTNj
OWI5ODNhYmIwODI0MTIwNzU5ZTM4ODgwNTNjZmM4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKQEAgLTUyLDcg
KzUzLDcgQEAgQ2FjaGVkU1ZHRG9jdW1lbnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6Omxv
YWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICBpZiAoIW1fbG9hZFJlcXVlc3Rl
ZCkgewogICAgICAgICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogCi0gICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKTsK
KyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxv
YWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7CiAgICAgICAgIG1fZG9jdW1l
bnQgPSBsb2FkZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCmluZGV4IDZmOTM3M2UwZjBm
YTJkZjhiZjQ5NDI4MWI1YzJkODc3MjlhYmI5NjEuLmZhMDQxOTBjM2RjOGUzYWRiNDMxYWIwM2E4
ZmQxYTFlMTgwMDRiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NT
aGFkZXJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZh
bHVlLmNwcApAQCAtMzIsOCArMzIsOSBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICNpbmNs
dWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgogCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKICNpbmNsdWRlICJT
dHlsZVBlbmRpbmdTaGFkZXIuaCIKQEAgLTU5LDcgKzYwLDcgQEAgU3R5bGVDYWNoZWRTaGFkZXIq
IFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGxvYWQKICAgICBpZiAoIW1fYWNjZXNzZWRTaGFkZXIpIHsKICAgICAgICAgbV9hY2Nlc3NlZFNo
YWRlciA9IHRydWU7CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChtX3VybCkpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNo
YWRlcj4gY2FjaGVkU2hhZGVyID0gbG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQogICAg
ICAgICAgICAgbV9zaGFkZXIgPSBTdHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNoYWRl
ci5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmNwcAppbmRleCA0YmNhMWQxZWI5NWViYWFlYzEwYWQxMzhmY2M2ZDFmZWIzZjZmNmI2Li5l
YzE3MzNjNzQ0ODk1MjZkZjY1Y2UwZjQxYjNiNjg3NzExZDQzZmNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2lu
Y2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0Lmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgi
CkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5
bGVTaGVldCgpCiAgICAgICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgZG9j
dW1lbnQoKS0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS0+YWRkUGVuZGluZ1NoZWV0KCk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKGhyZWYpKTsKKyAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOwog
I2lmIEVOQUJMRShYU0xUKQogICAgICAgICAgICAgaWYgKG1faXNYU0wpCiAgICAgICAgICAgICAg
ICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJl
cXVlc3RYU0xTdHlsZVNoZWV0KHJlcXVlc3QpOwpAQCAtMTczLDggKzE3NCw5IEBAIHZvaWQgUHJv
Y2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogICAgICAgICAgICAgICAgIFN0
cmluZyBjaGFyc2V0ID0gYXR0cnMuZ2V0KCJjaGFyc2V0Iik7CiAgICAgICAgICAgICAgICAgaWYg
KGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gZG9jdW1l
bnQoKS0+Y2hhcnNldCgpOworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldChjaGFy
c2V0KTsKIAotICAgICAgICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0
KTsKKyAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgICAgICBtX2Nh
Y2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggMjA5ZmM3OWMxYzhjMDhhNGY2OWE5OTk5ODNmYjA3MTk4NjM4ZTY5Ni4uY2ZkZDFh
NDM2OTgwZDFiMDAyNjJjMTE4Y2MyNjlmNzNjMmNjMzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtMjU2LDE2ICsyNTcsMTcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0
KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7
CiAgICAgaWYgKCFzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc291cmNlVXJsKS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJjZVJl
cXVlc3QobV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVcmwpKTsKKyAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSkpOwogCiAgICAgICAgIFN0
cmluZyBjcm9zc09yaWdpbk1vZGUgPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051
bGwoKSkgewogICAgICAgICAgICAgbV9yZXF1ZXN0VXNlc0FjY2Vzc0NvbnRyb2wgPSB0cnVlOwog
ICAgICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdu
b3JpbmdDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9y
ZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgICAgICB1
cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRl
bnRpYWxzKTsKICAgICAgICAgfQorICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoc2NyaXB0Q2hh
cnNldCgpKTsKIAotICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0LCBzY3JpcHRD
aGFyc2V0KCkpOworICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAg
ICAgbV9pc0V4dGVybmFsU2NyaXB0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBmZGM3YTVjY2UzMjMxYWY5YzIyNDRlMWM5ZjQ0NDgz
Yjg0YmYwMTMxLi43Yzk2YjE5YjEzODc4MTllMjAyZjU0ODllMmM2MjA5YjNmNDRiNDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAt
MjIwLDggKzIyMSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgICAg
ICAvLyBMb2FkIHN0eWxlc2hlZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJp
bmcgaW1tZWRpYXRlbHkgd2l0aCBsb3cgcHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5IHByaW9yaXR5ID0gYmxvY2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2
ZWQgOiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7Ci0gICAgICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7Ci0gICAgICAgIG1fY2Fj
aGVkU2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NT
U3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChtX3VybCkpLCBjaGFyc2V0LCBwcmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQg
PSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVl
dChyZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQogICAgICAg
ICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCA3MWExYWQzYjE5
NzExOGMyYWIxYmNkZTI5MGEzMTkyZDVjNjkwNzRmLi45Yzg4OWNkZjVhYzNmMDNjZjFjNjg5NTE1
MDJlMmUxMDZlNmMwZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ2Fj
aGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzc2LDE3ICszNzcsMTcgQEAgdm9pZCBEb2N1
bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU2VjdXIKICAgICAgICAgICAgIG9wdGlvbnMuc2hvdWxkQnVmZmVyRGF0YSA9IEJ1
ZmZlckRhdGE7CiAgICAgICAgIH0KIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVz
dChyZXF1ZXN0KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVx
dWVzdCwgb3B0aW9ucyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1fYWN0
dWFsUmVxdWVzdCkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSB3aWxsU2VuZFJlcXVlc3Qgb25s
eSBnZXRzIGNhbGxlZCBkdXJpbmcgcmVkaXJlY3RzLCB3ZSBpbml0aWFsaXplIHRoZSBpZGVudGlm
aWVyIGFuZCB0aGUgZmlyc3Qgd2lsbFNlbmRSZXF1ZXN0IGhlcmUuCiAgICAgICAgICAgICBtX3By
ZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyID0gbV9kb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpLT5w
cm9ncmVzcygpLT5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7CiAgICAgICAgICAgICBSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50
LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBtX2RvY3VtZW50LT5mcmFt
ZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNw
b25zZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVx
dWVzdChtX2RvY3VtZW50LT5mcmFtZSgpLCBtX3ByZWZsaWdodFJlcXVlc3RJZGVudGlmaWVyLCBt
X2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSwgbmV3UmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB9
CiAjZW5kaWYKICAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlKTsKLSAgICAgICAgbV9yZXNvdXJj
ZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJj
ZShuZXdSZXF1ZXN0LCBvcHRpb25zKTsKKyAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsK
ICAgICAgICAgaWYgKG1fcmVzb3VyY2UpIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAg
ICAgICAgaWYgKG1fcmVzb3VyY2UtPmxvYWRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAppbmRleCBhNmRhNjFlNjU0OGVmMDdhNjgyZGNkYjdjNDY3NDQ4NDI3NjgxNjJi
Li5jMTJiZTJmZjlkNDU1NzRlNDFkNGY0NzA4Y2I5NmJiNGQ1YTdlYzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTE3NywxOCArMTc4LDE4IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkK
ICAgICAvLyBhbiBlbXB0eSBzdHJpbmcuCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+IG5ld0ltYWdlID0gMDsKICAgICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVh
ZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhhdHRyKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoc291cmNlVVJJKGF0dHIpKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VVUkko
YXR0cikpKSk7CiAKICAgICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IGNsaWVudCgpLT5z
b3VyY2VFbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjcm9zc29yaWdpbkF0
dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkgewogICAgICAgICAg
ICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNl
KGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50
aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgICAgIHVwZGF0ZVJl
cXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vz
c0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFn
ZXMgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygp
OwogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0
b0xvYWRJbWFnZXMoZmFsc2UpOwotICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1h
Z2UocmVxdWVzdCk7CisgICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5n
KHRydWUpOwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9h
ZGVyKGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQo
bmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xv
YWRlci5jcHAKaW5kZXggYWYyNWE4NjgwM2M0MDc0NzljMTAyNjdhZjI2NjdlYTAyYWU1ZDJmMy4u
ZTUwYjM3OWQ5NmJlZGE3MzI5MjU0NjQyMGVhY2Y5OGJhNTQzZTFiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiRE5TLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKQEAgLTExOSwxMyArMTIwLDEzIEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExp
bmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5
CiAgICAgICAgICAgICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5TG93OwogICAgICAg
ICAgICAgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0K
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVS
TChocmVmKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGhyZWYpKSwgcHJpb3JpdHkpOwogICAg
ICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBt
X2NhY2hlZExpbmtSZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwogICAgICAgICAgICAgbV9j
YWNoZWRMaW5rUmVzb3VyY2UgPSAwOwogICAgICAgICB9Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jl
c291cmNlID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVz
b3VyY2UodHlwZSwgbGlua1JlcXVlc3QsIHByaW9yaXR5KTsKKyAgICAgICAgbV9jYWNoZWRMaW5r
UmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdExpbmtS
ZXNvdXJjZSh0eXBlLCBsaW5rUmVxdWVzdCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNv
dXJjZSkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBh
OWI3Zjk2MGJmNmQ2NTAzMDA1MTdjYjBmOTYzYWRhNDVlOTVhMWZiLi43ZTE0YjQzMzQ5Yzg1MGEx
OTViNjZjMjU5MDYxMzZkOGI4MGY2ZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRy
YWNrTG9hZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRl
ci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNpbmNs
dWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpA
QCAtMTUzLDEyICsxNTQsMTIgQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSkKIAogICAgIEFTU0VSVChtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwot
ICAgIFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwp
KTsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCkpKTsKIAogICAgIGlmICghY3Jvc3NPcmlnaW5Nb2Rl
LmlzTnVsbCgpKSB7CiAgICAgICAgIG1fY3Jvc3NPcmlnaW5Nb2RlID0gY3Jvc3NPcmlnaW5Nb2Rl
OwogICAgICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxJZ25v
cmluZ0Nhc2UoY3Jvc3NPcmlnaW5Nb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgICAgICB1cGRh
dGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChjdWVSZXF1ZXN0LCBkb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nl
c3NDb250cm9sKGN1ZVJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgLy8gQ3Jvc3Mtb3JpZ2luIHJlc291cmNlcyB0aGF0IGFyZSBub3Qgc3VpdGFibHkgQ09SUy1l
bmFibGVkIG1heSBub3QgbG9hZC4KICAgICAgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZmZjYTRmYzFlMTg5YTI3ODJj
NGQ4OWRlYzlmMWEzYzhlYzRlZDcwLi4xY2NhZWQ5YmY2ZWI4NzhiZmU0Zjg3YzQ2MDI3ZDE2ZWQ3
MTc5ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRGb250
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJD
b25zb2xlLmgiCkBAIC0xMDcsMTIgKzEwOCw2IEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3Jl
YXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRl
ZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKQotewotICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlh
bHMsIERvU2VjdXJpdHlDaGVjayk7Ci0gICAgcmV0dXJuIG9wdGlvbnM7Ci19Ci0KIENhY2hlZFJl
c291cmNlTG9hZGVyOjpDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciogZG9jdW1l
bnRMb2FkZXIpCiAgICAgOiBtX2RvY3VtZW50KDApCiAgICAgLCBtX2RvY3VtZW50TG9hZGVyKGRv
Y3VtZW50TG9hZGVyKQpAQCAtMTU1LDU2ICsxNTAsNTcgQEAgRnJhbWUqIENhY2hlZFJlc291cmNl
TG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2Rv
Y3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewogICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAgaWYgKGYtPmxvYWRl
cigpLT5wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6
Tm9EaXNtaXNzYWwpIHsKLSAgICAgICAgICAgIEtVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJs
KCk7CisgICAgICAgICAgICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLnVybCgpOwogICAgICAgICAgICAgaWYgKHJlcXVlc3RVUkwuaXNWYWxpZCgpICYmIGNhblJl
cXVlc3QoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3RVUkwpKQogICAgICAg
ICAgICAgICAgIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShmLCByZXF1ZXN0VVJMKTsKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YWNoZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJj
ZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgUmVz
b3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSwgY2xpZW50RGVmZXJzSW1hZ2UocmVx
dWVzdC51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcikuZ2V0KCkpOworICAgIHJl
cXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KS51cmwoKSkgPyBEZWZlcnJlZEJ5Q2xpZW50IDogTm9EZWZlcik7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENhY2hlZEltYWdlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpJbWFn
ZVJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRGb250Kj4ocmVxdWVzdFJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlLCBy
ZXF1ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2so
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRU
cmFja1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0
aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFRleHRUcmFjayo+
KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVl
c3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQotQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTaGFkZXI+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVk
U2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwg
cmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0KCkp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1ZXN0UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5k
aWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkK
K0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QsIGNoYXJz
ZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwgcHJpb3JpdHkpLmdldCgpKTsKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCi1D
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5
bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSBNZW1vcnlD
YWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7Cisg
ICAgS1VSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVk
ZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBpZiAoQ2FjaGVkUmVz
b3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKSkgewog
ICAgICAgICBpZiAoZXhpc3RpbmctPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVT
aGVldCkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0
Kj4oZXhpc3RpbmcpOwogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwog
ICAgIH0KLSAgICBpZiAodXJsLnN0cmluZygpICE9IHJlcXVlc3QudXJsKCkpCi0gICAgICAgIHJl
cXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnVybCgpKQorICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVl
c3QoKS5zZXRVUkwodXJsKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNo
YXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVz
ZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hl
ZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8g
Y2FjaGUuIERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTIxNCwz
NyArMjEwLDM3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmV0dXJuIHVzZXJTaGVl
dDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQqPihyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENh
Y2hlZFJlc291cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENh
Y2hlZFNjcmlwdCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCByZXF1
ZXN0KS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5
bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxl
U2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291
cmNlT3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFhTTFN0
eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQs
IHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFNWRykKLUNhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNWR0RvY3VtZW50KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNW
R0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkU1ZHRG9jdW1lbnQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3Vt
ZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKExJ
TktfUFJFRkVUQ0gpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwog
ICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2ggfHwgdHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsKLSAgICByZXR1cm4gcmVxdWVzdFJl
c291cmNlKHR5cGUsIHJlcXVlc3QsIFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRp
b25zKCksIHByaW9yaXR5KTsKKyAgICByZXR1cm4gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVl
c3QpOwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNl
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQorQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIHJlcXVlc3QsIFN0cmluZygpLCBvcHRpb25zLCBS
ZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIGZhbHNlKS5nZXQoKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENhY2hlZFJhd1Jlc291cmNlKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpSYXdSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiBib29sIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0
eXBlLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkBAIC00MDIsMTEgKzM5OCwxMSBAQCBib29sIENh
Y2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IGNvbnN0IEtVUkwmIHVybAogICAgIHJldHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25z
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBmb3JQcmVsb2FkLCBEZWZlck9w
dGlvbiBkZWZlcikKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBLVVJMIHVybCA9IHJlcXVl
c3QudXJsKCk7CisgICAgS1VSTCB1cmwgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgp
OwogICAgIAotICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclByZWxv
YWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCBjaGFyc2V0LmxhdGluMSgpLmRh
dGEoKSwgcHJpb3JpdHksIGZvclByZWxvYWQpOworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlICclcycsIGNoYXJzZXQgJyVzJywg
cHJpb3JpdHk9JWQsIGZvclByZWxvYWQ9JXUiLCB1cmwuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgp
LCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3JpdHkoKSwg
cmVxdWVzdC5mb3JQcmVsb2FkKCkpOwogICAgIAogICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50
IGlkZW50aWZpZXJzIGRpZmZlciwgaXQgaXMgdGhlIHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0g
TWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHVybCk7CkBAIC00
MTQsNyArNDEwLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVy
bCwgZm9yUHJlbG9hZCkpCisgICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5m
b3JQcmVsb2FkKCkpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChtZW1vcnlDYWNoZSgp
LT5kaXNhYmxlZCgpKSB7CkBAIC00MjgsMTYgKzQyNCwxNiBAQCBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShD
YWNoZQogICAgIC8vIFNlZSBpZiB3ZSBjYW4gdXNlIGFuIGV4aXN0aW5nIHJlc291cmNlIGZyb20g
dGhlIGNhY2hlLgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybCk7CiAKLSAgICBpZiAocmVx
dWVzdC51cmwoKSAhPSB1cmwpCi0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybCk7CisgICAgaWYg
KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkgIT0gdXJsKQorICAgICAgICByZXF1ZXN0
Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAgIGNvbnN0IFJldmFs
aWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwg
cmVxdWVzdCwgZm9yUHJlbG9hZCwgcmVzb3VyY2UuZ2V0KCksIGRlZmVyKTsKKyAgICBjb25zdCBS
ZXZhbGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5
cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQo
KSwgcmVzb3VyY2UuZ2V0KCksIHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kp
IHsKICAgICBjYXNlIFJlbG9hZDoKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291
cmNlLmdldCgpKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCiAgICAgY2FzZSBMb2FkOgotICAg
ICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBjaGFyc2V0KTsKKyAg
ICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3Vy
Y2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBSZXZhbGlkYXRlOgogICAgICAgICByZXNvdXJjZSA9IHJldmFsaWRhdGVSZXNvdXJjZShyZXNv
dXJjZS5nZXQoKSk7CkBAIC00NTEsOSArNDQ3LDkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUK
ICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJlc291cmNlLT5z
ZXRMb2FkUHJpb3JpdHkocHJpb3JpdHkpOwotICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNv
dXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSBkZWZlcikgewotICAgICAgICBy
ZXNvdXJjZS0+bG9hZCh0aGlzLCBvcHRpb25zKTsKKyAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9y
aXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8IHJlc291
cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBOb0RlZmVyID09IHJlcXVlc3QuZGVmZXIoKSkgewor
ICAgICAgICByZXNvdXJjZS0+bG9hZCh0aGlzLCByZXF1ZXN0Lm9wdGlvbnMoKSk7CiAKICAgICAg
ICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlhdGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0
IGltbWVkaWF0ZSBmYWlsdXJlLgogICAgICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQo
KSkgewpAQCAtNDYzLDggKzQ1OSw4IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKLSAg
ICAgICAgbV92YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnVybCgpKTsKKyAgICBpZiAoIXJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgbV92
YWxpZGF0ZWRVUkxzLmFkZChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIAogICAg
IEFTU0VSVChyZXNvdXJjZS0+dXJsKCkgPT0gdXJsLnN0cmluZygpKTsKICAgICBtX2RvY3VtZW50
UmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKQEAgLTc5Myw3ICs3ODks
MTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXEKICAgICBpZiAodHlwZSA9PSBDYWNoZWRSZXNv
dXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAg
ICAgICAgIGVuY29kaW5nID0gY2hhcnNldC5pc0VtcHR5KCkgPyBtX2RvY3VtZW50LT5jaGFyc2V0
KCkgOiBjaGFyc2V0OwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJlc291cmNlID0gcmVxdWVzdFJlc291cmNlKHR5cGUsIHJlcXVlc3QsIGVuY29kaW5nLCBkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZCwgdHJ1ZSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlZFJlc291cmNlUmVxdWVz
dChyZXF1ZXN0LCBlbmNvZGluZyk7CisgICAgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LnNldEZvclBy
ZWxvYWQodHJ1ZSk7CisKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
cmVzb3VyY2UgPSByZXF1ZXN0UmVzb3VyY2UodHlwZSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0KTsK
ICAgICBpZiAoIXJlc291cmNlIHx8IChtX3ByZWxvYWRzICYmIG1fcHJlbG9hZHMtPmNvbnRhaW5z
KHJlc291cmNlLmdldCgpKSkpCiAgICAgICAgIHJldHVybjsKICAgICByZXNvdXJjZS0+aW5jcmVh
c2VQcmVsb2FkQ291bnQoKTsKQEAgLTkxMiw0ICs5MTEsMTAgQEAgdm9pZCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdQcmVsb2Fkcyk7CiB9CiAKK2NvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKQoreworICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRlck9wdGlvbnMg
b3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMsIERvU2Vj
dXJpdHlDaGVjayk7CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggMmE3OTg1
ZTZjYjI0OTI1MmQ4MTU5ZTk4NWU2OTA0NTNjNmRlZDgwMy4uMGZjYjFlMzdkNGEyOTgyMzc3Mjgz
OTE0NTE5ZjIyYTJmNDQyNGYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ2FjaGVk
U1ZHRG9jdW1lbnQ7CiBjbGFzcyBDYWNoZWRGb250OwogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFz
cyBDYWNoZWRSYXdSZXNvdXJjZTsKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdDsKIGNsYXNz
IENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNoYWRlcjsKIGNsYXNzIENhY2hlZFRleHRUcmFj
azsKQEAgLTY4LDMwICs2OSwzMSBAQCBmcmllbmQgY2xhc3MgSW1hZ2VMb2FkZXI7CiBmcmllbmQg
Y2xhc3MgUmVzb3VyY2VDYWNoZVZhbGlkYXRpb25TdXBwcmVzc29yOwogCiBwdWJsaWM6CisgICAg
ZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKERvY3VtZW50TG9hZGVy
KiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IENhY2hlZFJlc291cmNlTG9h
ZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAot
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoUmVzb3Vy
Y2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gcmVxdWVzdENTU1N0eWxlU2hlZXQoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNv
bHZlZCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVx
dWVzdFVzZXJDU1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0U2Ny
aXB0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7Ci0gICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZvbnQoUmVzb3VyY2VSZXF1ZXN0Jik7
Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdS
ZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gcmVxdWVzdEltYWdlKENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwor
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RVc2Vy
Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZvbnQoQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3
UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKIAog
I2lmIEVOQUJMRShTVkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1l
bnQ+IHJlcXVlc3RTVkdEb2N1bWVudChSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJl
c291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFhTTFQpCi0gICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVT
aGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5k
aWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
UmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlv
cml0eVVucmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0VHJhY2soUmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1
ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENTU19TSEFERVJTKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gcmVx
dWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFkZXIoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5k
aWYKIAogICAgIC8vIExvZ3MgYW4gYWNjZXNzIGRlbmllZCBtZXNzYWdlIHRvIHRoZSBjb25zb2xl
IGZvciB0aGUgc3BlY2lmaWVkIFVSTC4KQEAgLTEzNSwxMSArMTM3LDEyIEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsK
IAorICAgIHN0YXRpYyBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIGRlZmF1bHRDYWNoZWRS
ZXNvdXJjZU9wdGlvbnMoKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVm
ZXIsIERlZmVycmVkQnlDbGllbnQgfTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
ZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVk
LCBib29sIGlzUHJlbG9hZCA9IGZhbHNlLCBEZWZlck9wdGlvbiA9IE5vRGVmZXIpOworICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2UqKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbG9hZFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQpOwogICAgIHZvaWQgcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUs
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhZGQzOWI5NmNhY2Y0ZGViM2I0ZjM4MjFjZWZiNjI1OGM1ZWM5ZjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDYWNo
ZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNvdXJjZUxv
YWRQcmlvcml0eSBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVx
dWVzdCkKKyAgICAsIG1fY2hhcnNldChjaGFyc2V0KQorICAgICwgbV9vcHRpb25zKENhY2hlZFJl
c291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCisgICAgLCBtX3By
aW9yaXR5KHByaW9yaXR5KQorICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZl
cihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKKyAgICA6
IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3B0aW9ucyhvcHRp
b25zKQorICAgICwgbV9wcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpCisg
ICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9h
ZGVyOjpOb0RlZmVyKQoreworfQorCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJj
ZVJlcXVlc3QpCisgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRD
YWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKKyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCisgICAg
LCBtX2ZvclByZWxvYWQoZmFsc2UpCisgICAgLCBtX2RlZmVyKENhY2hlZFJlc291cmNlTG9hZGVy
OjpOb0RlZmVyKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2IwNDNkZmUzOWZlNGNlZDU1
MDgyMTk0YmUzZjEwZGYwMGY5MWJmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMCwwICsxLDYyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKKyNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0X2gKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgeworcHVibGljOgorICAgIGV4cGxpY2l0IENhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQg
PSBTdHJpbmcoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVu
cmVzb2x2ZWQpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmKTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworCisg
ICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gbV9y
ZXNvdXJjZVJlcXVlc3Q7IH0KKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgY29uc3QgU3Ry
aW5nJiBjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jaGFyc2V0OyB9CisgICAgdm9pZCBzZXRD
aGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJzZXQgPSBjaGFyc2V0OyB9Cisg
ICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zOyB9CisgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSBjb25zdCB7
IHJldHVybiBtX3ByaW9yaXR5OyB9CisgICAgYm9vbCBmb3JQcmVsb2FkKCkgY29uc3QgeyByZXR1
cm4gbV9mb3JQcmVsb2FkOyB9CisgICAgdm9pZCBzZXRGb3JQcmVsb2FkKGJvb2wgZm9yUHJlbG9h
ZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVsb2FkOyB9CisgICAgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OkRlZmVyT3B0aW9uIGRlZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcjsgfQorICAgIHZv
aWQgc2V0RGVmZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIGRlZmVyKSB7IG1f
ZGVmZXIgPSBkZWZlcjsgfQorCitwcml2YXRlOgorICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291
cmNlUmVxdWVzdDsKKyAgICBTdHJpbmcgbV9jaGFyc2V0OworICAgIFJlc291cmNlTG9hZGVyT3B0
aW9ucyBtX29wdGlvbnM7CisgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKKyAg
ICBib29sIG1fZm9yUHJlbG9hZDsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RGVmZXJPcHRp
b24gbV9kZWZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCmluZGV4IDYzYmMwZWExY2EyMTc0
ZGE4MGUxNWNhMjNkZTg4OTA1YjE0NWI1MzQuLjhjOWQwY2VjYmZjZDEyYjdlYWExYzRhOGM4NzBm
MTY0MjU1N2Y3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25M
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC01OSwxNCArNjAsMTQgQEAgdm9pZCBJY29uTG9hZGVy
OjpzdGFydExvYWRpbmcoKQogICAgIGlmIChtX3Jlc291cmNlIHx8ICFtX2ZyYW1lLT5kb2N1bWVu
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1
ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnVybCgpKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9mcmFtZS0+bG9hZGVyKCktPmljb24o
KS0+dXJsKCkpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250
ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xp
ZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKSk7CisKICNpZiBQ
TEFURk9STShCTEFDS0JFUlJZKQotICAgIHJlc291cmNlUmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJl
c291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZpY29uKTsKKyAgICByZXF1ZXN0Lm11dGFibGVSZXNv
dXJjZVJlcXVlc3QoKS5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNGYXZp
Y29uKTsKICNlbmRpZgotICAgIHJlc291cmNlUmVxdWVzdC5zZXRQcmlvcml0eShSZXNvdXJjZUxv
YWRQcmlvcml0eUxvdyk7CisgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0
UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOwogCi0gICAgbV9yZXNvdXJjZSA9IG1f
ZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNv
dXJjZShyZXNvdXJjZVJlcXVlc3QsCi0gICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5k
Q2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3Vy
aXR5Q2hlY2spKTsKKyAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlcXVlc3QpOwogICAgIGlmICht
X3Jlc291cmNlKQogICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAgZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNzYzNTczOGZk
ZTE4NGQxZTFkZjQ4ZWI2ZmIzNmFlY2FhMjM1ZDVmYi4uODdmZjBkNjgxMjc0NDYwZWE3OTc4YWZl
ODdmYTI3Mzk2ODg1N2ViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkNhY2hl
ZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgpAQCAtODAsNyArODEsNyBAQCB2b2lk
IFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAKIHZvaWQgU1ZH
RkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKIHsKLSAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChvd25lckRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpOworICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChvd25lckRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKGhyZWYoKSkpKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCiAg
ICAgaWYgKG1fY2FjaGVkSW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuY3BwCmluZGV4IGY2MTA1Mzc3MmI2MjJmYWZlOTQ3NTBlMDk5MzQ4ZTY3NzBiN2U4
MDcuLmMzNGZlZDg3ZDQ3ZWY4ZmYxZjFhNjVlMjdhZjVmNmNkZDM3NDhhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRm9u
dEZhY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTk2LDcgKzk3LDcgQEAg
dm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGhyZWYgPSBnZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOwogICAgIGlm
ICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVk
UmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVm
KSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQg
PSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgICAgIGlm
IChtX2NhY2hlZEZvbnQpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+YWRkQ2xpZW50KHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGQxOWVhMTk1ZGYyMGEy
ZWY2MzlmNmExZTk5YTIwYjI1ODJiOTUwZTEuLjYwNDZlYzYxYjc0ZmMxMmViMTNhYzIwNzI0NGE2
YzY4MTY1NDc0NzYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKQEAgLTI1NCw3ICsyNTUsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIGlmIChpc0V4
dGVybmFsUmVmZXJlbmNlKSB7CiAgICAgICAgICAgICBLVVJMIHVybCA9IGRvY3VtZW50KCktPmNv
bXBsZXRlVVJMKGhyZWYoKSk7CiAgICAgICAgICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRp
ZmllcigpKSB7Ci0gICAgICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsLnN0
cmluZygpKTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QodXJsLnN0cmluZygpKSk7CiAgICAgICAgICAgICAgICAgbV9jYWNoZWRE
b2N1bWVudCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTVkdE
b2N1bWVudChyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAobV9jYWNoZWREb2N1bWVudCkK
ICAgICAgICAgICAgICAgICAgICAgbV9jYWNoZWREb2N1bWVudC0+YWRkQ2xpZW50KHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4IDBhMTc3MGQwMzQ1YThhMWZjODNk
N2I3ZmIyZDQ0MmQyYmEzOWViMWYuLmU2Mjk1OWU5OWIwZDBkZTM3ZDg2ZDU1NTU3Yzk2OThjZTk4
MzgxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKIAogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiWFNMU3R5bGVTaGVldC5oIgogCkBAIC05OCw3
ICs5OSw3IEBAIHZvaWQgWFNMSW1wb3J0UnVsZTo6bG9hZFNoZWV0KCkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGFic0hyZWYpKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoY2FjaGVkUmVzb3VyY2VM
b2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGFic0hyZWYpKSk7CiAgICAgbV9jYWNoZWRT
aGVldCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0WFNMU3R5bGVTaGVldChyZXF1ZXN0
KTsKICAgICAKICAgICBpZiAobV9jYWNoZWRTaGVldCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169810</attachid>
            <date>2012-10-21 11:41:25 -0700</date>
            <delta_ts>2012-10-22 16:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99736-20121021204005.patch</filename>
            <type>text/plain</type>
            <size>60159</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uN2Q0MzRhYzVlZTQxNTkyOTQyZmQ1OTk0MmMwYTA3
ODlhNmE3NjVmYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTEwLTIxICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvciBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjogYWRkIENhY2hlZFJlc291cmNlUmVxdWVzdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3MzYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgZml4aW5nIGJ1Z3MgODQ4ODMg
YW5kIDkyNzYxLAorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
IHNob3VsZCB0YWtlIGFzIHBhcmFtZXRlcgorICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aG8g
aW5pdGlhdGVkIHRoZSByZXF1ZXN0LiBCdXQgdGhlIHBhcmFtZXRlcgorICAgICAgICBsaXN0IHdh
cyBhbHJlYWR5IGxvbmcuIFRoaXMgZ2F0aGVycyBhbGwgdGhlIHBhcmFtZXRlcnMgaW50byBhCisg
ICAgICAgIHNlcGFyYXRlIGNsYXNzLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuIFRoZSBuZXh0IHN0
ZXAgaXMgdG8gYWRkCisgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHdobyBpbml0aWF0ZWQgdGhl
IHJlcXVlc3QgaW50bworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gY2hhbmdlcyBpbiBmdW5jdGlvbmFsaXR5LCBqdXN0IG1v
dmluZyBjb2RlCisgICAgICAgIGFyb3VuZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNl
dFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZElt
YWdlU2V0KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6CisgICAgICAgICogY3NzL1N0eWxlUnVs
ZUltcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RT
dHlsZVNoZWV0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcik6CisgICAgICAgICogZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb246OmNoZWNrU3R5bGVTaGVldCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisgICAg
ICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExp
bmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
bG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGxv
YWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OmxvYWRM
aW5rKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFja0xvYWRlcjo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0U2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKENhY2hlZFJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjptdXRhYmxlUmVzb3Vy
Y2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVz
b3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6
Y2hhcnNldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldENo
YXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpvcHRpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cHJpb3JpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpmb3JQcmVsb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0Rm9yUHJlbG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmRlZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0RGVmZXIpOgorICAgICAgICAqIGxv
YWRlci9pY29uL0ljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkxvYWRlcjo6
c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKToK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQpOgorICAgICAgICAqIHN2Zy9TVkdV
c2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCk6CisKIDIwMTItMTAtMTggIFRvbW15
IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0g
QVBJOiBEbyBzb21lIGNsZWFudXAgaW4gdGhlIGNocm9taXVtIFdlYktpdCBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggZDUzNzM3OTgwOTk3ZTc0YzFkZDg0N2M4NWRlNjg5MzAxMTZlMTQwOC4u
YTI3M2RlNmEyOGNjNGVkNDU2ZWMwYzNmZmQxN2FmMzk4MjUyYmNjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2ODEsNiArMTY4MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlSGFuZGxlLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
KyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAK
ICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCBlYTJiMjJlOWFlYTYyOWJhYzRjNzgwMzdhMWEyMDBmYTY4Y2VjYTUz
Li5kOTBmOWY1OTBkNTllYTI0MWRhNDI4ZTE1MjVmMDU1MWI4NjAxOWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4NDMsNiArMzg0Myw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBc
CisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3ZTcwNWU0ODZi
MTJlNmFlNTNlNzk2ZjdkYjJkZDc3ODRjMTE1NjhlLi4yZTc5ODZmNDlhOTUwMGQzODQ2NmI5Nzdi
ODQ5YjhkY2RjZDI4YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgxNiw2ICs4MTYsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBcCiAgICAgbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIFwKICAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmNwcCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAgXAog
ICAgIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgXAogICAgIGxvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0OGExZGNiM2Y1Y2E4NDI0MTEw
OTQwMGZmZjk0Y2NiMjEzMjZhNzA0Li5hMjc2MjIwMWI1MWQwMThkNTNlNmU5M2I0ZTJiZjJlNzRm
Y2VlOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDYsNiArMjA2LDcgQEAKICAgICAgICAgICAg
ICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNo
ZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRD
bGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLApAQCAt
MzA2MSw2ICszMDYyLDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VDbGllbnRXYWxrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlSGFuZGxlLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgnLAogICAgICAgICAgICAg
J2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTQwZmE1MzkzNTFlZTZhNzQ1ZTkxMzAxM2Vl
MzE1NmU1ZDUwYmZkZS4uYWFhNjM5YWJjNTM0Yzk0OGRkZDUyOGJiZTcwOTcwNmIzMjM1NGQxZSAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4
MTk0LDYgKzI4MTk0LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxv
YWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3Jp
cHQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY2MjYyZGJkMGViZDg2NTk1NThmNjIy
MjZhZDkwMzJiMGVhOTY3MWIuLjdmZjQ2NTI0NzUwMjZjMWY1NzMwYjBlYTY0MjEzMWZkODVkMzE3
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE0OTEsNiArMTQ5MSw4IEBACiAJCTUwM0QwQ0FCMTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MDNEMENBODE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTUwM0QwQ0FD
MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBOTE0QjVCMDg3MDBG
MzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwM0QwQ0FFMTRCNUIwQkEwMEYzMkY1NyAv
KiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUwM0QwQ0FEMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1c3Rv
bUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9Owor
CQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwODFFM0RGM0NG
QzgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwICovOyB9OworCQk1MDgx
RTNFMDNDRkY4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNFMTNEMDI4MEMxNkVG
OEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJl
bmRlckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87
IH07CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTND
RjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLzsgfTsKIAkJNTA5ODdDMjYx
NTdENjc2RDAwQkRBODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA5ODdDMjQxNTdENjc2RDAw
QkRBODM1IC8qIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwICovOyB9OwpAQCAtMTI5NjEs
NiArMTI5NjMsOCBAQAogCQlCQ0IxNkMwRjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5
bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkWFNMU3R5
bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxMDA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNv
dXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDgxRTNERjNDRkM4
MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNzcz
NUUwQzE3ODUzRDAwMTMyQkE0IC8qIEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCNzczNUYwQzE3ODUzRDAwMTMyQkE0IC8q
IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQjc3MzYwMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTIwMCw2ICsxOTIwNCw4IEBACiAJCQkJ
RTQ3QjRCRTYwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCiAJ
CQkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAq
LywKIAkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCAqLywKKwkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcCAqLywKKwkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmggKi8sCiAJCQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNj
cmlwdC5jcHAgKi8sCiAJCQkJQkNCMTZDMEIwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlw
dC5oICovLAogCQkJCTUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3Bw
ICovLApAQCAtMjI0OTUsNiArMjI1MDEsNyBAQAogCQkJCUJDQjE2QzIyMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3
QjRCRTgwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0IxNkMyQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUwODFFM0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzI0MDk3OUMzQkQw
MDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDUzMzY0MEVE
Njg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjExNyw2ICsyNjEyNCw3IEBACiAJCQkJQkNCMTZDMUYwOTc5QzNCRDAw
NDY3NzQxIC8qIENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0I0QkU5
MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwMzhCRTQw
MTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTEwNEYyNDMxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4
IDJhMWMwNDc4N2Q2YTBjNGM4NzEzODA0NGEyYzE3NTU4OTg3MTBjZmIuLjM2OTA3ODkzMzZkMGI4
NDQ4MTUyNzNiMDEzMjI1ZjY5ZGFhZDY4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NGb250RmFj
ZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgpAQCAtOTUsNyArOTYsNyBAQCBib29sIENTU0ZvbnRGYWNlU3JjVmFs
dWU6Omhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogQ2FjaGVkRm9udCog
Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAg
ICAgaWYgKCFtX2NhY2hlZEZvbnQpIHsKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
ZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCht
X3Jlc291cmNlKSkpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJldHVybiBt
X2NhY2hlZEZvbnQuZ2V0KCk7CkBAIC0xMTMsNCArMTE0LDMgQEAgdm9pZCBDU1NGb250RmFjZVNy
Y1ZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2IKIH0KIAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VT
ZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5k
ZXggNmUwMmEyMGY5NWFjM2YxNGY0NjFhMWM1MTAwYjRhZDYyYmQ5ZWYwYS4uNmRjNzZmNTgwNDhm
OWU0OGNlNWI3OWU4ZWY1OTI5ZjJmNDJkMTQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZh
bHVlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1h
Z2VTZXQuaCIKQEAgLTEwOCw3ICsxMDksNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJbWFn
ZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAogICAg
ICAgICAvLyBBbGwgZm9ybXMgb2Ygc2NhbGUgc2hvdWxkIGJlIGluY2x1ZGVkOiBQYWdlOjpwYWdl
U2NhbGVGYWN0b3IoKSwgRnJhbWU6OnBhZ2Vab29tRmFjdG9yKCksCiAgICAgICAgIC8vIGFuZCBh
bnkgQ1NTIHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTY5OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxl
RmFjdG9yKCk7Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2FkZXItPnJlcXVlc3RJbWFnZShyZXF1
ZXN0KSkgewogICAgICAgICAgICAgbV9pbWFnZVNldCA9IFN0eWxlQ2FjaGVkSW1hZ2VTZXQ6OmNy
ZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSwgaW1hZ2Uuc2NhbGVGYWN0b3IsIHRoaXMpOwogICAgICAg
ICAgICAgbV9hY2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VWYWx1ZS5jcHAKaW5kZXggNzI2YzJjMDQzNDcxZTk2N2I5MmJjOWZhNzY0YzMyMzlmMmI3YTU0
Ni4uNmI3M2Q0NjMxYTBmMDAyNGYyZWM2ZjNjNjQ4NTgxNjQ5ODQxMDRmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUg
IlN0eWxlQ2FjaGVkSW1hZ2UuaCIKQEAgLTgyLDcgKzgzLDcgQEAgU3R5bGVDYWNoZWRJbWFnZSog
Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwg
Y29uc3QKICAgICBpZiAoIW1fYWNjZXNzZWRJbWFnZSkgewogICAgICAgICBtX2FjY2Vzc2VkSW1h
Z2UgPSB0cnVlOwogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJM
KHVybCkpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBj
YWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdlKHJlcXVlc3QpKQogICAgICAgICAgICAg
bV9pbWFnZSA9IFN0eWxlQ2FjaGVkSW1hZ2U6OmNyZWF0ZShjYWNoZWRJbWFnZS5nZXQoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCAyNmYyOWU4MmY4
MGE5ZmY1MWRhY2U1NzBkOGY0N2U5MzhhZTVkZTBhLi5lZWMzNTA3NzFjNDc5NDJlODY1NzczMDdl
YzI0MDMyZDI2YzA0Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
SW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApA
QCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJD
YWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRl
bnRzLmgiCkBAIC0xMTUsMTEgKzExNiwxMSBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVz
dFN0eWxlU2hlZXQoKQogICAgICAgICByb290U2hlZXQgPSBzaGVldDsKICAgICB9CiAKLSAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChhYnNVUkwpOworICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNo
YXJzZXQoKSk7CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgp
KQotICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RV
c2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7
CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFVz
ZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgIGVsc2UKLSAgICAgICAgbV9jYWNoZWRTaGVl
dCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBt
X3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBj
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAg
aWYgKG1fY2FjaGVkU2hlZXQpIHsKICAgICAgICAgLy8gaWYgdGhlIGltcG9ydCBydWxlIGlzIGlz
c3VlZCBkeW5hbWljYWxseSwgdGhlIHNoZWV0IG1heSBiZQogICAgICAgICAvLyByZW1vdmVkIGZy
b20gdGhlIHBlbmRpbmcgc2hlZXQgY291bnQsIHNvIGxldCB0aGUgZG9jIGtub3cKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAppbmRleCA0NGM4
ODA4OTQ3MGU4MzlkOTc0ZWJhMDFjYzA2ZjdkOTIwYzE4MTIyLi42N2U4NGUzYzliOTgzYWJiMDgy
NDEyMDc1OWUzODg4MDUzY2ZjOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJD
U1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCkBAIC01Miw3ICs1Myw3IEBAIENh
Y2hlZFNWR0RvY3VtZW50KiBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKENhY2hlZFJl
c291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgaWYgKCFtX2xvYWRSZXF1ZXN0ZWQpIHsKICAgICAg
ICAgbV9sb2FkUmVxdWVzdGVkID0gdHJ1ZTsKIAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSk7CisgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwogICAgICAgICBtX2RvY3VtZW50ID0gbG9hZGVy
LT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAppbmRleCA2ZjkzNzNlMGYwZmEyZGY4YmY0OTQy
ODFiNWMyZDg3NzI5YWJiOTYxLi5mYTA0MTkwYzNkYzhlM2FkYjQzMWFiMDNhOGZkMWExZTE4MDA0
YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKQEAg
LTMyLDggKzMyLDkgQEAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAjaW5jbHVkZSAiV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuaCIKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQZW5kaW5n
U2hhZGVyLmgiCkBAIC01OSw3ICs2MCw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NT
aGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAg
aWYgKCFtX2FjY2Vzc2VkU2hhZGVyKSB7CiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVl
OwogCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwobV91cmwpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwp
KSk7CiAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IGNhY2hl
ZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0KSkKICAgICAgICAgICAgIG1f
c2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIuZ2V0KCkpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5k
ZXggNGJjYTFkMWViOTVlYmFhZWMxMGFkMTM4ZmNjNmQxZmViM2Y2ZjZiNi4uZWMxNzMzYzc0NDg5
NTI2ZGY2NWNlMGY0MWIzYjY4NzcxMWQ0M2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDU1NT
dHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkWFNMU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIgpAQCAtMTYzLDcg
KzE2NCw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQog
ICAgICAgICAgICAgbV9sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPnN0
eWxlU2hlZXRDb2xsZWN0aW9uKCktPmFkZFBlbmRpbmdTaGVldCgpOwogICAgICAgICAgICAgCi0g
ICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChocmVmKSk7CisgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICNpZiBFTkFCTEUo
WFNMVCkKICAgICAgICAgICAgIGlmIChtX2lzWFNMKQogICAgICAgICAgICAgICAgIG1fY2FjaGVk
U2hlZXQgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0WFNMU3R5
bGVTaGVldChyZXF1ZXN0KTsKQEAgLTE3Myw4ICsxNzQsOSBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgICAgICBTdHJpbmcgY2hhcnNl
dCA9IGF0dHJzLmdldCgiY2hhcnNldCIpOwogICAgICAgICAgICAgICAgIGlmIChjaGFyc2V0Lmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhcnNldCA9IGRvY3VtZW50KCktPmNoYXJz
ZXQoKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoY2hhcnNldCk7CiAKLSAg
ICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAg
ICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAgICAgICAgICAgICAgICAgbV9jYWNoZWRTaGVldC0+
YWRkQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDIw
OWZjNzljMWM4YzA4YTRmNjlhOTk5OTgzZmIwNzE5ODYzOGU2OTYuLmNmZGQxYTQzNjk4MGQxYjAw
MjYyYzExOGNjMjY5ZjczYzJjYzMyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTI1Niwx
NiArMjU3LDE3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVybCkKIAogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIGlmICgh
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkpKTsKIAogICAgICAgICBTdHJpbmcgY3Jvc3NP
cmlnaW5Nb2RlID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3Nv
cmlnaW5BdHRyKTsKICAgICAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAg
ICAgICAgICAgIG1fcmVxdWVzdFVzZXNBY2Nlc3NDb250cm9sID0gdHJ1ZTsKICAgICAgICAgICAg
IFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShj
cm9zc09yaWdpbk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1
ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIGFsbG93Q3JlZGVudGlhbHMpOworICAgICAgICAgICAgdXBkYXRlUmVxdWVz
dEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxsb3dDcmVkZW50aWFscyk7CiAg
ICAgICAgIH0KKyAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0KHNjcmlwdENoYXJzZXQoKSk7CiAK
LSAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQocmVxdWVzdCwgc2NyaXB0Q2hhcnNldCgpKTsK
KyAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CiAgICAgICAgIG1faXNFeHRl
cm5hbFNjcmlwdCA9IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKaW5kZXggZmRjN2E1Y2NlMzIzMWFmOWMyMjQ0ZTFjOWY0NDQ4M2I4NGJmMDEzMS4u
N2M5NmIxOWIxMzg3ODE5ZTIwMmY1NDg5ZTJjNjIwOWIzZjQ0YjQzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNh
Y2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hl
ZXRDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAgLTIyMCw4ICsyMjEs
OCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICAgICAgICAgLy8gTG9hZCBz
dHlsZXNoZWV0cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGltbWVkaWF0
ZWx5IHdpdGggbG93IHByaW9yaXR5LgogICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSA9IGJsb2NraW5nID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDogUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlWZXJ5TG93OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChk
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpOwotICAgICAgICBtX2NhY2hlZFNoZWV0ID0g
ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQo
cmVxdWVzdCwgY2hhcnNldCwgcHJpb3JpdHkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwp
KSwgY2hhcnNldCwgcHJpb3JpdHkpOworICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7
CiAgICAgICAgIAogICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgICAgIG1fY2Fj
aGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNzFhMWFkM2IxOTcxMThjMmFiMWJj
ZGUyOTBhMzE5MmQ1YzY5MDc0Zi4uOWM4ODljZGY1YWMzZjAzY2YxYzY4OTUxNTAyZTJlMTA2ZTZj
MGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291
cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKQEAgLTM3NiwxNyArMzc3LDE3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpsb2FkUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNl
Y3VyCiAgICAgICAgICAgICBvcHRpb25zLnNob3VsZEJ1ZmZlckRhdGEgPSBCdWZmZXJEYXRhOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCk7
CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QsIG9wdGlv
bnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIGlmIChtX2FjdHVhbFJlcXVlc3Qp
IHsKICAgICAgICAgICAgIC8vIEJlY2F1c2Ugd2lsbFNlbmRSZXF1ZXN0IG9ubHkgZ2V0cyBjYWxs
ZWQgZHVyaW5nIHJlZGlyZWN0cywgd2UgaW5pdGlhbGl6ZSB0aGUgaWRlbnRpZmllciBhbmQgdGhl
IGZpcnN0IHdpbGxTZW5kUmVxdWVzdCBoZXJlLgogICAgICAgICAgICAgbV9wcmVmbGlnaHRSZXF1
ZXN0SWRlbnRpZmllciA9IG1fZG9jdW1lbnQtPmZyYW1lKCktPnBhZ2UoKS0+cHJvZ3Jlc3MoKS0+
Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwogICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZWRpcmVjdFJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOwotICAgICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1bWVudC0+ZnJhbWUoKSwg
bV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCksIG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAg
ICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9kb2N1
bWVudC0+ZnJhbWUoKSwgbV9wcmVmbGlnaHRSZXF1ZXN0SWRlbnRpZmllciwgbV9kb2N1bWVudC0+
ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCksIG5ld1JlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICAgICAgfQogI2VuZGlmCiAg
ICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3Vt
ZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVz
dCwgb3B0aW9ucyk7CisgICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCk7CiAgICAgICAgIGlm
IChtX3Jlc291cmNlKSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgICAgIGlmICht
X3Jlc291cmNlLT5sb2FkZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
aW5kZXggYTZkYTYxZTY1NDhlZjA3YTY4MmRjZGI3YzQ2NzQ0ODQyNzY4MTYyYi4uYzEyYmUyZmY5
ZDQ1NTc0ZTQxZDRmNDcwOGNiOTZiYjRkNWE3ZWM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xNzcsMTggKzE3
OCwxOCBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgLy8gYW4g
ZW1wdHkgc3RyaW5nLgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBuZXdJ
bWFnZSA9IDA7CiAgICAgaWYgKCFhdHRyLmlzTnVsbCgpICYmICFzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUTUxTcGFjZXMoYXR0cikuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJj
ZVVSSShhdHRyKSkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVVJJKGF0dHIpKSkpOwog
CiAgICAgICAgIFN0cmluZyBjcm9zc09yaWdpbk1vZGUgPSBjbGllbnQoKS0+c291cmNlRWxlbWVu
dCgpLT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKTsKICAgICAg
ICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIFN0b3JlZENy
ZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbElnbm9yaW5nQ2FzZShjcm9zc09yaWdp
bk1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05v
dEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNj
ZXNzQ29udHJvbChyZXF1ZXN0LCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0Ny
ZWRlbnRpYWxzKTsKKyAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJl
cXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLCBhbGxvd0NyZWRlbnRpYWxzKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2xvYWRN
YW51YWxseSkgewogICAgICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAg
ICAgIGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2Vz
KGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3Qp
OworICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAg
ICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVu
dCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50KCktPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51
cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmlu
ZGV4IGFmMjVhODY4MDNjNDA3NDc5YzEwMjY3YWYyNjY3ZWEwMmFlNWQyZjMuLmU1MGIzNzlkOTZi
ZWRhNzMyOTI1NDY0MjBlYWNmOThiYTU0M2UxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xv
YWRlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUgIkROUy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CkBAIC0xMTksMTMgKzEyMCwxMyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExp
bmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICAg
ICAgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICAgICAgICAgICAgIHR5cGUg
PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOwogICAgICAgICB9Ci0gICAgICAgIFJl
c291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaHJlZikpOwor
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSksIHByaW9yaXR5KTsKICAgICAgICAgCiAgICAg
ICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZWRMaW5r
UmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jl
c291cmNlID0gMDsKICAgICAgICAgfQotICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRv
Y3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUs
IGxpbmtSZXF1ZXN0LCBwcmlvcml0eSk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0g
ZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUmVzb3VyY2UodHlw
ZSwgbGlua1JlcXVlc3QpOwogICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpCiAgICAg
ICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggYTliN2Y5NjBiZjZk
NjUwMzAwNTE3Y2IwZjk2M2FkYTQ1ZTk1YTFmYi4uN2UxNGI0MzM0OWM4NTBhMTk1YjY2YzI1OTA2
MTM2ZDhiODBmNmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFj
a0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMb2FkZXIuaCIKIAogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTE1MywxMiAr
MTU0LDEyIEBAIGJvb2wgVGV4dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUpCiAKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBSZXNvdXJj
ZVJlcXVlc3QgY3VlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5j
b21wbGV0ZVVSTCh1cmwpKSk7CiAKICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwoKSkg
ewogICAgICAgICBtX2Nyb3NzT3JpZ2luTW9kZSA9IGNyb3NzT3JpZ2luTW9kZTsKICAgICAgICAg
U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsSWdub3JpbmdDYXNlKGNy
b3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFs
cyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKLSAgICAgICAgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2woY3VlUmVxdWVzdCwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGFs
bG93Q3JlZGVudGlhbHMpOworICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChj
dWVSZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENyb3Nz
LW9yaWdpbiByZXNvdXJjZXMgdGhhdCBhcmUgbm90IHN1aXRhYmx5IENPUlMtZW5hYmxlZCBtYXkg
bm90IGxvYWQuCiAgICAgICAgIGlmICghZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhblJl
cXVlc3QodXJsKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMWZmY2E0ZmMxZTE4OWEyNzgyYzRkODlkZWM5ZjFh
M2M4ZWM0ZWQ3MC4uMWNjYWVkOWJmNmViODc4YmZlNGY4N2M0NjAyN2QxNmVkNzE3OWQ5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIK
ICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgpA
QCAtMTA3LDEyICsxMDgsNiBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAgIHJldHVybiAw
OwogfQogCi1zdGF0aWMgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZhdWx0Q2FjaGVk
UmVzb3VyY2VPcHRpb25zKCkKLXsKLSAgICBzdGF0aWMgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9w
dGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3Vy
aXR5Q2hlY2spOwotICAgIHJldHVybiBvcHRpb25zOwotfQotCiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Q2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKQog
ICAgIDogbV9kb2N1bWVudCgwKQogICAgICwgbV9kb2N1bWVudExvYWRlcihkb2N1bWVudExvYWRl
cikKQEAgLTE1NSw1NiArMTUwLDU3IEBAIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZnJh
bWUoKSBjb25zdAogICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRl
ci0+ZnJhbWUoKSA6IDA7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBp
ZiAoRnJhbWUqIGYgPSBmcmFtZSgpKSB7CiAgICAgICAgIGlmIChmLT5sb2FkZXIoKS0+cGFnZURp
c21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6Ok5vRGlzbWlzc2Fs
KSB7Ci0gICAgICAgICAgICBLVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOworICAgICAg
ICAgICAgS1VSTCByZXF1ZXN0VVJMID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsK
ICAgICAgICAgICAgIGlmIChyZXF1ZXN0VVJMLmlzVmFsaWQoKSAmJiBjYW5SZXF1ZXN0KENhY2hl
ZFJlc291cmNlOjpJbWFnZVJlc291cmNlLCByZXF1ZXN0VVJMKSkKICAgICAgICAgICAgICAgICBQ
aW5nTG9hZGVyOjpsb2FkSW1hZ2UoZiwgcmVxdWVzdFVSTCk7CiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2Uq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJlcXVlc3Qs
IFN0cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIFJlc291cmNlTG9hZFBy
aW9yaXR5VW5yZXNvbHZlZCwgZmFsc2UsIGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QudXJsKCkp
ID8gRGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIpLmdldCgpKTsKKyAgICByZXF1ZXN0LnNldERl
ZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpID8g
RGVmZXJyZWRCeUNsaWVudCA6IE5vRGVmZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNo
ZWRJbWFnZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwg
cmVxdWVzdCkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJj
ZTo6Rm9udFJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNl
T3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZEZvbnQqPihy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0
KCkpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkVGV4dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0
VHJhY2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkVGV4
dFRyYWNrKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJj
ZSwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkuZ2V0
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRUZXh0VHJhY2sqPihyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7
CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKLUNhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFNoYWRlcj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVy
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QsIFN0
cmluZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpLmdldCgpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291
cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKLUNhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZhdWx0
Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIHByaW9yaXR5KS5nZXQoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RVc2VyQ1NTU3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIEtVUkwgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92
ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworICAgIEtVUkwgdXJs
ID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpOwogCiAgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlz
dGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybCkpIHsKICAgICAgICAgaWYg
KGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldCo+KGV4aXN0aW5n
KTsKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKICAgICB9Ci0gICAg
aWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnVybCgpKQotICAgICAgICByZXF1ZXN0LnNldFVS
TCh1cmwpOworICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KS51cmwoKSkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJM
KHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1
c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBu
ZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0
LmNoYXJzZXQoKSk7CiAKICAgICBtZW1vcnlDYWNoZSgpLT5hZGQodXNlclNoZWV0LmdldCgpKTsK
ICAgICAvLyBGSVhNRTogbG9hZFJlc291cmNlIGNhbGxzIHNldE93bmluZ0NhY2hlZFJlc291cmNl
TG9hZGVyKCkgaWYgdGhlIHJlc291cmNlIGNvdWxkbid0IGJlIGFkZGVkIHRvIGNhY2hlLiBEb2Vz
IHRoaXMgZnVuY3Rpb24gbmVlZCB0byBjYWxsIGl0LCB0b28/CkBAIC0yMTQsMzcgKzIxMCwzNyBA
QCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIHJldHVybiB1c2VyU2hlZXQ7CiB9CiAKLUNh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RTY3JpcHQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0U2NyaXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpTY3JpcHQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJj
ZU9wdGlvbnMoKSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHQq
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgcmVxdWVzdCkuZ2V0KCkp
OwogfQogCiAjaWYgRU5BQkxFKFhTTFQpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xT
dHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5
bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hl
ZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkWFNMU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5
bGVTaGVldCwgcmVxdWVzdCwgU3RyaW5nKCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMo
KSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0Kj4o
cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0KS5n
ZXQoKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTVkcpCi1DYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRTVkdEb2N1bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1
bWVudChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTVkdEb2N1bWVudD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PENhY2hlZFNWR0RvY3VtZW50Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdE
b2N1bWVudFJlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNl
T3B0aW9ucygpKS5nZXQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNWR0RvY3Vt
ZW50Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNl
LCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENI
KQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICBBU1NFUlQo
dHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUgPT0gQ2FjaGVkUmVz
b3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7Ci0gICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBl
LCByZXF1ZXN0LCBTdHJpbmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBwcmlv
cml0eSk7CisgICAgcmV0dXJuIHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0KTsKIH0KICNl
bmRpZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKK0NhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJhd1Jl
c291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2UqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlJhd1Jlc291cmNlLCByZXF1ZXN0LCBTdHJpbmcoKSwgb3B0aW9ucywgUmVzb3VyY2VMb2Fk
UHJpb3JpdHlVbnJlc29sdmVkLCBmYWxzZSkuZ2V0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDYWNoZWRSYXdSZXNvdXJjZSo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3
UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3Qg
S1VSTCYgdXJsKSBjb25zdApAQCAtNDAyLDExICszOTgsMTEgQEAgYm9vbCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJM
JiB1cmwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHksIGJvb2wgZm9yUHJlbG9hZCwgRGVmZXJPcHRpb24gZGVmZXIp
CitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgS1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOwor
ICAgIEtVUkwgdXJsID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAKLSAg
ICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJs
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgY2hhcnNldC5sYXRpbjEoKS5kYXRhKCksIHByaW9y
aXR5LCBmb3JQcmVsb2FkKTsKKyAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVk
LCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5j
aGFyc2V0KCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCksIHJlcXVlc3QuZm9y
UHJlbG9hZCgpKTsKICAgICAKICAgICAvLyBJZiBvbmx5IHRoZSBmcmFnbWVudCBpZGVudGlmaWVy
cyBkaWZmZXIsIGl0IGlzIHRoZSBzYW1lIHJlc291cmNlLgogICAgIHVybCA9IE1lbW9yeUNhY2hl
OjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZCh1cmwpOwpAQCAtNDE0LDcgKzQxMCw3
IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIGZvclByZWxv
YWQpKQorICAgIGlmICghY2FuUmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3QuZm9yUHJlbG9hZCgp
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAobWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQo
KSkgewpAQCAtNDI4LDE2ICs0MjQsMTYgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAv
LyBTZWUgaWYgd2UgY2FuIHVzZSBhbiBleGlzdGluZyByZXNvdXJjZSBmcm9tIHRoZSBjYWNoZS4K
ICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwpOwogCi0gICAgaWYgKHJlcXVlc3QudXJsKCkg
IT0gdXJsKQotICAgICAgICByZXF1ZXN0LnNldFVSTCh1cmwpOworICAgIGlmIChyZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpICE9IHVybCkKKyAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVz
b3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBjb25zdCBSZXZhbGlkYXRpb25Qb2xp
Y3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QsIGZv
clByZWxvYWQsIHJlc291cmNlLmdldCgpLCBkZWZlcik7CisgICAgY29uc3QgUmV2YWxpZGF0aW9u
UG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0
Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCksIHJlc291cmNl
LmdldCgpLCByZXF1ZXN0LmRlZmVyKCkpOwogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAgY2Fz
ZSBSZWxvYWQ6CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZS5nZXQoKSk7
CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaAogICAgIGNhc2UgTG9hZDoKLSAgICAgICAgcmVzb3Vy
Y2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJlc291
cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LCByZXF1ZXN0LmNoYXJzZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2YWxpZGF0
ZToKICAgICAgICAgcmVzb3VyY2UgPSByZXZhbGlkYXRlUmVzb3VyY2UocmVzb3VyY2UuZ2V0KCkp
OwpAQCAtNDUxLDkgKzQ0Nyw5IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKCFy
ZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXNvdXJjZS0+c2V0TG9hZFByaW9y
aXR5KHByaW9yaXR5KTsKLSAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxs
TmVlZHNMb2FkKCkpICYmIE5vRGVmZXIgPT0gZGVmZXIpIHsKLSAgICAgICAgcmVzb3VyY2UtPmxv
YWQodGhpcywgb3B0aW9ucyk7CisgICAgcmVzb3VyY2UtPnNldExvYWRQcmlvcml0eShyZXF1ZXN0
LnByaW9yaXR5KCkpOworICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxO
ZWVkc0xvYWQoKSkgJiYgTm9EZWZlciA9PSByZXF1ZXN0LmRlZmVyKCkpIHsKKyAgICAgICAgcmVz
b3VyY2UtPmxvYWQodGhpcywgcmVxdWVzdC5vcHRpb25zKCkpOwogCiAgICAgICAgIC8vIFdlIGRv
bid0IHN1cHBvcnQgaW1tZWRpYXRlIGxvYWRzLCBidXQgd2UgZG8gc3VwcG9ydCBpbW1lZGlhdGUg
ZmFpbHVyZS4KICAgICAgICAgaWYgKHJlc291cmNlLT5lcnJvck9jY3VycmVkKCkpIHsKQEAgLTQ2
Myw4ICs0NTksOCBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRhKCkpCi0gICAgICAgIG1fdmFs
aWRhdGVkVVJMcy5hZGQocmVxdWVzdC51cmwoKSk7CisgICAgaWYgKCFyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkpCisgICAgICAgIG1fdmFsaWRhdGVkVVJM
cy5hZGQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSk7CiAKICAgICBBU1NFUlQocmVz
b3VyY2UtPnVybCgpID09IHVybC5zdHJpbmcoKSk7CiAgICAgbV9kb2N1bWVudFJlc291cmNlcy5z
ZXQocmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZSk7CkBAIC03OTMsNyArNzg5LDEwIEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUsIFJlc291cmNlUmVxCiAgICAgaWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlNjcmlw
dCB8fCB0eXBlID09IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogICAgICAgICBlbmNv
ZGluZyA9IGNoYXJzZXQuaXNFbXB0eSgpID8gbV9kb2N1bWVudC0+Y2hhcnNldCgpIDogY2hhcnNl
dDsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9
IHJlcXVlc3RSZXNvdXJjZSh0eXBlLCByZXF1ZXN0LCBlbmNvZGluZywgZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpLCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQsIHRydWUpOwor
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwg
ZW5jb2RpbmcpOworICAgIGNhY2hlZFJlc291cmNlUmVxdWVzdC5zZXRGb3JQcmVsb2FkKHRydWUp
OworCisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0g
cmVxdWVzdFJlc291cmNlKHR5cGUsIGNhY2hlZFJlc291cmNlUmVxdWVzdCk7CiAgICAgaWYgKCFy
ZXNvdXJjZSB8fCAobV9wcmVsb2FkcyAmJiBtX3ByZWxvYWRzLT5jb250YWlucyhyZXNvdXJjZS5n
ZXQoKSkpKQogICAgICAgICByZXR1cm47CiAgICAgcmVzb3VyY2UtPmluY3JlYXNlUHJlbG9hZENv
dW50KCk7CkBAIC05MTIsNCArOTExLDEwIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAg
aW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwogfQogCitjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmIENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCkKK3sKKyAgICBzdGF0aWMgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMoU2Vu
ZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzLCBBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2sp
OworICAgIHJldHVybiBvcHRpb25zOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDJhNzk4NWU2Y2IyNDkyNTJk
ODE1OWU5ODVlNjkwNDUzYzZkZWQ4MDMuLjBmY2IxZTM3ZDRhMjk4MjM3NzI4MzkxNDUxOWYyMmEy
ZjQ0MjRmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50
OwogY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkUmF3
UmVzb3VyY2U7CitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBDYWNoZWRTY3Jp
cHQ7CiBjbGFzcyBDYWNoZWRTaGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2s7CkBAIC02OCwz
MCArNjksMzEgQEAgZnJpZW5kIGNsYXNzIEltYWdlTG9hZGVyOwogZnJpZW5kIGNsYXNzIFJlc291
cmNlQ2FjaGVWYWxpZGF0aW9uU3VwcHJlc3NvcjsKIAogcHVibGljOgorICAgIGVudW0gRGVmZXJP
cHRpb24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShEb2N1bWVudExvYWRlciogZG9jdW1lbnRM
b2FkZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVu
dExvYWRlcikpOyB9CiAgICAgfkNhY2hlZFJlc291cmNlTG9hZGVyKCk7CiAKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gcmVxdWVzdEltYWdlKFJlc291cmNlUmVxdWVzdCYp
OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RD
U1NTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RVc2VyQ1NT
U3R5bGVTaGVldChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdChSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwotICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEZvbnQ+IHJlcXVlc3RGb250KFJlc291cmNlUmVxdWVzdCYpOwotICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBy
ZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hl
ZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOworICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IHJlcXVlc3RGb250KENhY2hlZFJlc291cmNl
UmVxdWVzdCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBy
ZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICNpZiBFTkFCTEUo
U1ZHKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiByZXF1ZXN0
U1ZHRG9jdW1lbnQoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShYU0xUKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHlsZVNoZWV0KFJlc291cmNlUmVxdWVz
dCYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IHJlcXVl
c3RYU0xTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKExJTktfUFJFRkVUQ0gpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVx
dWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExp
bmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7
CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYpOwor
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRleHRUcmFj
ayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IHJlcXVlc3RTaGFkZXIo
UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVy
PiByZXF1ZXN0U2hhZGVyKENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCiAKICAgICAv
LyBMb2dzIGFuIGFjY2VzcyBkZW5pZWQgbWVzc2FnZSB0byB0aGUgY29uc29sZSBmb3IgdGhlIHNw
ZWNpZmllZCBVUkwuCkBAIC0xMzUsMTEgKzEzNywxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyAgICBzdGF0
aWMgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRp
b25zKCk7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9j
dW1lbnRMb2FkZXIqKTsKIAotICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJl
ZEJ5Q2xpZW50IH07Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJl
cXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBSZXNvdXJj
ZUxvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCwgYm9vbCBpc1By
ZWxvYWQgPSBmYWxzZSwgRGVmZXJPcHRpb24gPSBOb0RlZmVyKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpU
eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlKik7CiAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsK
ICAgICB2b2lkIHJlcXVlc3RQcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWRk
MzliOTZjYWNmNGRlYjNiNGYzODIxY2VmYjYyNThjNWVjOWYyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAg
LTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
cHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAg
LCBtX2NoYXJzZXQoY2hhcnNldCkKKyAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQorICAgICwgbV9wcmlvcml0eShwcmlv
cml0eSkKKyAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKKyAgICAsIG1fZGVmZXIoQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6Ok5vRGVmZXIpCit7Cit9CisKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3Jlc291cmNl
UmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKKyAgICAs
IG1fcHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQorICAgICwgbV9mb3JQ
cmVsb2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZl
cikKK3sKK30KKworQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9y
aXR5IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQor
ICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3Vy
Y2VPcHRpb25zKCkpCisgICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQorICAgICwgbV9mb3JQcmVs
b2FkKGZhbHNlKQorICAgICwgbV9kZWZlcihDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Tm9EZWZlcikK
K3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMDQzZGZlMzlmZTRjZWQ1NTA4MjE5NGJlM2Yx
MGRmMDBmOTFiZjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENh
Y2hlZFJlc291cmNlUmVxdWVzdF9oCisjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCisK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9h
ZFByaW9yaXR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gU3RyaW5nKCks
IFJlc291cmNlTG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsK
KyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKworICAgIFJlc291cmNl
UmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1
ZXN0OyB9CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25z
dCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQorICAgIHZvaWQgc2V0Q2hhcnNldChjb25z
dCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQorICAgIGNvbnN0IFJl
c291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsg
fQorICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9w
cmlvcml0eTsgfQorICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yUHJl
bG9hZDsgfQorICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9mb3JQ
cmVsb2FkID0gZm9yUHJlbG9hZDsgfQorICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9w
dGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAgICB2b2lkIHNldERlZmVy
KENhY2hlZFJlc291cmNlTG9hZGVyOjpEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVm
ZXI7IH0KKworcHJpdmF0ZToKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7
CisgICAgU3RyaW5nIG1fY2hhcnNldDsKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRp
b25zOworICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CisgICAgYm9vbCBtX2Zv
clByZWxvYWQ7CisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRlZmVyT3B0aW9uIG1fZGVmZXI7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAppbmRleCA2M2JjMGVhMWNhMjE3NGRhODBlMTVjYTIz
ZGU4ODkwNWIxNDViNTM0Li44YzlkMGNlY2JmY2QxMmI3ZWFhMWM0YThjODcwZjE2NDI1NTdmNzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgpAQCAtNTksMTQgKzYwLDE0IEBAIHZvaWQgSWNvbkxvYWRlcjo6c3RhcnRMb2Fk
aW5nKCkKICAgICBpZiAobV9yZXNvdXJjZSB8fCAhbV9mcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdChtX2ZyYW1l
LT5sb2FkZXIoKS0+aWNvbigpLT51cmwoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUtPmxvYWRlcigpLT5pY29uKCktPnVybCgpKSwg
UmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwgQnVmZmVy
RGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBEb05vdEFza0NsaWVudEZvckNyb3Nz
T3JpZ2luQ3JlZGVudGlhbHMsIERvU2VjdXJpdHlDaGVjaykpOworCiAjaWYgUExBVEZPUk0oQkxB
Q0tCRVJSWSkKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVl
c3Q6OlRhcmdldElzRmF2aWNvbik7CisgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCkuc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzRmF2aWNvbik7CiAjZW5k
aWYKLSAgICByZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlM
b3cpOworICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFByaW9yaXR5KFJl
c291cmNlTG9hZFByaW9yaXR5TG93KTsKIAotICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UocmVzb3Vy
Y2VSZXF1ZXN0LAotICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywg
U25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERv
Tm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrKSk7
CisgICAgbV9yZXNvdXJjZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShyZXF1ZXN0KTsKICAgICBpZiAobV9yZXNvdXJjZSkK
ICAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIGVsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDc2MzU3MzhmZGUxODRkMWUxZGY0
OGViNmZiMzZhZWNhYTIzNWQ1ZmIuLjg3ZmYwZDY4MTI3NDQ2MGVhNzk3OGFmZTg3ZmEyNzM5Njg4
NTdlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogCiB2b2lkIFNWR0ZFSW1hZ2VFbGVt
ZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiB7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3Qob3duZXJEb2N1bWVudCgpLT5jb21wbGV0ZVVSTChocmVmKCkpKTsKKyAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qob3duZXJEb2N1bWVudCgpLT5jb21w
bGV0ZVVSTChocmVmKCkpKSk7CiAgICAgbV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCktPmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RJbWFnZShyZXF1ZXN0KTsKIAogICAgIGlmIChtX2Nh
Y2hlZEltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cAppbmRleCBmNjEwNTM3NzJiNjIyZmFmZTk0NzUwZTA5OTM0OGU2NzcwYjdlODA3Li5jMzRmZWQ4
N2Q0N2VmOGZmMWYxYTY1ZTI3YWY1ZjZjZGQzNzQ4YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC05Niw3ICs5Nyw3IEBAIHZvaWQgU1ZHRm9u
dEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBocmVm
ID0gZ2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKICAgICBpZiAoIWhyZWYuaXNO
dWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9h
ZGVyID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwoaHJlZikpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gY2FjaGVkUmVz
b3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAgICBpZiAobV9jYWNoZWRG
b250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkMTllYTE5NWRmMjBhMmVmNjM5ZjZhMWU5
OWEyMGIyNTgyYjk1MGUxLi42MDQ2ZWM2MWI3NGZjMTJlYjEzYWMyMDcyNDRhNmM2ODE2NTQ3NDc2
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC0y
NTQsNyArMjU1LDcgQEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBpZiAoaXNFeHRlcm5hbFJlZmVy
ZW5jZSkgewogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5jb21wbGV0ZVVSTCho
cmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkgewot
ICAgICAgICAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybC5zdHJpbmcoKSk7Cisg
ICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KHVybC5zdHJpbmcoKSkpOwogICAgICAgICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQgPSBk
b2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVx
dWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fY2FjaGVkRG9jdW1lbnQpCiAgICAgICAgICAg
ICAgICAgICAgIG1fY2FjaGVkRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xJbXBvcnRSdWxlLmNwcAppbmRleCAwYTE3NzBkMDM0NWE4YTFmYzgzZDdiN2ZiMmQ0NDJk
MmJhMzllYjFmLi5lNjI5NTllOTliMGQwZGUzN2Q4NmQ1NTU1N2M5Njk4Y2U5ODM4MTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNs
dWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlhTTFN0eWxlU2hlZXQuaCIKIApAQCAtOTgsNyArOTksNyBAQCB2
b2lkIFhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVy
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGNhY2hlZFJlc291cmNlTG9hZGVyLT5kb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChhYnNIcmVmKSkpOwogICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNo
ZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAgCiAg
ICAgaWYgKG1fY2FjaGVkU2hlZXQpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>